Henghengniceman / pyWRF-automation

Python automation script to download the Global Forecast System (GFS) data from NOMADS NOAA with spatial resolution 0.25 degree and execute Weather Research & Forecasting (WRF) model.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PyWRF-Automation

Python automation script to download the Global Forecast System (GFS) data from NOMADS NOAA with spatial resolution 0.250 and execute Weather Research & Forecasting (WRF) model.

Prerequisites

To using this script, you must complete following prerequisites such as:

  1. Linux/Unix distribution
  2. Python 3.7+
  3. MPI Package (OpenMPI/Intel MPI/MPICH)
  4. WRF-ARW Model with em_real case using dmpar compiler selection.

This repository includes two script, which is main.py as an executable script and utils.py as a collection of function that will be used by main.py script.

How to use

  1. Open main.py file and change the values below Arguments comment (line 11):
# Arguments
gfsout_path             = "/home/your_username/wrf_model/gfs_dataset"
wps_path                = "/home/your_username/wrf_model/wps"
wrf_path                = "/home/your_username/wrf_model/wrf/test/em_real"
wrfout_path             = "/home/your_username/wrf_model/wrf_output"
gfs_num_workers         = 4
gfs_download_increment  = 3
gfs_left_lon            = 110
gfs_right_lon           = 115
gfs_top_lat             = -2
gfs_bottom_lat          = -5
wrf_forecast_duration   = 1 
num_proc                = 1
wrfout_domain_data      = 1
Argument Data Type Range Description Note
gfsout_path str - Path to GFS dataset folder -
wps_path str - Path to compiled WPS folder -
wrf_path str - Path to compiled WRF met_em folder -
wrfout_path str - Path to wrfout folder -
gfs_num_workers int 1 to nproc Number of workers will be assigned to download gfs data concurrently Higher value will make download faster, but it will cost CPU cores
gfs_download_increment int - Which GFS forecast hours data will be downloaded Set to 1 if you want to download GFS dataset for every forecast hours
gfs_left_lon float -180 to 180 Longitude gfs_left_lon < gfs_right_lon
gfs_right_lon float -180 to 180 Longitude -
gfs_top_lat float -90 to 90 Latitude gfs_top_lat > gfs_bottom_lat
gfs_bottom_lat float -90 to 90 Latitude -
wrf_forecast_duration int 1 to 16 (in days) Length of simulation days -
num_proc int 1 to nproc Number of CPU cores will be used to execute real.exe & wrf.exe -
wrfout_domain_data int 1 to number_of_domain Which wrfout file will be saved Set to 1 if you want to save wrfout file on domain 1 etc

Note: in order to download GFS dataset for several hours (eg: every 3 hours), set gfs_download_increment argument to 3.

  1. Open namelist.wps file then set start_date and end_date value to 2000-01-01_00:00:00.
  2. Open namelist.input file then set the following variables using this value below:
Variable value
run_days 0
start_year 2000
start_month 01
start_day 01
end_year 2000
end_month 01
end_day 01
  1. Export libraries path LD_LIBRARY_PATH that will be used by wps.exe and wrf.exe.
  2. Execute the program by typing python main.py

Credit

Copyright (c) 2020-present Reza Pahlevi and Agung Baruna Setiawan Noor.

About

Python automation script to download the Global Forecast System (GFS) data from NOMADS NOAA with spatial resolution 0.25 degree and execute Weather Research & Forecasting (WRF) model.

License:MIT License


Languages

Language:Python 100.0%