Getting started¶
This page takes you from installation to a working archive. You will download two days of broadband data for two GEOFON stations, which is about 140 MB.
Install¶
FDSN Rush requires Python 3.11 or newer. Install it as a standalone command-line tool:
Check that the fdsn-rush command is available:
To upgrade later, run uv tool upgrade fdsn-rush, pipx upgrade fdsn-rush or pip install -U fdsn-rush.
Development version
To try unreleased changes, install from the main branch:
Create a configuration¶
Each download is described by a JSON file. Create a project directory and write the default configuration into it:
Open config.json and change the station selection and the time range, the two values you will change most often:
{
"writer": {
"sds_archive": "data",
"steim_compression": 1,
"record_length": 4096,
"min_length_seconds": "PT1M",
"fix_date_suffixes": false,
"squirrel_environment": null
},
"clients": [
{
"url": "https://geofon.gfz.de/",
"timeout": 30.0,
"n_workers": 8,
"n_connections": 24,
"chunk_size": "4.0MiB",
"rate_limit": 10,
"eida_key": null
}
],
"metadata_path": "metadata",
"time_range": [
"2026-09-01",
"2026-09-03"
],
"station_selection": [
"GE.APE",
"GE.STU"
],
"channel_priority": [
"HH[ZNE12]",
"EH[ZNE12]",
"HN[ZNE12]"
],
"station_blacklist": [],
"min_channels_per_station": 3,
"min_sampling_rate": 100.0,
"max_sampling_rate": 200.0
}
This configuration does the following:
- It asks GEOFON (
clients) for stationsAPEandSTUof theGEnetwork (station_selection). - It downloads the UTC days September 1 and 2. The end of
time_rangeis exclusive. - It prefers
HHchannels and falls back toEH, thenHN(channel_priority). It takes a channel group only if all three components are available (min_channels_per_station). - It writes waveforms to
data/and StationXML tometadata/.
Tip
time_range accepts "today" and "yesterday" as well as ISO dates. With ["2026-01-01", "today"] you get everything up to and including yesterday, the last complete day.
Download¶
FDSN Rush first fetches the station inventory and the StationXML. Then it checks the archive and downloads the missing day files. A live panel shows the download speed, the number of finished stations and the progress:
INFO Got 2 stations from https://geofon.gfz.de/
INFO Downloading metadata for network GE (2 stations)
INFO Discovered 12 remote dayfiles
INFO Found 12 dayfiles to download
INFO Starting download from https://geofon.gfz.de/ with 8 workers
INFO Finished download GE.APE..HHZ for 2026-09-01 (10.7MiB ↓1.0MiB/s)
INFO Saved data/2026/GE/APE/HHZ.D/GE.APE..HHZ.D.2026.244
...
INFO All downloads completed successfully.
Add -v for debug output, including the exact request URLs.
Inspect the result¶
my-archive/
├── config.json
├── data/
│ └── 2026/
│ └── GE/
│ ├── APE/
│ │ ├── HHE.D/
│ │ │ ├── GE.APE..HHE.D.2026.244
│ │ │ └── GE.APE..HHE.D.2026.245
│ │ ├── HHN.D/ ...
│ │ └── HHZ.D/ ...
│ └── STU/ ...
└── metadata/
└── GE.xml
Each file holds one channel for one UTC day, named NET.STA.LOC.CHA.D.YEAR.DOY with the day of year zero-padded to three digits. This is the standard SDS layout. Read the data with the tools you already use, as shown in Working with the archive.
Run it again¶
Run the same command a second time:
INFO Discovered 12 remote dayfiles
INFO Found 12 dayfiles already downloaded in the archive
INFO Found 0 dayfiles to download
Nothing is downloaded twice. Extend the time range, or use "today" as the end, and the next run fetches only the new days. If you stop a download with Ctrl+C, the same command picks up where it left off. See Resuming and updating archives.
Next steps¶
- Select stations and channels: wildcards, blacklists and channel priorities.
- Restricted data with EIDA tokens: download embargoed data.
- Configuration reference: every option explained.