ssb-sgis 1.1.16__tar.gz → 1.1.17__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/PKG-INFO +1 -1
  2. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/pyproject.toml +1 -1
  3. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/duplicates.py +3 -0
  4. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/overlay.py +13 -4
  5. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/LICENSE +0 -0
  6. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/README.md +0 -0
  7. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/__init__.py +0 -0
  8. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/conf.py +0 -0
  9. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/debug_config.py +0 -0
  10. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/exceptions.py +0 -0
  11. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/__init__.py +0 -0
  12. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/bounds.py +0 -0
  13. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/buffer_dissolve_explode.py +0 -0
  14. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/centerlines.py +0 -0
  15. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/cleaning.py +0 -0
  16. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/conversion.py +0 -0
  17. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/general.py +0 -0
  18. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/geocoding.py +0 -0
  19. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/geometry_types.py +0 -0
  20. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/neighbors.py +0 -0
  21. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/point_operations.py +0 -0
  22. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/polygon_operations.py +0 -0
  23. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/polygons_as_rings.py +0 -0
  24. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/geopandas_tools/sfilter.py +0 -0
  25. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/helpers.py +0 -0
  26. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/io/__init__.py +0 -0
  27. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/io/_is_dapla.py +0 -0
  28. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/io/dapla_functions.py +0 -0
  29. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/io/opener.py +0 -0
  30. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/io/read_parquet.py +0 -0
  31. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/__init__.py +0 -0
  32. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/examine.py +0 -0
  33. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/explore.py +0 -0
  34. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/httpserver.py +0 -0
  35. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/legend.py +0 -0
  36. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/map.py +0 -0
  37. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/maps.py +0 -0
  38. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/norge_i_bilder.json +0 -0
  39. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/thematicmap.py +0 -0
  40. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/tilesources.py +0 -0
  41. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/maps/wms.py +0 -0
  42. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/__init__.py +0 -0
  43. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/_get_route.py +0 -0
  44. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/_od_cost_matrix.py +0 -0
  45. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/_points.py +0 -0
  46. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/_service_area.py +0 -0
  47. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/closing_network_holes.py +0 -0
  48. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/cutting_lines.py +0 -0
  49. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/directednetwork.py +0 -0
  50. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/finding_isolated_networks.py +0 -0
  51. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/network.py +0 -0
  52. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/networkanalysis.py +0 -0
  53. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/networkanalysisrules.py +0 -0
  54. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/nodes.py +0 -0
  55. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/networkanalysis/traveling_salesman.py +0 -0
  56. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/parallel/__init__.py +0 -0
  57. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/parallel/parallel.py +0 -0
  58. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/py.typed +0 -0
  59. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/raster/__init__.py +0 -0
  60. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/raster/base.py +0 -0
  61. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/raster/image_collection.py +0 -0
  62. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/raster/indices.py +0 -0
  63. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/raster/regex.py +0 -0
  64. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/raster/sentinel_config.py +0 -0
  65. {ssb_sgis-1.1.16 → ssb_sgis-1.1.17}/src/sgis/raster/zonal.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ssb-sgis
3
- Version: 1.1.16
3
+ Version: 1.1.17
4
4
  Summary: GIS functions used at Statistics Norway.
5
5
  Home-page: https://github.com/statisticsnorway/ssb-sgis
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ssb-sgis"
3
- version = "1.1.16"
3
+ version = "1.1.17"
4
4
  description = "GIS functions used at Statistics Norway."
5
5
  authors = ["Morten Letnes <morten.letnes@ssb.no>"]
6
6
  license = "MIT"
@@ -98,6 +98,9 @@ def update_geometries(
98
98
  if len(gdf) <= 1:
99
99
  return gdf
100
100
 
101
+ if geom_type == "polygon" or get_geom_type(gdf) == "polygon":
102
+ gdf.geometry = gdf.buffer(0)
103
+
101
104
  copied = make_all_singlepart(clean_geoms(gdf))
102
105
 
103
106
  copied, geom_type, keep_geom_type = _determine_geom_type_args(
@@ -119,6 +119,11 @@ def clean_overlay(
119
119
  df1.geometry.geom_type.value_counts(),
120
120
  )
121
121
 
122
+ if geom_type == "polygon" or get_geom_type(df1) == "polygon":
123
+ df1.geometry = df1.buffer(0)
124
+ if geom_type == "polygon" or get_geom_type(df2) == "polygon":
125
+ df2.geometry = df2.buffer(0)
126
+
122
127
  df1 = clean_geoms(df1)
123
128
  df2 = clean_geoms(df2)
124
129
 
@@ -131,10 +136,14 @@ def clean_overlay(
131
136
  if geom_type and get_geom_type(df1) == get_geom_type(df2):
132
137
  df2 = to_single_geom_type(df2, geom_type)
133
138
 
134
- assert df1.is_valid.all(), df1.is_valid.value_counts()
135
- assert df2.is_valid.all(), df2.is_valid.value_counts()
136
- assert df1.geometry.notna().all()
137
- assert df2.geometry.notna().all()
139
+ assert df1.is_valid.all(), [
140
+ geom.wkt for geom in df1[lambda x: x.is_valid == False].geometry
141
+ ]
142
+ assert df2.is_valid.all(), [
143
+ geom.wkt for geom in df2[lambda x: x.is_valid == False].geometry
144
+ ]
145
+ assert df1.geometry.notna().all(), df1[lambda x: x.isna()]
146
+ assert df2.geometry.notna().all(), df2[lambda x: x.isna()]
138
147
 
139
148
  box1 = box(*df1.total_bounds)
140
149
  box2 = box(*df2.total_bounds)
File without changes
File without changes
File without changes
File without changes
File without changes