{ "cells": [ { "cell_type": "markdown", "id": "908a7529-521d-4e66-a19f-9e762a35b733", "metadata": {}, "source": [ "## Included locations" ] }, { "cell_type": "code", "execution_count": 1, "id": "49b79bb4-aea6-4e2e-819b-e2e1df4e9ede", "metadata": {}, "outputs": [], "source": [ "import pprint" ] }, { "cell_type": "code", "execution_count": 2, "id": "a0ab2186-9b34-4e8b-bfe1-e0e69f8f1c68", "metadata": {}, "outputs": [], "source": [ "from optiwindnet.importer import load_repository\n", "from optiwindnet.svg import svgplot" ] }, { "cell_type": "code", "execution_count": 3, "id": "3b0adb4e-812c-4667-bf4f-bfb61873d9d7", "metadata": {}, "outputs": [], "source": [ "from optiwindnet.svg import svgplot" ] }, { "cell_type": "code", "execution_count": 4, "id": "871233dc-3529-48c9-b4f2-588363b18109", "metadata": {}, "outputs": [], "source": [ "%config InlineBackend.figure_formats = ['svg']" ] }, { "cell_type": "markdown", "id": "d411d942-c797-479a-9458-88b4a9bb05fa", "metadata": {}, "source": [ "`load_repository()` reads the `.osm.pbf` and `.yaml` locations distributed with **optiwindnet** into a *namedtuple* of *networkx* graphs containing location data." ] }, { "cell_type": "code", "execution_count": 5, "id": "aa55f6ee-013f-4ee0-a7c5-6879e4beb9ef", "metadata": {}, "outputs": [], "source": [ "locations = load_repository()" ] }, { "cell_type": "code", "execution_count": 6, "id": "8da36249-3943-4460-ac67-9a9785edad85", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['albatros', 'amalia', 'amrumbank', 'anglia', 'anholt', 'arkona', 'baltic2',\n", " 'bard', 'beatrice', 'belwind', 'binhainorthH2', 'bodhi', 'borkum', 'borkum2',\n", " 'borkum3', 'borssele', 'brieuc', 'bucht', 'butendiek', 'cazzaro_2022',\n", " 'cazzaro_2022G140', 'cazzaro_2022G210', 'changhua1', 'coastalva', 'dantysk',\n", " 'doggerA', 'doggerB', 'doggerC', 'dudgeon', 'eagle', 'fecamp', 'gabbin',\n", " 'galloper', 'gangkou1', 'gangkou2', 'gemini1', 'gemini2', 'glotech1', 'gode',\n", " 'gwynt', 'hedreiht', 'hohesee', 'horns', 'horns2', 'horns3', 'hornsea',\n", " 'hornsea2w', 'humber', 'inchcape', 'jiaxing1', 'kaskasi', 'kfA', 'kfB',\n", " 'kustzuid', 'lillgrund', 'lincs', 'london', 'luchterduinen', 'meerwind',\n", " 'merkur', 'mermaid', 'morayeast', 'moraywest', 'nanpeng', 'nazaire', 'neart',\n", " 'noirmoutier', 'nordsee', 'nordseeost', 'norther', 'northwind', 'nysted',\n", " 'ormonde', 'race', 'rampion', 'rental', 'riffgat', 'robin', 'rough',\n", " 'rudongH10', 'rudongH6', 'rudongH8', 'rudongdemo', 'rødsand2', 'sandbank',\n", " 'sands', 'seagreen', 'shengsi2', 'sheringham', 'sofia', 'taylor_2023',\n", " 'thanet', 'thor', 'treport', 'triborkum', 'triton', 'vejamate', 'vineyard',\n", " 'walney1', 'walney2', 'walneyext', 'wikinger', 'yi_2019', 'yunlin']\n", "Location count: 104\n" ] } ], "source": [ "pprint.pp(sorted(locations._fields), compact=True)\n", "print(f'Location count: {len(locations)}')" ] }, { "cell_type": "code", "execution_count": 7, "id": "30f8a4fe-c38f-4591-a215-584ba4b263bd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "networkx.classes.graph.Graph" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(locations.sands)" ] }, { "cell_type": "code", "execution_count": 8, "id": "75bbe9dd-7a0b-4f2f-9be5-ca6db9ea8a8f", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svgplot(locations.sands)" ] }, { "cell_type": "code", "execution_count": 9, "id": "ddb00c3e-38ba-4837-9b37-ac808bb74dce", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "A01A02A03A04A05A06A07A08A09A10A11A12B01B02B03B04B05B06B07B08B09B10B11B12C01C02C03C04C05C06C07D01D02D03D04D05D06D13E01E02E03E08E09E10E11E12E13E14F01F02F03F04F10F11F12F13F14G01G02G03G04G11G12G13H01H02H03H04H05H06H07H10H11H12H13I01I02I03I04I05I06I07I08I09I10I11I12J01J02J03J04J05J06J07J08J09J10J11J12K02K03K04K05K06K07K08K09K10OSS" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svgplot(locations.sands, node_tag='label')" ] }, { "cell_type": "code", "execution_count": 10, "id": "5232deec-f379-4f12-bad2-9134d6000a66", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Albatros (albatros) : R = 1, T = 16\n", "Amrumbank West (amrumbank) : R = 1, T = 80\n", "Anholt (anholt) : R = 1, T = 111\n", "Arkona (arkona) : R = 1, T = 60\n", "BARD Offshore 1 (bard) : R = 1, T = 80\n", "Baltic 2 (baltic2) : R = 1, T = 80\n", "Baltic Eagle (eagle) : R = 1, T = 50\n", "Beatrice (beatrice) : R = 2, T = 84\n", "Belwind (belwind) : R = 1, T = 55\n", "Borkum Riffgrund 1 (borkum) : R = 1, T = 78\n", "Borkum Riffgrund 2 (borkum2) : R = 1, T = 52\n", "Borkum Riffgrund 3 (borkum3) : R = 1, T = 83\n", "Borssele (borssele) : R = 2, T = 173\n", "Butendiek (butendiek) : R = 1, T = 80\n", "CECEP Yangjiang Nanpeng Island (nanpeng) : R = 1, T = 55\n", "CGN Rudong Demonstration (rudongdemo) : R = 1, T = 38\n", "Cazzaro-2022 (cazzaro_2022) : R = 1, T = 50\n", "Cazzaro-2022G-140 (cazzaro_2022G140) : R = 3, T = 140\n", "Cazzaro-2022G-210 (cazzaro_2022G210) : R = 3, T = 210\n", "Coastal Virginia (coastalva) : R = 3, T = 176\n", "DanTysk (dantysk) : R = 1, T = 80\n", "Deutsche Bucht (bucht) : R = 1, T = 31\n", "Dogger Bank A (doggerA) : R = 1, T = 95\n", "Dogger Bank B (doggerB) : R = 1, T = 95\n", "Dogger Bank C (doggerC) : R = 1, T = 87\n", "Dudgeon (dudgeon) : R = 1, T = 67\n", "East Anglia ONE (anglia) : R = 1, T = 102\n", "Fecamp (fecamp) : R = 1, T = 71\n", "Galloper Inner (galloper) : R = 1, T = 38\n", "Gemini 1 (gemini1) : R = 1, T = 75\n", "Gemini 2 (gemini2) : R = 1, T = 75\n", "Global Tech 1 (glotech1) : R = 1, T = 80\n", "Gode Wind 1 (gode) : R = 1, T = 55\n", "Greater Changhua 1 (changhua1) : R = 1, T = 75\n", "Greater Gabbard Inner (gabbin) : R = 1, T = 102\n", "Gwynt y Mor (gwynt) : R = 2, T = 160\n", "He Dreiht (hedreiht) : R = 1, T = 64\n", "Hohe See (hohesee) : R = 1, T = 71\n", "Hollandse Kust Zuid (kustzuid) : R = 2, T = 139\n", "Horns Rev 1 (horns) : R = 1, T = 80\n", "Horns Rev 2 (horns2) : R = 1, T = 91\n", "Horns Rev 3 (horns3) : R = 1, T = 49\n", "Hornsea One (hornsea) : R = 3, T = 174\n", "Hornsea Two West (hornsea2w) : R = 1, T = 110\n", "Huizhou Gangkou 1 (gangkou1) : R = 1, T = 40\n", "Huizhou Gangkou 2 (gangkou2) : R = 1, T = 64\n", "Humber Gateway (humber) : R = 1, T = 73\n", "Inch Cape (inchcape) : R = 1, T = 72\n", "Kaskasi (kaskasi) : R = 1, T = 38\n", "Kriegers Flak A (kfA) : R = 1, T = 24\n", "Kriegers Flak B (kfB) : R = 1, T = 48\n", "Laoting Bodhi Island (bodhi) : R = 1, T = 75\n", "Lillgrund (lillgrund) : R = 1, T = 48\n", "Lincs (lincs) : R = 1, T = 75\n", "London Array (london) : R = 2, T = 175\n", "Luchterduinen (luchterduinen) : R = 1, T = 43\n", "Meerwind (meerwind) : R = 1, T = 80\n", "Merkur (merkur) : R = 1, T = 66\n", "Mermaid (mermaid) : R = 1, T = 27\n", "Moray East (morayeast) : R = 3, T = 100\n", "Moray West (moraywest) : R = 2, T = 60\n", "Neart na Gaoithe (neart) : R = 2, T = 54\n", "Noirmoutier (noirmoutier) : R = 1, T = 61\n", "Nordsee One (nordsee) : R = 1, T = 54\n", "Nordsee Ost (nordseeost) : R = 1, T = 48\n", "Norther (norther) : R = 1, T = 44\n", "Northwind (northwind) : R = 1, T = 72\n", "Nysted (nysted) : R = 1, T = 72\n", "Ormonde (ormonde) : R = 1, T = 30\n", "Princess Amalia (amalia) : R = 1, T = 60\n", "Race Bank (race) : R = 2, T = 91\n", "Rampion (rampion) : R = 1, T = 116\n", "Rentel (rental) : R = 1, T = 42\n", "Riffgat (riffgat) : R = 1, T = 30\n", "Robin Rigg (robin) : R = 1, T = 60\n", "Rudong H10 (rudongH10) : R = 1, T = 100\n", "Rudong H6 (rudongH6) : R = 1, T = 100\n", "Rudong H8 (rudongH8) : R = 1, T = 65\n", "Rødsand 2 (rødsand2) : R = 1, T = 90\n", "SPIC Binhai North H2 (binhainorthH2) : R = 1, T = 100\n", "Saint-Brieuc (brieuc) : R = 1, T = 62\n", "Saint-Nazaire (nazaire) : R = 1, T = 80\n", "Sandbank (sandbank) : R = 1, T = 72\n", "Seagreen (seagreen) : R = 1, T = 114\n", "Shengsi 2 (shengsi2) : R = 1, T = 63\n", "Sheringham Shoal (sheringham) : R = 2, T = 88\n", "Sofia (sofia) : R = 1, T = 100\n", "Taylor-2023 (taylor_2023) : R = 2, T = 122\n", "Thanet (thanet) : R = 1, T = 100\n", "Thor (thor) : R = 1, T = 72\n", "Trianel Windpark Borkum (triborkum) : R = 1, T = 72\n", "Triton Knoll (triton) : R = 2, T = 90\n", "Tréport (treport) : R = 1, T = 62\n", "Veja Mate (vejamate) : R = 1, T = 67\n", "Vineyard Wind 1 (vineyard) : R = 1, T = 62\n", "Walney 1 (walney1) : R = 1, T = 51\n", "Walney 2 (walney2) : R = 1, T = 51\n", "Walney Extension (walneyext) : R = 2, T = 87\n", "West of Duddon Sands (sands) : R = 1, T = 108\n", "Westermost Rough (rough) : R = 1, T = 35\n", "Wikinger (wikinger) : R = 1, T = 70\n", "Yi-2019 (yi_2019) : R = 2, T = 119\n", "Yunlin (yunlin) : R = 2, T = 80\n", "Zhejiang Jiaxing 1 (jiaxing1) : R = 1, T = 74\n" ] } ], "source": [ "for L in sorted(locations, key=lambda loc: loc.graph['name']):\n", " print(f'{L.graph['name']} ({L.graph['handle']}) : '\n", " f'R = {L.graph['R']}, T = {L.graph['T']}')" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }