Releases: opendatacube/datacube-core
1.8.6
1.8.5
Datacube v1.8.4
v1.8.4 (6 August 2021)
- Removed example and contributed notebooks from the repository. Better notebook examples exist
- Removed datacube_apps, as these are not used and not maintained
- Add
cloud_cover
to EO3 metadata - Add
erosion
functionality to Virtual products'ApplyMask
to supplement existingdilation
functionality #1049 - Fix numeric precision issues in
compute_reproject_roi
when pixel size is small #1047 - Follow up fix to #1047 to round scale to nearest integer if very close
- Add support for 3D Datasets #1099
- New feature: search by URI from the command line
datacube dataset uri-search
- Added new "license" and "description" properties to
DatasetType
to enable easier access to product information #1143 #1144 - Revised the
Datacube.list_products
function to produce a simpler and more useful product list table #1145 - Refactor docs, making them more up to date and simpler #1137 #1128
- Add new
dataset_predicate
param todc.load
anddc.find_datasets
for more flexible temporal filtering (e.g. loading data for non-contiguous time ranges such as specific months or seasons over multiple years) #1148 #1156 - Fix to
GroupBy
to ensure output output axes are correctly labelled when sorting observations usingsort_key
#1157 GroupBy
is now its own class to allow easier custom grouping and sorting of data #1157- add support for IAM authentication for RDS databases in AWS #1168
1.8.3
- More efficient band alias handling
- More documentation cleanups
- Bug fixes in
datacube.utils.aws
, credentials handling whenAWS_UNSIGNED
is set - Product definition can now optionally include per-band scaling factors
- Fix issue where new updated columns aren't created on a fresh database
- Fix bug around adding updated columns locking up active databases
1.8.2
1.8.1
Summary
This release contains mostly bug fixes an documentation improvements.
Full List of Changes
- Added an updated column for trigger based tracking of database row updates in PostgreSQL. (#951)
- Changes to the writer driver API. The driver is now responsible for constructing output URIs from user configuration. (#960)
- Added a
datacube.utils.geometry.assign_crs
method for better interoperability with other libraries (#967) - Better interoperability with xarray - the
xarray.Dataset.to_netcdf
function should work again (#972, #976) - Add support for unsigned access to public S3 resources from CLI apps (#976)
- Usability fixes for indexing EO3 datasets (#958)
- Fix CLI initialisation of the Dask Distributed Executor (#974)
1.8.0
Summary
Lot's of changes since the 1.7 release.
The two primary changes that are most likely to have backward compatibility issues are:
- The internal details of how we store geo-registration information on xarray Datasets returned by
dc.load
have changed in a significant way (#837, #899). - We no longer use GDAL native Python bindings (
osgeo.{ogr,osr}
) and instead rely onpyproj
andshapely
as a backend forGeometry
andCRS
classes (#880).
We no longer store CRS as an object (datacube.utils.geometry.CRS
) in an attribute dictionary of the DataArray
, instead it is stored in a string format (WKT) in an attribute of a special spatial_ref
coordinate. This change allows us to better interface with xarray
IO libraries. One can now write data loaded by dc.load
with xr.to_netcdf(..)
directly and load back with xr.open_dataset(..)
, all while maintaining geo-registration information (i.e. .geobox
property).
Also, since CRS information is now stored on the Coordinate, and not on the DataArray
itself, it survives a greater variety of mathematical operations. Attributes on the DataArray
would often go missing when doing the most basic of operations, like changing dtype
of the loaded data, now CRS metadata is preserved in the majority of the cases.
Moving away from the native GDAL Python bindings is primarily motivated by the complexity of the installation of gdal
python library. Both shapely
and pyproj
that replaced it, offer binary wheels, and are therefore much simpler to install.
Changes since 1.8.0rc1
- Expanded EO3 support
- Bug fixes in EO3 handling
- Cleanup in docs
- Better compatibility with other libraries for
CRS
construction - Removed ancient db migration code
Full List of Changes
- Changed geo-registration mechanics for arrays returned by
dc.load
- Migrate geometry and CRS backends from
osgeo.ogr
andosgeo.osr
toshapely
andpyproj
respectively - Fixes for geometries crossing anti meridian
- EO3 dataset metadata format is now understood by
datacube dataset add
- New virtual product combinator
reproject
for on-the-fly reprojection of rasters - Enhancements to the
expressions
transformation in virtual products - Support
/vsi**
style paths for dataset locations - Remove old Search Expressions and replace with a simpler implementation based on Lark Parser
- Remove no longer required PyPEG2 dependency
- Change development version numbers generation. Use
setuptools_scm
instead ofversioneer
- Deprecated
datacube.helpers.write_geotiff
, usedatacube.utils.cog.write_cog
for similar functionality - Deprecated
datacube.storage.masking
, moved todatacube.utils.masking
- Remove S3AIO driver
- Removed migration support from datacube releases before 1.1.5.
If you still run a datacube before 1.1.5 (from 2016 or older), you will need to update it
using ODC 1.7 first, before coming to 1.8.
1.8.0rc1
Summary
Lot's of changes since the 1.7 release.
The two primary changes that are most likely to have backward compatibility issues are:
- The internal details of how we store geo-registration information on xarray Datasets returned by
dc.load
have changed in a significant way (#837, #899). - We no longer use GDAL native Python bindings (
osgeo.{ogr,osr}
) and instead rely onpyproj
andshapely
as a backend forGeometry
andCRS
classes (#880).
We no longer store CRS as an object (datacube.utils.geometry.CRS
) in an attribute dictionary of the DataArray
, instead it is stored in a string format (WKT) in an attribute of a special spatial_ref
coordinate. This change allows us to better interface with xarray
IO libraries. One can now write data loaded by dc.load
with xr.to_netcdf(..)
directly and load back with xr.open_dataset(..)
, all while maintaining geo-registration information (i.e. .geobox
property).
Also, since CRS information is now stored on the Coordinate, and not on the DataArray
itself, it survives a greater variety of mathematical operations. Attributes on the DataArray
would often go missing when doing the most basic of operations, like changing dtype
of the loaded data, now CRS metadata is preserved in the majority of the cases.
Moving away from the native GDAL Python bindings is primarily motivated by the complexity of the installation of gdal
python library. Both shapely
and pyproj
that replaced it, offer binary wheels, and are therefore much simpler to install.
Full List of Changes
- Changed geo-registration mechanics for arrays returned by
dc.load
- Migrate geometry and CRS backends from
osgeo.ogr
andosgeo.osr
toshapely
andpyproj
respectively - Fixes for geometries crossing anti meridian
- EO3 dataset metadata format is now understood by
datacube dataset add
- New virtual product combinator
reproject
for on-the-fly reprojection of rasters - Enhancements to the
expressions
transformation in virtual products - Support
/vsi**
style paths for dataset locations - Remove old Search Expressions and replace with a simpler implementation based on Lark Parser
- Remove no longer required PyPEG2 dependency
- Change development version numbers generation. Use
setuptools_scm
instead ofversioneer
- Deprecated
datacube.helpers.write_geotiff
, usedatacube.utils.cog.write_cog
for similar functionality - Deprecated
datacube.storage.masking
, moved todatacube.utils.masking
- Remove S3AIO driver
1.8.0b6
Summary
Lot's of changes since the 1.7 release.
The two primary changes that are most likely to have backward compatibility issues are:
- The internal details of how we store geo-registration information on xarray Datasets returned by
dc.load
have changed in a significant way (#837, #899). - We no longer use GDAL native Python bindings (
osgeo.{ogr,osr}
) and instead rely onpyproj
andshapely
as a backend forGeometry
andCRS
classes (#880).
We no longer store CRS as an object (datacube.utils.geometry.CRS
) in an attribute dictionary of the DataArray
, instead it is stored in a string format (WKT) in an attribute of a special spatial_ref
coordinate. This change allows us to better interface with xarray
IO libraries. One can now write data loaded by dc.load
with xr.to_netcdf(..)
directly and load back with xr.open_dataset(..)
, all while maintaining geo-registration information (i.e. .geobox
property).
Also, since CRS information is now stored on the Coordinate, and not on the DataArray
itself, it survives a greater variety of mathematical operations. Attributes on the DataArray
would often go missing when doing the most basic of operations, like changing dtype
of the loaded data, now CRS metadata is preserved in the majority of the cases.
Moving away from the native GDAL Python bindings is primarily motivated by the complexity of the installation of gdal
python library. Both shapely
and pyproj
that replaced it, offer binary wheels, and are therefore much simpler to install.
Full List of Changes
- Changed geo-registration mechanics for arrays returned by
dc.load
- Migrate geometry and CRS backends from
osgeo.ogr
andosgeo.osr
toshapely
andpyproj
respectively - New virtual product combinator
reproject
for on-the-fly reprojection of rasters - Enhancements to the
expressions
transformation in virtual products - Support
/vsi**
style paths for dataset locations - Remove old Search Expressions and replace with a simpler implementation based on Lark Parser
- Remove no longer required PyPEG2 dependency
- Change development version numbers generation. Use
setuptools_scm
instead ofversioneer
- Deprecated
datacube.helpers.write_geotiff
, usedatacube.utils.cog.write_cog
for similar functionality - Deprecated
datacube.storage.masking
, moved todatacube.utils.masking
- Remove S3AIO driver
1.8.0b5
Testing release process, please ignore this one.