Skip to content

0.10.2

Compare
Choose a tag to compare
@forman forman released this 16 Mar 15:29

Changes in 0.10.2

Enhancements

  • Added new module xcube.core.subsampling for function
    subsample_dataset(dataset, step) that is now used by default
    to generate the datasets level of multi-level datasets.

  • Added new setting Authentication.IsRequired to the xcube serve
    configuration. If set to true, xcube Server will reject unauthorized
    dataset requests by returning HTTP code 401.

  • For authorized clients, the xcube Web API provided by xcube serve
    now allows granted scopes to contain wildcard characters *, **,
    and ?. This is useful to give access to groups of datasets, e.g.
    the scope read:dataset:*/S2-*.zarr permits access to any Zarr
    dataset in a subdirectory of the configured data stores and
    whose name starts with "S2-". (#632)

  • xcube serve used to shut down with an error message
    if it encountered datasets it could not open. New behaviour
    is to emit a warning and ignore such datasets. (#630)

  • Introduced helper function add_spatial_ref()
    of package xcube.core.gridmapping.cfconv that allows
    adding a spatial coordinate reference system to an existing
    Zarr dataset. (#629)

  • Support for multi-level datasets has been improved:

    • Introduced new parameters for writing multi-level datasets with the
      "file", "s3", and "memory" data stores (#617). They are
      • base_dataset_id: If given, the base dataset will be linked only
        with the value of base_dataset_id, instead of being copied as-is.
        This can save large amounts of storage space.
      • tile_size: If given, it forces the spatial dimensions to be
        chunked accordingly. tile_size can be a positive integer
        or a pair of positive integers.
      • num_levels: If given, restricts the number of resolution levels
        to the given value. Must be a positive integer to be effective.
    • Added a new example notebook
      5_multi_level_datasets.ipynb
      that demonstrates writing and opening multi-level datasets with the
      xcube filesystem data stores.
    • Specified xcube Multi-Resolution Datasets
      definition and format.
  • xcube gen2 returns more expressive error messages.

Fixes

  • Fixed problem where the dataset levels of multi-level datasets were
    written without spatial coordinate reference system. In fact,
    only spatial variables were written. (#646)

  • Fixed problem where xcube Server instances that required
    user authentication published datasets and variables for
    unauthorised users.

  • Fixed FsDataAccessor.write_data() implementations,
    which now always return the passed in data_id. (#623)

  • Fixes an issue where some datasets seemed to be shifted in the
    y-(latitude-) direction and were misplaced on maps whose tiles
    are served by xcube serve. Images with ascending y-values are
    now tiled correctly. (#626)

Other

  • The xcube level CLI tool has been rewritten from scratch to make use
    of xcube filesystem data stores. (#617)

  • Deprecated numerous classes and functions around multi-level datasets.
    The non-deprecated functions and classes of xcube.core.mldataset should
    be used instead along with the xcube filesystem data stores for
    multi-level dataset i/o. (#516)

    • Deprecated all functions of the xcube.core.level module
      • compute_levels()
      • read_levels()
      • write_levels()
    • Deprecated numerous classes and functions of the xcube.core.mldataset
      module
      • FileStorageMultiLevelDataset
      • ObjectStorageMultiLevelDataset
      • open_ml_dataset()
      • open_ml_dataset_from_object_storage()
      • open_ml_dataset_from_local_fs()
      • write_levels()
  • Added packages python-blosc and lz4 to the xcube Python environment
    for better support of Dask distributed and the Dask service
    Coiled.

  • Replace the dependency on the rfc3339-validator PyPI package with a
    dependency on its recently created conda-forge package.

  • Remove unneeded dependency on the no longer used strict-rfc3339 package.

Full Changelog: v0.10.1...v0.10.2