diff --git a/demo/datacube.ipynb b/demo/datacube.ipynb index 490c05f1..ed860b7a 100644 --- a/demo/datacube.ipynb +++ b/demo/datacube.ipynb @@ -633,7 +633,7 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
<xarray.DataArray 'colortype' (time: 3, y: 563, x: 576)>\n", + "<xarray.DataArray 'colortype' (time: 3, y: 563, x: 576)> Size: 8MB\n", "array([[[29., 29., 29., ..., 29., 29., 29.],\n", " [29., 29., 29., ..., 29., 29., 29.],\n", " [29., 29., 29., ..., 5., 29., 29.],\n", @@ -658,19 +658,19 @@ " [ 3., 27., 3., ..., 27., 27., 27.],\n", " [27., 3., 7., ..., 27., 27., 27.]]])\n", "Coordinates:\n", - " spatial_ref int32 0\n", - " * x (x) float64 4.53e+06 4.53e+06 ... 4.536e+06 4.536e+06\n", - " * y (y) float64 2.697e+06 2.697e+06 ... 2.691e+06 2.691e+06\n", - " temporal_ref int32 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 5kB 4.53e+06 4.53e+06 ... 4.536e+06 4.536e+06\n", + " * y (y) float64 5kB 2.697e+06 2.697e+06 ... 2.691e+06 2.691e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 3MB 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", " add_offset: 0.0\n", " _FillValue: 1.7976931348623157e+308\n", " value_type: ordinal\n", - " value_labels: {1: 'SVHNIR', 2: 'SVLNIR', 3: 'AVHNIR', 4: 'AVLNIR', 5: '...xarray.DataArray'colortype'time: 3y: 563x: 57629.0 29.0 29.0 29.0 29.0 29.0 29.0 ... 4.0 3.0 3.0 27.0 27.0 27.0 27.0array([[[29., 29., 29., ..., 29., 29., 29.],\n", + " value_labels: {1: 'SVHNIR', 2: 'SVLNIR', 3: 'AVHNIR', 4: 'AVLNIR', 5: '...xarray.DataArray'colortype'time: 3y: 563x: 57629.0 29.0 29.0 29.0 29.0 29.0 29.0 ... 4.0 3.0 3.0 27.0 27.0 27.0 27.0array([[[29., 29., 29., ..., 29., 29., 29.],\n", " [29., 29., 29., ..., 29., 29., 29.],\n", " [29., 29., 29., ..., 5., 29., 29.],\n", " ...,\n", @@ -692,29 +692,29 @@ " ...,\n", " [ 3., 3., 3., ..., 3., 27., 27.],\n", " [ 3., 27., 3., ..., 27., 27., 27.],\n", - " [27., 3., 7., ..., 27., 27., 27.]]])Coordinates: (6)spatial_ref()int320crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530110.0 10.0 0.0 2696630.0 0.0 -10.0array(0)x(x)float644.53e+06 4.53e+06 ... 4.536e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :10value_type :continuousarray([4530115., 4530125., 4530135., ..., 4535845., 4535855., 4535865.])y(y)float642.697e+06 2.697e+06 ... 2.691e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-10value_type :continuousarray([2696625., 2696615., 2696605., ..., 2691025., 2691015., 2691005.])temporal_ref()int320zone :UTCarray(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", - " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., ..., 1., 1., 1.],\n", + " [27., 3., 7., ..., 27., 27., 27.]]])Coordinates: (6)spatial_ref()int320crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530110.0 10.0 0.0 2696630.0 0.0 -10.0array(0)x(x)float644.53e+06 4.53e+06 ... 4.536e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :10value_type :continuousarray([4530115., 4530125., 4530135., ..., 4535845., 4535855., 4535865.])y(y)float642.697e+06 2.697e+06 ... 2.691e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-10value_type :continuousarray([2696625., 2696615., 2696605., ..., 2691025., 2691015., 2691005.])temporal_ref()int320zone :UTCarray(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", + " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " ...,\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", - " [1., 1., 1., ..., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530115.0, 4530125.0, 4530135.0, 4530145.0, 4530155.0, 4530165.0,\n", + " [1., 1., 1., ..., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530115.0, 4530125.0, 4530135.0, 4530145.0, 4530155.0, 4530165.0,\n", " 4530175.0, 4530185.0, 4530195.0, 4530205.0,\n", " ...\n", " 4535775.0, 4535785.0, 4535795.0, 4535805.0, 4535815.0, 4535825.0,\n", " 4535835.0, 4535845.0, 4535855.0, 4535865.0],\n", - " dtype='float64', name='x', length=576))yPandasIndexPandasIndex(Index([2696625.0, 2696615.0, 2696605.0, 2696595.0, 2696585.0, 2696575.0,\n", + " dtype='float64', name='x', length=576))yPandasIndexPandasIndex(Index([2696625.0, 2696615.0, 2696605.0, 2696595.0, 2696585.0, 2696575.0,\n", " 2696565.0, 2696555.0, 2696545.0, 2696535.0,\n", " ...\n", " 2691095.0, 2691085.0, 2691075.0, 2691065.0, 2691055.0, 2691045.0,\n", " 2691035.0, 2691025.0, 2691015.0, 2691005.0],\n", - " dtype='float64', name='y', length=563))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", + " dtype='float64', name='y', length=563))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", " '2020-12-19 10:17:34.610661'],\n", - " dtype='datetime64[ns]', name='time', freq=None))Attributes: (6)AREA_OR_POINT :Areascale_factor :1.0add_offset :0.0_FillValue :1.7976931348623157e+308value_type :ordinalvalue_labels :{1: 'SVHNIR', 2: 'SVLNIR', 3: 'AVHNIR', 4: 'AVLNIR', 5: 'WV', 6: 'SHV', 7: 'SHRBRHNIR', 8: 'SHRBRLNIR', 9: 'HRBCR', 10: 'WR', 11: 'PB', 12: 'GH', 13: 'VBBB', 14: 'BBB', 15: 'SBB', 16: 'ABB', 17: 'DBB', 18: 'WBBorSHB', 19: 'NIRPBB', 20: 'BA', 21: 'DPWASH', 22: 'SLWASH', 23: 'TWASH', 24: 'SASLWA', 27: 'TNCLV', 28: 'TNCLWA_BB', 29: 'SN', 30: 'SHSN', 31: 'SH', 32: 'FLAME'}" + " dtype='datetime64[ns]', name='time', freq=None))
<xarray.DataArray 'colortype' (time: 3, y: 563, x: 576)> Size: 8MB\n", "array([[[29., 29., 29., ..., 29., 29., 29.],\n", " [29., 29., 29., ..., 29., 29., 29.],\n", " [29., 29., 29., ..., 5., 29., 29.],\n", @@ -658,19 +658,19 @@ " [ 3., 27., 3., ..., 27., 27., 27.],\n", " [27., 3., 7., ..., 27., 27., 27.]]])\n", "Coordinates:\n", - " spatial_ref int32 0\n", - " * x (x) float64 4.53e+06 4.53e+06 ... 4.536e+06 4.536e+06\n", - " * y (y) float64 2.697e+06 2.697e+06 ... 2.691e+06 2.691e+06\n", - " temporal_ref int32 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 5kB 4.53e+06 4.53e+06 ... 4.536e+06 4.536e+06\n", + " * y (y) float64 5kB 2.697e+06 2.697e+06 ... 2.691e+06 2.691e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 3MB 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", " add_offset: 0.0\n", " _FillValue: 1.7976931348623157e+308\n", " value_type: ordinal\n", - " value_labels: {1: 'SVHNIR', 2: 'SVLNIR', 3: 'AVHNIR', 4: 'AVLNIR', 5: '...
array([[[29., 29., 29., ..., 29., 29., 29.],\n", + " value_labels: {1: 'SVHNIR', 2: 'SVLNIR', 3: 'AVHNIR', 4: 'AVLNIR', 5: '...
array([[[29., 29., 29., ..., 29., 29., 29.],\n", " [29., 29., 29., ..., 29., 29., 29.],\n", " [29., 29., 29., ..., 5., 29., 29.],\n", " ...,\n", @@ -692,29 +692,29 @@ " ...,\n", " [ 3., 3., 3., ..., 3., 27., 27.],\n", " [ 3., 27., 3., ..., 27., 27., 27.],\n", - " [27., 3., 7., ..., 27., 27., 27.]]])
array(0)
array([4530115., 4530125., 4530135., ..., 4535845., 4535855., 4535865.])
array([2696625., 2696615., 2696605., ..., 2691025., 2691015., 2691005.])
array(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", - " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')
array([[1., 1., 1., ..., 1., 1., 1.],\n", + " [27., 3., 7., ..., 27., 27., 27.]]])
array(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", + " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')
array([[1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " ...,\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", - " [1., 1., 1., ..., 1., 1., 1.]])
PandasIndex(Index([4530115.0, 4530125.0, 4530135.0, 4530145.0, 4530155.0, 4530165.0,\n", + " [1., 1., 1., ..., 1., 1., 1.]])
PandasIndex(Index([4530115.0, 4530125.0, 4530135.0, 4530145.0, 4530155.0, 4530165.0,\n", " 4530175.0, 4530185.0, 4530195.0, 4530205.0,\n", " ...\n", " 4535775.0, 4535785.0, 4535795.0, 4535805.0, 4535815.0, 4535825.0,\n", " 4535835.0, 4535845.0, 4535855.0, 4535865.0],\n", - " dtype='float64', name='x', length=576))
PandasIndex(Index([2696625.0, 2696615.0, 2696605.0, 2696595.0, 2696585.0, 2696575.0,\n", + " dtype='float64', name='x', length=576))
PandasIndex(Index([2696625.0, 2696615.0, 2696605.0, 2696595.0, 2696585.0, 2696575.0,\n", " 2696565.0, 2696555.0, 2696545.0, 2696535.0,\n", " ...\n", " 2691095.0, 2691085.0, 2691075.0, 2691065.0, 2691055.0, 2691045.0,\n", " 2691035.0, 2691025.0, 2691015.0, 2691005.0],\n", - " dtype='float64', name='y', length=563))
PandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", + " dtype='float64', name='y', length=563))
PandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", " '2020-12-19 10:17:34.610661'],\n", - " dtype='datetime64[ns]', name='time', freq=None))
<xarray.DataArray 'scl' (time: 4, y: 500, x: 500)>\n", + "<xarray.DataArray 'scl' (time: 4, y: 500, x: 500)> Size: 4MB\n", "array([[[9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", @@ -1661,18 +1691,18 @@ " [6., 6., 6., ..., 6., 6., 6.],\n", " [6., 6., 6., ..., 6., 6., 6.]]], dtype=float32)\n", "Coordinates:\n", - " * x (x) float64 -2.749 -2.748 -2.748 ... -2.252 -2.252 -2.25\n", - " * y (y) float64 47.75 47.75 47.75 47.75 ... 47.25 47.25 47.25\n", - " temporal_ref int32 0\n", - " * time (time) datetime64[ns] 2020-07-15 2020-07-20 ... 2020-07-30\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " * x (x) float64 4kB -2.749 -2.748 -2.748 ... -2.252 -2.252 -2.25\n", + " * y (y) float64 4kB 47.75 47.75 47.75 47.75 ... 47.25 47.25 47.25\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 32B 2020-07-15 ... 2020-07-30\n", + " spatial_feats (y, x) float64 2MB 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " spec: RasterSpec(epsg=4326, bounds=(-2.75, 47.25, -2.25, 47.75),...\n", " crs: epsg:4326\n", " transform: | 0.00, 0.00,-2.75|\\n| 0.00,-0.00, 47.75|\\n| 0.00, 0.00, 1...\n", " resolution: 0.001\n", " value_type: ordinal\n", - " value_labels: {0: 'mask', 1: 'saturated', 2: 'dark', 3: 'shadow', 4: 've...xarray.DataArray'scl'time: 4y: 500x: 5009.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 ... 4.0 4.0 6.0 6.0 6.0 6.0 6.0 6.0array([[[9., 9., 9., ..., 9., 9., 9.],\n", + " value_labels: {0: 'mask', 1: 'saturated', 2: 'dark', 3: 'shadow', 4: 've...xarray.DataArray'scl'time: 4y: 500x: 5009.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 ... 4.0 4.0 6.0 6.0 6.0 6.0 6.0 6.0array([[[9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", " ...,\n", @@ -1702,15 +1732,15 @@ " ...,\n", " [6., 6., 6., ..., 6., 6., 6.],\n", " [6., 6., 6., ..., 6., 6., 6.],\n", - " [6., 6., 6., ..., 6., 6., 6.]]], dtype=float32)Coordinates: (5)x(x)float64-2.749 -2.748 ... -2.252 -2.25resolution :0.001value_type :continuousarray([-2.7495, -2.7485, -2.7475, ..., -2.2525, -2.2515, -2.2505])y(y)float6447.75 47.75 47.75 ... 47.25 47.25resolution :-0.001value_type :continuousarray([47.7495, 47.7485, 47.7475, ..., 47.2525, 47.2515, 47.2505])temporal_ref()int320zone :UTCarray(0)time(time)datetime64[ns]2020-07-15 ... 2020-07-30value_type :datetimearray(['2020-07-15T00:00:00.000000000', '2020-07-20T00:00:00.000000000',\n", + " [6., 6., 6., ..., 6., 6., 6.]]], dtype=float32)Coordinates: (5)x(x)float64-2.749 -2.748 ... -2.252 -2.25resolution :0.001value_type :continuousarray([-2.7495, -2.7485, -2.7475, ..., -2.2525, -2.2515, -2.2505])y(y)float6447.75 47.75 47.75 ... 47.25 47.25resolution :-0.001value_type :continuousarray([47.7495, 47.7485, 47.7475, ..., 47.2525, 47.2515, 47.2505])temporal_ref()int320zone :UTCarray(0)time(time)datetime64[ns]2020-07-15 ... 2020-07-30value_type :datetimearray(['2020-07-15T00:00:00.000000000', '2020-07-20T00:00:00.000000000',\n", " '2020-07-25T00:00:00.000000000', '2020-07-30T00:00:00.000000000'],\n", - " dtype='datetime64[ns]')spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., ..., 1., 1., 1.],\n", + " dtype='datetime64[ns]')spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " ...,\n", " [1., 1., 1., ..., 1., 1., 1.],\n", " [1., 1., 1., ..., 1., 1., 1.],\n", - " [1., 1., 1., ..., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([ -2.7495, -2.7485, -2.7475,\n", + " [1., 1., 1., ..., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([ -2.7495, -2.7485, -2.7475,\n", " -2.7464999999999997, -2.7455, -2.7445,\n", " -2.7435, -2.7424999999999997, -2.7415,\n", " -2.7405,\n", @@ -1719,7 +1749,7 @@ " -2.2565, -2.2554999999999996, -2.2544999999999997,\n", " -2.2535, -2.2525, -2.2515,\n", " -2.2504999999999997],\n", - " dtype='float64', name='x', length=500))yPandasIndexPandasIndex(Index([ 47.7495, 47.7485, 47.747499999999995,\n", + " dtype='float64', name='x', length=500))yPandasIndexPandasIndex(Index([ 47.7495, 47.7485, 47.747499999999995,\n", " 47.7465, 47.7455, 47.744499999999995,\n", " 47.7435, 47.7425, 47.741499999999995,\n", " 47.7405,\n", @@ -1728,12 +1758,12 @@ " 47.256499999999996, 47.2555, 47.2545,\n", " 47.253499999999995, 47.2525, 47.2515,\n", " 47.250499999999995],\n", - " dtype='float64', name='y', length=500))timePandasIndexPandasIndex(DatetimeIndex(['2020-07-15', '2020-07-20', '2020-07-25', '2020-07-30'], dtype='datetime64[ns]', name='time', freq=None))Attributes: (6)spec :RasterSpec(epsg=4326, bounds=(-2.75, 47.25, -2.25, 47.75), resolutions_xy=(0.001, 0.001))crs :epsg:4326transform :| 0.00, 0.00,-2.75|\n", + " dtype='float64', name='y', length=500))timePandasIndexPandasIndex(DatetimeIndex(['2020-07-15', '2020-07-20', '2020-07-25', '2020-07-30'], dtype='datetime64[ns]', name='time', freq=None))Attributes: (6)spec :RasterSpec(epsg=4326, bounds=(-2.75, 47.25, -2.25, 47.75), resolutions_xy=(0.001, 0.001))crs :epsg:4326transform :| 0.00, 0.00,-2.75|\n", "| 0.00,-0.00, 47.75|\n", "| 0.00, 0.00, 1.00|resolution :0.001value_type :ordinalvalue_labels :{0: 'mask', 1: 'saturated', 2: 'dark', 3: 'shadow', 4: 'vegetation', 5: 'bare', 6: 'water', 7: 'unknown', 8: 'cl_med', 9: 'cl_high', 10: 'cl_cirrus', 11: 'snow'}" ], "text/plain": [ - "\n", + " Size: 4MB\n", "array([[[9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", @@ -1766,11 +1796,11 @@ " [6., 6., 6., ..., 6., 6., 6.],\n", " [6., 6., 6., ..., 6., 6., 6.]]], dtype=float32)\n", "Coordinates:\n", - " * x (x) float64 -2.749 -2.748 -2.748 ... -2.252 -2.252 -2.25\n", - " * y (y) float64 47.75 47.75 47.75 47.75 ... 47.25 47.25 47.25\n", - " temporal_ref int32 0\n", - " * time (time) datetime64[ns] 2020-07-15 2020-07-20 ... 2020-07-30\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " * x (x) float64 4kB -2.749 -2.748 -2.748 ... -2.252 -2.252 -2.25\n", + " * y (y) float64 4kB 47.75 47.75 47.75 47.75 ... 47.25 47.25 47.25\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 32B 2020-07-15 ... 2020-07-30\n", + " spatial_feats (y, x) float64 2MB 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " spec: RasterSpec(epsg=4326, bounds=(-2.75, 47.25, -2.25, 47.75),...\n", " crs: epsg:4326\n", @@ -1780,7 +1810,7 @@ " value_labels: {0: 'mask', 1: 'saturated', 2: 'dark', 3: 'shadow', 4: 've..." ] }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -1809,13 +1839,13 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "f861e35a", "metadata": {}, "outputs": [ { "data": { - "image/png": "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v/yX1EpFd3c37r///vi3XMUogpUrV+Kkk07Cgw8+6EmeIxT+uV4cz/Uf//Efxw4iX/rSl6bKfuaZZ/D444+nVgd5nT2OPPjnenE/1xp+9Vd/FQDw4IMPepLnCIV/rjv/uT722GPxn/7TfwIArF69Grt378Z//+//HZ/4xCd8f+3RcfAkzxLHsccei8OHD1ee76pVq3D48GH89Kc/LWTH2qxMdP/+/bj44ovxvOc9D3/913+N4447LrW/p6cHf/7nf46f/vSn8YrAl770JSxfvjzFtH/605/GVVddhbvvvhuXXnppKo9jjz0Wq1evxj333IO3vOUtACLJ9T333IM//uM/BgCccsopmRWHnp4ePP7445ifn8fq1asBAP/wD/+A5557Lh7AER5++GHMzMzgr//6r1Pbjz/++LgDaRY/+MEP8POf/xynnnpqJfl5dA78c700nuswDPGe97wH09PTmJ2dxZlnnpnav3r1ahxzzDG455578Na3vhUA8J3vfAff//73Yz8AHksH/rk+Mp5rDTSp9P310oN/rpfGc63hueeew6FDhwD4/tqjA7HQnp89Wot169aFa9asCR9++OHwZz/7WXj48GGjV3+OD37wg+F5552X2iajN11++eXhGWecEf7v//2/w4ceeij86le/Gv7FX/xF+Ld/+7ctOZd9+/aFv/qrvxq+5jWvCR988MHwscceiz8UbeDZZ58Nzz333PCNb3xjeP/994ef//znw5NPPjm8/vrr43x27twZHn300eHHPvaxVB6PP/54nObuu+8On/e854W33357+K1vfSv8gz/4g/AFL3hBKlqAhksuuSRctWpV+NWvfjW87777wle+8pXh2972tky6TZs2haeddloqSoINBw4cCPfu3Rvu3bs3BBCOjY2Fe/fuDb/3ve/F+6+77rpwbm4ufPjhh8O///u/D88///zwla98Zfj00087leGxeOCf66XxXP/RH/1RuGLFinB2djZV5yeffDJO8+53vzt82cteFv7DP/xDuGfPnrCnpyfs6elxyt9jccE/10fGc/3ggw+Gf/Znfxbu2bMnfPjhh8P/83/+T7hy5crwN37jN5zy91hc8M/10niu/+RP/iS89957w4cffjj8xje+Ef7Jn/xJGARB+MUvfjFO4/trj06CJ3mWOL7zne+Ev/ZrvxYef/zxuaEbOVw6l2ee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", + "image/png": "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v/yX1EpFd3c37r///vi3XMUogpUrV+Kkk07Cgw8+6EmeIxT+uV4cz/Uf//Efxw4iX/rSl6bKfuaZZ/D444+nVgd5nT2OPPjnenE/1xp+9Vd/FQDw4IMPepLnCIV/rjv/uT722GPxn/7TfwIArF69Grt378Z//+//HZ/4xCd8f+3RcfAkzxLHsccei8OHD1ee76pVq3D48GH89Kc/LWTH2qxMdP/+/bj44ovxvOc9D3/913+N4447LrW/p6cHf/7nf46f/vSn8YrAl770JSxfvjzFtH/605/GVVddhbvvvhuXXnppKo9jjz0Wq1evxj333IO3vOUtACLJ9T333IM//uM/BgCccsopmRWHnp4ePP7445ifn8fq1asBAP/wD/+A5557Lh7AER5++GHMzMzgr//6r1Pbjz/++LgDaRY/+MEP8POf/xynnnpqJfl5dA78c700nuswDPGe97wH09PTmJ2dxZlnnpnav3r1ahxzzDG455578Na3vhUA8J3vfAff//73Yz8AHksH/rk+Mp5rDTSp9P310oN/rpfGc63hueeew6FDhwD4/tqjA7HQnp89Wot169aFa9asCR9++OHwZz/7WXj48GGjV3+OD37wg+F5552X2iajN11++eXhGWecEf7v//2/w4ceeij86le/Gv7FX/xF+Ld/+7ctOZd9+/aFv/qrvxq+5jWvCR988MHwscceiz8UbeDZZ58Nzz333PCNb3xjeP/994ef//znw5NPPjm8/vrr43x27twZHn300eHHPvaxVB6PP/54nObuu+8On/e854W33357+K1vfSv8gz/4g/AFL3hBKlqAhksuuSRctWpV+NWvfjW87777wle+8pXh2972tky6TZs2haeddloqSoINBw4cCPfu3Rvu3bs3BBCOjY2Fe/fuDb/3ve/F+6+77rpwbm4ufPjhh8O///u/D88///zwla98Zfj00087leGxeOCf66XxXP/RH/1RuGLFinB2djZV5yeffDJO8+53vzt82cteFv7DP/xDuGfPnrCnpyfs6elxyt9jccE/10fGc/3ggw+Gf/Znfxbu2bMnfPjhh8P/83/+T7hy5crwN37jN5zy91hc8M/10niu/+RP/iS89957w4cffjj8xje+Ef7Jn/xJGARB+MUvfjFO4/trj06CJ3mWOL7zne+Ev/ZrvxYef/zxuaEbOVw6l2ee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", "text/plain": [ "" ] diff --git a/demo/extras/cache_tests.ipynb b/demo/extras/cache_tests.ipynb index bf790f9b..517e255e 100644 --- a/demo/extras/cache_tests.ipynb +++ b/demo/extras/cache_tests.ipynb @@ -21,24 +21,7 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\felix\\AppData\\Roaming\\Python\\Python310\\site-packages\\geopandas\\_compat.py:124: UserWarning: The Shapely GEOS version (3.11.2-CAPI-1.17.2) is incompatible with the GEOS version PyGEOS was compiled with (3.10.1-CAPI-1.16.0). Conversions between both will be slow.\n", - " warnings.warn(\n", - "C:\\Users\\felix\\AppData\\Local\\Temp/ipykernel_7388/2560623581.py:1: DeprecationWarning: Shapely 2.0 is installed, but because PyGEOS is also installed, GeoPandas still uses PyGEOS by default. However, starting with version 0.14, the default will switch to Shapely. To force to use Shapely 2.0 now, you can either uninstall PyGEOS or set the environment variable USE_PYGEOS=0. You can do this before starting the Python process, or in your code before importing geopandas:\n", - "\n", - "import os\n", - "os.environ['USE_PYGEOS'] = '0'\n", - "import geopandas\n", - "\n", - "In the next release, GeoPandas will switch to using Shapely by default, even if PyGEOS is installed. If you only have PyGEOS installed to get speed-ups, this switch should be smooth. However, if you are using PyGEOS directly (calling PyGEOS functions on geometries from GeoPandas), this will then stop working and you are encouraged to migrate from PyGEOS to Shapely 2.0 (https://shapely.readthedocs.io/en/latest/migration_pygeos.html).\n", - " import geopandas as gpd\n" - ] - } - ], + "outputs": [], "source": [ "import geopandas as gpd\n", "import json\n", @@ -55,15 +38,15 @@ "outputs": [], "source": [ "# Load a mapping.\n", - "with open(\"files/mapping.json\", \"r\") as file:\n", + "with open(\"../files/mapping.json\", \"r\") as file:\n", " mapping = sq.mapping.Semantique(json.load(file))\n", "\n", "# Represent an EO data cube.\n", - "with open(\"files/layout.json\", \"r\") as file:\n", - " dc = sq.datacube.GeotiffArchive(json.load(file), src = \"files/layers.zip\")\n", + "with open(\"../files/layout_gtiff.json\", \"r\") as file:\n", + " dc = sq.datacube.GeotiffArchive(json.load(file), src = \"../files/layers_gtiff.zip\")\n", "\n", "# Set the spatio-temporal extent.\n", - "space = sq.SpatialExtent(gpd.read_file(\"files/footprint.geojson\"))\n", + "space = sq.SpatialExtent(gpd.read_file(\"../files/footprint.geojson\"))\n", "time = sq.TemporalExtent(\"2019-01-01\", \"2020-12-31\")" ] }, @@ -78,9 +61,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "RAM memory requirements are proportional to the number of data layers that are stored as intermediate results. Caching data layers in RAM should only be done for those that are needed again when evaluating downstream parts of the recipe. This requires foresight about the evaluation order of the recipe, which accordingly requires a preview run preceding the actual evaluation. This preview run is performed by loading the data with drastically reduced spatial resolution (5x5 pixel grid). It resolves the data references and fills a cache by creating a list of the data references in the order in which they are evaluated. This list is then used dynamically during the actual evaluation of the recipe as a basis for keeping data layers in the cache and reading them from there if they are needed again.\n", - "\n", - "Below the result of the preview run is shown first to demonstrate what the resolved data references look like. The resulting initialised cache can then be fed as a context element to the QueryProcessor in a second step for the actual recipe execution." + "Caching data layers in RAM should only be done for those that are needed again when evaluating downstream parts of the recipe. This requires foresight about the execution order of the recipe, which accordingly requires a simulated run preceding the actual execution. This simulated run is performed by the FakeProcessor. It resolves the data references and fills a cache by creating a list of the data references in the order in which they are evaluated. This list is then used dynamically during the actual execution of the recipe as a basis for keeping data layers in the cache and reading them from there if they are needed again." ] }, { @@ -89,7 +70,7 @@ "metadata": {}, "outputs": [], "source": [ - "from semantique.processor.core import QueryProcessor\n", + "from semantique.processor.core import FakeProcessor, QueryProcessor\n", "\n", "# define a simple recipe for a cloudfree composite\n", "recipe = sq.QueryRecipe()\n", @@ -133,10 +114,10 @@ } ], "source": [ - "# step I: preview run\n", - "qp = QueryProcessor.parse(recipe, **{**context, \"preview\": True})\n", - "qp.optimize().execute()\n", - "qp.cache.seq" + "# step I: fake run\n", + "fp = FakeProcessor.parse(recipe, **context)\n", + "fp.optimize().execute()\n", + "fp.cache.seq" ] }, { @@ -157,7 +138,7 @@ ], "source": [ "# step II: query processor execution\n", - "qp = QueryProcessor.parse(recipe, **{**context, \"cache\": qp.cache})\n", + "qp = QueryProcessor.parse(recipe, **{**context, \"cache\": fp.cache})\n", "result = qp.optimize().execute()\n", "result[\"composite\"].shape" ] @@ -166,9 +147,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "As you can see the preview run resolves the references to the data layers as they are provided by looking up the entities' references in the mapping.json. Note, that in the current case the result is not that interesting, though, since four different data layers are to be loaded. Therefore, there is nothing to be cached during recipe execution. Therefore the QueryProcessor will load all data layers from the referenced sources without storing any of them in the cache. \n", + "As you can see the FakeProcessor run resolves the references to the data layers as they are provided by looking up the entities' references in the mapping.json. Note, that in the current case the result is not that interesting, though, since four different data layers are to be loaded. Therefore, there is nothing to be cached during recipe execution. Therefore the QueryProcessor will load all data layers from the referenced sources without storing any of them in the cache. \n", "\n", - "As a user, however, you can directly initiate the entire caching workflow (preview & full resolution recipe execution) by setting the context parameter when calling `recipe.execute(..., cache_data = True)`. " + "As a user, however, you can directly initiate the entire caching workflow (preview & full resolution recipe execution) by setting the context parameter when calling `recipe.execute(..., cache_data = True)`. This is enabled by default." ] }, { @@ -196,7 +177,7 @@ "* the redundancy of the data references in the recipe, i.e. if layers are called multiple times loading them from cache will reduce the overall time significantly\n", "* the data source (EO data cube) from which they are loaded\n", "\n", - "Especially for the later it should be noted that in this demo only data loaded from a locally stored geotiff (i.e. the GeoTiffArchive layout) are analysed. This is sort of the worst case for demonstrating the benefits of caching since the data is stored locally and is therfore quickly accessible. Also geotiffs that are not stored in cloud-optimised format (CoGs) require to load the whole data into memory even when running in preview mode just to evaluate the sequence of data layers.\n", + "Especially for the later it should be noted that in this demo only data loaded from a locally stored geotiff (i.e. the GeoTiffArchive layout) are analysed. This is sort of the worst case for demonstrating the benefits of caching since the data is stored locally and is therfore quickly accessible.\n", "\n", "Consequently, you will observe that in almost all of the following cases, caching actually adds a small computational overhead. Keep in mind, however, that caching is designed for and particularly beneficial in case of STACCubes when loading data over the internet." ] @@ -217,7 +198,7 @@ " \"crs\": 3035, \n", " \"tz\": \"UTC\", \n", " \"spatial_resolution\": [-10, 10],\n", - " \"caching\": caching\n", + " \"cache_data\": caching\n", " }\n", " res = recipe.execute(**context)" ] @@ -248,7 +229,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "649 ms ± 14.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + "640 ms ± 3.41 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], @@ -267,7 +248,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "998 ms ± 5.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + "703 ms ± 18.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], @@ -300,7 +281,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "5.09 s ± 61.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + "5.28 s ± 72.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], @@ -319,7 +300,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "5.27 s ± 51.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + "5.51 s ± 106 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], @@ -352,7 +333,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "499 ms ± 5.31 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + "495 ms ± 7.52 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], @@ -371,7 +352,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "547 ms ± 4.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + "283 ms ± 1.64 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], @@ -385,139 +366,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The more expressive examples for the STACCube are provided below. Note that they can't be executed for now (as STACCube in currently still under dev and not yet merged in the main branch). The question if caching brings significant advantages when loading data from a well-indexed OpenDataCube stored on a quickly accessible hot storage, remains to be assessed. " - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "from pystac_client import Client\n", - "from shapely.geometry import box\n", - "from semantique.processor.core import QueryProcessor\n", - "import warnings\n", - "\n", - "# define temporal & spatial range to perform STAC query\n", - "xmin, ymin, xmax, ymax = 13.25,54.25,13.75,54.75\n", - "aoi = box(xmin, ymin, xmax, ymax)\n", - "t_range = [\"2020-07-15\", \"2020-09-01\"]\n", - "\n", - "# STAC-based metadata retrieval\n", - "import planetary_computer as pc\n", - "platform = \"Planet\"\n", - "catalog = Client.open(\n", - " \"https://planetarycomputer.microsoft.com/api/stac/v1\",\n", - " modifier=pc.sign_inplace,\n", - ")\n", - "query = catalog.search(\n", - " collections=\"sentinel-2-l2a\", \n", - " datetime=t_range, \n", - " limit=100, \n", - " intersects=aoi\n", - ")\n", - "item_coll = query.item_collection()\n", - "\n", - "# define datacube\n", - "with open(\"layout_planet.json\", \"r\") as file:\n", - " dc = sq.datacube.STACCube(\n", - " json.load(file), \n", - " src = item_coll,\n", - " dtype=\"int8\",\n", - " na_value=0,\n", - " )\n", - " \n", - "# define spatio-temporal context vars \n", - "res = 20\n", - "epsg = 3035\n", - "space = sq.SpatialExtent(gpd.GeoDataFrame(geometry=[aoi], crs = 4326))\n", - "time = sq.TemporalExtent(*t_range)\n", - "\n", - "# load mapping\n", - "with open(\"mapping.json\", \"r\") as file:\n", - " rules = json.load(file)\n", - "mapping = sq.mapping.Semantique(rules)\n", - "\n", - "# define recipe\n", - "recipe = sq.QueryRecipe()\n", - "recipe[\"green_map\"] = (\n", - " sq.entity(\"vegetation\")\n", - " .filter(sq.entity(\"cloud\").evaluate(\"not\"))\n", - " .reduce(\"percentage\", \"time\")\n", - ")\n", - "recipe[\"all_count\"] = (\n", - " sq.entity(\"all\")\n", - " .reduce(\"count\", \"time\")\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# normal execution (no caching/no preview)\n", - "context = {\n", - " \"datacube\": dc,\n", - " \"mapping\": mapping,\n", - " \"space\": space,\n", - " \"time\": time,\n", - " \"crs\": epsg,\n", - " \"tz\": \"UTC\",\n", - " \"spatial_resolution\": [-res, res]\n", - "}\n", - "\n", - "with warnings.catch_warnings():\n", - " warnings.simplefilter(\"ignore\", UserWarning)\n", - " response = recipe.execute(**context)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "# preview mode\n", - "context = {\n", - " \"datacube\": dc,\n", - " \"mapping\": mapping,\n", - " \"space\": space,\n", - " \"time\": time,\n", - " \"crs\": epsg,\n", - " \"tz\": \"UTC\",\n", - " \"spatial_resolution\": [-res, res],\n", - " \"preview\": True\n", - "}\n", - "\n", - "with warnings.catch_warnings():\n", - " warnings.simplefilter(\"ignore\", UserWarning)\n", - " response = recipe.execute(**context)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "# caching mode\n", - "context = {\n", - " \"datacube\": dc,\n", - " \"mapping\": mapping,\n", - " \"space\": space,\n", - " \"time\": time,\n", - " \"crs\": epsg,\n", - " \"tz\": \"UTC\",\n", - " \"spatial_resolution\": [-res, res],\n", - " \"caching\": True\n", - "}\n", - "\n", - "with warnings.catch_warnings():\n", - " warnings.simplefilter(\"ignore\", UserWarning)\n", - " response = recipe.execute(**context)" + "The more expressive examples for the STACCube are provided below. The question if caching brings significant advantages when loading data from a well-indexed OpenDataCube stored on a quickly accessible hot storage, remains to be assessed. " ] } ], @@ -537,7 +386,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.2" + "version": "3.10.1" } }, "nbformat": 4, diff --git a/demo/files/layout_stac.json b/demo/files/layout_stac.json index 879c78cf..29b3b718 100644 --- a/demo/files/layout_stac.json +++ b/demo/files/layout_stac.json @@ -10,7 +10,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." }, "s2_band02": { @@ -23,7 +23,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "role": "blue", "copyright": "Contains modified Copernicus data." }, @@ -37,7 +37,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "role": "green", "copyright": "Contains modified Copernicus data." }, @@ -51,7 +51,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "role": "red", "copyright": "Contains modified Copernicus data." }, @@ -65,7 +65,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." }, "s2_band06": { @@ -78,7 +78,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." }, "s2_band07": { @@ -91,7 +91,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." }, "s2_band08": { @@ -104,7 +104,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." }, "s2_band08A": { @@ -117,7 +117,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." }, "s2_band09": { @@ -130,7 +130,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." }, "s2_band11": { @@ -143,7 +143,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." }, "s2_band12": { @@ -156,7 +156,7 @@ "precision": 1 }, "dtype": "float32", - "na_vals": "NA", + "na_value": "NA", "copyright": "Contains modified Copernicus data." } }, @@ -228,7 +228,7 @@ } ], "dtype": "int8", - "na_vals": 0 + "na_value": 0 } } } \ No newline at end of file diff --git a/demo/processor.ipynb b/demo/processor.ipynb index 1fc712db..2e3112ce 100644 --- a/demo/processor.ipynb +++ b/demo/processor.ipynb @@ -31,7 +31,7 @@ "outputs": [], "source": [ "import semantique as sq\n", - "from semantique.processor.core import QueryProcessor" + "from semantique.processor.core import QueryProcessor, FakeProcessor" ] }, { @@ -569,7 +569,7 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "<xarray.DataArray 'index' (time: 2, y: 4, x: 4)>\n", + "<xarray.DataArray 'index' (time: 2, y: 4, x: 4)> Size: 256B\n", "array([[[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", @@ -580,18 +580,18 @@ " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.]]])\n", "Coordinates:\n", - " * time (time) datetime64[ns] 2019-01-01 2020-12-31\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " spatial_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", - " temporal_ref int64 0\n", + " * time (time) datetime64[ns] 16B 2019-01-01 2020-12-31\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " spatial_ref int32 4B 0\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", + " temporal_ref int32 4B 0\n", "Attributes:\n", " name: index\n", " long_name: index\n", " _FillValue: nan\n", " value_type: nominal\n", - " value_labels: {1: 'feature_1'}xarray.DataArray'index'time: 2y: 4x: 41.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0array([[[1., 1., 1., 1.],\n", + " value_labels: {1: 'feature_1'}xarray.DataArray'index'time: 2y: 4x: 41.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0array([[[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.]],\n", @@ -599,14 +599,14 @@ " [[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]]])Coordinates: (6)time(time)datetime64[ns]2019-01-01 2020-12-31value_type :datetimearray(['2019-01-01T00:00:00.000000000', '2020-12-31T00:00:00.000000000'],\n", - " dtype='datetime64[ns]')y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metrevalue_type :continuousresolution :-1500array([2696250., 2694750., 2693250., 2691750.])x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metrevalue_type :continuousresolution :1500array([4530750., 4532250., 4533750., 4535250.])spatial_ref()int640crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", + " [1., 1., 1., 1.]]])Coordinates: (6)time(time)datetime64[ns]2019-01-01 2020-12-31value_type :datetimearray(['2019-01-01T00:00:00.000000000', '2020-12-31T00:00:00.000000000'],\n", + " dtype='datetime64[ns]')y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metrevalue_type :continuousresolution :-1500array([2696250., 2694750., 2693250., 2691750.])x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metrevalue_type :continuousresolution :1500array([4530750., 4532250., 4533750., 4535250.])spatial_ref()int320crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]])temporal_ref()int640zone :UTCarray(0)Indexes: (3)yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))timePandasIndexPandasIndex(DatetimeIndex(['2019-01-01', '2020-12-31'], dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)name :indexlong_name :index_FillValue :nanvalue_type :nominalvalue_labels :{1: 'feature_1'}" + " [1., 1., 1., 1.]])temporal_ref()int320zone :UTCarray(0)Indexes: (3)yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))timePandasIndexPandasIndex(DatetimeIndex(['2019-01-01', '2020-12-31'], dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)name :indexlong_name :index_FillValue :nanvalue_type :nominalvalue_labels :{1: 'feature_1'}" ], "text/plain": [ - "\n", + " Size: 256B\n", "array([[[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", @@ -617,12 +617,12 @@ " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.]]])\n", "Coordinates:\n", - " * time (time) datetime64[ns] 2019-01-01 2020-12-31\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " spatial_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", - " temporal_ref int64 0\n", + " * time (time) datetime64[ns] 16B 2019-01-01 2020-12-31\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " spatial_ref int32 4B 0\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", + " temporal_ref int32 4B 0\n", "Attributes:\n", " name: index\n", " long_name: index\n", @@ -712,60 +712,60 @@ { "data": { "text/plain": [ - "{'blue_map': \n", + "{'blue_map': Size: 128B\n", " array([[1., 0., 0., 0.],\n", " [0., 0., 0., 1.],\n", " [1., 0., 1., 0.],\n", " [0., 0., 0., 0.]])\n", " Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", " Attributes:\n", " value_type: discrete,\n", - " 'green_map': \n", + " 'green_map': Size: 128B\n", " array([[1., 2., 1., 2.],\n", " [2., 2., 0., 1.],\n", " [1., 1., 0., 1.],\n", " [2., 0., 1., 2.]])\n", " Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", " Attributes:\n", " value_type: discrete,\n", - " 'blue_curve': \n", + " 'blue_curve': Size: 24B\n", " array([0., 1., 3.])\n", " Coordinates:\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-1...\n", - " temporal_ref int64 0\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 20...\n", " Attributes:\n", " value_type: discrete,\n", - " 'green_curve': \n", + " 'green_curve': Size: 24B\n", " array([ 0., 13., 6.])\n", " Coordinates:\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-1...\n", - " temporal_ref int64 0\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 20...\n", " Attributes:\n", " value_type: discrete,\n", - " 'blue_stat': \n", + " 'blue_stat': Size: 8B\n", " array(4.)\n", " Coordinates:\n", - " spatial_ref int64 0\n", - " temporal_ref int64 0\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", " Attributes:\n", " value_type: discrete,\n", - " 'green_stat': \n", + " 'green_stat': Size: 8B\n", " array(19.)\n", " Coordinates:\n", - " spatial_ref int64 0\n", - " temporal_ref int64 0\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", " Attributes:\n", " value_type: discrete}" ] @@ -1161,7 +1161,7 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "<xarray.DataArray 'vegetation' (time: 3, y: 4, x: 4)>\n", + "<xarray.DataArray 'vegetation' (time: 3, y: 4, x: 4)> Size: 384B\n", "array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", @@ -1177,18 +1177,18 @@ " [0., 0., 0., 0.],\n", " [1., 0., 0., 1.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", " add_offset: 0.0\n", " _FillValue: 1.7976931348623157e+308\n", - " value_type: binaryxarray.DataArray'vegetation'time: 3y: 4x: 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0array([[[0., 0., 0., 0.],\n", + " value_type: binaryxarray.DataArray'vegetation'time: 3y: 4x: 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.]],\n", @@ -1201,16 +1201,16 @@ " [[0., 1., 0., 1.],\n", " [1., 1., 0., 0.],\n", " [0., 0., 0., 0.],\n", - " [1., 0., 0., 1.]]])Coordinates: (6)x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :1500value_type :continuousarray([4530750., 4532250., 4533750., 4535250.])y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-1500value_type :continuousarray([2696250., 2694750., 2693250., 2691750.])spatial_ref()int640crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", - " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')temporal_ref()int640zone :UTCarray(0)spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", + " [1., 0., 0., 1.]]])Coordinates: (6)spatial_ref()int320crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :1500value_type :continuousarray([4530750., 4532250., 4533750., 4535250.])y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-1500value_type :continuousarray([2696250., 2694750., 2693250., 2691750.])temporal_ref()int320zone :UTCarray(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", + " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", + " [1., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", " '2020-12-19 10:17:34.610661'],\n", - " dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)AREA_OR_POINT :Areascale_factor :1.0add_offset :0.0_FillValue :1.7976931348623157e+308value_type :binary" + " dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)AREA_OR_POINT :Areascale_factor :1.0add_offset :0.0_FillValue :1.7976931348623157e+308value_type :binary" ], "text/plain": [ - "\n", + " Size: 384B\n", "array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", @@ -1226,12 +1226,12 @@ " [0., 0., 0., 0.],\n", " [1., 0., 0., 1.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", @@ -2165,7 +2165,7 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "<xarray.DataArray 'water' (time: 3, y: 4, x: 4)>\n", + "<xarray.DataArray 'water' (time: 3, y: 4, x: 4)> Size: 384B\n", "array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", @@ -2181,18 +2181,18 @@ " [1., 0., 0., 0.],\n", " [0., 0., 0., 0.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", " add_offset: 0.0\n", " _FillValue: 1.7976931348623157e+308\n", - " value_type: binaryxarray.DataArray'water'time: 3y: 4x: 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0array([[[0., 0., 0., 0.],\n", + " value_type: binaryxarray.DataArray'water'time: 3y: 4x: 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.]],\n", @@ -2205,16 +2205,16 @@ " [[1., 0., 0., 0.],\n", " [0., 0., 0., 1.],\n", " [1., 0., 0., 0.],\n", - " [0., 0., 0., 0.]]])Coordinates: (6)x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :1500value_type :continuousarray([4530750., 4532250., 4533750., 4535250.])y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-1500value_type :continuousarray([2696250., 2694750., 2693250., 2691750.])spatial_ref()int640crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", - " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')temporal_ref()int640zone :UTCarray(0)spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", + " [0., 0., 0., 0.]]])Coordinates: (6)spatial_ref()int320crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :1500value_type :continuousarray([4530750., 4532250., 4533750., 4535250.])y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-1500value_type :continuousarray([2696250., 2694750., 2693250., 2691750.])temporal_ref()int320zone :UTCarray(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", + " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", + " [1., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", " '2020-12-19 10:17:34.610661'],\n", - " dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)AREA_OR_POINT :Areascale_factor :1.0add_offset :0.0_FillValue :1.7976931348623157e+308value_type :binary" + " dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)AREA_OR_POINT :Areascale_factor :1.0add_offset :0.0_FillValue :1.7976931348623157e+308value_type :binary" ], "text/plain": [ - "\n", + " Size: 384B\n", "array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", @@ -2230,12 +2230,12 @@ " [1., 0., 0., 0.],\n", " [0., 0., 0., 0.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", @@ -2366,7 +2366,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\n", + " Size: 384B\n", "array([[[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", @@ -2382,12 +2382,12 @@ " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", @@ -2533,7 +2533,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\n", + " Size: 384B\n", "array([[[ 434., 530., 553., 856.],\n", " [ 499., 725., 291., 378.],\n", " [ 427., 530., 2690., 310.],\n", @@ -2549,12 +2549,12 @@ " [ 344., 724., 1085., 64.],\n", " [ 387., 1549., 556., 369.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " value_type: discrete\n" ] @@ -2683,12 +2683,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "\n", + " Size: 24B\n", "array([2.1983427e+08, 5.3802670e+07, 3.9970504e+07])\n", "Coordinates:\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-1...\n", - " temporal_ref int64 0\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 20...\n", "Attributes:\n", " value_type: continuous\n" ] @@ -2971,11 +2971,15 @@ "id": "d3481e84", "metadata": {}, "source": [ - "## Caching data layers\n", + "## Fake & Preview runs\n", + "\n", + "There are two options to execute a recipe in a simulated manner. \n", "\n", - "The query processor allows to cache retrieved data layers to reduce RAM memory requirements if the same data layer is referenced multiple times in the query recipe or the mapping. RAM memory requirements are proportional to the number of data layers that are stored as intermediate results. Caching data layers in RAM should only be done for those that are needed again when evaluating downstream parts of the recipe. This requires foresight about the execution order of the recipe, which accordingly requires a preview run preceding the actual execution. This preview run is performed by loading the data with drastically reduced spatial resolution (5x5 pixel grid). It resolves the data references and fills a cache by creating a list of the data references in the order in which they are evaluated. This list is then used dynamically during the actual execution of the recipe as a basis for keeping data layers in the cache and reading them from there if they are needed again.\n", + "The first one is a fake run as offered by the FakeProcessor class. Compared to the QueryProcessor all methods that actually process something such as loading data or applying functions to the data are muted by simply passing NaN-filled arrays around. Effectively, the result of calling FakeProcessor.execute() is therefore a recursive traversal of the recipe with resolution of the data references, which are stored in a cache object. This helps to...\n", + "* retrieve and inspect the data references in a recipe using a given mapping and layout.\n", + "* initialise caching mechanisms since data references are retrieved in the same order in which they will be evaluated using the QueryProcessor.\n", "\n", - "Below the result of the preview run is shown first to demonstrate what the resolved data references look like. You will see that the same data layer is referenced multiple times. The resulting initialised cache can then be fed as an argument to the QueryProcessor in a second step for the actual recipe execution. " + "Below the result of a FakeProcessor call is shown to demonstrate what the resolved data references look like. You will see that the same data layer is referenced multiple times in the recipe." ] }, { @@ -3001,30 +3005,107 @@ } ], "source": [ - "# Step I: preview run.\n", - "qp = QueryProcessor.parse(recipe, **{**context, \"preview\": True})\n", - "qp.optimize().execute()\n", - "qp.cache.seq" + "fp = FakeProcessor.parse(recipe, **context)\n", + "fp.optimize().execute()\n", + "fp.cache.seq" + ] + }, + { + "cell_type": "markdown", + "id": "49b0a63a", + "metadata": {}, + "source": [ + "The FakeProcessor offers an option to rapidly investigate data layer references for a given recipe. However, if one wants to check the executability of a recipe and the validity its results, actual data loading and processing is required. To this end, a preview run can be used, which will execute a recipe in a drastically reduced spatial resolution (5x5 grid). This reduced spatial resolution speeds up the recipe evaluation and thus allows a preliminary inspection of results before running the recipe at full resolution." ] }, { "cell_type": "code", "execution_count": 61, - "id": "61f3b0dd", + "id": "cf86d7ca", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'blue_map': Size: 200B\n", + " array([[0., 0., 0., 0., 0.],\n", + " [0., 1., 2., 0., 0.],\n", + " [1., 1., 1., 1., 0.],\n", + " [0., 0., 2., 1., 1.],\n", + " [0., 0., 0., 0., 0.]])\n", + " Coordinates:\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 40B 4.53e+06 4.532e+06 ... 4.534e+06 4.535e+06\n", + " * y (y) float64 40B 2.696e+06 2.695e+06 ... 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " spatial_feats (y, x) float64 200B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", + " Attributes:\n", + " value_type: discrete,\n", + " 'green_map': Size: 200B\n", + " array([[2., 1., 1., 1., 2.],\n", + " [2., 1., 0., 1., 1.],\n", + " [1., 1., 0., 0., 1.],\n", + " [2., 2., 0., 0., 1.],\n", + " [2., 2., 0., 1., 2.]])\n", + " Coordinates:\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 40B 4.53e+06 4.532e+06 ... 4.534e+06 4.535e+06\n", + " * y (y) float64 40B 2.696e+06 2.695e+06 ... 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " spatial_feats (y, x) float64 200B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", + " Attributes:\n", + " value_type: discrete,\n", + " 'blue_curve': Size: 24B\n", + " array([0., 5., 6.])\n", + " Coordinates:\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 20...\n", + " Attributes:\n", + " value_type: discrete,\n", + " 'green_curve': Size: 24B\n", + " array([ 2., 19., 6.])\n", + " Coordinates:\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 20...\n", + " Attributes:\n", + " value_type: discrete,\n", + " 'blue_stat': Size: 8B\n", + " array(11.)\n", + " Coordinates:\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", + " Attributes:\n", + " value_type: discrete,\n", + " 'green_stat': Size: 8B\n", + " array(27.)\n", + " Coordinates:\n", + " spatial_ref int32 4B 0\n", + " temporal_ref int32 4B 0\n", + " Attributes:\n", + " value_type: discrete}" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Step II: query processor execution.\n", - "qp = QueryProcessor.parse(recipe, **{**context, \"cache\": qp.cache})\n", - "response = qp.optimize().execute()" + "qp = QueryProcessor.parse(recipe, **{**context, \"preview\": True})\n", + "response = qp.optimize().execute()\n", + "response" ] }, { "cell_type": "markdown", - "id": "02461c73", + "id": "6383e056", "metadata": {}, "source": [ - "When executing a query recipe you can directly initiate the entire caching workflow (preview & full resolution recipe execution) by setting the \"cache_data\" argument to `True`:" + "## Caching data layers\n", + "\n", + "The query processor allows to cache retrieved data layers to reduce I/O times if the same data layer is referenced multiple times in the query recipe or the mapping. Caching data layers in RAM should only be done for those that are needed again when evaluating downstream parts of the recipe. This requires foresight about the execution order of the recipe, which accordingly requires a simulated run preceding the actual execution. This simulated run is performed by the FakeProcessor. It resolves the data references and fills a cache by creating a list of the data references in the order in which they are evaluated. This list is then used dynamically during the actual execution of the recipe as a basis for keeping data layers in the cache and reading them from there if they are needed again. When executing a query recipe, caching is enabled by default, i.e. the \"cache_data\" argument is set to `True`:" ] }, { @@ -3034,7 +3115,6 @@ "metadata": {}, "outputs": [], "source": [ - "# Same as above in a single step.\n", "response = recipe.execute(**{**context, \"cache_data\": True})" ] }, @@ -3043,13 +3123,12 @@ "id": "aca485b4", "metadata": {}, "source": [ - "Caching does not always lead to a increase in performance. The effect depends on:\n", + "Note that in some cases caching may lead to a decrease in performance. The effect depends on:\n", "\n", - "* The resolution in which the query recipe is executed.\n", "* The redundancy of the data references in the recipe, i.e. if layers are called multiple times loading them from cache will reduce the overall time significantly.\n", - "* The data source (EO data cube) from which they are retrieved.\n", + "* The data source (EO data cube) from which they are retrieved, i.e. the I/O times for accessing the data source.\n", "\n", - "It should be noted that in our demos only data loaded from locally stored GeoTIFF files are analysed. This is sort of the worst case for demonstrating the benefits of caching since the data is stored locally and is therefore quickly accessible. Also, GeoTIFF files that are not stored in cloud-optimised format (CoGs) require to load the whole data into memory even when running in preview mode just to evaluate the sequence of data layers. Keep in mind, however, that caching is designed for and particularly beneficial in case of STACCubes when loading data over the internet." + "It should be noted that in our demos only data loaded from locally stored GeoTIFF files are analysed. This is sort of the worst case for demonstrating the benefits of caching since the data is stored locally and is therefore quickly accessible. Keep in mind, however, that caching is designed for and particularly beneficial in case of STACCubes when loading data over the internet." ] }, { diff --git a/semantique/datacube.py b/semantique/datacube.py index 44bc8cec..3ffbb16e 100644 --- a/semantique/datacube.py +++ b/semantique/datacube.py @@ -6,6 +6,7 @@ import datetime import os import planetary_computer as pc +import pyproj import pytz import pystac import pystac_client @@ -18,6 +19,8 @@ from datacube.utils import masking from pystac_client.stac_api_io import StacApiIO from rasterio.errors import RasterioIOError +from shapely.geometry import box, shape +from shapely.ops import transform from urllib3 import Retry from semantique import exceptions @@ -901,11 +904,36 @@ def _load(self, metadata, extent): # retrieve layer specific information lyr_dtype, lyr_na = self._get_dtype_na(metadata) - # subset temporally - times = [np.datetime64(x.get_datetime().replace(tzinfo=None)) for x in self.src] + # subset temporally and spatially + if "spatial_feats" in extent.coords: + extent = extent.drop_vars("spatial_feats") t_bounds = extent.sq.tz_convert(self.tz).time.values - keep = (times >= t_bounds[0]) & (times < t_bounds[1]) - item_coll = [x for x, k in zip(self.src, keep) if k] + item_coll = STACCube.filter_spatio_temporal( + self.src, + extent.rio.bounds(), + epsg, + t_bounds[0], + t_bounds[1] + ) + + # subset according to layer key + filtered_items = [] + for item in item_coll: + has_no_key = True + has_conformant_key = False + for asset_key, asset in item.assets.items(): + if 'semantique:key' in asset.extra_fields: + has_no_key = False + asset_key = asset.extra_fields['semantique:key'] + ref_key = metadata['reference'] + if "_".join(asset_key) == "_".join(ref_key): + has_conformant_key = True + break + else: + continue + if has_no_key or has_conformant_key: + filtered_items.append(item) + item_coll = filtered_items # return extent array as NaN in case of no data if not len(item_coll): @@ -914,7 +942,7 @@ def _load(self, metadata, extent): # reauth if self.config["reauth_individual"]: - item_coll = self._sign_metadata(item_coll) + item_coll = STACCube._sign_metadata(item_coll) data = stackstac.stack( item_coll, @@ -936,13 +964,11 @@ def _load(self, metadata, extent): # convert datetimes to daily granularity - resample by day def _mosaic_ints(x, axis=0, na_value=np.nan): max_idx = np.argmax(x != na_value, axis=axis) - # handle cases where all values are na_value + grid_x, grid_y = np.ogrid[:x.shape[2], :x.shape[3]] + chosen = x[max_idx, 0, grid_x, grid_y] + na_array = np.full(chosen.shape, na_value, dtype=x.dtype) all_na = np.all(x == na_value, axis=axis) - chosen = np.choose(max_idx, x) - # where all values are na_value, fill with na_value, else use chosen value - return np.where( - all_na, np.full(chosen.shape, na_value, dtype=x.dtype), chosen - ) + return np.where(all_na, na_array, chosen) if self.config["group_by_solar_day"]: if len(data.time): @@ -950,11 +976,15 @@ def _mosaic_ints(x, axis=0, na_value=np.nan): if data.dtype.kind == "f": data = data.where(data != lyr_na) data = ( - data.groupby(days).first(skipna=True).rename({"floor": "time"}) + data + .groupby(days, squeeze=False) + .first(skipna=True) + .rename({"floor": "time"}) ) else: data = ( - data.groupby(days) + data + .groupby(days, squeeze=False) .reduce(_mosaic_ints, na_value=lyr_na) .rename({"floor": "time"}) ) @@ -1030,7 +1060,45 @@ def _mask(self, data, metadata): data = data.where(data["spatial_feats"].notnull()) return data - def _sign_metadata(self, items): + @staticmethod + def _divide_chunks(lst, k): + return [lst[i : i + k] for i in range(0, len(lst), k)] + + @staticmethod + def filter_spatio_temporal(item_collection, bbox, bbox_crs, start_datetime, end_datetime): + """ + Filter item collection by spatio-temporal extent. + + Args: + item_collection (pystac.ItemCollection): The item collection to filter. + bbox (tuple): The bounding box in WGS84 coordinates to filter by. + bbox_crs (str): The CRS of the bounding box. + start_datetime (np.datetime64): The start datetime to filter by. + end_datetime (np.datetime64): The end datetime to filter by. + """ + min_lon, min_lat, max_lon, max_lat = bbox + spatial_filter = box(min_lon, min_lat, max_lon, max_lat) + source_crs = pyproj.CRS("EPSG:4326") + target_crs = pyproj.CRS(bbox_crs) + transformer = ( + pyproj.Transformer + .from_crs(source_crs, target_crs, always_xy=True) + .transform + ) + filtered_items = [] + for item in item_collection: + item_geom = shape(item.geometry) + item_geom = transform(transformer, item_geom) + item_datetime = np.datetime64(item.datetime) + if not spatial_filter.intersects(item_geom): + continue + if not (start_datetime <= item_datetime < end_datetime): + continue + filtered_items.append(item) + return filtered_items + + @staticmethod + def _sign_metadata(items): # retrieve collections root & item ids roots = [x.get_root_link().href for x in items] # create dictionary grouped by collection @@ -1067,12 +1135,21 @@ def _sign_metadata(self, items): ids=[x.id for x in chunk], collections=[x.get_collection() for x in chunk], ) - updated_items.extend(list(item_search.items())) + for item in item_search.items(): + original_item = next( + (i for i in chunk if i.id == item.id), None + ) + if original_item is not None: + # create a deep copy of the original item + # aim: keep original attributes and assets + new_item = original_item.clone() + # imprinting of the updated hrefs with new tokens + for asset_key in item.assets: + if asset_key in new_item.assets: + new_href = item.assets[asset_key].href + new_item.assets[asset_key].href = new_href + updated_items.append(new_item) else: updated_items.extend(curr_colls[coll]["items"]) # return signed items - return pystac.ItemCollection(updated_items) - - @staticmethod - def _divide_chunks(lst, k): - return [lst[i : i + k] for i in range(0, len(lst), k)] \ No newline at end of file + return pystac.ItemCollection(updated_items) \ No newline at end of file diff --git a/semantique/mapping.py b/semantique/mapping.py index 47681092..cc93ba0c 100644 --- a/semantique/mapping.py +++ b/semantique/mapping.py @@ -1,7 +1,7 @@ from abc import abstractmethod from semantique import exceptions -from semantique.processor.core import QueryProcessor +from semantique.processor.core import QueryProcessor, FakeProcessor from semantique.processor.arrays import Collection from semantique.processor import reducers from semantique.visualiser.visualise import show @@ -106,7 +106,7 @@ def __init__(self, rules = None): super(Semantique, self).__init__(rules) def translate(self, *reference, property = None, extent, datacube, - eval_obj = None, **config): + eval_obj = None, processor=QueryProcessor, **config): """Translate a semantic concept reference into a semantic array. Parameters @@ -129,6 +129,10 @@ def translate(self, *reference, property = None, extent, datacube, eval_obj : :obj:`xarray.DataArray` The array to refer to when the mapping rules of the semantic concept contain processing chains that start with a self reference. + processor : :obj:`processor.core.QueryProcessor` + The processor class to be used for processing the query. By default + :obj:`processor.core.QueryProcessor` is used. Can be set to + :obj:`processor.core.FakeProcessor` to skip the processing. **config: Additional keyword arguments forwarded to the initializer of :obj:`processor.core.QueryProcessor`. @@ -142,7 +146,7 @@ def translate(self, *reference, property = None, extent, datacube, """ ruleset = self.lookup(*reference) - processor = QueryProcessor({}, datacube, self, extent, **config) + processor = processor({}, datacube, self, extent, **config) if eval_obj is not None: processor._set_eval_obj(eval_obj) if property is None: @@ -150,7 +154,10 @@ def translate(self, *reference, property = None, extent, datacube, if len(properties) == 1: out = properties[0] else: - out = Collection(properties).merge(reducers.all_) + out = Collection(properties).merge( + reducers.all_, + track_types=processor.track_types + ) else: try: property = ruleset[property] diff --git a/semantique/processor/arrays.py b/semantique/processor/arrays.py index 651f0dd2..caf703a0 100644 --- a/semantique/processor/arrays.py +++ b/semantique/processor/arrays.py @@ -447,7 +447,7 @@ def groupby(self, grouper, labels_as_names = True, **kwargs): if is_list: idx = pd.MultiIndex.from_arrays([x.data for x in grouper]) dim = grouper[0].dims - partition = list(obj.groupby(xr.IndexVariable(dim, idx))) + partition = list(obj.groupby(xr.IndexVariable(dim, idx), squeeze=False)) # Use value labels as group names if defined. if labels_as_names: labs = [x.sq.value_labels for x in grouper] @@ -464,7 +464,7 @@ def groupby(self, grouper, labels_as_names = True, **kwargs): else: groups = [i[1].rename(i[0]) for i in partition] else: - partition = list(obj.groupby(grouper[0])) + partition = list(obj.groupby(grouper[0], squeeze=False)) # Use value labels as group names if defined. if labels_as_names: labs = grouper[0].sq.value_labels @@ -493,7 +493,14 @@ def fix(x, y): out = Collection(groups) return out - def reduce(self, reducer, dimension = None, track_types = True, **kwargs): + def reduce( + self, + reducer, + dimension = None, + track_types = True, + keep_attrs = True, + **kwargs + ): """Apply the reduce verb to the array. The reduce verb reduces the dimensionality of an array. @@ -508,6 +515,9 @@ def reduce(self, reducer, dimension = None, track_types = True, **kwargs): track_types : :obj:`bool` Should the reducer promote the value type of the output object, based on the value type of the input object? + keep_attrs: :obj:`bool` + Should the variable's attributes (attrs) be copied from the + original object to the new one? **kwargs: Additional keyword arguments passed on to the reducer function. These should not include a keyword argument "dim", which is reserved for @@ -539,7 +549,7 @@ def reduce(self, reducer, dimension = None, track_types = True, **kwargs): ) kwargs["dim"] = dimension # Reduce. - out = reducer(obj, track_types = track_types, **kwargs) + out = reducer(obj, track_types = track_types, keep_attrs = keep_attrs, **kwargs) return out def shift(self, dimension, steps, **kwargs): @@ -1605,7 +1615,7 @@ def _merge_dups(obj): return Collection(dups).sq.merge(reducers.first_) else: return obj - groups = list(raw.groupby(dimension)) + groups = list(raw.groupby(dimension, squeeze=False)) clean = xr.concat([_merge_dups(x[1]) for x in groups], dimension) else: clean = raw diff --git a/semantique/processor/core.py b/semantique/processor/core.py index 1681f672..10a307e5 100644 --- a/semantique/processor/core.py +++ b/semantique/processor/core.py @@ -6,6 +6,7 @@ import pyproj import pytz import warnings +import xarray as xr from semantique import exceptions from semantique.processor import arrays, operators, reducers, values, utils @@ -427,13 +428,10 @@ def handle_layer(self, block): ) logger.debug(f"Retrieved layer {block['reference']}:\n{out}") # Update cache - if self._preview: - self._cache.build(block["reference"]) - else: - self._cache.update(layer_key, out) - logger.debug("Cache updated") - logger.debug(f"Sequence of layers: {self._cache._seq}") - logger.debug(f"Currently cached layers: {list(self._cache._data.keys())}") + self._cache.update(layer_key, out) + logger.debug("Cache updated") + logger.debug(f"Sequence of layers: {self._cache._seq}") + logger.debug(f"Currently cached layers: {list(self._cache._data.keys())}") return out def handle_result(self, block): @@ -1205,11 +1203,140 @@ def _reset_eval_obj(self): def _set_eval_obj(self, obj): self._eval_obj.append(obj) +class FakeProcessor(QueryProcessor): + """ + Worker that simulates the processing of a semantic query recipe. + It doesn't actually process the query, but can be used to translate concepts + and retrieve data layer names. + + Parameters + ---------- + recipe : QueryRecipe + The query recipe to be processed. + datacube : Datacube + The datacube instance to process the query against. + mapping : Mapping + The mapping instance to process the query against. + extent : :obj:`xarray.DataArray` + The spatio-temporal extent in which the query should be processed. Should + be given as an array with a temporal dimension and two spatial dimensions + such as returned by + :func:`parse_extent `. + custom_verbs : :obj:`dict`, optional + User-defined verbs that may be used when executing the query recipe in + addition to the built-in verbs in semantique. + custom_operators : :obj:`dict`, optional + User-defined operator functions that may be used when evaluating + expressions with the evaluate verb in addition to the built-in operators + in semantique. Built-in operators with the same name will be overwritten. + custom_reducers : :obj:`dict`, optional + User-defined reducer functions that may be used when reducing array + dimensions with the reduce verb in addition to the built-in reducers in + semantique. Built-in reducers with the same name will be overwritten. + track_types : :obj:`bool` + Should the query processor keep track of the value type of arrays + when applying processes, and promote them if necessary? This option is + always disabled for the FakeProcessor since it doesn't evaualte processes + and therefore can't check the validity of the types of the arrays. + preview : :obj:`bool` + Run the query processor with reduced resolution to test the recipe execution. + Preview-runs are necessary if cache should be used. + cache : :obj:`Cache` + The cache object that is used to store data layers. + """ + def __init__(self, recipe, datacube, mapping, extent, custom_verbs = None, + custom_operators = None, custom_reducers = None, + track_types = True, preview = False, cache = None): + super(FakeProcessor, self).__init__( + recipe, datacube, mapping, extent, custom_verbs=custom_verbs, + custom_operators=custom_operators, custom_reducers=custom_reducers, + track_types=track_types, preview=preview, cache=cache + ) + self.track_types = False + + def call_verb(self, name, params): + """Apply a verb to the active evaluation object. + + Parameters + ----------- + name : :obj:`str` + Name of the verb. + params : :obj:`dict` + Parameters to be forwarded to the verb. + + Returns + ------- + :obj:`xarray.DataArray` or :obj:`Collection ` + """ + return self._get_eval_obj() + + def handle_concept(self, block): + """Handler for semantic concept references. + + Parameters + ---------- + block : :obj:`dict` + Textual representation of a building block of type "concept". + + Returns + ------- + :obj:`xarray.DataArray` + + """ + logger.debug(f"Translating concept {block['reference']}") + out = self._mapping.translate( + *block["reference"], + property = block["property"] if "property" in block else None, + extent = self._extent, + datacube = self._datacube, + eval_obj = self._get_eval_obj(), + processor = FakeProcessor, + preview = self._preview, + cache = self._cache, + custom_verbs = self._custom_verbs, + custom_operators = self._custom_operators, + custom_reducers = self._custom_reducers, + track_types = self._track_types, + + ) + logger.debug(f"Translated concept {block['reference']}:\n{out}") + return out + + def handle_label(self, block): + """Handler for value labels. + + Parameters + ---------- + block : :obj:`dict` + Textual representation of a building block of type "label". + + Returns + ------- + :obj:None + """ + return None + + def handle_layer(self, block): + """Handler for data layer references. + + Parameters + ---------- + block : :obj:`dict` + Textual representation of a building block of type "layer". + + Returns + ------- + :obj:`xarray.DataArray` + """ + self._cache.build(block["reference"]) + return xr.full_like(self._extent, np.nan) + + class Cache: """Cache of retrieved data layers. The cache takes care of tracking the data references in their order of - evaluation and retaining data layers in RAM if they are still needed for + evaluation and retaining data layers in RAM if they are still needed for the further execution of the semantic query. """ diff --git a/semantique/recipe.py b/semantique/recipe.py index 9a4fb4a1..34d1d12a 100644 --- a/semantique/recipe.py +++ b/semantique/recipe.py @@ -1,4 +1,4 @@ -from semantique.processor.core import QueryProcessor +from semantique.processor.core import QueryProcessor, FakeProcessor from semantique.visualiser.visualise import show class QueryRecipe(dict): @@ -29,7 +29,7 @@ def __init__(self, results = None): super(QueryRecipe, self).__init__(obj) def execute(self, datacube, mapping, space, time, run_preview = False, - cache_data = False, **config): + cache_data = True, **config): """Execute a query recipe. This function initializes a :obj:`processor.core.QueryProcessor` instance @@ -47,15 +47,14 @@ def execute(self, datacube, mapping, space, time, run_preview = False, time : TemporalExtent The temporal extent in which the query should be processed. run_preview : :obj:`bool` - Should a preview run be performed before executing the query recipe as - specified? A preview run calls the query processor with reduced - resolution to test if the recipe execution succeeds. + Should a preview run with reduced spatial resolution be performed? + A preview run enables to test if the recipe execution succeeds + and allows to inspect the results. cache_data : :obj:`bool` Should the query processor cache the data references as provided by the mapped concepts? Enabling caching increases the memory footprint while - reducing the I/O time to retrieve data. Will be used only if the same - data layer is referenced multiple times. Caching requires a preview run - and will automatically set the preview parameter to :obj:`True`. + reducing the I/O time to retrieve data if the same data layer is + referenced multiple times. **config: Additional configuration parameters forwarded to :func:`QueryProcessor.parse `. @@ -84,23 +83,24 @@ def execute(self, datacube, mapping, space, time, run_preview = False, >>> recipe.execute(dc, mapping, space, time, **config) """ - if run_preview or cache_data: - # Preview run. - preview_config = config - preview_config["preview"] = True - preview_config["cache"] = None - qp = QueryProcessor.parse(self, datacube, mapping, space, time, **preview_config) - _ = qp.optimize().execute() - # Main run. - main_config = config - main_config["preview"] = False - main_config["cache"] = qp.cache if cache_data else None - qp = QueryProcessor.parse(self, datacube, mapping, space, time, **main_config) - return qp.optimize().execute() + if cache_data: + fp = FakeProcessor.parse(self, datacube, mapping, space, time, **config) + _ = fp.optimize().execute() + cache = fp.cache else: - # Execute the query recipe without a preview run. - qp = QueryProcessor.parse(self, datacube, mapping, space, time, **config) - return qp.optimize().execute() + cache = None + + qp = QueryProcessor.parse( + self, + datacube, + mapping, + space, + time, + preview=run_preview, + cache=cache, + **config + ) + return qp.optimize().execute() def visualise(self): """Visualise the recipe in a web browser. @@ -110,4 +110,4 @@ def visualise(self): editor. The recipe is converted into Blockly XML format and served to the browser. """ - show(self) \ No newline at end of file + show(self)
<xarray.DataArray 'scl' (time: 4, y: 500, x: 500)> Size: 4MB\n", "array([[[9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", @@ -1661,18 +1691,18 @@ " [6., 6., 6., ..., 6., 6., 6.],\n", " [6., 6., 6., ..., 6., 6., 6.]]], dtype=float32)\n", "Coordinates:\n", - " * x (x) float64 -2.749 -2.748 -2.748 ... -2.252 -2.252 -2.25\n", - " * y (y) float64 47.75 47.75 47.75 47.75 ... 47.25 47.25 47.25\n", - " temporal_ref int32 0\n", - " * time (time) datetime64[ns] 2020-07-15 2020-07-20 ... 2020-07-30\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " * x (x) float64 4kB -2.749 -2.748 -2.748 ... -2.252 -2.252 -2.25\n", + " * y (y) float64 4kB 47.75 47.75 47.75 47.75 ... 47.25 47.25 47.25\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 32B 2020-07-15 ... 2020-07-30\n", + " spatial_feats (y, x) float64 2MB 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " spec: RasterSpec(epsg=4326, bounds=(-2.75, 47.25, -2.25, 47.75),...\n", " crs: epsg:4326\n", " transform: | 0.00, 0.00,-2.75|\\n| 0.00,-0.00, 47.75|\\n| 0.00, 0.00, 1...\n", " resolution: 0.001\n", " value_type: ordinal\n", - " value_labels: {0: 'mask', 1: 'saturated', 2: 'dark', 3: 'shadow', 4: 've...
array([[[9., 9., 9., ..., 9., 9., 9.],\n", + " value_labels: {0: 'mask', 1: 'saturated', 2: 'dark', 3: 'shadow', 4: 've...
array([[[9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", " [9., 9., 9., ..., 9., 9., 9.],\n", " ...,\n", @@ -1702,15 +1732,15 @@ " ...,\n", " [6., 6., 6., ..., 6., 6., 6.],\n", " [6., 6., 6., ..., 6., 6., 6.],\n", - " [6., 6., 6., ..., 6., 6., 6.]]], dtype=float32)
array([-2.7495, -2.7485, -2.7475, ..., -2.2525, -2.2515, -2.2505])
array([47.7495, 47.7485, 47.7475, ..., 47.2525, 47.2515, 47.2505])
array(['2020-07-15T00:00:00.000000000', '2020-07-20T00:00:00.000000000',\n", + " [6., 6., 6., ..., 6., 6., 6.]]], dtype=float32)
array(['2020-07-15T00:00:00.000000000', '2020-07-20T00:00:00.000000000',\n", " '2020-07-25T00:00:00.000000000', '2020-07-30T00:00:00.000000000'],\n", - " dtype='datetime64[ns]')
array([[1., 1., 1., ..., 1., 1., 1.],\n", + " dtype='datetime64[ns]')
PandasIndex(Index([ -2.7495, -2.7485, -2.7475,\n", + " [1., 1., 1., ..., 1., 1., 1.]])
PandasIndex(Index([ -2.7495, -2.7485, -2.7475,\n", " -2.7464999999999997, -2.7455, -2.7445,\n", " -2.7435, -2.7424999999999997, -2.7415,\n", " -2.7405,\n", @@ -1719,7 +1749,7 @@ " -2.2565, -2.2554999999999996, -2.2544999999999997,\n", " -2.2535, -2.2525, -2.2515,\n", " -2.2504999999999997],\n", - " dtype='float64', name='x', length=500))
PandasIndex(Index([ 47.7495, 47.7485, 47.747499999999995,\n", + " dtype='float64', name='x', length=500))
PandasIndex(Index([ 47.7495, 47.7485, 47.747499999999995,\n", " 47.7465, 47.7455, 47.744499999999995,\n", " 47.7435, 47.7425, 47.741499999999995,\n", " 47.7405,\n", @@ -1728,12 +1758,12 @@ " 47.256499999999996, 47.2555, 47.2545,\n", " 47.253499999999995, 47.2525, 47.2515,\n", " 47.250499999999995],\n", - " dtype='float64', name='y', length=500))
PandasIndex(DatetimeIndex(['2020-07-15', '2020-07-20', '2020-07-25', '2020-07-30'], dtype='datetime64[ns]', name='time', freq=None))
<xarray.DataArray 'index' (time: 2, y: 4, x: 4)>\n", + "<xarray.DataArray 'index' (time: 2, y: 4, x: 4)> Size: 256B\n", "array([[[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", @@ -580,18 +580,18 @@ " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.]]])\n", "Coordinates:\n", - " * time (time) datetime64[ns] 2019-01-01 2020-12-31\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " spatial_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", - " temporal_ref int64 0\n", + " * time (time) datetime64[ns] 16B 2019-01-01 2020-12-31\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " spatial_ref int32 4B 0\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", + " temporal_ref int32 4B 0\n", "Attributes:\n", " name: index\n", " long_name: index\n", " _FillValue: nan\n", " value_type: nominal\n", - " value_labels: {1: 'feature_1'}xarray.DataArray'index'time: 2y: 4x: 41.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0array([[[1., 1., 1., 1.],\n", + " value_labels: {1: 'feature_1'}xarray.DataArray'index'time: 2y: 4x: 41.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0array([[[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.]],\n", @@ -599,14 +599,14 @@ " [[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]]])Coordinates: (6)time(time)datetime64[ns]2019-01-01 2020-12-31value_type :datetimearray(['2019-01-01T00:00:00.000000000', '2020-12-31T00:00:00.000000000'],\n", - " dtype='datetime64[ns]')y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metrevalue_type :continuousresolution :-1500array([2696250., 2694750., 2693250., 2691750.])x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metrevalue_type :continuousresolution :1500array([4530750., 4532250., 4533750., 4535250.])spatial_ref()int640crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", + " [1., 1., 1., 1.]]])Coordinates: (6)time(time)datetime64[ns]2019-01-01 2020-12-31value_type :datetimearray(['2019-01-01T00:00:00.000000000', '2020-12-31T00:00:00.000000000'],\n", + " dtype='datetime64[ns]')y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metrevalue_type :continuousresolution :-1500array([2696250., 2694750., 2693250., 2691750.])x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metrevalue_type :continuousresolution :1500array([4530750., 4532250., 4533750., 4535250.])spatial_ref()int320crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]])temporal_ref()int640zone :UTCarray(0)Indexes: (3)yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))timePandasIndexPandasIndex(DatetimeIndex(['2019-01-01', '2020-12-31'], dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)name :indexlong_name :index_FillValue :nanvalue_type :nominalvalue_labels :{1: 'feature_1'}" + " [1., 1., 1., 1.]])temporal_ref()int320zone :UTCarray(0)
<xarray.DataArray 'index' (time: 2, y: 4, x: 4)> Size: 256B\n", "array([[[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", @@ -580,18 +580,18 @@ " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.]]])\n", "Coordinates:\n", - " * time (time) datetime64[ns] 2019-01-01 2020-12-31\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " spatial_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", - " temporal_ref int64 0\n", + " * time (time) datetime64[ns] 16B 2019-01-01 2020-12-31\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " spatial_ref int32 4B 0\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", + " temporal_ref int32 4B 0\n", "Attributes:\n", " name: index\n", " long_name: index\n", " _FillValue: nan\n", " value_type: nominal\n", - " value_labels: {1: 'feature_1'}
array([[[1., 1., 1., 1.],\n", + " value_labels: {1: 'feature_1'}
array([[[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.]],\n", @@ -599,14 +599,14 @@ " [[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]]])
array(['2019-01-01T00:00:00.000000000', '2020-12-31T00:00:00.000000000'],\n", - " dtype='datetime64[ns]')
array([2696250., 2694750., 2693250., 2691750.])
array([4530750., 4532250., 4533750., 4535250.])
array([[1., 1., 1., 1.],\n", + " [1., 1., 1., 1.]]])
array(['2019-01-01T00:00:00.000000000', '2020-12-31T00:00:00.000000000'],\n", + " dtype='datetime64[ns]')
array([[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]])
PandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))
PandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))
PandasIndex(DatetimeIndex(['2019-01-01', '2020-12-31'], dtype='datetime64[ns]', name='time', freq=None))
<xarray.DataArray 'vegetation' (time: 3, y: 4, x: 4)>\n", + "<xarray.DataArray 'vegetation' (time: 3, y: 4, x: 4)> Size: 384B\n", "array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", @@ -1177,18 +1177,18 @@ " [0., 0., 0., 0.],\n", " [1., 0., 0., 1.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", " add_offset: 0.0\n", " _FillValue: 1.7976931348623157e+308\n", - " value_type: binaryxarray.DataArray'vegetation'time: 3y: 4x: 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0array([[[0., 0., 0., 0.],\n", + " value_type: binaryxarray.DataArray'vegetation'time: 3y: 4x: 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.]],\n", @@ -1201,16 +1201,16 @@ " [[0., 1., 0., 1.],\n", " [1., 1., 0., 0.],\n", " [0., 0., 0., 0.],\n", - " [1., 0., 0., 1.]]])Coordinates: (6)x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :1500value_type :continuousarray([4530750., 4532250., 4533750., 4535250.])y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-1500value_type :continuousarray([2696250., 2694750., 2693250., 2691750.])spatial_ref()int640crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", - " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')temporal_ref()int640zone :UTCarray(0)spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", + " [1., 0., 0., 1.]]])Coordinates: (6)spatial_ref()int320crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :1500value_type :continuousarray([4530750., 4532250., 4533750., 4535250.])y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-1500value_type :continuousarray([2696250., 2694750., 2693250., 2691750.])temporal_ref()int320zone :UTCarray(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", + " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", + " [1., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", " '2020-12-19 10:17:34.610661'],\n", - " dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)AREA_OR_POINT :Areascale_factor :1.0add_offset :0.0_FillValue :1.7976931348623157e+308value_type :binary" + " dtype='datetime64[ns]', name='time', freq=None))
<xarray.DataArray 'vegetation' (time: 3, y: 4, x: 4)> Size: 384B\n", "array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", @@ -1177,18 +1177,18 @@ " [0., 0., 0., 0.],\n", " [1., 0., 0., 1.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", " add_offset: 0.0\n", " _FillValue: 1.7976931348623157e+308\n", - " value_type: binary
array([[[0., 0., 0., 0.],\n", + " value_type: binary
array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.]],\n", @@ -1201,16 +1201,16 @@ " [[0., 1., 0., 1.],\n", " [1., 1., 0., 0.],\n", " [0., 0., 0., 0.],\n", - " [1., 0., 0., 1.]]])
array([[1., 1., 1., 1.],\n", + " [1., 0., 0., 1.]]])
PandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", + " [1., 1., 1., 1.]])
<xarray.DataArray 'water' (time: 3, y: 4, x: 4)>\n", + "<xarray.DataArray 'water' (time: 3, y: 4, x: 4)> Size: 384B\n", "array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", @@ -2181,18 +2181,18 @@ " [1., 0., 0., 0.],\n", " [0., 0., 0., 0.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", " add_offset: 0.0\n", " _FillValue: 1.7976931348623157e+308\n", - " value_type: binaryxarray.DataArray'water'time: 3y: 4x: 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0array([[[0., 0., 0., 0.],\n", + " value_type: binaryxarray.DataArray'water'time: 3y: 4x: 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.]],\n", @@ -2205,16 +2205,16 @@ " [[1., 0., 0., 0.],\n", " [0., 0., 0., 1.],\n", " [1., 0., 0., 0.],\n", - " [0., 0., 0., 0.]]])Coordinates: (6)x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :1500value_type :continuousarray([4530750., 4532250., 4533750., 4535250.])y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-1500value_type :continuousarray([2696250., 2694750., 2693250., 2691750.])spatial_ref()int640crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", - " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')temporal_ref()int640zone :UTCarray(0)spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", + " [0., 0., 0., 0.]]])Coordinates: (6)spatial_ref()int320crs_wkt :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]semi_major_axis :6378137.0semi_minor_axis :6356752.314140356inverse_flattening :298.257222101reference_ellipsoid_name :GRS 1980longitude_of_prime_meridian :0.0prime_meridian_name :Greenwichgeographic_crs_name :ETRS89horizontal_datum_name :European Terrestrial Reference System 1989projected_crs_name :ETRS89-extended / LAEA Europegrid_mapping_name :lambert_azimuthal_equal_arealatitude_of_projection_origin :52.0longitude_of_projection_origin :10.0false_easting :4321000.0false_northing :3210000.0spatial_ref :PROJCS["ETRS89-extended / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Northing",NORTH],AXIS["Easting",EAST],AUTHORITY["EPSG","3035"]]GeoTransform :4530000.0 1500.0 0.0 2697000.0 0.0 -1500.0array(0)x(x)float644.531e+06 4.532e+06 ... 4.535e+06axis :Xlong_name :x coordinate of projectionstandard_name :projection_x_coordinateunits :metreresolution :1500value_type :continuousarray([4530750., 4532250., 4533750., 4535250.])y(y)float642.696e+06 2.695e+06 ... 2.692e+06axis :Ylong_name :y coordinate of projectionstandard_name :projection_y_coordinateunits :metreresolution :-1500value_type :continuousarray([2696250., 2694750., 2693250., 2691750.])temporal_ref()int320zone :UTCarray(0)time(time)datetime64[ns]2019-12-15T10:17:33.408715 ... 2...value_type :datetimearray(['2019-12-15T10:17:33.408715000', '2020-09-05T10:17:43.167942000',\n", + " '2020-12-19T10:17:34.610661000'], dtype='datetime64[ns]')spatial_feats(y, x)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0value_type :nominalvalue_labels :{1: 'feature_1'}array([[1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", " [1., 1., 1., 1.],\n", - " [1., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", + " [1., 1., 1., 1.]])Indexes: (3)xPandasIndexPandasIndex(Index([4530750.0, 4532250.0, 4533750.0, 4535250.0], dtype='float64', name='x'))yPandasIndexPandasIndex(Index([2696250.0, 2694750.0, 2693250.0, 2691750.0], dtype='float64', name='y'))timePandasIndexPandasIndex(DatetimeIndex(['2019-12-15 10:17:33.408715', '2020-09-05 10:17:43.167942',\n", " '2020-12-19 10:17:34.610661'],\n", - " dtype='datetime64[ns]', name='time', freq=None))Attributes: (5)AREA_OR_POINT :Areascale_factor :1.0add_offset :0.0_FillValue :1.7976931348623157e+308value_type :binary" + " dtype='datetime64[ns]', name='time', freq=None))
<xarray.DataArray 'water' (time: 3, y: 4, x: 4)> Size: 384B\n", "array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", @@ -2181,18 +2181,18 @@ " [1., 0., 0., 0.],\n", " [0., 0., 0., 0.]]])\n", "Coordinates:\n", - " * x (x) float64 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", - " * y (y) float64 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", - " spatial_ref int64 0\n", - " * time (time) datetime64[ns] 2019-12-15T10:17:33.408715 ... 2020-...\n", - " temporal_ref int64 0\n", - " spatial_feats (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0\n", + " spatial_ref int32 4B 0\n", + " * x (x) float64 32B 4.531e+06 4.532e+06 4.534e+06 4.535e+06\n", + " * y (y) float64 32B 2.696e+06 2.695e+06 2.693e+06 2.692e+06\n", + " temporal_ref int32 4B 0\n", + " * time (time) datetime64[ns] 24B 2019-12-15T10:17:33.408715 ... 2...\n", + " spatial_feats (y, x) float64 128B 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0\n", "Attributes:\n", " AREA_OR_POINT: Area\n", " scale_factor: 1.0\n", " add_offset: 0.0\n", " _FillValue: 1.7976931348623157e+308\n", - " value_type: binary
array([[[0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.],\n", " [0., 0., 0., 0.]],\n", @@ -2205,16 +2205,16 @@ " [[1., 0., 0., 0.],\n", " [0., 0., 0., 1.],\n", " [1., 0., 0., 0.],\n", - " [0., 0., 0., 0.]]])
array([[1., 1., 1., 1.],\n", + " [0., 0., 0., 0.]]])