ssb-sgis 1.2.17__tar.gz → 1.3.1__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.
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/PKG-INFO +1 -1
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/pyproject.toml +1 -1
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/general.py +5 -1
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/io/dapla_functions.py +5 -5
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/norge_i_bilder.json +9518 -656
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/wms.py +121 -74
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/LICENSE +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/README.md +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/__init__.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/conf.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/debug_config.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/exceptions.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/__init__.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/bounds.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/buffer_dissolve_explode.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/centerlines.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/cleaning.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/conversion.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/duplicates.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/geocoding.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/geometry_types.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/neighbors.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/overlay.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/point_operations.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/polygon_operations.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/polygons_as_rings.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/runners.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/sfilter.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/geopandas_tools/utils.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/helpers.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/io/__init__.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/io/_is_dapla.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/io/opener.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/io/read_parquet.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/__init__.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/examine.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/explore.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/httpserver.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/legend.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/map.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/maps.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/thematicmap.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/maps/tilesources.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/__init__.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/_get_route.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/_od_cost_matrix.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/_points.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/_service_area.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/closing_network_holes.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/cutting_lines.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/directednetwork.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/finding_isolated_networks.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/network.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/networkanalysis.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/networkanalysisrules.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/nodes.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/networkanalysis/traveling_salesman.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/parallel/__init__.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/parallel/parallel.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/py.typed +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/raster/__init__.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/raster/base.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/raster/image_collection.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/raster/indices.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/raster/regex.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/raster/sentinel_config.py +0 -0
- {ssb_sgis-1.2.17 → ssb_sgis-1.3.1}/src/sgis/raster/zonal.py +0 -0
|
@@ -21,6 +21,7 @@ from shapely import get_coordinates
|
|
|
21
21
|
from shapely import get_parts
|
|
22
22
|
from shapely import linestrings
|
|
23
23
|
from shapely import make_valid
|
|
24
|
+
from shapely.errors import GEOSException
|
|
24
25
|
from shapely.geometry import LineString
|
|
25
26
|
from shapely.geometry import MultiPoint
|
|
26
27
|
from shapely.geometry import Point
|
|
@@ -211,7 +212,10 @@ def clean_geoms(
|
|
|
211
212
|
if isinstance(gdf, GeoDataFrame):
|
|
212
213
|
# only repair if necessary
|
|
213
214
|
if not gdf.geometry.is_valid.all():
|
|
214
|
-
|
|
215
|
+
try:
|
|
216
|
+
gdf.geometry = gdf.make_valid()
|
|
217
|
+
except GEOSException as e:
|
|
218
|
+
raise type(e)(f"{e}: {gdf.geometry}") from e
|
|
215
219
|
|
|
216
220
|
notna = gdf.geometry.notna()
|
|
217
221
|
if not notna.all():
|
|
@@ -464,7 +464,7 @@ def write_geopandas(
|
|
|
464
464
|
)
|
|
465
465
|
|
|
466
466
|
if not len(df) and get_child_paths(gcs_path, file_system):
|
|
467
|
-
# no need to write empty df for partitioned parquet
|
|
467
|
+
# no need to write empty df for partitioned parquet - if root dir exists
|
|
468
468
|
return
|
|
469
469
|
elif not len(df):
|
|
470
470
|
if pandas_fallback:
|
|
@@ -586,9 +586,6 @@ def _write_partitioned_geoparquet(
|
|
|
586
586
|
):
|
|
587
587
|
file_system = _get_file_system(file_system, kwargs)
|
|
588
588
|
|
|
589
|
-
if basename_template is None:
|
|
590
|
-
basename_template = uuid.uuid4().hex + "-{i}.parquet"
|
|
591
|
-
|
|
592
589
|
if isinstance(partition_cols, str):
|
|
593
590
|
partition_cols = [partition_cols]
|
|
594
591
|
|
|
@@ -623,7 +620,10 @@ def _write_partitioned_geoparquet(
|
|
|
623
620
|
dfs.append(rows)
|
|
624
621
|
|
|
625
622
|
def threaded_write(rows: DataFrame, path: str) -> None:
|
|
626
|
-
|
|
623
|
+
if basename_template is None:
|
|
624
|
+
this_basename = (uuid.uuid4().hex + "-{i}.parquet").replace("-{i}", "0")
|
|
625
|
+
else:
|
|
626
|
+
this_basename = basename_template.replace("-{i}", "0")
|
|
627
627
|
for i, sibling_path in enumerate(sorted(glob_func(str(Path(path) / "**")))):
|
|
628
628
|
if paths_are_equal(sibling_path, path):
|
|
629
629
|
continue
|