Skip to content

Releases: xcube-dev/xcube

1.8.2

31 Jan 14:45
7e882a7
Compare
Choose a tag to compare

Changes in 1.8.2

  • Bundled xcube Viewer 1.4.1 with fixes regarding the share feature.

  • No longer logging a TypeError if xcube server's GET viewer/ext/contributions is called without any viewer extensions configured. (#1116)

1.8.1

27 Jan 14:09
Compare
Choose a tag to compare

Resolved an issue where the resample_in_space function no longer worked with irregular grid mappings, such as Sentinel-3 data, due to changes introduced in version 1.8.0. (#1114)

1.8.0

23 Jan 15:51
Compare
Choose a tag to compare

Changes in 1.8.0

Enhancements

  • The method xcube.core.GridMapping.transform now supports lazy execution. If
    computations based on actual data are required—such as determining whether the
    grid mapping is regular or estimating the resolution in the x or y direction—only a
    single chunk is accessed whenever possible, ensuring faster performance.

  • The function xcube.core.resampling.rectify_dataset now supports xarray.Datasets
    containing multi-dimensional data variables structured as var(..., y_dim, x_dim).
    The two spatial dimensions (y_dim and x_dim) must occupy the last two positions
    in the variable's dimensions.

  • Added a new preload API to xcube data stores:

    • Enhanced the xcube.core.store.DataStore class to optionally support
      preloading of datasets via an API represented by the
      new xcube.core.store.DataPreloader interface.
    • Added handy default implementations NullPreloadHandle and ExecutorPreloadHandle
      to be returned by implementations of the prepare_data() method of a
      given data store.
  • A xy_res keyword argument was added to the transform() method of
    xcube.core.gridmapping.GridMapping, enabling users to set the grid-mapping
    resolution directly, which speeds up the method by avoiding time-consuming
    spatial resolution estimation. (#1082)

  • The behaviour of the function xcube.core.resample.resample_in_space() has
    been changed if no tile_size is specified for the target grid mapping. It now
    defaults to the tile_size of the source grid mapping, improving the
    user-friendliness of resampling and reprojection. (#1082)

  • The "https" data store (store = new_data_store("https", ...)) now allows
    for lazily accessing NetCDF files.
    Implementation note: For this to work, the DatasetNetcdfFsDataAccessor
    class has been adjusted. (#1083)

  • Added new endpoint /viewer/state to xcube Server that allows for xcube Viewer
    state persistence. (#1088)

    The new viewer API operations are:

    • GET /viewer/state to get a keys of stored states or restore a specific state;
    • PUT /viewer/state to store a state and receive a key for it.

    Persistence is configured using new optional Viewer/Persistence setting:

    Viewer:
     Persistence:
       # Any filesystem. Can also be relative to base_dir.
       Path: memory://states
       # Filesystem-specific storage options   
       # StorageOptions: ...
  • The get_data_ids() method in DataStore has an enhanced include_attrs parameter.
    Previously accepting only Container[str], it now also supports a bool value.
    Setting include_attrs to True retrieves all attributes of the data_ids.

  • Updated dependency urllib3 to be >=2.0.

  • Bundled xcube-viewer 1.4.0

Fixes

  • The function xcube.core.resample.resample_in_space() now supports the parameter
    source_ds_subset=True when calling rectify_dataset. This feature enables
    performing the reprojection exclusively on the spatially congruent subset of
    the dataset.
  • The function xcube.core.resample.resample_in_space() now always operates
    lazily and therefore supports chunk-wise, parallel processing. (#1082)
  • Bug fix in the has_data method of the "https" data store
    (store = new_data_store("https", ...)). (#1084)
  • Bug fix in the has_data method of all filesystem-based data store
    ("file", "s3", "https"). data_type can be any of the supported data types,
    e.g. for .tif file, data_type can be either dataset or mldataset. (#1084)
  • The explanation of the parameter xy_scale in the method
    xcube.core.gridmapping.GridMapping.scale has been corrected. (#1086)
  • The spurious tileserver/viewer warning "no explicit representation of
    timezones available…" (formerly "parsing timezone aware datetimes is
    deprecated…") is no longer generated. (#807)

Other changes

  • Added experimental feature that allows for extending the xcube Viewer
    user interface with server-side panels. For this to work, users can now
    configure xcube Server to load one or more Python modules that provide
    xcube.webapi.viewer.contrib.Panel UI-contributions.
    Panel instances provide two decorators layout() and callback()
    which are used to implement the UI and the interaction behaviour,
    respectively. The functionality is provided by the
    Chartlets Python library.
    A working example can be found in examples/serve/panels-demo.

  • The xcube test helper module test.s3test has been enhanced to support
    testing the experimental server-side panels described above:

    • added new decorator @s3_test() for individual tests with timeout arg;
    • added new context manager s3_test_server() with timeout arg to be used
      within tests function bodies;
    • S3Test, @s3_test(), and s3_test_server() now restore environment
      variables modified for the Moto S3 test server.

Full Changelog: v1.7.1...v1.8.0

1.7.2.dev1

15 Nov 15:40
d11e2ba
Compare
Choose a tag to compare
1.7.2.dev1 Pre-release
Pre-release

What's Changed

Full Changelog: v1.7.2.dev0...v1.7.2.dev1

1.7.2.dev0

14 Nov 14:33
a16335d
Compare
Choose a tag to compare
1.7.2.dev0 Pre-release
Pre-release

What's Changed

Full Changelog: v1.7.1...v1.7.2.dev0

1.7.1

14 Oct 12:08
45a53ad
Compare
Choose a tag to compare

Changes in 1.7.1

Enhancements

  • Level creation now supports aggregation method mode to aggregate to the value which is most frequent. (#913)

Fixes

  • The time query parameter of the /statistics endpoint of xcube server has now been made optional. (#1066)
  • The /statistics endpoint now supports datasets using non-WGS84 grid systems, expanding its compatibility with a wider range of geospatial datasets. (#1069)
  • Bug fix in resampling_in_space when projecting from geographic to non-geographic projection. (#1073)
  • Bug fix of the extent field in the single item collection published by the xcube server STAC API so that it follows the collection STAC specifications. (#1077)

New Contributors

Full Changelog: v1.7.0...v1.7.1

1.7.1.dev0

12 Sep 09:24
Compare
Choose a tag to compare
1.7.1.dev0 Pre-release
Pre-release

What's Changed

  • Adjustments to resample_in_time() so that xcube now supports xarray=2024.7 by @konstntokas in #1068

Full Changelog: v1.7.0...v1.7.1.dev0

1.7.0

28 Aug 14:12
Compare
Choose a tag to compare

Changes in 1.7.0

Full Changelog: v1.6.0...v1.7.0

Enhancements

  • Bundled xcube-viewer 1.3.0.

  • xcube server can now deal with "user-defined" variables. Endpoints
    that accept a {varName} path parameter in their URL path can now be
    called with assignment expressions of the form <var_name>=<var_expr>
    where <var_name> is the name user defined variable and <var_expr>
    is an arbitrary band-math expression,
    see xcube-dev/xcube-viewer#371.

  • xcube server now allows for configuring new dataset properties
    GroupTitle and Tags . This feature has been added in order to support
    grouping and filtering of datasets in UIs,
    see xcube-dev/xcube-viewer#385.

  • Added server endpoint GET /statistics/{varName} with query parameters
    lon, lat, time which is used to extract single point data.
    This feature has been added in order to support
    xcube-dev/xcube-viewer#404.

  • The xcube server STAC API now publishes all fields available via the
    /datasets endpoint. This includes colormap information for each asset such as
    colorBarName, colorBarNorm, colorBarMin, colorBarMax, tileLevelMin, tileLevelMax.
    (#935, #940)

  • xcube server now allows for configuring custom color maps via the configuration file.
    It supports continuous, stepwise and categorical colormaps, which may be
    configured as shown in the section CustomColorMaps of the xcube serve documentation
    (#1055)

Fixes

  • Migrated the .github/workflows/xcube_build_docker.yaml and the corresponding
    Dockerfile from setup.py to pyproject.toml. Additionally, updated the relevant
    documentation in doc/source to reflect this change from setup.py to
    pyproject.toml. (related to #992)
  • Normalisation with xcube.core.normalize.normalize_dataset fails when chunk encoding
    must be updated (#1033)
  • The open_data method of xcube's default xcube.core.store.DataStore implementations
    now supports a keyword argument data_type, which determines the
    data type of the return value. Note that opener_id includes the data_type
    at its first position and will override the data_type argument.
    To preserve backward compatibility, the keyword argument data_type
    has not yet been literally specified as open_data() method argument,
    but may be passed as part of **open_params. (#1030)
  • The xcube.core.store.DataDescriptor class now supports specifying time ranges
    using both datetime.date and datetime.datetime objects. Previously,
    only datetime.date objects were supported.
  • The xcube server STAC API has been adjusted so that the data store
    parameters and data ID, which are needed to open the data referred to by a STAC item,
    are now included with the item's analytic asset.
    Furthermore, a second assert called analytic_multires will be published
    referring to the multi-resolution data format levels (#1020).
  • Improved the way color mapping works in xcube server to support simplified
    color bar management in xcube viewer,
    see xcube-dev/xcube-viewer#390. (#1043)
  • The xcube server's dataset configuration extraction methodology has been updated.
    When the data resource ID is provided in the Path field, xcube will attempt to
    access the dataset using the given ID. If wildcard patterns are used, the server
    will crawl through the data store to find matching data IDs. This process may
    result in a long setup time if the data store contains numerous data IDs.
    A UserWarning will be issued for the "stac" data store.
  • Corrected extent object of a STAC collection issued by xcube server, following the
    collection STAC specifications
    (#1053)
  • When opening a GeoTIFF file using a file system data store, the default return value
    is changed from MultiLevelDataset to xr.Dataset, if no data_type is assigned
    in the open_params of the store.open_data() method. (#1054)
    xcube server has been adapted to always open MultiLevelDatasets from
    a specified data store, if that data type is supported.

Other changes

  • Renamed internal color mapping types from "node", "bound", "key"
    into "continuous", "stepwise", "categorical".

1.7.0.dev4

27 Aug 13:46
Compare
Choose a tag to compare
1.7.0.dev4 Pre-release
Pre-release

What's Changed

Full Changelog: v1.7.0.dev3...v1.7.0.dev4

1.7.0.dev3

20 Aug 09:36
cc5fd92
Compare
Choose a tag to compare
1.7.0.dev3 Pre-release
Pre-release

What's Changed

Full Changelog: v1.7.0.dev2...v1.7.0.dev3