gas_input: rewrite to not require pygeos via sjoin_nearest()
This commit is contained in:
parent
67ba2fa813
commit
b8a037026d
@ -110,6 +110,7 @@ if config["sector"]["gas_network"]:
|
|||||||
production="data/gas_network/scigrid-gas/data/IGGIELGN_Productions.geojson",
|
production="data/gas_network/scigrid-gas/data/IGGIELGN_Productions.geojson",
|
||||||
planned_lng="data/gas_network/planned_LNGs.csv",
|
planned_lng="data/gas_network/planned_LNGs.csv",
|
||||||
regions_onshore=pypsaeur("resources/regions_onshore_elec_s{simpl}_{clusters}.geojson"),
|
regions_onshore=pypsaeur("resources/regions_onshore_elec_s{simpl}_{clusters}.geojson"),
|
||||||
|
regions_offshore=pypsaeur('resources/regions_offshore_elec_s{simpl}_{clusters}.geojson')
|
||||||
output:
|
output:
|
||||||
gas_input_nodes="resources/gas_input_locations_s{simpl}_{clusters}.geojson",
|
gas_input_nodes="resources/gas_input_locations_s{simpl}_{clusters}.geojson",
|
||||||
gas_input_nodes_simplified="resources/gas_input_locations_s{simpl}_{clusters}_simplified.csv"
|
gas_input_nodes_simplified="resources/gas_input_locations_s{simpl}_{clusters}_simplified.csv"
|
||||||
|
@ -9,6 +9,8 @@ import pandas as pd
|
|||||||
import geopandas as gpd
|
import geopandas as gpd
|
||||||
from shapely import wkt
|
from shapely import wkt
|
||||||
|
|
||||||
|
from cluster_gas_network import load_bus_regions
|
||||||
|
|
||||||
|
|
||||||
def read_scigrid_gas(fn):
|
def read_scigrid_gas(fn):
|
||||||
df = gpd.read_file(fn)
|
df = gpd.read_file(fn)
|
||||||
@ -69,9 +71,19 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
logging.basicConfig(level=snakemake.config['logging_level'])
|
logging.basicConfig(level=snakemake.config['logging_level'])
|
||||||
|
|
||||||
onshore_regions = gpd.read_file(snakemake.input.regions_onshore).set_index('name')
|
regions = load_bus_regions(
|
||||||
|
snakemake.input.regions_onshore,
|
||||||
|
snakemake.input.regions_offshore
|
||||||
|
)
|
||||||
|
|
||||||
countries = onshore_regions.index.str[:2].unique().str.replace("GB", "UK")
|
# add a buffer to eastern countries because some
|
||||||
|
# entry points are still in Russian or Ukrainian territory.
|
||||||
|
buffer = 9000 # meters
|
||||||
|
eastern_countries = ['FI', 'EE', 'LT', 'LV', 'PL', 'SK', 'HU', 'RO']
|
||||||
|
add_buffer_b = regions.index.str[:2].isin(eastern_countries)
|
||||||
|
regions.loc[add_buffer_b] = regions[add_buffer_b].to_crs(3035).buffer(buffer).to_crs(4326)
|
||||||
|
|
||||||
|
countries = regions.index.str[:2].unique().str.replace("GB", "UK")
|
||||||
|
|
||||||
gas_input_locations = build_gas_input_locations(
|
gas_input_locations = build_gas_input_locations(
|
||||||
snakemake.input.lng,
|
snakemake.input.lng,
|
||||||
@ -81,12 +93,7 @@ if __name__ == "__main__":
|
|||||||
countries
|
countries
|
||||||
)
|
)
|
||||||
|
|
||||||
# recommended to use projected CRS rather than geographic CRS
|
gas_input_nodes = gpd.sjoin(gas_input_locations, regions, how='left')
|
||||||
gas_input_nodes = gpd.sjoin_nearest(
|
|
||||||
gas_input_locations.to_crs(3035),
|
|
||||||
onshore_regions.to_crs(3035),
|
|
||||||
how='left'
|
|
||||||
)
|
|
||||||
|
|
||||||
gas_input_nodes.rename(columns={"index_right": "bus"}, inplace=True)
|
gas_input_nodes.rename(columns={"index_right": "bus"}, inplace=True)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user