Running an Extraction

Once zephyr is installed (see Installation) and you have a request JSON file (either downloaded from Using the Web Interface or written by hand against Request JSON Format), run the extraction from the run/ directory:

cd run
python launch_zephyr.py \
    --json_path=/path/to/your/request.json \
    --output_directory=/path/to/output/

This finds the NetCDF files matching the request on /net/atmos/data, applies the requested spatial extraction, and writes the result to --output_directory.

Processing a request from zephyr-request

If you’re an IAC operator processing a request that came in through the zephyr-request GitHub issue pipeline, also pass the tracking metadata so it’s embedded in the output:

python launch_zephyr.py \
    --json_path=/path/to/your/request.json \
    --output_directory=/path/to/output/ \
    --zephyr_request_version=1.2.3 \
    --github_issue_id=42

zephyr_request_version and github_issue_id are written as global attributes on the output NetCDF files, so a file can always be traced back to the issue and pipeline version that produced it.

Note

In production, this is exactly what zephyr-request’s GitHub Actions pipeline does automatically on iacdipl-7.ethz.ch — this section is for running the same step manually, e.g. to reprocess a request or debug a failure.

Output filenames

The output filename prefix depends on the extraction method used:

  • Nearest grid pointinterp_<lat>_<lon>

  • Rectangular clippingrect_<minlat>-<maxlat>_<minlon>-<maxlon>

Logs

launch_zephyr.py logs progress and any errors. If the run fails, check the traceback printed to stderr — ProcessManager (in src/zephyr/process_manager.py) re-raises exceptions from every stage (file finding, loading, extraction) with the offending stage identifiable from the traceback.