Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

การใช้งาน Weather Research and Forecasting (WRF) model เบื้องต้นมีขั้นตอนดังนี้


  1. ต้องลง WRF เรียบร้อยแล้ว

  2. ต้องลง WPS เรียบร้อยแล้ว

  3. ต้องดาวน์โหลด Geography data for WPS geogrid.exe เรียบร้อยแล้ว

  4. ต้องลง NCL เรียบร้อยแล้ว (สำหรับหัวข้อ 2.2)

1. Prepare global model output

1.1 Download global model output

สามารถดาวน์โหลด Global model output ฟรีได้จากเว็บไซต์ เช่น https://www2.mmm.ucar.edu/wrf/users/download/free_data.html

และสามารถเลือกดาวน์โหลดข้อมูลจาก Global Forecasting System (GFS) โดยตรงได้จาก ที่นี่

ข้อมูล GFS ถูกสำรองไว้บนเว็บไซต์นี้ เพียง 10 วันเท่านั้น

Example data

สามารถคัดลอกข้อมูล Global model output สำหรับตัวอย่างนี้ ได้โดยใช้คำสั่ง

cp -r /tarafs/data/project/common/WRF/Example1/GFS/ .    # Copy the prepared example data to the current directory

1.2 Link ./WPS/Vtable

ในการนำเข้าข้อมูล จำเป็นต้องสร้าง Variable table เพื่อใช้ในการจับคู่ชื่อ ประเภทและหน่วยของตัวแปรที่อยู่ในไฟล์ข้อมูลนำเข้ากับตัวแปรที่ WRF model ใช้

WPS มี Variable table สำหรับการนำเข้าข้อมูลจากบาง Global model อยู่ในโฟลเดอร์ ./WPS/ungrib/Variable_Tables/

ก่อนการแปลงข้อมูลด้วย ungrib.exe จำเป็นต้องลิ้งค์หรือคัดลอกตารางที่เหมาะสมออกมายังตำแหน่งเดียวกันกับ ungrib.exe โดยใช้ชื่อ Vtable

cd WPS
ln -s ./ungrib/Variable_Tables/Vtable.GFS ./Vtable  # For GFS data, link Vtable.GFS to the same location as ungrib.exe, naming it Vtable

ungrib.exe จะอ่านเฉพาะชื่อไฟล์ GRIBFILE.AAA, GRIBFILE.AAB, …

สคริปต์ link_grib.csh ทำหน้าที่ลิ้งค์และแปลงชื่อไฟล์ในโฟลเดอร์ที่มึชุดข้อมูลมายังโฟลเดอร์ WPS ให้โดยอัตโนมัติ

./link_grib.csh Path_to_your_data      # Path to the folder containing the GFS data *** {USER INPUT} ***

Common mistake

  • Setting path to the wrong folder

  • The folder contains some unrelated files or files from other models

2. Run WPS

2.1 Edit ./WPS/namelist.wps

ไฟล์ namelist.wps ในโฟลเดอร์ WPS เป็นไฟล์ที่ควบคุมการทำงานหลักของ WPS ซึ่งกำหนดวันเวลา ตำแหน่งและขนาดพื้นที่ที่ WRF model จำลอง

สำหรับตัวอย่างนี้ ให้แก้ไขไฟล์ namelist.wps ดังนี้

# Edit namelist.wps 
# as follows while leave the others unchanged
  start_date     = '2022-05-09_00:00:00',  '2022-05-09_00:00:00',
  end_date       = '2022-05-09_12:00:00',  '2022-05-09_12:00:00',
  
  i_parent_start =  1,  43,
  j_parent_start =  1,  53,
  e_we           = 120, 121,
  e_sn           = 150, 151,
  dx             = 36000,
  dy             = 36000,
  map_proj       = 'mercator',
  ref_lat        = 13.208,
  ref_lon        = 101,
  truelat1       = 13.208,
  truelat2       = 0,
  stand_lon      = 100.861,
  geog_data_path = '../WPS_GEOG' # *** {USER INPUT} ***

สำหรับการตั้งค่า geog_data_path ในบรรทัดที่ 17 ดู Geography data --- for WPS geogrid.exe

2.2 Check domains (Optional, require NCL6.2 or later)

สามารถตรวจสอบ Domain ที่ถูกตั้งค่าไว้ใน namelist.wps ได้โดยใช้ plotgrids_new.ncl ซึ่งอยู่ในโฟลเดอร์ ./WPS/util/ โดยมีขั้นตอนดังนี้

  • คัดลอก plotgrids_new.ncl มาอยู่ในโฟลเดอร์เดียวกันกับ namelist.wps

  • เลือกรูปแบบการแสดงผลโดยแก้ไขตัวแปร type ใน plotgrids_new.ncl

    • สำหรับ X11: เลือก type = “x11“ (ค่าตั้งต้น)

    • สำหรับ PDF: เลือก type = ”pdf”

  • ใช้คำสั่ง ncl plotgrids_new.ncl

สำหรับ X11 ต้องเปิดใช้งาน X11 Forwarding หน้าต่างแสดงผลถึงขึ้นมาได้

สัญลักษณ์ ; คือ การ comment ใน NCL

cp ./util/plotgrids_new.ncl .    # Copy the script to the same directory as namelist.wps
nano plotgrids_new.ncl           # Comment/uncomment the variable "type" 
                                 # For X11 (default), X11 Forwarding must be enabled.
ncl plotgrids_new.ncl            # Run the script

2.3 WPS job submission script

ในการเตรียมข้อมูลนำเข้า WRF model ด้วย WPS จะต้องรัน geogrid.exe และ ungrid.exe ก่อน แล้วจึงจะสามารถรัน metgrid.exe ได้

Example WPS script ด้านล่างนี้ คือตัวอย่างที่ใช้ในการ Submit job บน TARA devel node (5 CPU cores) โดยสามารถคัดลอกสคริปต์นี้ได้โดยใช้คำสั่งด้านล่าง แล้วแก้ไข Project account

cp -r /tarafs/data/project/common/WRF/Example1/submitWPS.sh .   # Copy the script to WPS directory
nano submitWPS.sh                               # Specify your project account *** {USER INPUT} **

Example WPS script

#!/bin/bash

#SBATCH -p devel                    # Partition or machine type [devel/compute/$
#SBATCH -N 1 --ntasks-per-node=5    # Number of nodes and Number of core per no$
#SBATCH -t 02:00:00                 # Total run time limit (hour: minute: secon$
#SBATCH -J WPS_Ex1                  # Job name (short)
#SBATCH -A projxxxx                 # Your project account *** {USER INPUT} ***

module purge
module load netCDF-Fortran/4.5.2-iimpi-2019b
module load libpng/1.6.37-GCCcore-8.3.0
module load JasPer/1.900.1-intel-2019b

export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib

ulimit -s unlimited

srun -n4 --exclusive ./geogrid.exe &
srun -n1 --exclusive ./ungrib.exe &
wait
srun -n4 --exclusive ./metgrid.exe

ungrid.exe ต้องรันแบบ Single processor/Serial execution เท่านั้น

สามารถรวม Job submission script ของ WPS และ WRF เพื่อ Submit job เพียงครั้งเดียวได้

2.4 Submit WPS job

สามารถ Submit job ได้โดยใช้คำสั่ง sbatch แล้วติดตามด้วยคำสั่ง sacct หรือ squeue -u USERNAME

sbatch submitWPS.sh

3. Run WRF

3.1 Edit ./em_real/namelist.input

ไฟล์ namelist.input ในโฟลเดอร์ em_real เป็นไฟล์ที่ควบคุมการทำงานทั้งหมดของ WRF ซึ่งต้องกำหนดวันเวลา ตำแหน่งและขนาดพื้นที่ ให้สอดคล้องกับไฟล์ ./WPS/namelist.wps

ในไฟล์ namelist.input จะเพิ่มการ

สำหรับตัวอย่างนี้ ให้แก้ไขไฟล์ namelist.input ดังนี้

  run_days                            = 0,
  run_hours                           = 12,
  run_minutes                         = 0,
  run_seconds                         = 0,
  start_year                          = 2022, 2022,
  start_month                         = 05,   05,
  start_day                           = 19,   19,
  start_hour                          = 00,   00,
  end_year                            = 2022, 2022,
  end_month                           = 05,   09,
  end_day                             = 06,   06,
  end_hour                            = 00,   00,
  frames_per_outfile                  = 6, 6,
  
time_step                           = 90,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 2,
 e_we                                = 120,    121,
 e_sn                                = 150,    151,
 e_vert                              = 34,     34,
 dzstretch_s                         = 1.1 
 p_top_requested                     = 5000,
 num_metgrid_levels                  = 34,
 num_metgrid_soil_levels             = 4,
 dx                                  = 36000,
 dy                                  = 36000,
 grid_id                             = 1,     2,
 parent_id                           = 0,     1,
 i_parent_start                      = 1,     43,
 j_parent_start                      = 1,     53,

3.2 WRF job submission script

#!/bin/bash

#SBATCH -p devel
#SBATCH -N 1  --ntasks-per-node=40
#SBATCH -t 02:00:00
#SBATCH -J WRF
#SBATCH -A thaisc

module purge

module load HDF5/1.10.5-iimpi-2019b
module load JasPer/1.900.1-intel-2019b
module load libpng/1.6.37-GCCcore-10.3.0

export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib

export NETCDF=/tarafs/data/project/thaisc/skanoksi/Libraries/NET$export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH}
export PATH=${NETCDF}/bin:${PATH}

ulimit -s unlimited

srun ./real.exe &
wait
srun ./wrf.exe

3.3 Submit job


Contact Us
ThaiSC support service : thaisc-support@nstda.or.th

  • No labels