EIDA Embargo Roller
Description
This program processes a stationXML file in input and updates channels epochs to reflect the embargo start date specified.
Processing Logic:
- If the channel epoch ends before the embargo: No changes are made.
- If the channel epoch ends after the embargo:
- If the epoch starts before the embargo and the restriction policy is closed, the epoch is split at the embargo date:
- The restriction policy before the embargo is forced to open.
- The restriction policy after the embargo remains closed.
- If the epoch starts before the embargo and the restriction policy is closed, the epoch is split at the embargo date:
- After processing, the program merges channels that are contiguous in time and have the same content.
Usage
You can run eida_embargo_roller in two ways:
- Using
uv(Recommended) - Directly via Python
Installation
Option 1: Using uv (Recommended)
Install and run using uvx
uvx eida_embargo_roller [-i] [-e YYYY-MM-DD] station.xml
Or install from the repository:
#Clone the repository
git clone https://github.com/your-repo/embargo-roller.git
cd embargo-roller
# Sync dependencies
uv sync
# Run the script
uv run eida_embargo_roller -e YYYY-MM-DD station.xml
If uv is not already installed, you can add it by following this guide.
Rust and Cargo Requirement
Certain dependencies (e.g., pendulum) require Rust and Cargo to build. If you encounter errors such as maturin failing due to missing Cargo, install Rust and Cargo by following the official Rust installation guide.
Option 2: Using pip
1. Install the package via pip:
python -m pip install --user eida_embargo_roller
2. Run the script:
eida_embargo_roller -e YYYY-MM-DD station.xml
Examples
This section provides examples of how to use eida_embargo_roller in different scenarios.
Writing a New XML File
To write a new XML file with an embargo date:
uvx eida_embargo_roller Z3.A190A.xml -e 2023-01-01 > result.xml
or without uv:
eida_embargo_roller Z3.A190A.xml -e 2023-01-01 > result.xml
Modifying an Existing XML File (In-Place)
To transform the file in place:
uvx eida_embargo_roller -e 2023-01-01 -i Z3.A190A.xml
or without uv:
eida_embargo_roller -e 2023-01-01 -i Z3.A190A.xml
Tests and Debugging
Running Tests
To run the entire test suite using pytest, execute:
uv run pytest
PyPI package
The EIDA Embargo Roller is also available as a PyPI package: https://pypi.org/project/eida-embargo-roller/
Updating SeisComP configuration
Embargo roller works with FDSN XML only, not with inventoryXML used by SeisComP. Following steps describe the procedure for updating config:
- Convert to stationXML:
fdsnxml2inv --to-staxml inventory.xml > FDSNstation.xml
- Update embargo period:
uv run eida_embargo_roller -e 2022-12-31 FDSNstation.xml > FDSNstation-embargoFree.xml
- Replace restrictedStatus “partial” by “open” in FDSNstation-embargoFree.xml (Seiscomp does not recognize “partial” status):
sed -e 's/"partial"/"open"/'
- Convert FDSNstation-embargoFree.xml to invXML:
fdsnxml2inv FDSNstation-embargoFree.xml > inventory-embargoFree.xml
- Update SEISCOMP:
scinv sync [--test]
seiscomp update-config
seiscomp restart
- Test query for open data: https://EIDA-node/fdsnws/dataselect/1/query?start=2022-12-22T00:00:00&end=2022-12-22T00:10:00&net=XX&sta=YYY&cha=*Z
Metadata
Release files for eida-embargo-roller 1.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| eida_embargo_roller-1.0.7.tar.gz | 23.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eida_embargo_roller-1.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.6 kB
Release files / eida_embargo_roller-1.0.7.tar.gz
| Download URL | eida_embargo_roller-1.0.7.tar.gz |
|---|---|
| Size | 23.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8883f163e9da4dfbb9bbb73cac12932e93d01efb677e83b3f1d2db5a567ac4db
|
|
BLAKE2b-256 checksum How to use checksums |
eddf9aa24a3a655b58b334edf8cf6342f07bcd444dd271e03b845c6cc6c90672
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 16, 2026.
Transparency logRelease files / eida_embargo_roller-1.0.7-py3-none-any.whl
| Download URL | eida_embargo_roller-1.0.7-py3-none-any.whl |
|---|---|
| Size | 22.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6d2c03f6d0cfca5eecb10c0387be5f55eb7f3cf38aa45a70c7cfc4721769fe6f
|
|
BLAKE2b-256 checksum How to use checksums |
17146d7182cf21e0e575ca2002ae7ba407be0887805368f521f8c11f0f2276dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 16, 2026.
Transparency log