Releases: opendatacube/eo-datasets
0.21.0
- Added USGS level 2 product support to eo3-prepare
0.20.1
- Added 'deafrica' option in naming conventions
- Improved error message for duplicate measurement names in product validation
0.20.0
Assembler Improvments
Custom product names
You can now set your own product_name
to bypass the automatic name generation.
with DatasetAssembler(out) as p:
p.datetime = datetime(2019, 7, 4, 13, 7, 5)
p.product_name = "loch_ness_sightings"
...
Multiple-platforms
Multiple platforms are now allowed to be stored as a list of comma-separated values.
(and a p.platforms
convenience property exists for accessing it as a sequence.)
>>> # Set multiple platforms
>>> p.platforms == ["landsat-5", "landsat-7"]
>>> # Or (identically):
>>> p.platform = 'landsat-5,landsat-7'
>>> # Access them using either method:
>>> p.platforms
{"landsat-5", "landsat-7"}
>>> p.platform
'landsat-5,landsat-7'
They are normalised individually using our existing platform normalisation (lowercase etc), and maintained sorted automatically (so that comparison and matching between values is always stable).
Validator improvements
You can now run eo3-validate
on directories and it will validate all ODC files inside.
Examples:
# Validate a folder of products:
eo3-validate /path/to/my-products
# Validate all datasets against a product
eo3-validate /some/product.yaml /tmp/all-my-datasets
# Validate everything found inside the current folder(s)
eo3-validate .
# Validate a dataset *thoroughly* (opening its image files to check they match)
eo3-validate --thorough /some/product.odc-product.yaml /some/dataset.odc-metadata.yaml
Other improvements to eo3-validate
.
- Added warning for missing product license field (required for Stac and strongly encouraged now for ODC)
- Added warning for non-standard file suffixes (
*.odc-product.yaml
etc) - Catch schema violations that will make the product fail to index into ODC.
- Fixed false warnings in product->dataset nodata comparison (when "thorough" is enabled).
- It now supports all ODC file types (datasets, products, metadata-types)
Product preparation
- Further improvements to S2 preparation in
eo3-prepare
0.19.3
Minor fixes.
- When validating ODC products with
eo3-validate
, a duplicate measurement alias is no longer considered an error when both are within the same measurement. This tripped up a few old products we don't wish to update, and is not technically an issue. - Improved consistency between ESA and Sinergise S2 inputs in
eo3-prepare
metadata preparation, and updated GA's S2 ARD to match. Many minor fixes to them. - Fixed deprecation warnings from some dependencies (jsonschema, numpy).
0.19.2
0.19.1
0.19
Easier product creation
eo3-validate
is now more useful for writing product config.
Give it a product and dataset(s) document, and it will check they match each-other, in addition to the validation checks already performed.
Eg.
❯ eo3-validate ard_s2.odc-product.yaml ga_s2am_ard_3-2-0_53JQJ_2020-10-31_final.odc-metadata.yaml
E duplicate_measurement_name Name 'nbart_band07' is used more than once in a measurement name or alias.
(Hint: Seen in nbart_red_edge_3)
W extra_measurements Dataset has measurements not present in product definition for 'ga_s2am_ard_3': nbar_nir_1
(Hint: This may be valid, as it's allowed by ODC. Set `expect_extra_measurements` to mute this.)
failure: 1 error, 1 warning
(#140)
Assembler improvements
Note lineage without source metadata
Added a method to add lineage directly as IDs, rather than reading the whole source document:
p.note_source_datasets(
# Classifier
'level1',
# Any number of ids
'ca705033-0fc4-4f38-a47e-f425dfb4d0c7',
'3781e90f-b677-40af-9439-b40f6e4dfadd',
)
The downside of using raw IDs is that Assembler cannot help you inherit metadata properties.
(#140)
GQA and fmask fields are now inheritable by default
(#144)
Packagers
- Fixes to USGS L1 C2 preparation (#145)
- Many improvements and fixes to S2 Level 1 metadata preparation (#146)
- Further improvements to S2 ARD preparation, including linking to provenance from S2 Level1 (#146)
Docker improvements
Many improvements to the Docker config for eodatasets. Better caching, faster development, stable builds. (#143)
0.18
Assembler Improvements
- Improved grid name generation for eo3 documents.
It can now name grids by resolution, or if nothing else works, alphabetically (grid 'a', grid 'b' etc). This was desired because Sentinel has a more diverse set of grids. - The
.properties
on assembler now implement the full PythonMutableMapping
type, so you can use all expected dict methods on it:
p.properties.update(other_dict)
(property normalisation and validation will still be performed, of course)
- Expanded the built-in list of known "producer" organisations, known properties, and inherited Stac properties (primarily for Sentinel 2).
- The "unknown property" warning message will now give users a filled-out github issue template to report unknown properties for Assembler. We hope people will.
- Performance improvement: avoid reading image data when we don't need to calculate bounds (thanks @kieranricardo!)
- Fixed some incorrect "property override" warnings produced by Assembler when the normalised values match.
- Minor improvements, clarifications to docs
Packaging Updates
- Added support for USGS C2 L1 data to
eo3-prepare
(thanks @dunkgray!) - Added initial support for Sentinel 2 Level 1 for both Synergise and ESA metadata to
eo3-prepare
(thanks @ohehir!) (the chosen metadata properties may not yet be finalised.) - ...and initial packaging for Sentinel 2 GA ARD in
eo3-package-wagl
. (the chosen metadata properties and package may not yet be finalised.)
Misc / Repository Improvements
- Expanded static checking to be more draconian and opinionated (but delightful).
- Implemented tighter security recommendations from the static checkers, such as moving packaging scripts to use a more limited XML parser (defusedxml).
0.17.1
Dependency fix: remove the hard requirement on rasterio's minimum version.
(We added this to fix a test-runner issue in the previous release, but it is not required by eodatasets code itself, so should not be a hard requirement.)