diff --git a/src/geogenalg/application/generalize_water_areas.py b/src/geogenalg/application/generalize_water_areas.py index 482590cf..cf5cddde 100644 --- a/src/geogenalg/application/generalize_water_areas.py +++ b/src/geogenalg/application/generalize_water_areas.py @@ -119,13 +119,15 @@ def _get_shoreline_gdf_segments_and_skip_coords( data: GeoDataFrame, ) -> tuple[GeoDataFrame, GeoDataFrame, MultiPoint]: shoreline_gdf = data.loc[data.geometry.geom_type == "LineString"].copy() + shoreline_gdf.geometry = shoreline_gdf.geometry.force_2d() + if not shoreline_gdf.empty: # Extract out any points which are found in the input (Polygon) # data, but not the shoreline LineString data. This allows to # determine non-shoreline vertices (e.g. territorial water borders # in case of sea areas) and skip smoothing them later. segments = get_segments_in_polygon_boundary_but_not_in_lines( - data, + data.geometry.force_2d(), shoreline_gdf, ) diff --git a/src/geogenalg/continuity.py b/src/geogenalg/continuity.py index 8b8a16bb..207fd24f 100644 --- a/src/geogenalg/continuity.py +++ b/src/geogenalg/continuity.py @@ -9,7 +9,7 @@ from warnings import warn import numpy as np -from geopandas import GeoDataFrame +from geopandas import GeoDataFrame, GeoSeries from networkx.classes.graph import Graph from scipy.sparse import csr_matrix from scipy.sparse.csgraph import connected_components @@ -994,7 +994,7 @@ def add_contiguous_lines_information( # noqa: PLR0913 def get_segments_in_polygon_boundary_but_not_in_lines( - polygons: GeoDataFrame, + polygons: GeoDataFrame | GeoSeries, lines: GeoDataFrame, ) -> GeoDataFrame: """Find line segments present in polygons but not lines. diff --git a/tests/testdata/algo/water_areas.gpkg b/tests/testdata/algo/water_areas.gpkg index 1ba98650..540ea4a6 100644 Binary files a/tests/testdata/algo/water_areas.gpkg and b/tests/testdata/algo/water_areas.gpkg differ diff --git a/tests/testdata/algo/watercourse_areas.gpkg b/tests/testdata/algo/watercourse_areas.gpkg index 190e67c5..764f883f 100644 Binary files a/tests/testdata/algo/watercourse_areas.gpkg and b/tests/testdata/algo/watercourse_areas.gpkg differ