{
"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": [
""
],
"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
}