0.9.0.dev1
Pre-releaseChanges in 0.9.0 (in development)
New features
-
The implementations of the default data stores
s3
,directory
,
andmemory
have been replaced entirely by a new implementation
that utilize the fsspec
Python package. The preliminary filesystem-based data stores
are nows3
,file
, andmemory
. All share a common implementations
and tests. Others filesystem-based data stores can be added easily
and will follow soon, for examplehdfs
.
All filesystem-based data stores now support xarray
datasets (typexarray.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
packagexcube.core.gen2
and CLIxcube gen2
.
They are mostly not backward compatible:- The only supported way to instantiate cube generators is the
CubeGenerator.new()
factory method. CubeGenerator.generate_cube()
andCubeGenerator.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 writtendata_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.
- The only supported way to instantiate cube generators is the
-
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 classImageGeom
- module
xcube.core.geocoding
with classGeoCoding
- module
xcube.core.reproject
and all its functions
- module
- The following components have been added
- module
xcube.core.gridmapping
with new classGridMapping
is a CF compliant replacement for classesImageGeom
andGeoCoding
- module
- The following components have changed in an incompatible way:
- Function
xcube.core.rectify.rectify_dataset()
now uses
source_gm: GridMapping
andtarget_gm: GridMapping
instead of
geo_coding: GeoCoding
andoutput_geom: ImageGeom
. - Function
xcube.core.gen.iproc.InputProcessor.process()
now uses
source_gm: GridMapping
andtarget_gm: GridMapping
instead of
geo_coding: GeoCoding
andoutput_geom: ImageGeom
.
- Function
- xcube no longer depends on GDAL (at least not directly).
- The following components have been removed entirely
-
A dataset's cube subset and its grid mapping can now be accessed through
thexcube
property ofxarray.Dataset
instances. This feature requires
importing thexcube.core.xarray
package. Letdataset
be an
instance ofxarray.Dataset
, thendataset.xcube.cube
is axarray.Dataset
that contains all cube
variables ofdataset
, namely the ones with dimensions
("time", [...,], y_dim_name, x_dim_name)
, wherey_dim_name
,
x_dim_name
are determined by the dataset's grid mapping.
May be empty, ifdataset
has no cube variables.dataset.xcube.gm
is axcube.core.gridmapping.GridMapping
that
describes the CF-compliant grid mapping ofdataset
.
May beNone
, ifdataset
does not define a grid mapping.dataset.xcube.non_cube
is axarray.Dataset
that contains all
variables ofdataset
that are not indataset.xcube.cube
.
May be same asdataset
, ifdataset.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 defaultanon=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 eitherlatest
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