Big upload
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- croplands/io.py +37 -0
- croplands/polygonize.py +59 -0
- croplands/utils.py +37 -0
- examples/at_si_sk_2021_380.zarr/.zattrs +1 -0
- examples/at_si_sk_2021_380.zarr/.zgroup +3 -0
- examples/at_si_sk_2021_380.zarr/.zmetadata +154 -0
- examples/at_si_sk_2021_380.zarr/band/.zarray +20 -0
- examples/at_si_sk_2021_380.zarr/band/.zattrs +5 -0
- examples/at_si_sk_2021_380.zarr/band/0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/.zarray +26 -0
- examples/at_si_sk_2021_380.zarr/band_data/.zattrs +13 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.0.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.1.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.2.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.3.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.4.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.5.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.6.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.7.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.8.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/0.9.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.0.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.1.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.2.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.3.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.4.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.5.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.6.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.7.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.8.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/1.9.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.0.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.1.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.2.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.3.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.4.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.5.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.6.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.7.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.8.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/2.9.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.0.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.1.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.2.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.3.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.4.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.5.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.6.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.7.0.0 +0 -0
- examples/at_si_sk_2021_380.zarr/band_data/3.8.0.0 +0 -0
croplands/io.py
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import xarray as xr
|
2 |
+
from pathlib import Path
|
3 |
+
import numpy as np
|
4 |
+
from affine import Affine
|
5 |
+
from rasterio import CRS
|
6 |
+
|
7 |
+
|
8 |
+
def from_spatial_to_profile(zarr):
|
9 |
+
profile = {}
|
10 |
+
profile["driver"] = "GTiff"
|
11 |
+
profile["dtype"] = zarr.dtypes["band_data"].name
|
12 |
+
profile["width"] = zarr.dims["x"]
|
13 |
+
profile["height"] = zarr.dims["y"]
|
14 |
+
profile["count"] = zarr.dims["band"]
|
15 |
+
profile["crs"] = CRS.from_epsg(zarr["spatial_ref"].attrs["crs_wkt"].split(",")[-1].split("\"")[1])
|
16 |
+
vals = zarr["spatial_ref"].attrs["GeoTransform"].split(" ")
|
17 |
+
profile["transform"] = Affine(float(vals[1]),float(vals[2]),float(vals[0]),float(vals[4]),float(vals[5]),float(vals[3]))
|
18 |
+
return profile
|
19 |
+
|
20 |
+
|
21 |
+
def read_zarr(
|
22 |
+
path: Path
|
23 |
+
) -> np.ndarray:
|
24 |
+
"""Read a zarr file using xarray.
|
25 |
+
|
26 |
+
Args:
|
27 |
+
path (Path): Path to the zarr file.
|
28 |
+
Returns:
|
29 |
+
np.ndarray: zarr data as numpy array.
|
30 |
+
"""
|
31 |
+
data = xr.open_zarr(path)["band_data"]
|
32 |
+
return data.values
|
33 |
+
|
34 |
+
def read_zarr_profile(path:Path):
|
35 |
+
data = xr.open_zarr(path)
|
36 |
+
profile = from_spatial_to_profile(data)
|
37 |
+
return profile
|
croplands/polygonize.py
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import numpy as np
|
2 |
+
import rasterio
|
3 |
+
import geopandas as gpd
|
4 |
+
import cv2
|
5 |
+
from shapely.geometry import shape,Polygon
|
6 |
+
from shapely.validation import make_valid
|
7 |
+
from collections import defaultdict
|
8 |
+
|
9 |
+
|
10 |
+
def onehot(components: np.ndarray) -> np.ndarray:
|
11 |
+
oh = np.zeros((components.max() + 1, *components.shape), dtype=np.uint8)
|
12 |
+
for i in range(oh.shape[0]):
|
13 |
+
oh[i][components == i] = 1
|
14 |
+
if 0 in np.unique(components):
|
15 |
+
oh = oh[1:]
|
16 |
+
return oh
|
17 |
+
|
18 |
+
def apply_transform(polygon: Polygon, transform: rasterio.Affine) -> Polygon:
|
19 |
+
return Polygon([transform * c for c in polygon.exterior.coords])
|
20 |
+
|
21 |
+
def polygonize_raster(
|
22 |
+
data_img:np.ndarray,
|
23 |
+
raster: np.ndarray,
|
24 |
+
tolerance: float,
|
25 |
+
transform: rasterio.transform.Affine = None,
|
26 |
+
crs = None,
|
27 |
+
pixel_threshold: int = 25,
|
28 |
+
) -> gpd.GeoDataFrame:
|
29 |
+
data = defaultdict(list)
|
30 |
+
onehot_raster = onehot(raster)
|
31 |
+
if onehot_raster.shape[0] == 0:
|
32 |
+
return None
|
33 |
+
for i in range(onehot_raster.shape[0]):
|
34 |
+
mask = onehot_raster[i]
|
35 |
+
if mask.sum() < pixel_threshold:
|
36 |
+
continue
|
37 |
+
|
38 |
+
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
39 |
+
for contour in contours:
|
40 |
+
perimeter = cv2.arcLength(contour, True)
|
41 |
+
area = cv2.contourArea(contour)
|
42 |
+
approx = cv2.approxPolyDP(contour, tolerance * perimeter, True)
|
43 |
+
contour = approx.squeeze()
|
44 |
+
if contour.shape[0] < 3:
|
45 |
+
continue
|
46 |
+
poly = shape({"type": "Polygon", "coordinates": [contour]})
|
47 |
+
if transform is not None:
|
48 |
+
poly = apply_transform(poly, transform)
|
49 |
+
|
50 |
+
most_freq_class = np.argmax(np.bincount(data_img[onehot_raster[i].astype(bool)]))
|
51 |
+
data["geometry"].append(poly)
|
52 |
+
data["component"].append(i)
|
53 |
+
data["class"].append(most_freq_class)
|
54 |
+
data["area"].append(area)
|
55 |
+
|
56 |
+
gdf = gpd.GeoDataFrame(data, crs=crs)
|
57 |
+
gdf["geometry"] = gdf["geometry"].buffer(9.0)
|
58 |
+
gdf["geometry"] = gdf["geometry"].apply(make_valid)
|
59 |
+
return gdf
|
croplands/utils.py
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import numpy as np
|
2 |
+
|
3 |
+
def normalize_s2(img: np.ndarray, factor: int = 10_000) -> np.ndarray:
|
4 |
+
"""Normalizes the given S2 L2A image dividing the raw reflectance values by
|
5 |
+
the given factor, then clipping the values to the range [0, 1].
|
6 |
+
|
7 |
+
Args:
|
8 |
+
img (np.ndarray): The image to normalize.
|
9 |
+
factor (int, optional): The factor to divide the raw reflectance values
|
10 |
+
by. Defaults to 10_000.
|
11 |
+
|
12 |
+
Returns:
|
13 |
+
np.ndarray: The normalized image.
|
14 |
+
"""
|
15 |
+
return np.clip(img / float(factor), 0, 1)
|
16 |
+
|
17 |
+
|
18 |
+
def impute_nan(arr):
|
19 |
+
nan_times = np.where(np.isnan(arr).any(-1).any(-1).any(-1))[0]
|
20 |
+
|
21 |
+
for month in nan_times:
|
22 |
+
i = 1
|
23 |
+
if month < 4:
|
24 |
+
while np.isnan(arr[month]).any():
|
25 |
+
if month+i>=6:
|
26 |
+
arr[month][np.isnan(arr[month])] = 0.0
|
27 |
+
else:
|
28 |
+
arr[month][np.isnan(arr[month])] = arr[month+i][np.isnan(arr[month])]
|
29 |
+
i+=1
|
30 |
+
elif month>=4:
|
31 |
+
while np.isnan(arr[month]).any():
|
32 |
+
if month-i<0:
|
33 |
+
arr[month][np.isnan(arr[month])] = 0.0
|
34 |
+
else:
|
35 |
+
arr[month][np.isnan(arr[month])] = arr[month-i][np.isnan(arr[month])]
|
36 |
+
i+=1
|
37 |
+
return arr
|
examples/at_si_sk_2021_380.zarr/.zattrs
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{}
|
examples/at_si_sk_2021_380.zarr/.zgroup
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"zarr_format": 2
|
3 |
+
}
|
examples/at_si_sk_2021_380.zarr/.zmetadata
ADDED
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"metadata": {
|
3 |
+
".zattrs": {},
|
4 |
+
".zgroup": {
|
5 |
+
"zarr_format": 2
|
6 |
+
},
|
7 |
+
"band/.zarray": {
|
8 |
+
"chunks": [
|
9 |
+
10
|
10 |
+
],
|
11 |
+
"compressor": {
|
12 |
+
"blocksize": 0,
|
13 |
+
"clevel": 5,
|
14 |
+
"cname": "lz4",
|
15 |
+
"id": "blosc",
|
16 |
+
"shuffle": 1
|
17 |
+
},
|
18 |
+
"dtype": "<i8",
|
19 |
+
"fill_value": null,
|
20 |
+
"filters": null,
|
21 |
+
"order": "C",
|
22 |
+
"shape": [
|
23 |
+
10
|
24 |
+
],
|
25 |
+
"zarr_format": 2
|
26 |
+
},
|
27 |
+
"band/.zattrs": {
|
28 |
+
"_ARRAY_DIMENSIONS": [
|
29 |
+
"band"
|
30 |
+
]
|
31 |
+
},
|
32 |
+
"band_data/.zarray": {
|
33 |
+
"chunks": [
|
34 |
+
1,
|
35 |
+
1,
|
36 |
+
128,
|
37 |
+
128
|
38 |
+
],
|
39 |
+
"compressor": {
|
40 |
+
"blocksize": 0,
|
41 |
+
"clevel": 5,
|
42 |
+
"cname": "lz4",
|
43 |
+
"id": "blosc",
|
44 |
+
"shuffle": 1
|
45 |
+
},
|
46 |
+
"dtype": "<f4",
|
47 |
+
"fill_value": "NaN",
|
48 |
+
"filters": null,
|
49 |
+
"order": "C",
|
50 |
+
"shape": [
|
51 |
+
6,
|
52 |
+
10,
|
53 |
+
128,
|
54 |
+
128
|
55 |
+
],
|
56 |
+
"zarr_format": 2
|
57 |
+
},
|
58 |
+
"band_data/.zattrs": {
|
59 |
+
"AREA_OR_POINT": "Area",
|
60 |
+
"_ARRAY_DIMENSIONS": [
|
61 |
+
"time",
|
62 |
+
"band",
|
63 |
+
"y",
|
64 |
+
"x"
|
65 |
+
],
|
66 |
+
"coordinates": "spatial_ref",
|
67 |
+
"long_name": "stackstac-9f31e5920d53418737c37d57d00f49d8",
|
68 |
+
"resolution": 10.0,
|
69 |
+
"spec": "RasterSpec(epsg=32633, bounds=(389120.0, 5345280.0, 409600.0, 5365760.0), resolutions_xy=(10.0, 10.0))"
|
70 |
+
},
|
71 |
+
"spatial_ref/.zarray": {
|
72 |
+
"chunks": [],
|
73 |
+
"compressor": null,
|
74 |
+
"dtype": "<i8",
|
75 |
+
"fill_value": null,
|
76 |
+
"filters": null,
|
77 |
+
"order": "C",
|
78 |
+
"shape": [],
|
79 |
+
"zarr_format": 2
|
80 |
+
},
|
81 |
+
"spatial_ref/.zattrs": {
|
82 |
+
"GeoTransform": "389115.0 10.0 0.0 5365765.0 0.0 -10.0",
|
83 |
+
"_ARRAY_DIMENSIONS": [],
|
84 |
+
"crs_wkt": "PROJCS[\"WGS 84 / UTM zone 33N\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32633\"]]",
|
85 |
+
"false_easting": 500000.0,
|
86 |
+
"false_northing": 0.0,
|
87 |
+
"geographic_crs_name": "WGS 84",
|
88 |
+
"grid_mapping_name": "transverse_mercator",
|
89 |
+
"horizontal_datum_name": "World Geodetic System 1984",
|
90 |
+
"inverse_flattening": 298.257223563,
|
91 |
+
"latitude_of_projection_origin": 0.0,
|
92 |
+
"longitude_of_central_meridian": 15.0,
|
93 |
+
"longitude_of_prime_meridian": 0.0,
|
94 |
+
"prime_meridian_name": "Greenwich",
|
95 |
+
"projected_crs_name": "WGS 84 / UTM zone 33N",
|
96 |
+
"reference_ellipsoid_name": "WGS 84",
|
97 |
+
"scale_factor_at_central_meridian": 0.9996,
|
98 |
+
"semi_major_axis": 6378137.0,
|
99 |
+
"semi_minor_axis": 6356752.314245179,
|
100 |
+
"spatial_ref": "PROJCS[\"WGS 84 / UTM zone 33N\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32633\"]]"
|
101 |
+
},
|
102 |
+
"x/.zarray": {
|
103 |
+
"chunks": [
|
104 |
+
128
|
105 |
+
],
|
106 |
+
"compressor": {
|
107 |
+
"blocksize": 0,
|
108 |
+
"clevel": 5,
|
109 |
+
"cname": "lz4",
|
110 |
+
"id": "blosc",
|
111 |
+
"shuffle": 1
|
112 |
+
},
|
113 |
+
"dtype": "<f8",
|
114 |
+
"fill_value": "NaN",
|
115 |
+
"filters": null,
|
116 |
+
"order": "C",
|
117 |
+
"shape": [
|
118 |
+
128
|
119 |
+
],
|
120 |
+
"zarr_format": 2
|
121 |
+
},
|
122 |
+
"x/.zattrs": {
|
123 |
+
"_ARRAY_DIMENSIONS": [
|
124 |
+
"x"
|
125 |
+
]
|
126 |
+
},
|
127 |
+
"y/.zarray": {
|
128 |
+
"chunks": [
|
129 |
+
128
|
130 |
+
],
|
131 |
+
"compressor": {
|
132 |
+
"blocksize": 0,
|
133 |
+
"clevel": 5,
|
134 |
+
"cname": "lz4",
|
135 |
+
"id": "blosc",
|
136 |
+
"shuffle": 1
|
137 |
+
},
|
138 |
+
"dtype": "<f8",
|
139 |
+
"fill_value": "NaN",
|
140 |
+
"filters": null,
|
141 |
+
"order": "C",
|
142 |
+
"shape": [
|
143 |
+
128
|
144 |
+
],
|
145 |
+
"zarr_format": 2
|
146 |
+
},
|
147 |
+
"y/.zattrs": {
|
148 |
+
"_ARRAY_DIMENSIONS": [
|
149 |
+
"y"
|
150 |
+
]
|
151 |
+
}
|
152 |
+
},
|
153 |
+
"zarr_consolidated_format": 1
|
154 |
+
}
|
examples/at_si_sk_2021_380.zarr/band/.zarray
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"chunks": [
|
3 |
+
10
|
4 |
+
],
|
5 |
+
"compressor": {
|
6 |
+
"blocksize": 0,
|
7 |
+
"clevel": 5,
|
8 |
+
"cname": "lz4",
|
9 |
+
"id": "blosc",
|
10 |
+
"shuffle": 1
|
11 |
+
},
|
12 |
+
"dtype": "<i8",
|
13 |
+
"fill_value": null,
|
14 |
+
"filters": null,
|
15 |
+
"order": "C",
|
16 |
+
"shape": [
|
17 |
+
10
|
18 |
+
],
|
19 |
+
"zarr_format": 2
|
20 |
+
}
|
examples/at_si_sk_2021_380.zarr/band/.zattrs
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_ARRAY_DIMENSIONS": [
|
3 |
+
"band"
|
4 |
+
]
|
5 |
+
}
|
examples/at_si_sk_2021_380.zarr/band/0
ADDED
Binary file (96 Bytes). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/.zarray
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"chunks": [
|
3 |
+
1,
|
4 |
+
1,
|
5 |
+
128,
|
6 |
+
128
|
7 |
+
],
|
8 |
+
"compressor": {
|
9 |
+
"blocksize": 0,
|
10 |
+
"clevel": 5,
|
11 |
+
"cname": "lz4",
|
12 |
+
"id": "blosc",
|
13 |
+
"shuffle": 1
|
14 |
+
},
|
15 |
+
"dtype": "<f4",
|
16 |
+
"fill_value": "NaN",
|
17 |
+
"filters": null,
|
18 |
+
"order": "C",
|
19 |
+
"shape": [
|
20 |
+
6,
|
21 |
+
10,
|
22 |
+
128,
|
23 |
+
128
|
24 |
+
],
|
25 |
+
"zarr_format": 2
|
26 |
+
}
|
examples/at_si_sk_2021_380.zarr/band_data/.zattrs
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"AREA_OR_POINT": "Area",
|
3 |
+
"_ARRAY_DIMENSIONS": [
|
4 |
+
"time",
|
5 |
+
"band",
|
6 |
+
"y",
|
7 |
+
"x"
|
8 |
+
],
|
9 |
+
"coordinates": "spatial_ref",
|
10 |
+
"long_name": "stackstac-9f31e5920d53418737c37d57d00f49d8",
|
11 |
+
"resolution": 10.0,
|
12 |
+
"spec": "RasterSpec(epsg=32633, bounds=(389120.0, 5345280.0, 409600.0, 5365760.0), resolutions_xy=(10.0, 10.0))"
|
13 |
+
}
|
examples/at_si_sk_2021_380.zarr/band_data/0.0.0.0
ADDED
Binary file (28.9 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.1.0.0
ADDED
Binary file (32.1 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.2.0.0
ADDED
Binary file (31 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.3.0.0
ADDED
Binary file (19.8 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.4.0.0
ADDED
Binary file (20.4 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.5.0.0
ADDED
Binary file (20.9 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.6.0.0
ADDED
Binary file (32.9 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.7.0.0
ADDED
Binary file (19.6 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.8.0.0
ADDED
Binary file (21.7 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/0.9.0.0
ADDED
Binary file (21.2 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.0.0.0
ADDED
Binary file (28.6 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.1.0.0
ADDED
Binary file (31.7 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.2.0.0
ADDED
Binary file (30.8 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.3.0.0
ADDED
Binary file (20.4 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.4.0.0
ADDED
Binary file (18.6 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.5.0.0
ADDED
Binary file (19.4 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.6.0.0
ADDED
Binary file (31.8 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.7.0.0
ADDED
Binary file (18.5 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.8.0.0
ADDED
Binary file (21.5 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/1.9.0.0
ADDED
Binary file (21.3 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.0.0.0
ADDED
Binary file (31.5 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.1.0.0
ADDED
Binary file (30.7 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.2.0.0
ADDED
Binary file (32.4 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.3.0.0
ADDED
Binary file (19.6 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.4.0.0
ADDED
Binary file (16.5 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.5.0.0
ADDED
Binary file (17.5 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.6.0.0
ADDED
Binary file (31 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.7.0.0
ADDED
Binary file (16.6 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.8.0.0
ADDED
Binary file (21.3 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/2.9.0.0
ADDED
Binary file (22 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.0.0.0
ADDED
Binary file (29.4 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.1.0.0
ADDED
Binary file (31.6 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.2.0.0
ADDED
Binary file (31.5 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.3.0.0
ADDED
Binary file (21.4 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.4.0.0
ADDED
Binary file (18.8 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.5.0.0
ADDED
Binary file (20 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.6.0.0
ADDED
Binary file (32.3 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.7.0.0
ADDED
Binary file (18.3 kB). View file
|
|
examples/at_si_sk_2021_380.zarr/band_data/3.8.0.0
ADDED
Binary file (20.7 kB). View file
|
|