Skip to main content

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:

  1. If the channel epoch ends before the embargo: No changes are made.
  2. 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:
      1. The restriction policy before the embargo is forced to open.
      2. The restriction policy after the embargo remains closed.
  3. 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:

  1. Using uv (Recommended)
  2. 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:

  1. Convert to stationXML:
   fdsnxml2inv --to-staxml inventory.xml > FDSNstation.xml
  1. Update embargo period:
   uv run eida_embargo_roller -e 2022-12-31 FDSNstation.xml > FDSNstation-embargoFree.xml
  1. Replace restrictedStatus “partial” by “open” in FDSNstation-embargoFree.xml (Seiscomp does not recognize “partial” status):
   sed -e 's/"partial"/"open"/'
  1. Convert FDSNstation-embargoFree.xml to invXML:
   fdsnxml2inv FDSNstation-embargoFree.xml > inventory-embargoFree.xml
  1. Update SEISCOMP:
   scinv sync [--test]
   seiscomp update-config
   seiscomp restart
  1. 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)

Source distribution for eida-embargo-roller 1.0.7
File Size Uploaded
eida_embargo_roller-1.0.7.tar.gz 23.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eida-embargo-roller 1.0.7
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

1.0.7 This release

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page