-
Added a feature to allow a user to pass processing keyword arguments (
processing_kwargs) for cubes configuration. (#114) -
Fixed an issue related to an unsupported Sentinel Hub endpoint on CDSE that provided band metadata (e.g., for describe_data()). As the used endpoint turned out to be experimental, both stores (sentinel-hub and sentinelhub-cdse) now use default metadata, defined in metadata.py. Additional metadata was added for S1GRD (#121).
-
Renamed main branch from
mastertomain. -
Added a data store (
sentinelhub-cdse) for the Sentinel Hub instance on CDSE with preconfigured auth and API endpoints. (#112) -
Fixed bugs related to collection id which caused BYOC request to fail. The collection id are now assigned to
typenot underdata filterduring request and abyoc-prefix is automatically added depending on user input (#117)
-
Migrated to Sentinel Hub Catalog API 1.0. (#108)
Thanks to @chorng for PR.
-
Deprecated
api_urlparameter in favour ofinstance_url, that specifies the URL of the SentinelHub service instance. It defaults tohttps://services.sentinel-hub.com. For example, to use the SentinelHub instance on CDSE setinstance_url="https://sh.dataspace.copernicus.eu". (#107) -
Updated or introduced other parameters that override specific Sentinel Hub API endpoints:
oauth2_urlprocess_urlcatalog_urlconfiguration_urlcollection_url
-
Error messages now contain error details from Sentinel Hub API. (#100)
-
Removed deprecated
instance_idparameter. -
Deprecated command-line tool
xcube sh_cli. -
Deprecated utility module
xcube_sh.viewer.
- Added cloud mask variables
CLMandCLPto datasets of typeS2L2A. See Cloud Masks on SentinelHub. - Reformatted code base using black.
- Updated copyright headers
- Fixed a bug which caused that, when the
four_dparameter was set to true when opening a dataset, the data of the bands of the resulting cubes could not be accessed. (#101)
- Added support for Landsat-4,5 Level-2 (
"LTML2") and Landsat 7 Level-2 ("LETML2") collections available through the endpointapi_url="https://services-uswest2.sentinel-hub.com". - Adapted to work with Python 3.10
- Fixed default
time_toleranceused whentime_periodis None. It is now correctly set to ten minutes.
- Fixed problem with that some parameters that were listed as result from
get_open_data_params_schemacaused a TypeError. Removeddataset_namefromopen_params_schema(was redundant due todata_id) and added support for parametersmosaicking_period,upsampling,downsampling, andvariable_fill_values. (#94)
- Fixed Landsat radiance/reflectance bands to have
sample type
FLOAT32by default, wasUNIT16. (#89) - Avoid having
wavelength: NaNvalues in band metadata attributes. - Implemented performance optimizations for use of datasets in xcube server. (#88)
- The open parameter
variable_namesin thesentinelhubdata store
is now optional. - Fixed some import statements to be compatible with Python 3.10.
-
If requesting a non-geographic target projection, spatial reference information is now provided in a CF-compliant way. (#85)
-
Now logging when a new Sentinel Hub access token is fetched. Also logging non-recoverable errors when accessing data.
- Avoiding
TokenExpiredErrorthat occurred after requesting tiles from Sentinel Hub after more than 1h. (#49)
-
Added header
SH-Tag: xcube-shto SH API requests. (#80) -
Sometimes a
requests.exceptions.ChunkedEncodingErrorwas raised when a large number of data cube tiles were requested concurrently. The error occurred in cases where the Sentinel Hub server was no longer able to stream response data. The problem has been mitigated by
applying the same retry strategy as for "normal" HTTP error codes. -
Changed spelling
SENTINEL HubintoSentinel Hubin docs and logs.
-
It is now possible accessing BYOC/BYOD and DEM datasets without providing the
time_periodcube configuration parameter. In case such a dataset has no associated time information,
we assume a single time step (size of dimensiontimeis one) and assign the query time range to this time step. (#75, #67, #35) -
The cube configuration parameter
band_namescan now be omitted also for BYOC collections. In this case, the returned data cube will contain all available using their native sample types. (#76) -
Introduced a new cube configuration parameter
band_fill_valuesthat can be used to specify the fill value (= no-data value) for either all bands if given as a scalar numbers or for individual bands, if given as list or tuple of numbers. (#34)
- Added resampling parameters to cube configuration (#66) and
made
"NEAREST"the default forupsamplinganddownsampling(was"BILINEAR"):upsampling: str = "NEAREST" # or "BILINEAR", "BICUBIC" downsampling: str = "NEAREST" # or "BILINEAR", "BICUBIC" mosaicking_order: str = "mostRecent" # or "leastRecent", "leastCC"
- Warnings saying
RuntimeWarning: Failed to open Zarr store with consolidated metadata...are now silenced. (#69) - The xcube
sentinelhubdata store now correctly retrieves available dataset time ranges from Sentinel Hub catalog (#70)
- Version 0.9 now requires xcube 0.9 because of incompatible API changes
in the xcube data store framework. However, most user code should not
be affected. - If the requested CRS is not geographic, the returned dataset will
now contain a variable named
crswhose attributes encode the dataset's spatial CRS in a CF-compliant way. (#64) - Providing a
collection_idand omittingtime_periodinCubeConfigraised a confusing exception. We now provide a better problem description. (#35) - Added two new constructor parameters to
SentinelHubclass that override default SH API URLs derived from endpoint URL api_url:catalog_url: Overrides default SH process API URL.process_url: Overrides default SH catalog API URL.
- Fixed coordinate transformation into geographic CRS e.g. EPSG 4326. In this case (lon, lat) pairs were expected, but (lat, lon) pairs were received. (#60)
- Now supporting Landsat-8 Level-1 (
"LOTL1") and Level-2 ("LOTL2") collections (#53, thanks @maximlamare for PR #54) - Now works for
bboxcoordinates using a CRS other than CRS84, WGS84, EPSG:4326. (#55) - Provided xcube data store framework interface compatibility with breaking changes in xcube 0.8.0 (see xcube-dev/xcube#420).
- Fixed a bug that occurred when writing datasets obtained from Sentinel Hub to NetCDF file.
In this case an error
TypeError: Invalid value for attr 'processing_level': None must be a number, a string, an ndarray or a list/tuple of numbers/strings for serialization to netCDF fileswas raised. (#44) - Cube configuration parameter
time_rangeacceptsNoneas start and end date values. For example, iftime_range=[None,'2021-02-01']is provided, then the start date is '1970-01-01'; iftime_range=['2021-02-01', None]is provided, then the end date is the current date (today). - Changed the cube configuration parameter
crs(spatial coordinate reference system) so users can pass"WGS84","CRS84"or"EPSG:{code}", where{code}is an EPSG code e.g."EPSG:4326". The old URI notation is still supported, e.g."http://www.opengis.net/def/crs/EPSG/0/4326". - Fixed a bug that caused all band attributes to be included in each band's attributes. This resulted in three times larger JSON metadata exports.
- Fixed a bug in coordinate metadata: value of latitude
long_nameattribute should be"latitude"(thanks to Matthew Fung / @mattfung). - Implemented error handling policy when Sentinel Hub API returns an HTTP error status
for a requested data chunk (#39).
Behaviour is controlled by the
error_policyargument:- for value
"fail", aSentinelHubErroris raised with complete error information; - for value
"warn", a warning is issued with complete error information, and a fill-value chunk is generated.
- for value
- Removed module
xcube_sh.geodbentirely. Also delete example notebookDemo1-xcube-sh.ipynbas it referred to the removed package. Its other content is covered by remaining notebooks.
-
Fixed problem with the encoding of a dataset's coordinate variables that occurs when using
xcube_xhwith xcube 0.6.1. (#27) -
Fixed issue with
crsparameter in cube configuration. Ifcrs='http://www.opengis.net/def/crs/OGC/1.3/CRS84'was used,x,ycoordinate variables where produced instead of expectedlon,lat. (#26)
-
Fixed following issues regarding datasets' band metadata:
- Renamed misspelled band attribute
bandwithintobandwidth. - Values of band attributes
wavelengthandbandwidth, if any, are now always numeric. For Sentinel A and B datasets, values ofwavelengthandbandwidthare averages. Individual wavelengths and bandwidths for Sentinel A and B, if any, are available in attributeswavelength_a,wavelength_bandbandwidth_a,bandwidth_b.
- Renamed misspelled band attribute
-
Removed outdated module
xcube_sh.geodb, removed unusedgeodbfolder, and added a deprecation notice in NotebookEx4-DCFS-GeoDB.ipynb.
-
Enhanced band metadata and added flag encodings for Sentinel-3 OCLI L1B datasets. Additional band metadata and flag encodings for Sentinel-3 SLSTR L1B datasets will follow soon.
-
Now using Sentinel Hub's Catalogue API instead of the WFS (#14)
- to determine actual observations within given bounding box and time range;
- to determine time range of available data collections.
-
The keyword argument
instance_idof theSentinelHubandSentinelHubStoreconstructors has been deprecated. It is no longer required
Note, this version has been accidentally released as v0.5.0.
- Documented store open parameters. Store open parameter
variable_namesand
CubeConfigparameterband_namesmay now beNone. In this case all variables/bands are included. (#12) CubeConfignow accepts parameterbboxinstead of parametergeometry.geometryis currently deprecated, but may be supported again later. It may then also be a WKT Geometry string or GeoJSON object. (#4)xcube-shnow implements the newxcube.core.store.DataStoreinterface.- Fixed
KeyErrorexception when opening cube from dataset "DEM".
- Added support for BYOD (#1): To utilize, create new
CubeConfigwithdataset_name="CUSTOM"and provide value for new keyword argumentcollection_id. - Added
CubeConfigparameterband_sample_typewhich may be one of"INT8","INT16","UINT8","UINT16","FLOAT32","FLOAT64"or a sequence of those. (#2) - If
CubeConfig.time_periodis not given, we now use the SentinelHub WFS to identify overpass time of scenes that intersect the given bounding box byCubeConfig.bbox. (#3) - Renamed
xcube-dcfstoxcube-sh. Made thexcube-shenvironment dependent onxcube.SentinelhubStorenow inherits fromxcube.api.CubeStore. (#4) - Added class SentinelOAuth2Session to allow proper pickling of the oauth session
- The
ViewerServerconstructor will now try killing any running server on same port number, before a new server instance is started. Style parsing has been fixed. Settingserver_url=Nonewill make it default tohttp://localhost:8080.
Initial version for ESA Demo 1.