ssb-sgis 1.1.15__py3-none-any.whl → 1.1.17__py3-none-any.whl

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.
@@ -480,7 +480,9 @@ def _dissolve_thick_double_and_update(gdf, double, thin_double):
480
480
  .pipe(update_geometries, geom_type="polygon")
481
481
  )
482
482
  return (
483
- clean_overlay(gdf, large, how="update").pipe(sort_small_first)
483
+ clean_overlay(gdf, large, how="update", geom_type="polygon").pipe(
484
+ sort_small_first
485
+ )
484
486
  # .sort_values("_poly_idx")
485
487
  .pipe(update_geometries, geom_type="polygon")
486
488
  )
@@ -601,6 +603,7 @@ def split_by_neighbors(df, split_by, tolerance, grid_size=None) -> GeoDataFrame:
601
603
  buff(df, tolerance),
602
604
  how="identity",
603
605
  grid_size=grid_size,
606
+ geom_type="polygon",
604
607
  )
605
608
  .pipe(get_line_segments)
606
609
  .reset_index(drop=True)
@@ -621,7 +624,9 @@ def split_by_neighbors(df, split_by, tolerance, grid_size=None) -> GeoDataFrame:
621
624
 
622
625
  buffered = buff(extended_lines, tolerance, single_sided=True)
623
626
 
624
- return clean_overlay(df, buffered, how="identity", grid_size=grid_size)
627
+ return clean_overlay(
628
+ df, buffered, how="identity", geom_type="polygon", grid_size=grid_size
629
+ )
625
630
 
626
631
 
627
632
  def extend_lines(arr1, arr2, distance) -> NDArray[LineString]:
@@ -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)
sgis/maps/maps.py CHANGED
@@ -164,7 +164,7 @@ def explore(
164
164
 
165
165
  mask = kwargs.pop("mask", loc_mask)
166
166
 
167
- if mask is not None:
167
+ if mask is not None and center is None:
168
168
  return clipmap(
169
169
  *gdfs,
170
170
  column=column,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ssb-sgis
3
- Version: 1.1.15
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
@@ -6,14 +6,14 @@ sgis/geopandas_tools/__init__.py,sha256=bo8lFMcltOz7TtWAi52_ekR2gd3mjfBfKeMDV5zu
6
6
  sgis/geopandas_tools/bounds.py,sha256=YJyF0gp78hFAjLLZmDquRKCBAtbt7QouG3snTcJeNQs,23822
7
7
  sgis/geopandas_tools/buffer_dissolve_explode.py,sha256=t9GJqRMDsHEU74RIlqeMr4QBgbTK0hYlXL4af1RKIks,19955
8
8
  sgis/geopandas_tools/centerlines.py,sha256=Q65Sx01SeAlulBEd9oaZkB2maBBNdLcJwAbTILg4SPU,11848
9
- sgis/geopandas_tools/cleaning.py,sha256=0j7_bfuAjWVBUImbPTXuwNdYRJ_By6HAwaOdw5Dh4vc,24315
9
+ sgis/geopandas_tools/cleaning.py,sha256=PkAVVZ84ahek8_uVlTRtCO8nCWO6DdGltWLTmPOsvxM,24426
10
10
  sgis/geopandas_tools/conversion.py,sha256=o3QJZLfaqqpJNdWWNKfQn_dS77uJxxRxWZxhf18vPXs,25505
11
- sgis/geopandas_tools/duplicates.py,sha256=p9OCYWtwkWE7i-kZX_dRqAiczsUoWEWl5I8GeYIjQOM,14968
11
+ sgis/geopandas_tools/duplicates.py,sha256=aZaKLQedT9vP5SNRGcaIP_BqDSdD4nYS5S_v5jlWgeg,15072
12
12
  sgis/geopandas_tools/general.py,sha256=UPtmgEMhTZw-qMiCCjeTtyBlJWoVE96SSanufPK8MLs,39976
13
13
  sgis/geopandas_tools/geocoding.py,sha256=n47aFQMm4yX1MsPnTM4dFjwegCA1ZmGUDj1uyu7OJV4,691
14
14
  sgis/geopandas_tools/geometry_types.py,sha256=ijQDbQaZPqPGjBl707H4yooNXpk21RXyatI7itnvqLk,7603
15
15
  sgis/geopandas_tools/neighbors.py,sha256=vduQlHeoZjHyD5pxDbjfonQ3-LAHGfPETxV7-L6Sg4M,16634
16
- sgis/geopandas_tools/overlay.py,sha256=pMQK86t0ixKErHQsP0HC8RXHUXNxDCNdH6FK1MEJamM,25779
16
+ sgis/geopandas_tools/overlay.py,sha256=oglGB9P1nXxYcsJ8VjAiEMCvIoEo0OlyUpcH1vBAuBU,26142
17
17
  sgis/geopandas_tools/point_operations.py,sha256=JM4hvfIVxZaZdGNlGzcCurrKzkgC_b9hzbFYN42f9WY,6972
18
18
  sgis/geopandas_tools/polygon_operations.py,sha256=1XiwQHYPbd3Xj3B68YamzyT_2kdiJrrwIku4JjVa2ks,50066
19
19
  sgis/geopandas_tools/polygons_as_rings.py,sha256=BX_GZS6F9I4NbEpiOlNBd7zywJjdfdJVi_MkeONBuiM,14941
@@ -30,7 +30,7 @@ sgis/maps/explore.py,sha256=0QDPaj5YU2Jps5iujuHu-vk_R9mFh_aOhbN1eU-fxcI,47898
30
30
  sgis/maps/httpserver.py,sha256=eCDoB9x74kSLiGEj2X3O91t3oscY_ia17UNuaaJ6tCc,2472
31
31
  sgis/maps/legend.py,sha256=lVRVCkhPmJRjGK23obFJZAO3qp6du1LYnobkkN7DPkc,26279
32
32
  sgis/maps/map.py,sha256=lwQUJvK3I9dPNSxPeRty9ICodz_GXQBN1OHhghI7IsE,30439
33
- sgis/maps/maps.py,sha256=gxu0rgcVygjudRtM1dVRmsUMilMUIg3vG-UgvASM91E,23072
33
+ sgis/maps/maps.py,sha256=csPXJa9R7zwlDJ0lz8qW91l0uRxjo1m2smoU8IPtgLA,23091
34
34
  sgis/maps/norge_i_bilder.json,sha256=W_mFfte3DxugWbEudZ5fadZ2JeFYb0hyab2Quf4oJME,481311
35
35
  sgis/maps/thematicmap.py,sha256=w6q4_gIr8BubQgsPJkc6WXk-tmplDLGcKyjphhFp7ng,21873
36
36
  sgis/maps/tilesources.py,sha256=F4mFHxPwkiPJdVKzNkScTX6xbJAMIUtlTq4mQ83oguw,1746
@@ -59,7 +59,7 @@ sgis/raster/indices.py,sha256=-J1HYmnT240iozvgagvyis6K0_GHZHRuUrPOgyoeIrY,223
59
59
  sgis/raster/regex.py,sha256=kYhVpRYzoXutx1dSYmqMoselWXww7MMEsTPmLZwHjbM,3759
60
60
  sgis/raster/sentinel_config.py,sha256=nySDqn2R8M6W8jguoBeSAK_zzbAsqmaI59i32446FwY,1268
61
61
  sgis/raster/zonal.py,sha256=D4Gyptw-yOLTCO41peIuYbY-DANsJCG19xXDlf1QAz4,2299
62
- ssb_sgis-1.1.15.dist-info/LICENSE,sha256=np3IfD5m0ZUofn_kVzDZqliozuiO6wrktw3LRPjyEiI,1073
63
- ssb_sgis-1.1.15.dist-info/METADATA,sha256=8cxb6fu1hpdI0vYDRV8GsJ5nLw6HH0Q6yuZZTCwL23M,11741
64
- ssb_sgis-1.1.15.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
65
- ssb_sgis-1.1.15.dist-info/RECORD,,
62
+ ssb_sgis-1.1.17.dist-info/LICENSE,sha256=np3IfD5m0ZUofn_kVzDZqliozuiO6wrktw3LRPjyEiI,1073
63
+ ssb_sgis-1.1.17.dist-info/METADATA,sha256=IJMLCbllCgEFZwxI9MzcifHj-m8Mx4K5kUeODzDOtkk,11741
64
+ ssb_sgis-1.1.17.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
65
+ ssb_sgis-1.1.17.dist-info/RECORD,,