Package: weather-forecast-retrieval
Weather Forecast RetrievalWeather forecast retrieval gathers relevant gridded weather forecasts to ingest into physically based models for water supply forecastsCurrent atmospheric models implemented:High Resolution Rapid Refresh (HRRR)Rapid Refresh (RAP)Installpip install weather-forecast-retrievalSystem dependenciesnccopynccopyis used during the conversion ingrib2nc. To install thenetCDF-Clibraries that are specific for your system. See the instructions fromUnidatawgrib2To use thegrib2nccommand/function you will have to havewgrib2installed on the host computer.This is easiest done by followingNOAA instructions.
After completing their instructions, make wgrib2 accessible by cd into the source code and
attempt to install it under your ~/bin with:lnwgrib2/wgrib2~/bin/wgrib2DockerThe retrieval aspect ofweather_forecast_retievalhas been built into a Docker image based on the Python 3 Alpine linux image. This allows for a docker deployment to run and retrieve HRRR data and convert to netcdf if needed. To use, first build the imagedocker build -t usdaarsnwrc/weather_forecast_retieval .Grab a coffee as this has to compilepandasfrom source (10+ minutes of compile time). Once completed, modify or create a newdocker-compose.ymland modify the volume attachments as necessary. There are 2 volumes to attach, adatadrive mounted to/dataand the config file folders at/code/config. To setup the download, the config file is passed todocker-compose:docker-compose run weather_forecast_retrieval /code/config/hrrr.iniCommand line usageget_hrrr_archiveusage: get_hrrr_archive [-h] -s START_DATE -e END_DATE -o SAVE_DIR
                        [-f FORECASTS]

Command line tool for downloading HRRR grib files from the University of Utah

optional arguments:
  -h, --help            show this help message and exit
  -s START_DATE, --start START_DATE
                        Datetime to start, ie 2018-07-22 12:00
  -e END_DATE, --end END_DATE
                        Datetime to end, ie 2018-07-22 13:00
  -o SAVE_DIR, --output SAVE_DIR
                        Path to save the downloaded files to
  -f FORECASTS, --forecasts FORECASTS
                        Number of forecasts to getThe following command line will download data for a single hour and output into the~/Downloadsfolder to the file~/Downloads/hrrr.20180722/hrrr.t12z.wrfsfcf01.grib2:get_hrrr_archive -s '2018-07-22 12:00' -e '2018-07-22 12:10' -o tests/RME/output/hrrr_preprocessorUsehrrr_preprocessorto make smaller files from a larger HRRR file. This will crop to a bounding box and extract the following variables:air temperature 2m (TMP:2 m)relative_humidity 2m (RH:2 m)wind_u 10m (UGRD:10 m)wind_v 10m (VGRD:10 m)precip_int surface (APCP: surface)short_wave surface (DSWRF: surface)elevation (HGT:surface)TCDC for entire atmosphere (for WindNinja)usage:hrrr_preprocessor[-h]-oOUTPUT_DIR-sSTART_DATE-eEND_DATE-fFORECAST_HR--bboxBBOX[--verbose]hrrr_dir

CropHRRRfilesbyaboundingboxandextractonlythenecessarysurfacevariablesforrunningwithAWSM.Examplecommand:
$hrrr_preprocessor-s'2019-10-01 00:00'-e'2019-10-01 02:00'-f0--bbox="-119,-118,37,38"-o/path/to/output--verbose/path/to/hrrr

positionalarguments:hrrr_dirDirectoryofHRRRfilestouseasinput

optionalarguments:-h,--helpshowthishelpmessageandexit-oOUTPUT_DIR,--output_dirOUTPUT_DIRDirectorytowritecroppedHRRRfilesto-sSTART_DATE,--startSTART_DATEStartdate-eEND_DATE,--endEND_DATEEnddate-fFORECAST_HR,--forecast_hrFORECAST_HRForecasthour-nNCPU,--ncpuNCPUNumberofCPUsforwgrib2,0(default)willuseallavailable--bboxBBOXBoundingboxasdelimitedstring--bbox='longitudeleft, longitude right, latitude bottom, latitude top'--verboseincreaseloggingverbosityhrrr_nomadsThehrrr_nomadscommand line will download HRRR grib2 files from NOMADS.hrrr_nomadswill fetch either the latest 3 hours of files or files between a start and end date. Optionally,
specify the forecast hours to limit how many files are downloaded. If a bounding box and
additional preprocess path is specified,hrrr_nomadswill crop the files to the variables
needed for running AWSM.NOTE:Requireswgrib2to be installed if cropping to a bounding box.Example to download the latest 3 hours of data for files not found in the output directory,
with the00,01and02forecast hours, crop to a bounding box:hrrr_nomads -l 3 -f 0,1,2 --bbox="-119,-118,37,38" -o /path/to/output -p /path/to/crop/outputUsage:usage: hrrr_nomads [-h] -o OUTPUT_DIR [-n NUM_REQUESTS] [-s START_DATE]
                   [-e END_DATE] [-l LATEST] [-f FORECAST_HRS] [--bbox BBOX]
                   [-p OUTPUT_PATH] [--verbose] [--overwrite]

Download from NOMADS and/or crop HRRR files by a bounding box and extract only
the necessary surface variables for running with AWSM.

Example command to download the latest 3 hours and crop to a bounding box:
$ hrrr_nomads -f 0 --bbox="-119,-118,37,38" -o /path/to/output -p /path/to/crop/output --verbose

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT_DIR, --output_dir OUTPUT_DIR
                        Directory to download HRRR files to
  -n NUM_REQUESTS, --num_requests NUM_REQUESTS
                        Number of concurrent requests, default 2
  -s START_DATE, --start START_DATE
                        Start date
  -e END_DATE, --end END_DATE
                        End date
  -l LATEST, --latest LATEST
                        Latest number of hours to download, defaults 3 hours
  -f FORECAST_HRS, --forecast_hrs FORECAST_HRS
                        Forecast hours, comma seperated list
  --bbox BBOX           Bounding box as delimited string --bbox='longitude
                        left, longitude right, latitude bottom, latitude top'
  -p OUTPUT_PATH, --preprocess_path OUTPUT_PATH
                        Directory to write preprocessed HRRR files
  --verbose             increase logging verbosity
  --overwrite           Download and overwrite existing HRRR filesconvert_grib2ncrun_hrrr_retrieval