Merge pull request #466 from PyPSA/fix-build-shapes-unary-union

build_shapes: replace unary union from shapely by geopandas equivalent
This commit is contained in:
Fabian Hofmann 2023-02-07 15:16:43 +01:00 committed by GitHub
commit 8ebce96624
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -80,7 +80,6 @@ import pandas as pd
import pycountry as pyc import pycountry as pyc
from _helpers import configure_logging from _helpers import configure_logging
from shapely.geometry import MultiPolygon, Polygon from shapely.geometry import MultiPolygon, Polygon
from shapely.ops import unary_union
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -158,8 +157,7 @@ def country_cover(country_shapes, eez_shapes=None):
shapes = country_shapes shapes = country_shapes
if eez_shapes is not None: if eez_shapes is not None:
shapes = pd.concat([shapes, eez_shapes]) shapes = pd.concat([shapes, eez_shapes])
europe_shape = shapes.unary_union
europe_shape = unary_union(shapes)
if isinstance(europe_shape, MultiPolygon): if isinstance(europe_shape, MultiPolygon):
europe_shape = max(europe_shape, key=attrgetter("area")) europe_shape = max(europe_shape, key=attrgetter("area"))
return Polygon(shell=europe_shape.exterior) return Polygon(shell=europe_shape.exterior)