Changelog
All notable changes to xeo are documented in this file.
0.4.0
Added
- Added
Catalogue.update()for downloading the current upstream catalogue, atomically replacing the local JSON snapshot when its contents differ, and immediately refreshing the shared catalogue and instrument objects.
Changed
- Updated the bundled Awesome Earth Observation Instruments catalogue to version 0.4.0.
Documentation
- Added project funding acknowledgments and funder logos to the README and documentation website.
- Added a
Morenavigation menu containing the changelog, citation guidance, and funding page. - Added a tutorial covering catalogue update requirements, status messages, persistence, and current-session behavior.
0.3.0
Added
- Added lazy downloading of external spectral response function CSV resources.
- Added a persistent, per-user SRF cache organized by catalogue version and instrument.
- Added
Instrument.srf(refresh=True)for explicitly replacing a cached SRF with the current remote resource. - Added
XEO_CACHE_DIRsupport for selecting a custom writable cache root. - Added direct access to the required catalogue
contributorsproperty and support for contributor searches. - Added data-access support for the
lst,wst,grd,rtc, andslcproduct levels. - Added
platformdirsas a lightweight runtime dependency for cross-platform cache paths.
Changed
- Updated the bundled Awesome Earth Observation Instruments catalogue to version 0.3.0.
- Updated
Instrument.has_srfandInstrument.srf()for URL-based SRF metadata while retaining compatibility with the earlier inline representation. - Made
plot_srf()reuse the same on-demand SRF cache throughInstrument.srf(). - Preserved new band properties such as
ne_delta_tin the DataFrames returned byInstrument.bands(). - Updated spectral and plotting tests to run without live network access.
Documentation
- Documented on-demand SRF downloads, persistent caching, offline reuse, explicit refreshes, and custom cache locations.
- Documented contributor metadata and the expanded data-access product levels.
0.2.1
Added
- Added
plot_bands()for Gantt-style spectral-band plots with automatic sub-lanes for overlapping bands. - Added
plot_srf()for multi-instrument spectral response curves with peak labels and collision-aware label placement. - Added flexible instrument and band selection, including lists of per-instrument selection dictionaries and per-band Matplotlib styles.
- Added the optional
plotdependency extra for installing Matplotlib without making it a core dependency.
Documentation
- Added a plotting tutorial covering input forms, overlapping bands, per-band Matplotlib styles, SRF comparisons, and axes customization.
Removed
- Removed rich terminal table rendering from the instrument collection to keep the package minimal.
- Removed Rich from the runtime dependencies.
0.2.0
This is the first complete release of xeo, the Python interface to the Awesome Earth Observation Instruments catalogue.
Added
- Added the bundled Awesome Earth Observation Instruments catalogue and exposed its name, version, source link, raw data, and instrument collection through
xeo.catalogue. - Added the public
Catalogue,Instruments, andInstrumentobject model. - Added the shared
xeo.instrumentscollection with attribute and mapping access by instrument identifier. - Added rich terminal rendering for exploring the complete instrument collection as a table.
- Added direct access to core instrument metadata, including names, acronyms, sensing and platform types, platforms, operators, operational dates, status, availability, references, and data links.
- Added access to optional metadata, catalogue extensions, instrument families, and platform companions.
- Added
Catalogue.search()for advanced instrument discovery, with:- Exact matching across catalogue properties.
- AND matching between different properties.
- OR matching when a list of values is supplied.
- Matching against list-valued properties such as
operatorandplatform. has_bandsandhas_srfavailability filters.- Inclusive
YYYY-MM-DD/YYYY-MM-DDintervals forstart_date.
- Added
Instrument.bands()for loading spectral band definitions as a pandas DataFrame indexed by band identifier. - Added
Instrument.srf()for loading spectral response functions as a pandas DataFrame. - Added
has_bandsandhas_srfproperties for checking spectral-data availability before loading it. - Added
Instrument.get_data_access()for discovering catalogue collections and documentation across:- Google Earth Engine (
ee). - Microsoft Planetary Computer (
planetary_computer). - Copernicus Data Space Ecosystem (
cdse). - EOPF Sentinel Zarr Samples (
eopf).
- Google Earth Engine (
- Added support for the
primary,boa,toa, andrawprocessing levels in data-access queries. - Added
to_dict()methods for obtaining independent copies of catalogue and instrument records. - Added concise string and representation methods for catalogue objects, instruments, and instrument collections.
Changed
- Refactored catalogue loading so
xeo.catalogue.instrumentsandxeo.instrumentsshare the same frozen instrument collection. - Refined the public API around catalogue exploration while retaining access to the original JSON-compatible records.
- Updated the bundled catalogue to the current Awesome Earth Observation Instruments snapshot.
- Set the package version to
0.2.0and the minimum supported Python version to 3.10.
Documentation
- Added a complete README covering the purpose of
xeo, its relationship to the upstream catalogue, installation, the principal API features, and links to further learning material. - Added contributor guidance for development setup, testing, notebooks, pull requests, and directing catalogue-data contributions to the upstream repository.
- Added seven executable tutorial notebooks:
- Getting started.
- Exploring instruments.
- Spectral bands.
- Spectral response functions.
- Raw data and DataFrame workflows.
- Data access.
- Advanced catalogue search.
- Added API docstrings and examples throughout the catalogue object model.
Packaging and maintenance
- Added setuptools-based packaging through
pyproject.toml. - Included the catalogue JSON snapshot as package data.
- Added runtime dependencies for pandas, python-box, and Rich.
- Added pytest coverage for the public API, search behavior, spectral data, data access, representations, and packaged catalogue data.
- Added a tox configuration for running the test suite.
- Added a GitHub Actions workflow that downloads the latest generated catalogue from the Awesome Earth Observation Instruments repository and updates the bundled snapshot when it changes.
- Added the MIT License.