Skip to content

Tool to evaluate consistency between dataselect and availability services in EIDA

License

Notifications You must be signed in to change notification settings

EIDA/eida-consistency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EIDA Consistency Checker

Run Tests Coverage Docs


A tool to evaluate the consistency between EIDA nodes' availability and dataselect web services.
Designed for use in quality control and monitoring tasks across the European Integrated Data Archive (EIDA).


πŸš€ Installation & Quick Start

You can use eida-consistency in two ways:

Option 1: Using uvx

uvx eida-consistency <command> [options]

Option 2: Global install

uv tool install eida-consistency

Now it’s available globally:

eida-consistency <command> [options]

Update it with:

uv tool upgrade eida-consistency

πŸ” CLI Commands

Run Consistency Check

Check if availability spans align with dataselect results:

uvx eida-consistency consistency --node RESIF --epochs 10 --duration 600
# OR check 5% of available stations:
uvx eida-consistency consistency --node RESIF --epochs "5%"

Options:

  • --node: Node code (e.g. RESIF, NOA, ETH)
  • --epochs: Number of random test epochs (default: 10) OR percentage (e.g., "5%", 0.05)
  • --duration: Epoch length in seconds (β‰₯600)
  • --seed: Reproducible seed
  • --delete-old: Keep only the most recent report
  • --stdout: Print JSON report to stdout
  • --report-dir: Save reports to a custom folder (default: reports/)
  • --log-level: Control verbosity (DEBUG, INFO, WARNING, ERROR)

Compare Reports

Compare results across two runs with the same seed:

uvx eida-consistency compare reports/resif_run1.json reports/resif_run2.json

Explore Inconsistencies

Drill down into inconsistencies with day-by-day exploration:

uvx eida-consistency explore reports/nodes/noa/*.json --index 7 --days 15 --verbose

You can also use:

uvx eida-consistency explore --latest

to automatically use the newest report.

Manage Node List

Reload routing cache:

uvx eida-consistency reload-nodes

List currently cached nodes:

uvx eida-consistency list-nodes

πŸ“‚ Reports

Reports are stored in ./reports/ by default, or in a custom folder using --report-dir.

  • JSON reports: reports/resif_<seed>.json
  • Markdown reports: reports/resif_<seed>.md
  • Global summary: summary.md

πŸ“š Library Usage

You can also use eida-consistency as a Python library to run checks programmatically or build custom tools.

Check a Single Candidate

from eida_consistency.core.checker import check_candidate

# Define a candidate (network, station, channel, starttime)
candidate = {
    "network": "GR",
    "station": "ATH",
    "channel": "BHZ",
    "starttime": "2023-01-01T00:00:00",
}

# Run the check
results, stats = check_candidate(
    base_url="http://node.eida.eu/fdsnws",
    candidate=candidate,
    epochs=5,
    duration=600
)

for res in results:
    url, available, start, end, loc, span = res
    print(f"Time: {start} -> Available: {available}")

Run a Full Consistency Check

from eida_consistency.runner import run_consistency_check

# Run check for a specific node and get the report path
report_path = run_consistency_check(
    node="NOA",
    epochs=10,
    duration=600
)
print(f"Report generated at: {report_path}")

For full API documentation, please visit our Documentation Site or run:

uv run mkdocs serve

πŸ§ͺ Example Workflow

1. Run a check for NOA:

uvx eida-consistency consistency --seed 1234 --node NOA --epochs 20 --duration 600 --report-dir reports/test_noa

2. Explore incosistencies:

If inconsistencies are found:

uvx eida-consistency explore reports/nodes/resif/*.json --verbose

3. Apply fixes

Investigate the reported service inconsistencies and fix them at node level. Maybe use dmtri command suggested.

4. Re-run Consistency

uvx eida-consistency consistency --seed 1234 --node NOA --epochs 20 --duration 600 --report-dir reports/test_noa

5.Compare Before/After

uv run eida-consistency compare reports/test_noa/old.json reports/test_noa/new.json

πŸ“Š Global Consistency Summary

Node Epochs Requested Epochs Usable Total Checks Consistent Inconsistent Score
BGR 20 20 20 15 5 75.0 %
BGS 20 11 11 6 5 54.55 %
ETH 20 20 20 19 1 95.0 %
GEOFON 20 20 20 20 0 100.0 %
KOERI 20 20 20 10 10 50.0 %
LMU 20 20 20 20 0 100.0 %
NIEP 20 20 20 15 5 75.0 %
NOA 20 20 20 16 4 80.0 %
RESIF 20 20 20 20 0 100.0 %
UIB-NORSAR 20 20 20 18 2 90.0 %

πŸ“– Full details: summary.md


About

Tool to evaluate consistency between dataselect and availability services in EIDA

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •