Skip to content

Commit 15f8f68

Browse files
committed
remove invalid polygons
1 parent c15dca9 commit 15f8f68

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

src/spatialdata_io/readers/merscope.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import xarray
1616
from dask import array as da
1717
from dask_image.imread import imread
18+
from shapely.geometry import MultiPolygon
1819
from spatialdata import SpatialData
1920
from spatialdata._logging import logger
2021
from spatialdata.models import Image2DModel, PointsModel, ShapesModel, TableModel
@@ -311,7 +312,8 @@ def _get_polygons(boundaries_path: Path, transformations: dict[str, BaseTransfor
311312
geo_df = geopandas.read_parquet(boundaries_path)
312313
geo_df = geo_df.rename_geometry("geometry")
313314
geo_df = geo_df[geo_df[MerscopeKeys.Z_INDEX] == 0] # Avoid duplicate boundaries on all z-levels
314-
geo_df.geometry = geo_df.geometry.map(lambda x: x.geoms[0]) # The MultiPolygons contain only one polygon
315+
geo_df = geo_df[geo_df.geometry.is_valid] # Remove invalid geometries
316+
geo_df.geometry = geo_df.geometry.map(lambda x: MultiPolygon(x.geoms))
315317
geo_df.index = geo_df[MerscopeKeys.METADATA_CELL_KEY].astype(str)
316318

317319
return ShapesModel.parse(geo_df, transformations=transformations)

0 commit comments

Comments
 (0)