Skip to content

0.9.0.dev1

Pre-release
Pre-release
Compare
Choose a tag to compare
@dzelge dzelge released this 06 Sep 09:47
954a6ed

Changes in 0.9.0 (in development)

New features

  • The implementations of the default data stores s3, directory,
    and memory have been replaced entirely by a new implementation
    that utilize the fsspec
    Python package. The preliminary filesystem-based data stores
    are now s3, file, and memory. All share a common implementations
    and tests. Others filesystem-based data stores can be added easily
    and will follow soon, for example hdfs.
    All filesystem-based data stores now support xarray
    datasets (type xarray.Dataset) in Zarr and NetCDF format as
    well as image pyramids (typexcube.core.multilevel.MultiLevelDataset)
    using a Zarr-based multi-level format. (#446)

  • Several changes became necessary on the xcube Generator
    package xcube.core.gen2 and CLI xcube gen2.
    They are mostly not backward compatible:

    • The only supported way to instantiate cube generators is the
      CubeGenerator.new() factory method.
    • CubeGenerator.generate_cube() and CubeGenerator.get_cube_info()
      both now receive the request object that has formerly been passed
      to the generator constructors.
    • The CubeGenerator.generate_cube() method now returns a
      CubeGeneratorResult object rather than a simple string
      (the written data_id).
    • Empty cubes are no longer written, a warning status is
      generated instead.
    • The xcube gen2 CLI xcube gen2 has a new option --output RESULT
      to write the result to a JSON file. If it is omitted,
      the CLI will dump the result as JSON to stdout.
  • Numerous breaking changes have been applied to this version
    in order to address generic resampling (#391), to support other
    CRS than WGS-84 (#112), and to move from the struct data cube
    specification to a more relaxed cube convention (#488):

    • The following components have been removed entirely
      • module xcube.core.imgeom with class ImageGeom
      • module xcube.core.geocoding with class GeoCoding
      • module xcube.core.reproject and all its functions
    • The following components have been added
      • module xcube.core.gridmapping with new class GridMapping
        is a CF compliant replacement for classes ImageGeom and GeoCoding
    • The following components have changed in an incompatible way:
      • Functionxcube.core.rectify.rectify_dataset() now uses
        source_gm: GridMapping and target_gm: GridMapping instead of
        geo_coding: GeoCoding and output_geom: ImageGeom.
      • Functionxcube.core.gen.iproc.InputProcessor.process() now uses
        source_gm: GridMapping and target_gm: GridMapping instead of
        geo_coding: GeoCoding and output_geom: ImageGeom.
    • xcube no longer depends on GDAL (at least not directly).
  • A dataset's cube subset and its grid mapping can now be accessed through
    the xcube property of xarray.Dataset instances. This feature requires
    importing the xcube.core.xarraypackage. Let dataset be an
    instance of xarray.Dataset, then

    • dataset.xcube.cube is a xarray.Dataset that contains all cube
      variables of dataset, namely the ones with dimensions
      ("time", [...,], y_dim_name, x_dim_name), where y_dim_name,
      x_dim_name are determined by the dataset's grid mapping.
      May be empty, if dataset has no cube variables.
    • dataset.xcube.gm is a xcube.core.gridmapping.GridMapping that
      describes the CF-compliant grid mapping of dataset.
      May be None, if dataset does not define a grid mapping.
    • dataset.xcube.non_cube is a xarray.Dataset that contains all
      variables of dataset that are not in dataset.xcube.cube.
      May be same as dataset, if dataset.xcube.cube is empty.

Other

  • xcube now issues a warning, if a data cube is opened from object
    storage, and credentials have neither been passed nor can be found,
    and the object storage has been opened with the default anon=False. (#412)
  • xcube no longer internally caches directory listings, which prevents
    the situation where a data cube that has recently been written into object
    storage cannot be found.
  • Removed example notebooks that used hard-coded local file paths. (#400)
  • Added a GitHub action that will run xcube unit tests, and build and
    push Docker images. The version tag of the image is either latest when
    the master changed or equals the release tag.
  • Removed warning module 'xcube_xyz' looks like an xcube-plugin but lacks a callable named 'init_plugin.
  • Fixed an issue where xcube serve provided wrong layer source options for
    OpenLayers XYZ
    when latitude coordinates where increasing with the coordinate index. (#251)
  • Updated plugin version in docker image to:
    • XCUBE_SH_VERSION=0.9.0.dev0
    • XCUBE_CCI_VERSION=0.9.0.dev0
    • XCUBE_CDS_VERSION=0.9.0