ssb-sgis 1.0.3__py3-none-any.whl → 1.0.4__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.
- sgis/__init__.py +10 -3
- sgis/debug_config.py +24 -0
- sgis/geopandas_tools/bounds.py +16 -21
- sgis/geopandas_tools/buffer_dissolve_explode.py +112 -30
- sgis/geopandas_tools/centerlines.py +4 -91
- sgis/geopandas_tools/cleaning.py +1576 -583
- sgis/geopandas_tools/conversion.py +24 -14
- sgis/geopandas_tools/duplicates.py +27 -6
- sgis/geopandas_tools/general.py +259 -100
- sgis/geopandas_tools/geometry_types.py +1 -1
- sgis/geopandas_tools/neighbors.py +16 -12
- sgis/geopandas_tools/overlay.py +2 -2
- sgis/geopandas_tools/point_operations.py +3 -3
- sgis/geopandas_tools/polygon_operations.py +505 -100
- sgis/geopandas_tools/polygons_as_rings.py +40 -8
- sgis/geopandas_tools/sfilter.py +26 -9
- sgis/io/dapla_functions.py +238 -19
- sgis/maps/examine.py +11 -10
- sgis/maps/explore.py +227 -155
- sgis/maps/legend.py +13 -4
- sgis/maps/map.py +22 -13
- sgis/maps/maps.py +100 -29
- sgis/maps/thematicmap.py +25 -18
- sgis/networkanalysis/_service_area.py +6 -1
- sgis/networkanalysis/cutting_lines.py +12 -5
- sgis/networkanalysis/finding_isolated_networks.py +13 -6
- sgis/networkanalysis/networkanalysis.py +10 -12
- sgis/parallel/parallel.py +27 -10
- sgis/raster/base.py +208 -0
- sgis/raster/cube.py +3 -3
- sgis/raster/image_collection.py +1419 -722
- sgis/raster/indices.py +10 -7
- sgis/raster/raster.py +7 -7
- sgis/raster/sentinel_config.py +33 -17
- {ssb_sgis-1.0.3.dist-info → ssb_sgis-1.0.4.dist-info}/METADATA +6 -7
- ssb_sgis-1.0.4.dist-info/RECORD +62 -0
- ssb_sgis-1.0.3.dist-info/RECORD +0 -61
- {ssb_sgis-1.0.3.dist-info → ssb_sgis-1.0.4.dist-info}/LICENSE +0 -0
- {ssb_sgis-1.0.3.dist-info → ssb_sgis-1.0.4.dist-info}/WHEEL +0 -0
sgis/raster/indices.py
CHANGED
|
@@ -8,13 +8,16 @@ from .raster import Raster
|
|
|
8
8
|
|
|
9
9
|
def ndvi(red: np.ndarray, nir: np.ndarray) -> np.ndarray:
|
|
10
10
|
# normalize red and nir arrays to 0-1 scale if needed
|
|
11
|
-
if red.max() > 1 and nir.max() > 1:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
elif red.max() > 1 or nir.max() > 1:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
# if red.max() > 1 and nir.max() > 1:
|
|
12
|
+
# red = red / 255
|
|
13
|
+
# nir = nir / 255
|
|
14
|
+
# elif red.max() > 1 or nir.max() > 1:
|
|
15
|
+
# raise ValueError()
|
|
16
|
+
red = red / 255
|
|
17
|
+
nir = nir / 255
|
|
18
|
+
|
|
19
|
+
ndvi_values = (nir - red) / (nir + red)
|
|
20
|
+
ndvi_values[(red + nir) == 0] = 0
|
|
18
21
|
|
|
19
22
|
return ndvi_values
|
|
20
23
|
|
sgis/raster/raster.py
CHANGED
|
@@ -135,7 +135,7 @@ class Raster:
|
|
|
135
135
|
|
|
136
136
|
The image can also be clipped by a mask while loading.
|
|
137
137
|
|
|
138
|
-
>>> small_circle = raster_as_polygons.
|
|
138
|
+
>>> small_circle = raster_as_polygons.union_all().centroid.buffer(50)
|
|
139
139
|
>>> raster = sg.Raster.from_path(path).clip(small_circle)
|
|
140
140
|
Raster(shape=(1, 10, 10), res=10, crs=ETRS89 / UTM zone 33N (N-E), path=https://media.githubusercontent.com/media/statisticsnorway/ssb-sgis/main/tests/testdata/raster/dtm_10.tif)
|
|
141
141
|
|
|
@@ -535,16 +535,16 @@ class Raster:
|
|
|
535
535
|
|
|
536
536
|
def intersects(self, other: Any) -> bool:
|
|
537
537
|
"""Returns True if the image bounds intersect with 'other'."""
|
|
538
|
-
return self.
|
|
538
|
+
return self.union_all().intersects(to_shapely(other))
|
|
539
539
|
|
|
540
540
|
def sample(
|
|
541
541
|
self, n: int = 1, size: int = 20, mask: Any = None, copy: bool = True, **kwargs
|
|
542
542
|
) -> Self:
|
|
543
543
|
"""Take a random spatial sample of the image."""
|
|
544
544
|
if mask is not None:
|
|
545
|
-
points = GeoSeries(self.
|
|
545
|
+
points = GeoSeries(self.union_all()).clip(mask).sample_points(n)
|
|
546
546
|
else:
|
|
547
|
-
points = GeoSeries(self.
|
|
547
|
+
points = GeoSeries(self.union_all()).sample_points(n)
|
|
548
548
|
buffered = points.buffer(size / self.res)
|
|
549
549
|
boxes = to_gdf(
|
|
550
550
|
[shapely.box(*arr) for arr in buffered.bounds.values], crs=self.crs
|
|
@@ -1026,12 +1026,12 @@ class Raster:
|
|
|
1026
1026
|
@property
|
|
1027
1027
|
def area(self) -> float:
|
|
1028
1028
|
"""Get the area of the image."""
|
|
1029
|
-
return shapely.area(self.
|
|
1029
|
+
return shapely.area(self.union_all())
|
|
1030
1030
|
|
|
1031
1031
|
@property
|
|
1032
1032
|
def length(self) -> float:
|
|
1033
1033
|
"""Get the circumfence of the image."""
|
|
1034
|
-
return shapely.length(self.
|
|
1034
|
+
return shapely.length(self.union_all())
|
|
1035
1035
|
|
|
1036
1036
|
@property
|
|
1037
1037
|
def unary_union(self) -> Polygon:
|
|
@@ -1078,7 +1078,7 @@ class Raster:
|
|
|
1078
1078
|
"""Check if the Raster is equal to another Raster."""
|
|
1079
1079
|
if not isinstance(other, Raster):
|
|
1080
1080
|
raise NotImplementedError("other must be of type Raster")
|
|
1081
|
-
if type(other)
|
|
1081
|
+
if type(other) is not type(self):
|
|
1082
1082
|
return False
|
|
1083
1083
|
if self.values is None and other.values is not None:
|
|
1084
1084
|
return False
|
sgis/raster/sentinel_config.py
CHANGED
|
@@ -1,28 +1,18 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
1
3
|
SENTINEL2_FILENAME_REGEX = r"""
|
|
2
4
|
^(?P<tile>T\d{2}[A-Z]{3})
|
|
3
5
|
_(?P<date>\d{8})T\d{6}
|
|
4
|
-
# _(?P<date>\d{8}T\d{6})
|
|
5
6
|
_(?P<band>B[018][\dA])
|
|
6
7
|
(?:_(?P<resolution>\d+)m)?
|
|
7
8
|
.*
|
|
8
9
|
\..*$
|
|
9
10
|
"""
|
|
10
11
|
|
|
11
|
-
SENTINEL2_MOSAIC_FILENAME_REGEX = r"""
|
|
12
|
-
^SENTINEL2X_
|
|
13
|
-
(?P<date>\d{8})
|
|
14
|
-
.*T(?P<tile>\d{2}[A-Z]{3})
|
|
15
|
-
.*(?:_(?P<resolution>{}m))?
|
|
16
|
-
.*(?P<band>B\d{1,2}A|B\d{1,2})
|
|
17
|
-
.*
|
|
18
|
-
.*\..*$
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
12
|
|
|
22
13
|
SENTINEL2_CLOUD_FILENAME_REGEX = r"""
|
|
23
14
|
^(?P<tile>T\d{2}[A-Z]{3})
|
|
24
15
|
_(?P<date>\d{8})T\d{6}
|
|
25
|
-
# _(?P<date>\d{8}T\d{6})
|
|
26
16
|
_(?P<band>SCL)
|
|
27
17
|
(?:_(?P<resolution>\d+)m)?
|
|
28
18
|
.*
|
|
@@ -33,7 +23,6 @@ SENTINEL2_IMAGE_REGEX = r"""
|
|
|
33
23
|
^(?P<mission_id>S2[AB])
|
|
34
24
|
_MSI(?P<level>[A-Z]\d{1}[A-Z])
|
|
35
25
|
_(?P<date>\d{8})T\d{6}
|
|
36
|
-
# _(?P<date>\d{8}T\d{6})
|
|
37
26
|
_(?P<baseline>N\d{4})
|
|
38
27
|
_(?P<orbit>R\d{3})
|
|
39
28
|
_(?P<tile>T\d{2}[A-Z]{3})
|
|
@@ -42,28 +31,55 @@ SENTINEL2_IMAGE_REGEX = r"""
|
|
|
42
31
|
.*$
|
|
43
32
|
"""
|
|
44
33
|
|
|
34
|
+
SENTINEL2_MOSAIC_FILENAME_REGEX = r"""
|
|
35
|
+
^SENTINEL2X_
|
|
36
|
+
(?P<date>\d{8})
|
|
37
|
+
.*?
|
|
38
|
+
(?P<tile>T\d{2}[A-Z]{3})
|
|
39
|
+
.*?
|
|
40
|
+
_(?P<band>B\d{1,2}A?)_
|
|
41
|
+
.*?
|
|
42
|
+
(?:_(?P<resolution>\d+m))?
|
|
43
|
+
.*?\.tif$
|
|
44
|
+
"""
|
|
45
|
+
|
|
45
46
|
SENTINEL2_MOSAIC_IMAGE_REGEX = r"""
|
|
46
47
|
^SENTINEL2X_
|
|
47
48
|
(?P<date>\d{8})
|
|
48
49
|
-\d{6}
|
|
49
50
|
-\d{3}
|
|
50
51
|
_(?P<level>[A-Z]\d{1}[A-Z])
|
|
51
|
-
.*
|
|
52
|
+
.*(?P<tile>T\d{2}[A-Z]{3})
|
|
52
53
|
.*.*$
|
|
53
54
|
"""
|
|
54
55
|
|
|
56
|
+
|
|
55
57
|
# multiple regex searches because there are different xml files with same info, but different naming
|
|
56
58
|
CLOUD_COVERAGE_REGEXES: tuple[str] = (
|
|
57
59
|
r"<Cloud_Coverage_Assessment>([\d.]+)</Cloud_Coverage_Assessment>",
|
|
58
60
|
r"<CLOUDY_PIXEL_OVER_LAND_PERCENTAGE>([\d.]+)</CLOUDY_PIXEL_OVER_LAND_PERCENTAGE>",
|
|
59
61
|
)
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
CRS_REGEXES: tuple[str] = (r"<HORIZONTAL_CS_CODE>EPSG:(\d+)</HORIZONTAL_CS_CODE>",)
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
BOUNDS_REGEXES: tuple[dict[str, str]] = (
|
|
64
66
|
{"minx": r"<ULX>(\d+)</ULX>", "maxy": r"<ULY>(\d+)</ULY>"},
|
|
65
67
|
)
|
|
66
|
-
|
|
68
|
+
BOUNDS_REGEXES: tuple[re.Pattern] = (
|
|
69
|
+
re.compile(r"<ULX>(?P<minx>\d+)</ULX>"),
|
|
70
|
+
re.compile(r"<ULY>(?P<maxy>\d+)</ULY>"),
|
|
71
|
+
# )
|
|
72
|
+
# SHAPE_PATTERNS: tuple[re.Pattern] = (
|
|
73
|
+
re.compile(
|
|
74
|
+
r'<Size resolution="(?P<resolution>\d+)">\s*<NROWS>(?P<nrows>\d+)</NROWS>\s*<NCOLS>(?P<ncols>\d+)</NCOLS>\s*</Size>'
|
|
75
|
+
),
|
|
76
|
+
re.compile(
|
|
77
|
+
r"<Cloud_Coverage_Assessment>(?P<cloud_coverage_percentage>[\d.]+)</Cloud_Coverage_Assessment>"
|
|
78
|
+
),
|
|
79
|
+
re.compile(
|
|
80
|
+
r"<CLOUDY_PIXEL_OVER_LAND_PERCENTAGE>(?P<cloud_coverage_percentage>[\d.]+)</CLOUDY_PIXEL_OVER_LAND_PERCENTAGE>"
|
|
81
|
+
),
|
|
82
|
+
)
|
|
67
83
|
|
|
68
84
|
SENTINEL2_L2A_BANDS = {
|
|
69
85
|
"B01": 60,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ssb-sgis
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: GIS functions used at Statistics Norway.
|
|
5
5
|
Home-page: https://github.com/statisticsnorway/ssb-sgis
|
|
6
6
|
License: MIT
|
|
@@ -21,12 +21,10 @@ Provides-Extra: torch
|
|
|
21
21
|
Provides-Extra: xarray
|
|
22
22
|
Requires-Dist: affine (>=2.4.0)
|
|
23
23
|
Requires-Dist: branca (>=0.6.0)
|
|
24
|
-
Requires-Dist: dapla-toolbelt (>=
|
|
25
|
-
Requires-Dist: dask (>=2024.1.1)
|
|
26
|
-
Requires-Dist: dask-geopandas (>=0.3.0)
|
|
24
|
+
Requires-Dist: dapla-toolbelt (>=3.0.1) ; extra == "all" or extra == "bucket"
|
|
25
|
+
Requires-Dist: dask (>=2024.1.1) ; extra == "all" or extra == "test"
|
|
27
26
|
Requires-Dist: folium (>=0.14.0)
|
|
28
27
|
Requires-Dist: gcsfs (>=2024.3.1) ; extra == "all" or extra == "bucket"
|
|
29
|
-
Requires-Dist: geocoder (>=1.38.1)
|
|
30
28
|
Requires-Dist: geopandas (>=0.14.0)
|
|
31
29
|
Requires-Dist: igraph (>=0.11.2)
|
|
32
30
|
Requires-Dist: ipython (>=8.13.2)
|
|
@@ -36,7 +34,8 @@ Requires-Dist: joblib (>=1.4.0)
|
|
|
36
34
|
Requires-Dist: mapclassify (>=2.5.0)
|
|
37
35
|
Requires-Dist: matplotlib (>=3.7.0)
|
|
38
36
|
Requires-Dist: networkx (>=3.0)
|
|
39
|
-
Requires-Dist:
|
|
37
|
+
Requires-Dist: numba (>=0.60.0)
|
|
38
|
+
Requires-Dist: numpy (>=1.26.4)
|
|
40
39
|
Requires-Dist: pandas (>=2.2.1)
|
|
41
40
|
Requires-Dist: pyarrow (>=11.0.0)
|
|
42
41
|
Requires-Dist: pyproj (>=3.6.1)
|
|
@@ -46,7 +45,7 @@ Requires-Dist: rioxarray (>=0.15.5) ; extra == "all" or extra == "xarray" or ext
|
|
|
46
45
|
Requires-Dist: rtree (>=1.0.1)
|
|
47
46
|
Requires-Dist: scikit-learn (>=1.2.1)
|
|
48
47
|
Requires-Dist: shapely (>=2.0.1)
|
|
49
|
-
Requires-Dist: torch (
|
|
48
|
+
Requires-Dist: torch (>=2.4.0) ; extra == "all" or extra == "torch" or extra == "test"
|
|
50
49
|
Requires-Dist: torchgeo (>=0.5.2) ; extra == "all" or extra == "torch" or extra == "test"
|
|
51
50
|
Requires-Dist: typing-extensions (>=4.11.0)
|
|
52
51
|
Requires-Dist: xarray (>=2024.3.0) ; extra == "all" or extra == "xarray" or extra == "test"
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
sgis/__init__.py,sha256=wuANmvvdEus5xumwqVXC1xUUDajThjYuS5jBwfPYCeI,7266
|
|
2
|
+
sgis/debug_config.py,sha256=hIJEz3cIDjoxrtRMuVcNQSXZHCRTbh63Tri4IR7iVFM,545
|
|
3
|
+
sgis/exceptions.py,sha256=WNaEBPNNx0rmz-YDzlFX4vIE7ocJQruUTqS2RNAu2zU,660
|
|
4
|
+
sgis/geopandas_tools/__init__.py,sha256=bo8lFMcltOz7TtWAi52_ekR2gd3mjfBfKeMDV5zuqFY,28
|
|
5
|
+
sgis/geopandas_tools/bounds.py,sha256=iIIqacQafn4XrWDaJtaffLrW72z3ce_-YYwdTtWmA8E,23673
|
|
6
|
+
sgis/geopandas_tools/buffer_dissolve_explode.py,sha256=_0XgfC4DSUEKF4sbGr2KpMSngCrPrZt_d7siy0vILLU,21083
|
|
7
|
+
sgis/geopandas_tools/centerlines.py,sha256=Q65Sx01SeAlulBEd9oaZkB2maBBNdLcJwAbTILg4SPU,11848
|
|
8
|
+
sgis/geopandas_tools/cleaning.py,sha256=I3tpn5uzsLjRYi-TybUe3QuNns0CseuxkfBSmSMer0I,60208
|
|
9
|
+
sgis/geopandas_tools/conversion.py,sha256=TkfSu-DRHicH8LSR7ygMN84ggxP_zzmFk54iLNv1ftg,24660
|
|
10
|
+
sgis/geopandas_tools/duplicates.py,sha256=LG8-BG8LdA2zjWauuloslIZHvMGND6Fja0MtXIPZ1wo,14301
|
|
11
|
+
sgis/geopandas_tools/general.py,sha256=5ZD7CXGIvJmWDN-V-RlG0K_mWiT6iVNvP_UL8cufk2A,31651
|
|
12
|
+
sgis/geopandas_tools/geocoding.py,sha256=n47aFQMm4yX1MsPnTM4dFjwegCA1ZmGUDj1uyu7OJV4,691
|
|
13
|
+
sgis/geopandas_tools/geometry_types.py,sha256=hSlN8n4pJZPkEfOdKL1DRux757kl81DciIH7ZXiHEdE,7587
|
|
14
|
+
sgis/geopandas_tools/neighbors.py,sha256=vduQlHeoZjHyD5pxDbjfonQ3-LAHGfPETxV7-L6Sg4M,16634
|
|
15
|
+
sgis/geopandas_tools/overlay.py,sha256=IADAh-U9EUgDLSsyYcblL3Qbjxi89xRHtP20KdhlYaA,25543
|
|
16
|
+
sgis/geopandas_tools/point_operations.py,sha256=JM4hvfIVxZaZdGNlGzcCurrKzkgC_b9hzbFYN42f9WY,6972
|
|
17
|
+
sgis/geopandas_tools/polygon_operations.py,sha256=FJ-dXCxLHRsmp0oXsmBOFRprFFwmhrxqOPZkW2WWWQM,50088
|
|
18
|
+
sgis/geopandas_tools/polygons_as_rings.py,sha256=BX_GZS6F9I4NbEpiOlNBd7zywJjdfdJVi_MkeONBuiM,14941
|
|
19
|
+
sgis/geopandas_tools/sfilter.py,sha256=SLcMYprQwnY5DNo0R7TGXk4m6u26H8o4PRn-RPhmeZY,9345
|
|
20
|
+
sgis/helpers.py,sha256=dscvGAbZyyncZbTL9qdsAHN6tb_T7SbNH7vM4ZrTeJw,8326
|
|
21
|
+
sgis/io/_is_dapla.py,sha256=o_qFD5GOi3dsSGOKmW6R8wZU0htVwFgRbGX7ppJCqT4,431
|
|
22
|
+
sgis/io/dapla_functions.py,sha256=Y69aSjnw6rOpH8yIquNor-JoTXcUfjbx2FcduT72-1A,17654
|
|
23
|
+
sgis/io/opener.py,sha256=BHyH7L8Ubh9C4Lsb8eBzGI6FLWg8UQFu-1bg3NEy_2k,862
|
|
24
|
+
sgis/io/read_parquet.py,sha256=FvZYv1rLkUlrSaUY6QW6E1yntmntTeQuZ9ZRgCDO4IM,3776
|
|
25
|
+
sgis/maps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
+
sgis/maps/examine.py,sha256=Pb0dH8JazU5E2svfQrzHO1Bi-sjy5SeyY6zoeMO34jE,9369
|
|
27
|
+
sgis/maps/explore.py,sha256=K-iJ07v_srUB_Z6hTuSRSKqgljKewY9A_j14bSrs0Yg,45916
|
|
28
|
+
sgis/maps/httpserver.py,sha256=7Od9JMCtntcIQKk_TchetojMHzFHT9sPw7GANahI97c,1982
|
|
29
|
+
sgis/maps/legend.py,sha256=1ZOhzftq1HRKlHphhfqUm82U-Kjx_xkACieLRevxke8,26232
|
|
30
|
+
sgis/maps/map.py,sha256=LHXFl_f5OWcPesKvwr-4L91Hd0VFFXNSGMQXaqmszMg,29276
|
|
31
|
+
sgis/maps/maps.py,sha256=GgvxwRY0Sz2e432Emj6i8hAp6sFduKt9VhsWw9HgKI4,23147
|
|
32
|
+
sgis/maps/thematicmap.py,sha256=bFlZy2xSKmEOHhvM0d1pv8O9JuNjR3P_9colTJnduvE,20729
|
|
33
|
+
sgis/maps/tilesources.py,sha256=aSci-0JURxnqqirIXQS5bHfNEIg3xfCM_B4gXs7GslM,2772
|
|
34
|
+
sgis/networkanalysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
+
sgis/networkanalysis/_get_route.py,sha256=9I3t9pnccUPr4mozy3TJCOpGCCf3UOIojmsbifubZbA,6368
|
|
36
|
+
sgis/networkanalysis/_od_cost_matrix.py,sha256=zkyPX7ObT996ahaFJ2oI0D0SqQWbWyfy_qLtXwValPg,3434
|
|
37
|
+
sgis/networkanalysis/_points.py,sha256=ajCy17dAmRq3bWRkNu_0LHreCVJ5Uh8DzAKWxyw7ipw,4481
|
|
38
|
+
sgis/networkanalysis/_service_area.py,sha256=jE0X54yS4eMfZYJXeKe_NgMKPDpau-05xWZaxDi_c6Y,5546
|
|
39
|
+
sgis/networkanalysis/closing_network_holes.py,sha256=EyhsLnjD6omTVgH9HIznukIX-vIOTtkv8_pwUnR6Pvk,12095
|
|
40
|
+
sgis/networkanalysis/cutting_lines.py,sha256=Uo6sGdC1xhkWwO69wgQYgGdT1JS6ZfZzHm8JrM1GmZM,15420
|
|
41
|
+
sgis/networkanalysis/directednetwork.py,sha256=Mrc2zHip4P5RNxnyffKm-xU832AVQeSHz-YZueAc0pM,11413
|
|
42
|
+
sgis/networkanalysis/finding_isolated_networks.py,sha256=s7knwQJeNqU6wJ9gIwwYnSAwGyKH98zZ2NroxZnTQxI,3637
|
|
43
|
+
sgis/networkanalysis/network.py,sha256=zV9bAbVdTgTohg2o2RFGy2uhOJrd3Ma57hwIAStxMAQ,7847
|
|
44
|
+
sgis/networkanalysis/networkanalysis.py,sha256=-g7slZLFNxUZSUMvVmf7zax-9IOXz1NGCtR6LcsBzBQ,68476
|
|
45
|
+
sgis/networkanalysis/networkanalysisrules.py,sha256=9sXigaCzvKhXFwpeVNMtOiIK3_Hzp9yDpFklmEEAPak,12956
|
|
46
|
+
sgis/networkanalysis/nodes.py,sha256=Yo0oWlsZO0Ex2_7lzGGUEiS2Ltfnm5kuCl5MkE2qJhA,6863
|
|
47
|
+
sgis/networkanalysis/traveling_salesman.py,sha256=Jjo6bHY4KJ-eK0LycyTy0sWxZjgITs5MBllZ_G9FhTE,5655
|
|
48
|
+
sgis/parallel/parallel.py,sha256=4Juv3oepguP4XryrgfbX-ipbYunKmbxvzM0jj8kYpCE,37296
|
|
49
|
+
sgis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
sgis/raster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
sgis/raster/base.py,sha256=8J6y9k-YuCAUpE83yTkg26RF2YCp9aieVvWrPi_GfUc,7697
|
|
52
|
+
sgis/raster/cube.py,sha256=P9baGN03Mwdi_LJ5a3F9_PROVYGCbjopQSxwQnr1LvE,41764
|
|
53
|
+
sgis/raster/cubebase.py,sha256=nao5huLer-nzy792PTZc0CKAMlmedZCe3siWnOf7Duw,639
|
|
54
|
+
sgis/raster/image_collection.py,sha256=ZLjoBIvSSLfKhgEm1GstbLsDPLhIUGPEbdE0GkngrtM,106271
|
|
55
|
+
sgis/raster/indices.py,sha256=bb0ItG8ePoFsrc5-XSupnMzJ6EwoALGh-lscM81Gpfo,3010
|
|
56
|
+
sgis/raster/raster.py,sha256=I8Af6gRIexvrNWTGBfZX6WC0Eug07Vykam4EaP1ZUws,50576
|
|
57
|
+
sgis/raster/sentinel_config.py,sha256=zcw24T9RBqix85QGK35LAYWuEkHJEwMcDRcnApRpLHs,3019
|
|
58
|
+
sgis/raster/zonal.py,sha256=st2mWiUcdxeEiHBOZSgFOnVcP6pc4EMPJBPw537Z4V8,3837
|
|
59
|
+
ssb_sgis-1.0.4.dist-info/LICENSE,sha256=np3IfD5m0ZUofn_kVzDZqliozuiO6wrktw3LRPjyEiI,1073
|
|
60
|
+
ssb_sgis-1.0.4.dist-info/METADATA,sha256=rtQ7B_Zrir7NlamabCImSEhhzSm_nMTbr4eqZhyWXHE,11772
|
|
61
|
+
ssb_sgis-1.0.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
62
|
+
ssb_sgis-1.0.4.dist-info/RECORD,,
|
ssb_sgis-1.0.3.dist-info/RECORD
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
sgis/__init__.py,sha256=QwGvKuOVhblqA7Vqy6haMJKl7Yjkbmzb8UnTaIY6pcU,6964
|
|
2
|
-
sgis/exceptions.py,sha256=WNaEBPNNx0rmz-YDzlFX4vIE7ocJQruUTqS2RNAu2zU,660
|
|
3
|
-
sgis/geopandas_tools/__init__.py,sha256=bo8lFMcltOz7TtWAi52_ekR2gd3mjfBfKeMDV5zuqFY,28
|
|
4
|
-
sgis/geopandas_tools/bounds.py,sha256=F1w0V50iMYoBkFmDqyZsOsls2KMeM5DbYWdtEoNkqLI,23975
|
|
5
|
-
sgis/geopandas_tools/buffer_dissolve_explode.py,sha256=w2xApXs8sZoZ9U2FF_4kpQJYZWrgBQ20O2Cw7dXEIFg,18814
|
|
6
|
-
sgis/geopandas_tools/centerlines.py,sha256=qTLUWOAgLT_E7ow4cZjWgwgH2BqaEh-hSQivXQbxWcc,14435
|
|
7
|
-
sgis/geopandas_tools/cleaning.py,sha256=w0puDL7RfIZwWy_wRxXkgfYTHQKZVBxKvAhbjsnAqSY,23772
|
|
8
|
-
sgis/geopandas_tools/conversion.py,sha256=stfaJwRsatF_kyC43NExBSh6h8ChDoM4M7DUc8PIolM,24248
|
|
9
|
-
sgis/geopandas_tools/duplicates.py,sha256=tOepI3dC2fc2N7jJjIESmpgTJtIGGKwTaZwHF1zESFg,13599
|
|
10
|
-
sgis/geopandas_tools/general.py,sha256=ibIaHI6gB3g5ur7FEBKIB-aSv9IbJJ9nO6Fd8d8-vkU,25987
|
|
11
|
-
sgis/geopandas_tools/geocoding.py,sha256=n47aFQMm4yX1MsPnTM4dFjwegCA1ZmGUDj1uyu7OJV4,691
|
|
12
|
-
sgis/geopandas_tools/geometry_types.py,sha256=8iN6bvLOvT8yxfq85hlYBk6OAgTE-sy7N75ZpqjSYKI,7589
|
|
13
|
-
sgis/geopandas_tools/neighbors.py,sha256=6nzuD2A2-Zb8eTlSk1MMt70MH2n7ue_Moa_LEATlGeo,16366
|
|
14
|
-
sgis/geopandas_tools/overlay.py,sha256=yAIpM1Yq9JBjRMhoetxiJXdwpjHF_q4tkYNhatYJQS0,25509
|
|
15
|
-
sgis/geopandas_tools/point_operations.py,sha256=6bzJNJREJFrAVoS8IyjYVOhyjqCakCoBo17v_CDC6sc,6961
|
|
16
|
-
sgis/geopandas_tools/polygon_operations.py,sha256=59Bg4OzbShJD6Ry2To8g_nis1RcW4T5PeS__ctX2XxU,37229
|
|
17
|
-
sgis/geopandas_tools/polygons_as_rings.py,sha256=26_TSB3dyzsPHc4h2RVzhwFVBa9qG1mw9xLGZbNKOMU,13558
|
|
18
|
-
sgis/geopandas_tools/sfilter.py,sha256=Memz45Yqyx2ZeWacYxIbUJyHYdno7v1amVLDhBJXDHo,8656
|
|
19
|
-
sgis/helpers.py,sha256=dscvGAbZyyncZbTL9qdsAHN6tb_T7SbNH7vM4ZrTeJw,8326
|
|
20
|
-
sgis/io/_is_dapla.py,sha256=o_qFD5GOi3dsSGOKmW6R8wZU0htVwFgRbGX7ppJCqT4,431
|
|
21
|
-
sgis/io/dapla_functions.py,sha256=IHB8Nhg90ui_o6IvKx-BjAS3mciruCClL-v-JQNfg4M,8807
|
|
22
|
-
sgis/io/opener.py,sha256=BHyH7L8Ubh9C4Lsb8eBzGI6FLWg8UQFu-1bg3NEy_2k,862
|
|
23
|
-
sgis/io/read_parquet.py,sha256=FvZYv1rLkUlrSaUY6QW6E1yntmntTeQuZ9ZRgCDO4IM,3776
|
|
24
|
-
sgis/maps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
sgis/maps/examine.py,sha256=En5EdNLle88_Sx3uA0VibMApHFZipezH4sMVP5cqwlc,9263
|
|
26
|
-
sgis/maps/explore.py,sha256=gWBnQCUTQtHK9rkWHErlT4_JjdKdom99i-KLh8otNKc,42853
|
|
27
|
-
sgis/maps/httpserver.py,sha256=7Od9JMCtntcIQKk_TchetojMHzFHT9sPw7GANahI97c,1982
|
|
28
|
-
sgis/maps/legend.py,sha256=pNJ2e_yzoIli69ciggvO6rl6EWf7u7aR3B9TsJokBCA,25974
|
|
29
|
-
sgis/maps/map.py,sha256=RfSoq14PxlYH4Zj6o6HXhRauSrqkrcBat-7cuuNiD1Y,28932
|
|
30
|
-
sgis/maps/maps.py,sha256=7XWm3aEQZl0k9ttMsXULnyHyTldTLlvPWCVPmU0JApo,20497
|
|
31
|
-
sgis/maps/thematicmap.py,sha256=ixogDK_AvBnX87zMtJKqOac4vfEYYl1gVC5BMah5zbs,20568
|
|
32
|
-
sgis/maps/tilesources.py,sha256=aSci-0JURxnqqirIXQS5bHfNEIg3xfCM_B4gXs7GslM,2772
|
|
33
|
-
sgis/networkanalysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
|
-
sgis/networkanalysis/_get_route.py,sha256=9I3t9pnccUPr4mozy3TJCOpGCCf3UOIojmsbifubZbA,6368
|
|
35
|
-
sgis/networkanalysis/_od_cost_matrix.py,sha256=zkyPX7ObT996ahaFJ2oI0D0SqQWbWyfy_qLtXwValPg,3434
|
|
36
|
-
sgis/networkanalysis/_points.py,sha256=ajCy17dAmRq3bWRkNu_0LHreCVJ5Uh8DzAKWxyw7ipw,4481
|
|
37
|
-
sgis/networkanalysis/_service_area.py,sha256=BzqB8X5X5CGexUwbpP379jEj-ad4mgCzFr8mOa-BsnY,5385
|
|
38
|
-
sgis/networkanalysis/closing_network_holes.py,sha256=EyhsLnjD6omTVgH9HIznukIX-vIOTtkv8_pwUnR6Pvk,12095
|
|
39
|
-
sgis/networkanalysis/cutting_lines.py,sha256=_IHopMhdRgyRKijNZttF07H6rsZoiHzlVBTRO7HJK2Q,15194
|
|
40
|
-
sgis/networkanalysis/directednetwork.py,sha256=Mrc2zHip4P5RNxnyffKm-xU832AVQeSHz-YZueAc0pM,11413
|
|
41
|
-
sgis/networkanalysis/finding_isolated_networks.py,sha256=9WGV7ABv1GE8NFxCUU08wziotjoFUV5Xf_MmTIh1wz4,3384
|
|
42
|
-
sgis/networkanalysis/network.py,sha256=zV9bAbVdTgTohg2o2RFGy2uhOJrd3Ma57hwIAStxMAQ,7847
|
|
43
|
-
sgis/networkanalysis/networkanalysis.py,sha256=hGfjLULCA6VDrabGoKv1_a_wooX4FM0v-27Bqzu6Lv4,68451
|
|
44
|
-
sgis/networkanalysis/networkanalysisrules.py,sha256=9sXigaCzvKhXFwpeVNMtOiIK3_Hzp9yDpFklmEEAPak,12956
|
|
45
|
-
sgis/networkanalysis/nodes.py,sha256=Yo0oWlsZO0Ex2_7lzGGUEiS2Ltfnm5kuCl5MkE2qJhA,6863
|
|
46
|
-
sgis/networkanalysis/traveling_salesman.py,sha256=Jjo6bHY4KJ-eK0LycyTy0sWxZjgITs5MBllZ_G9FhTE,5655
|
|
47
|
-
sgis/parallel/parallel.py,sha256=aK624cE-auJV6dOMBfueBjxiFBXIDC3O5GBGW_02HY8,36711
|
|
48
|
-
sgis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
sgis/raster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
-
sgis/raster/base.py,sha256=POu3uZJqygubLGh9t_lQJe8pNKQ9MD9wHubFHC8_nck,1192
|
|
51
|
-
sgis/raster/cube.py,sha256=-GTFS_wJciXoooz8JvqReBdNboqmJIytLeHFonXCn1A,41768
|
|
52
|
-
sgis/raster/cubebase.py,sha256=nao5huLer-nzy792PTZc0CKAMlmedZCe3siWnOf7Duw,639
|
|
53
|
-
sgis/raster/image_collection.py,sha256=yEXvnR4vDTHN_7w7gEzoEnes7k6nzBNmu6q3UBCb8K4,85395
|
|
54
|
-
sgis/raster/indices.py,sha256=AqV3m1qy_sFr6wQKmETatjO6rD68KV1m9WLzx82U4I0,2953
|
|
55
|
-
sgis/raster/raster.py,sha256=kf93A3NIymT4thBQhD5JZ7aPjdchcSfm93pXu4DESPc,50572
|
|
56
|
-
sgis/raster/sentinel_config.py,sha256=-9gL-00uRQkp9-F-PcKLSThDR4TV4hx2iRbVj3DWUaI,2483
|
|
57
|
-
sgis/raster/zonal.py,sha256=st2mWiUcdxeEiHBOZSgFOnVcP6pc4EMPJBPw537Z4V8,3837
|
|
58
|
-
ssb_sgis-1.0.3.dist-info/LICENSE,sha256=np3IfD5m0ZUofn_kVzDZqliozuiO6wrktw3LRPjyEiI,1073
|
|
59
|
-
ssb_sgis-1.0.3.dist-info/METADATA,sha256=XRHE7esl_qnQOw6XZvhlZfuF72cNaRmLVedLvDwqJDg,11780
|
|
60
|
-
ssb_sgis-1.0.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
61
|
-
ssb_sgis-1.0.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|