QPE command-line tools

The QPE submodule has three easy to use command-line tools

  1. qpe_compute

  2. qpe_plot

  3. qpe_evaluation

qpe_compute

Computes the QPE estimates using the randomForest algorithm for a given time interval outputting the results in the form of a standard 640 x 710 pixels Cartesian map. Currently the output is written in binary format without any metadata.

qpe_compute [options]

Options:
-h, --help

show this help message and exit

-s START, --start=START

Specify the start time in the format YYYYddmmHHMM

-e END, --end=END

Specify the end time in the format YYYYddmmHHMM

-o OUTPUT, --output=OUTPUT

Path of the output folder, default is current folder

-c CONFIG, --config=CONFIG

Path of the config file, the default will be default_config.yml in the qpe module

-m MODELS, --models=MODELS

Specify which models you want to use in the form of a json line, the models must be in the folder /ml/rf_models/, for example ‘{“RF_dualpol”:”dualpol_model_BC_raw.p”}’, please note the double and single quotes, which are required

The files will be written in the output folder, and a subfolder will be created for every model passed with the -m flag. For example ‘{“RF_dualpol”:”dualpol_model_BC_raw.p”,”RF_hpol”:”hpol_model_BC_raw.p”’, will create two subfolders RF_dualpol and RF_hpol.

The configuration file must be written in YAML, the default file has the following structure:

TMP_FOLDER: '/scratch/wolfensb/'
KDP_PARAMETERS:
    RMIN : 1000.
    RMAX : 50000.
    RCELL : 1000.
    ZMIN : 20.
    ZMAX : 40.
    RWIND : 6000.
SNR_THRESHOLD: 3
ZH_THRESHOLD: 7
VISIB_CORR:
    MIN_VISIB: 37
    MAX_CORR: 2
SWEEPS: 'all'
RADARS: 'all'
# Post-processing
OUTLIER_REMOVAL: 1
GAUSSIAN_SIGMA: 0.5
ADVECTION_CORRECTION: 0
FILE_FORMAT: DN

The parameters are the following

  • TMP_FOLDER : A directory where to store intermediate files generated during the processing, this is not important and /tmp/ can be used as well

  • KDP_PARAMETERS : set of parameters used in the computation of KDP using the moving least-square method.

    • RMIN : minimum range where to look for continuous precipitation, see pyart code

    • RMAX : maximum range where to look for continuous precipitation, see pyart code

    • ZMIN : minimum reflectivity to consider it a rain cell, see pyart code

    • ZMAX : maximum reflectivity to consider it a rain cell, see pyart code

    • RWIND : size of the moving window in meters used in the PSIDP filtering and KDP estimation, see pyart code

  • SNR_THRESHOLD : minimum SNR in dB below which the radar data is masked

  • ZH_THRESHOLD : minimum ZH below which radar data is masked

  • VISIB_CORR : set of parameters for visibility correction

    • MIN_VISIB : minimum visibility below which the data is masked

    • MAX_CORR : maximum visibility correction for ZH (in linear)

  • SWEEPS : which radar sweeps (elevations) to use, e.g. [1,2,3,4] for the 4 first, ‘all’ uses all 20 sweeps

  • RADARS : which radars to consider, e.g. [‘A’,’D’], ‘all’ uses all five radars

  • OUTLIER_REMOVAL : if set to 1, a local outlier filtering will be applied (e.g. remove values with z-scores in 3 x 3 window above +3 or below -3)

  • GAUSSIAN_SIGMA : size in pixels of the Gaussian smoothing that is applied on the QPE product, if set to 0 no smoothing is used

  • ADVECTION_CORRECTION : if set to 1, the QPE will be corrected for advection using this method with two consecutive timesteps

  • FILE_FORMAT : the format of output files, either ‘float’, in this case it will be saved in binary format in float, ‘DN’, binary format but after conversion to bytes using the lookup table in constants.py SCALE_CPC or ‘DN_gif’, in gif format using the lookup table in constants.py SCALE_RGB

Warning

When defining the configuration file, it is highly advised to be consistent with the configuration file used to update the database, since the machine learning model will be trained on this particular setup. If you are not sure how you should setup these parameters always use the default file in /store/msrad/radar/rainforest/rainforest/qpe/default_config.yml.

Example

qpe_compute -s 201806112000 -e 201806112200 -m '{"RF_dualpol":"dualpol_model_BC_spline.p"}' -o /scratch/wolfensb/qpe_runs/20180611

qpe_plot

Plots a series of QPE realizations stored in different subfolders within a main folder (as given by qpe_compute), using a custom colorscale, where low precipitation intensities are displayed in linear scale and high precipitation intensities in logarithmic scale.

qpe_plot [options]

Options:
-h, --help

show this help message and exit

-i INPUT, --inputfolder=INPUT

Path of the input folder

-o OUTPUT, --outputfolder=OUTPUT

Path of the output folder

-s START, --start=START

Specify the start time in the format YYYYddmmHHMM, optional: if not provided entire timerange in input folder will be plotted

-e END, --end=END

Specify the end time in the format YYYYddmmHHMM, optional: if not provided entire timerange in input folder will be plotted

-S SHAPEFILE, --shapefile=SHAPEFILE

Whether or not to overlay the shapefile of swiss borders, default is True

-f FIGSIZE, --figsize=FIGSIZE

Size of figure width,height in inches, e.g. 5,10, default is automatically chosen depending on how many QPE fields are to be plotted

-x XLIM, --xlim=XLIM

Limits in the west-east direction, in Swiss coordinates, e.g. 100,300, default is 400,900

-c CBAR, --cbar=CBAR

Orientation of the colorbar, either ‘vertical’ or ‘horizontal’, default is ‘horizontal’

-y YLIM, --ylim=YLIM

Limits in the south-north direction, in Swiss coordinates, e.g. 500,700, default is 0,350

-d DISPLAY, --display=DISPLAY

Specify how you want to display the QPE subplots as a comma separated string, e.g 2,1 will put them on 2 rows, one column. Default is to put them in one row

-t TRANSITION, --transition=TRANSITION

Precipitation intensity at which the colormap changes (purple for lower intensities, rainbow for larger intensities), default is 10

-v VMIN, --vmin=VMIN

Minimum precip. intensity to display, default = 0.04

-V VMAX, --vmax=VMAX

Maximum precip. intensity to display, default = 120

-m MODELS, --models=MODELS

Specify which models (i.e. subfolders in the qpefolder you want to use, default is to use all available, must be comma separated and put into quotes, e.g. ‘dualpol,hpol,RZC’

Example

qpe_plot -i '/scratch/wolfensb/qpe_runs/20190610/'  -o '/scratch/wolfensb/' -V 50 -t 3 -d '1,2' -m 'RZC,CPC'

qpe_evaluation

Plots a series of evaluation scores using gauge as reference for all QPE realizations stored in different subfolders within a main folder (as given by qpe_compute).

alternate text alternate text

qpe_evaluation [options]

Options:
-h, --help

show this help message and exit

-q QPEFOLDER, --qpefolder=QPEFOLDER

Path of the folder where QPE data is stored

-g GAUGEFOLDER, --gaugepattern=GAUGEFOLDER

Path pattern (with wildcards) of the gauge data (from database) to be used, default = ‘/store/msrad/radar/radar_database/gauge/*.csv.gz’, IMPORTANT you have to put this statement into quotes (due to wildcard)!

-o OUTPUT, --output=OUTPUT

Path of the output folder

-s START, --start=START

Specify the start time in the format YYYYddmmHHMM, optional: if not provided entire timerange in qpe folder will be used

-e END, --end=END

Specify the end time in the format YYYYddmmHHMM, optional: if not provided entire timerange in qpe folder will be used

-b b10, --b10=b10

Specify which precipitation ranges you want to use at the 10 min resolution, as a comma separated string, e.g. 0,1,10,200 will separate the results, in the ranges [0,1),[1,10),[10,200(

-B END, --b60=END

Specify which precipitation ranges you want to use at the 60 min resolution, as a comma separated string, e.g. 0,1,10,200 will separate the results, in the ranges [0,2),[2,10),[10,200(

-m MODELS, --models=MODELS

Specify which models (i.e. subfolders in the qpefolder you want to use, default is to use all available, must be comma separated and put into quotes, e.g. ‘dualpol,hpol,RZC’

Example

qpe_evaluation -q /scratch/wolfensb/qpe_runs/20190806 -g '/store/msrad/radar/radar_database/gauge/*.csv.gz' -o /scratch/wolfensb/qpe_runs/plots_allstats -m "RZC, CPC, RF_dualpol, RF_hpol, RF_vpol"