All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add a retry strategy for the EarthDaily client.
bbox
for datacube has been fixed.
prefer_alternate
is set by default todownload
in datacube is order to have presigned url.
buffer_meters
is available in thedatacube.ed.zonal_stats
function.
bbox
argument in datacube has been restored.
intersects
in search now requests the bbox in order to optimize the request. The items
intersects
computation now uses only the geometry field in order to avoid json parsing error.
EarthDataStore
now supports a json dict in config.mask_with
from datacube supports nowauto
parameters. It will ask first the cloudmask ML, then is not available the ag_cloudmask, and at last the native one.
zonal_stats
smart_load
is replaced withlazy_load
to be more consistant with other libraries.
zonal_stats
now uses homemadenumpy
method.smart_load
is set to default when using accessor. It loads the maximum of time (time dimension) in memory in order to speed up the process. Statistics method (min, max...) must by specified in thereducers
argument.- default
EDS_API_URL
from https://api.eds.earthdaily.com/archive/v1/stac/v1 to https://api.earthdaily.com/platform/v1/stac
- New method to connect to earthdatastore via
earthdaily.EarthDataStore()
earthdaily.EarthDataStore()
method also supports toml/json.- command line
copy-earthdaily-credentials-template
request_payer
boolean inEarthDataStore
method.
sentinel-1-grd
datacube wasn't generated due to a dot in the asset name.
- Fix odc-stac to version <= 0.3.9 due to error in auto chunks.
search
is now parallelized using datetime.
datacube
mask_with
parameters supports nowcloud_mask
(cnn cloudmask from EDA).
- items
Datetime
are automatically converted in nanoseconds. - AssetMapper is now also in the search part for only requesting the needed assets.
- datacube cloud masked when using
groupby_date
.
- accessors are now more compatible for dataarray and dataset.
ed.clip
accessor now manages first bounding box then clip geometry to be faster.- New whittaker function that is about 20 times faster. Beware, lambda from previous whittaker must be multiplied by 10 000 to have same results.
- Better management of mixing several cloud cover a same day to ensure highest clear coverage.
- Better management of cloud mask and error messages.
groupby_date
is now performed after processing the cloudmask in order to ensure a better compatibility.
- type str/list for
datacube
mask_with
kwarg.
- unit tests for mask.
mask_with
now supports list. If so, if the first mask type is not available for a collection, it will switch to the second mask.
- Wrong clear_percent/clear_pixels when having multiple geometries in datacube request
properties
of datacube is now a boolean or a list, not None by default.- Missing crs after whittaker.
- Scaled/asset when duplicated datetimes.
- Chunks asked in datacube are not the same as the output (due du smallest dims).
- Autoconverting list/dict coords to string for zarr compatibility
- Issue when having different time size between sensor and cloudmask.
- Issue with time when resample between datacube and cloudmask datacube.
ag_cloud_mask_items
queries items per batch.
GeoSeries
supported in GeometryManager.ed.sel_nearest_dates
accessor avoid duplicated times.- Issue when managing multiple indices with accessor
xr.ed
. - Issue when same datetime when rescaling dataset.
mode
for zonal stats inoperations.reducers
.
ag_cloud_mask_items
queries items per batch.
- Typing decorator, expected new typing library.
_typer
with kwargs to other functions.
_typer
supports custom types.
zonal_stats
outputs only valid geometries. SetTrue
. toraise_missing_geometry
to have the old behavior.zonal_stats
with geocube now managesall_touched
.
- some issues with
_typer
from accessor. zonal_stats
manages index independently from row.
ed.whittaker
adapted from pywapor github.ed.zonal_stats
using newgeocube
zonal_stats engine.
zonal_stats
now usesgeocube
as default processing method.
ed.plot_index
deprecated, useed.plot_band
instead.
_typer
has a better args management.available_indices
returns only indices that can be computed.
- better management of
col_wrap
ined
xarray accessor.
- some bugs in xarray
ed
accessor.
- xarray
ed
accessor.
to_wkt
for GeometryManager.
- Add docstring thanks to @piclem.
- Token support thanks to @luisageo6.
groupby_date=None
is also transferred tomask_with
.mask_with="native"
also works when no assets is given.clear_cover
is greater or equal (and not anymore greater).
properties
parameters for datacube creation.
collections
from datacube now supports in args.
- Modify dims attributs to sizes for xarray.
- Ability to query assets in the search items.
- Missing json due to pypi installation.
- Multisensors datacube now support
stackstac
.
- Auth datacube
earthdaily.earthdatastore.Auth().datacube(...)
function now manages multiple collections. - Uses
fields
to query only assets asked over Skyfox/EDS (better performance).
asset_mapper
has now all assets from available collections.
- Optimization (dask-native) for cloudmasks (Sentinel-2, Venus, ag-cloud-mask), except Landsat.
- Default chunks using odc is now
x="auto"
andy="auto"
. geobox
orgeopolygon
is used to have a preclipped datacube to the bounding box of the geometry. It enhances performances.
- Load json config for
Auth
. - Remove kwargs of
geobox
for native cloudmask in order to parse newgeobox
.
- Tests for python 3.12.
- handle cross calibration (harmonization) using private collection.
Auth
automatically to EarhtDataStore after 3600 seconds.Auth
now supports presign_urls parameter.load_pivot_corumba
in datasets.
- Perfect dimension compatibility between cloudmask and sensor datacube using
geobox
. - Force loading native landsat cloudmask because not compatible with dask.
- issue with unlogged datacube and non-geodataframe intersects.
- for element84 sentinel-2-l2a collection,
boa_offset_applied
is set to True since 2022-02-28. - added
nir
band inboa_offset_applied
control. - fix percentage in landsat agriculture cloudmask .
- fix bug in
setup.py
using gh actions.
intersects
argument in search/datacube now supports wkt/geojson/geopandas.common_band_names
default set to True in datacube creation. It uses the new Assets Mapper in order to define to best suitable bands according to user needs.clear_cover
argument in the datacube method when using theearthdatastore.Auth
method.datasets.load_pivot()
to load a GeoDataFrame of a pivot in Nebraska (alternates between corn or soy between years).preload_mask
in authenticated datacube method set toTrue
by default to load, if enough virtual memory.- Several tests to check and validate code.
- Better performances for cloud mask statistics by checking data type.
- masks statistics are not anymore suffixed with the cloudmask type :
clear_percent
andclear_pixels
. Warns with a DeprecationWarning. - all queries in
post_query
must return True to keep the item. If a key doesn't exist, considers the result as False (instead of failling). - default chunks are now
x=512
andy=512
for odc-stac.
- search
post_query
do not block if some properties are not available on all items. - some scale/offsets were not supported due to missing scale/offsets from previous assets.
- issues when computing datacube using Landsat cloudmask (
qa_pixel
). intersects
now supports several geometries and don't force selection on the first index.
- When asking
ag_cloud_mask
, keep only sensor items that haveeda:ag_cloud_mask_available=True
.
earthdaily.earthdatastore.cube_utils.zonal_stats_numpy
to compute local statistics using numpy functions. Best when high number of geometries.
zonal_stats
default parameters rasterizes now whole vector in order to be really faster faster. Previous behavior is available by selectingmethod="standard"
.
- Fix when number of
ag_cloud_mask
is lower than number of sensor items
- Add
stats
name as dimension
zonal_stats
output "feature" (not "feature_name") andstats
dimensions
- Automatic presigned url when needed, just specify argument
prefer_alternate="download"
in search. zonal_stats
function available inearthdatastore.cube_utils
module.- An exemple on how to use
.env
credentials.
- Python version must be at least 3.10.
- Gdal version must be at least 3.7.0.
- A better documentation.
- First public release under the name of earthdaily.
- module earthdatastore gathers all cube fonctions.
- earthdatastore.Auth() allows methods for search and datacube creation.
- Add if missing default scale/offset factor to collection (landsat-c2l2-sr, landsat-c2l2-st, landsat-c2l1).