Conversation
…ent_selection_lengths
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Feature/tapered selection
Create intermediate directories when writing to file with `.to_netcdf` methods.
Implementation of ASN regions of interest (ROIs)
float tolerance are interpreted as seconds if coordinate.dtype is datetime64
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #59 +/- ##
==========================================
+ Coverage 82.15% 83.03% +0.88%
==========================================
Files 36 43 +7
Lines 4091 4599 +508
==========================================
+ Hits 3361 3819 +458
- Misses 730 780 +50 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR releases xdas 0.2.5, introducing a refactor/extension of the coordinate system (new coordinate types + updated serialization), improvements to NetCDF writing (directory creation + virtual/dask support), and several IO/compatibility fixes (ASN multi-ROI, NumPy/ObsPy adjustments), with accompanying docs/tests updates.
Changes:
- Introduce a new
xdas.coordinatesmodule with multiple coordinate flavors (incl.SampledCoordinate) and migrate imports away fromxdas.core.coordinates. - Improve NetCDF IO:
create_dirsoption, coordinate metadata serialization viacoord.to_dataset(), and unified variable creation for virtual arrays + dask arrays. - Update IO engines (ASN multi-ROI, multiple readers accept
ctype) and adjust FFT/numpy compatibility + documentation.
Reviewed changes
Copilot reviewed 68 out of 70 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| xdas/virtual.py | Add helper to create h5netcdf variables for virtual arrays |
| xdas/trigger.py | Update Coordinate import path |
| xdas/spectral.py | Update coordinate utility import path |
| xdas/signal.py | Update Coordinate/get_sampling_interval import path |
| xdas/processing/init.py | Stop importing monitor at package import time |
| xdas/picking.py | Add tapered_selection helper + numba backend |
| xdas/io/terra15.py | Add ctype support + coordinate construction updates |
| xdas/io/tdms.py | Minor unpacking style change |
| xdas/io/sintela.py | Add ctype support + coordinate construction updates |
| xdas/io/silixa.py | Add ctype support + coordinate construction updates |
| xdas/io/optasense.py | Add ctype support + coordinate construction updates |
| xdas/io/miniseed.py | Add ctype support + time coord via from_block |
| xdas/io/febus.py | Add ctype support + time/distance via from_block |
| xdas/io/core.py | Add parse_ctype() helper |
| xdas/io/asn.py | Multi-ROI distance coordinate support + ctype support |
| xdas/io/apsensing.py | Add ctype support + coordinate construction updates |
| xdas/fft.py | Doc/examples updates + default irfft n behavior change |
| xdas/dask/core.py | Add create_variable() helper for dask virtualization |
| xdas/dask/init.py | Export create_variable |
| xdas/core/routines.py | Migrate to new coordinates module; tolerance seconds for datetime; split via get_split_indices() |
| xdas/core/numpy.py | Handle NumPy trapezoid/trapz version differences |
| xdas/core/datacollection.py | Add create_dirs to .to_netcdf() |
| xdas/core/dataarray.py | NetCDF serialization refactor + create_dirs + new coordinate metadata handling |
| xdas/core/coordinates.py | Remove old coordinates implementation (moved to xdas/coordinates/*) |
| xdas/coordinates/scalar.py | New scalar coordinate implementation |
| xdas/coordinates/sampled.py | New sampled coordinate implementation |
| xdas/coordinates/interp.py | New interpolated coordinate implementation |
| xdas/coordinates/dense.py | New dense coordinate implementation |
| xdas/coordinates/default.py | New default coordinate implementation |
| xdas/coordinates/core.py | New coordinate/coordinates core + registry + (de)serialization hooks |
| xdas/coordinates/init.py | Export coordinate types and helpers |
| xdas/atoms/signal.py | Update Coordinate import path |
| xdas/atoms/ml.py | Fix Atom/State import path |
| xdas/init.py | Add __version__ + expose new coordinates API |
| tests/test_xdas.py | Add test for xdas.__version__ |
| tests/test_xarray.py | Use xd.DataArray in assertions |
| tests/test_virtual.py | Use xd alias consistently |
| tests/test_signal.py | Use xd alias consistently |
| tests/test_routines.py | Update imports to new coordinates exposure + xd.* usage |
| tests/test_processing.py | Update imports to package exports + xd alias |
| tests/test_picking.py | Add coverage for tapered_selection |
| tests/test_numpy.py | Adjust expectations for trapz/trapezoid across NumPy versions |
| tests/test_fft.py | Add coverage for irfft default n behavior |
| tests/test_datacollection.py | Add coverage for create_dirs |
| tests/test_dataarray.py | Update imports to new coordinates module + add create_dirs test |
| tests/test_core.py | Update imports + expand split/align tests |
| tests/coordinates/test_scalar.py | New tests for ScalarCoordinate |
| tests/coordinates/test_interp.py | Slim down + add datetime simplify test |
| tests/coordinates/test_dense.py | New tests for DenseCoordinate |
| tests/coordinates/test_coordinates.py | New tests for Coordinate/Coordinates behaviors |
| pyproject.toml | Bump version to 0.2.5 + add setuptools constraint |
| docs/user-guide/virtual-datasets.md | Fix link path to data-structures section |
| docs/user-guide/index.md | Update toctree structure (data-structures + coordinates) |
| docs/user-guide/data-structures/index.md | Rename heading to “Data Structures” |
| docs/user-guide/data-structures/datacollection.md | New user-guide page for DataCollection |
| docs/user-guide/data-structures/dataarray.md | Update coordinate doc links |
| docs/user-guide/coordinates/sampled-coordinates.md | New placeholder page |
| docs/user-guide/coordinates/interpolated-coordinates.md | Fix heading levels |
| docs/user-guide/coordinates/index.md | New coordinates overview page |
| docs/release-notes.md | Add 0.2.5 notes + formatting fixes |
| docs/getting-started.md | Fix link path to DataCollection docs |
| docs/conf.py | Bump docs release to 0.2.5 |
| docs/api/xdas.md | Remove embedded coordinates API section (moved) |
| docs/api/picking.md | Add API page for picking module |
| docs/api/index.md | Add coordinates/picking to API index |
| docs/api/coordinates.md | Add coordinates API page |
| .github/workflows/tests.yaml | Extend test matrix to newer Python |
| .github/workflows/code-coverage.yaml | Run coverage on newer Python |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
create_dirsto.to_netcdfmethods to create intermediate directories (@aurelienfalco).tolerancecan now be passed as seconds for datetime64 coordinates (@martijnende, @atrabattoni)xdas.__version__(@atrabatto).