Release notes#

0.2.7#

Bug Fixes#

  • Fix a regression introduced in 0.2.6 where is_monotonic was significantly degrading .sel performance.

  • Fix xdas.concat to gracefully handle empty inputs, preventing errors when selecting out-of-range data from a DataCollection (@atrabattoni).

Documentation#

  • Achieved 100% docstring coverage (excluding __magic__ and private _methods) (@atrabattoni).

  • Improved User Guide index (@atrabattoni).

  • Added new Sampled Coordinates page (@atrabattoni).

  • Enhanced Processing documentation (@atrabattoni).

  • Improved FAQ page (@atrabattoni).

  • Added missing API documentation for several methods (@atrabattoni).

Refactoring#

  • Achieved 100% test coverage across the codebase (@atrabattoni).

  • Migrated development workflow from conda to uv (@atrabattoni).

  • Reduced test suite execution time by ~50% (@atrabattoni).

  • Migrated formatting tooling from isort + black to ruff including docstring checks (@atrabattoni).

  • Ensure all ruff checks pass (@atrabattoni).

0.2.6#

New features#

  • Add xdas.open that automatically infers which xdas.open_* function to use (@atrabattoni, @yetinam).

  • Add automatic engine detection to every xdas.open_* function (@atrabattoni, @yetinam).

  • Add pathlib.Path support as input for all xdas file-related functions and methods (@atrabattoni).

  • Add xdas.io.compressed that compresses a specific dataset in an HDF5 file while preserving the rest of the file structure and metadata (@marbail).

  • Add xdas.concat_coords to merge coordinates. Also Coordinate.append is now Coordinate.concat (avoid in-place confusion) and xdas.concatenate has now a preferred alias xdas.concat (@atrabattoni).

Improvements#

  • All to_netcdf methods now have a create_dirs argument to create intermediate directories if necessary (@aurelienfalco).

  • Make DataArray.sel handle overlaps when slicing, and xdas.split can split on overlaps or gaps now (@atrabattoni).

  • New io.Engine backend system to register different file formats (@atrabattoni).

  • Make open_mfdataarray raise RuntimeError when opening all files fails (@asladen).

  • Add “prodml” engine (@atrabattoni) and make “optasense” and “sintela” aliases of it (@atrabattoni).

  • Add the component_strategy argument to the xdas.atoms.MLPicker to choose whether to use the same component on the 3 channels or to use one channel and set the others to 0 based (@marbail).

  • Make DataArray.rename capable of renaming dims and coords (@atrabattoni).

  • Add parallel argument to most open* functions to let the user choose the file opening strategy (@atrabattoni).

Bug Fixes#

  • Fix memory accumulation when slicing multiple times data arrays, e.g. when using atoms (@atrabattoni).

  • Fix non-terminating loaders and writers in xdas.processing (@atrabattoni).

  • Fix/improve distance handling for: “apsensing”, “febus”, “optasense”, “silixa”, and “sintela” (@atrabattoni).

  • Add dim swapping handling for the “prodml” based engines with the swapped_dims=False kwarg (@atrabattoni).

  • Fix ASN ROI handling (@asladen).

  • Use the annotate_batch_pre model’s function to normalize in xdas.atoms.MLPicker (@marbail).

  • Fix the RuntimeError encountered when using open_mf* functions in scripts due to the use of multiprocessing by using the loky library (@atrabattoni)

0.2.5#

  • Add SampleCoordinate for more SEED-like coordinates and refactor the coordinate backend (@atrabattoni).

  • Add xdas.picking.tapered_selection to extract windows around picks (@atrabattoni).

  • Add create_dirs to .to_netcdf methods to create intermediate directories (@aurelienfalco).

  • Add support for multiple ROI for ASN engine (@martijnende).

  • tolerance can now be passed as seconds for datetime64 coordinates (@martijnende, @atrabattoni)

  • Add support for python 3.14, numpy 2.4 and obspy 1.4.2 incompatibilities and add xdas.__version__ (@atrabattoni).

0.2.4#

  • Add StreamWriter to write long time series to miniSEED (@marbail).

  • Fix OptaSense engine’s wrong axis attribution (@smouellet).

  • Fix ASN (OptoDAS) engine: handling of roiDec (@AndresLaurine).

  • Fix NaN handling for several methods (@ClaudioStrumia).

  • Fix InterpCoordinate.get_availabilities (@AMordret).

0.2.3#

  • Fix Febus engine (round timestamps to closest us).

  • Faster xdas.concatenate (faster linking for efficient reading of Febus files).

0.2.2#

  • Add support for Python 3.13

  • Fix bugs and dependency issues

0.2.1#

  • Add xdas.signal.stft.

  • Add inverse Fourier transforms xdas.fft.ifft and xdas.fft.irfft.

  • Add support for APSensing format.

  • Improve overlap error message.

  • Fix decimation of freshly opened multi-file datasets.

  • Fix zerophase keyword argument for xdas.signal.filter.

  • Fix applying FFT functions in presence of non-dimensional coordinates.

0.2#

  • Add Dask virtualization backend for non-HDF5 formats (@atrabattoni).

  • Add support for miniSEED format (@atrabattoni, @chauvetige).

  • Add support for Silixa (TDMS) format (@atrabattoni, @Stutzmann).

0.1.2#

  • Add ZeroMQ streaming capabilities (@atrabattoni).

  • Add support of Terra15 format (@chauvetige).

  • Fix Febus engine (@ClaudioStrumia).

0.1.1#

  • Add support for hdf5plugin compression schemes.

  • Drop netCDF4 dependency and only use h5netcdf to fix incompatibilities.

  • Drop useless dask dependency.

0.1#

Initial stable version.