J — Running in Parallel a Real Model
Goal. Run a time-dependent experiment over New Zealand using the STEP model with a Docker build, producing daily gridded forecasts and evaluating them with a Poisson N-test. The experiment is solved in parallel.
Warning
Docker is required to containerize models and to run experiments in parallel. Please install Docker and complete the Linux post-installation steps if applicable. See Docker (Model Containerization & Parallel Run) in the Installation guide.
TL; DR
In a terminal, navigate to floatcsep/tutorials/case_j and type:
$ floatcsep run config.yml
After the calculation is complete, the results will be summarized in results/report.md.
The experiment region, catalog, forecasts and results can be viewed in the Experiment Dashboard with:
$ floatcsep view config.yml
For troubleshooting, run the experiment with:
$ floatcsep run config.yml --debug
Directory layout
The experiment input files are:
case_h
├── catalog.csep
├── config.yml
├── tests.yml
└── models.yml
Configuration
config.yml
name: case_i
time_config:
start_date: 2016-11-13T00:00:00
end_date: 2016-11-20T00:00:00
horizon: 1days
exp_class: td
region_config:
region: nz_csep_region
mag_min: 3.0
mag_max: 8.0
mag_bin: 0.1
depth_min: 0
depth_max: 70
run_mode: parallel
force_rerun: True
catalog: catalog.csep
model_config: models.yml
test_config: tests.yml
Notes
- exp_class: td declares a time-dependent (operational) experiment with rolling 1-day windows.
- run_mode: parallel runs the experiment in parallel.
- force_rerun: True will force the models to recreate the forecasts even if the exist in the fileysystem.
models.yml
- step:
giturl: git@github.com:KennyGraham1/STEPModel.git
repo_hash: floatcsep-interface
forecast_type: gridded
fmt: dat
path: models/step
args_file: step_config.yaml
build: docker
func: run
func_kwargs:
paths:
catalog_file: catalog.csv
forecast:
min_magnitude: 3.0
region_code: 90
parameters:
a_value: -1.00
b_value: 1.03
p_value: 1.07
c_value: 0.04
Notes
- build: docker — the engine will build a Docker image from the repo.
- fmt: dat specifies the created forecast, which are interpreted as GriddedForecasts
What happens under the hood
Controller parses time windows from
2016-11-13to2016-11-20(1-day horizon).Clones the STEP repo with a given
repo_hashintomodels/step/and builds a Docker image.For each 1-day window, mounts the required folders, provides the input catalog and arguments, and runs
func: run.Collects daily gridded forecasts (
.dat) and runs the Poisson N-test with the configured plot.
Outputs
You should find:
Daily gridded forecasts (
.dat) in the model’sforecasts/folderForecast plots in
results/{time_window}/figuresN-test results (table/JSON) in
results/{time_window}/evaluationsA Markdown and PDF reports summarizing the experiment resul.
Running the experiment
The experiment can be run by simply navigating to the
tutorials/case_hfolder in the terminal and typing:$ floatcsep run config.ymlThis will automatically set all the calculation paths (testing catalogs, evaluation results, figures) and will create a summarized report in
results/report.md.
pyCSEP under the hood
Classes and functions used in this tutorial
Catalog:
csep.core.catalogs.CSEPCatalog
csep.load_catalog()Region:
csep.core.regions.nz_csep_regionForecast class:
csep.core.forecasts.GriddedForecast
csep.load_gridded_forecast()
floatcsep.utils.file_io.GriddedForecastParsers.dat()Test functions:
Result plotting functions:
csep.utils.plots.plot_poisson_consistency_test()Where to learn pyCSEP further: