How can I set the observation nudging time interval finer than the metgrid interval?

chwan

New member
Hi,I have been studying the observation nudging program (obsgrid.exe).
When I use met_em files at 3-hourly or 6-hourly intervals, I can successfully run obsgrid.exe and use the resulting OBS_DOM* files in wrf.exe.

In this case, the OBS_DOM files contain observation data at the same 3-hourly or 6-hourly intervals, even though the original observation data have a 10-minute time interval.
However, when I try to generate OBS_DOM files with a 10-minute interval (or any interval finer than the met_em interval of 3-hourly or 1-hourly), obsgrid.exe fails with the following error: "ERROR opening file: ./met_em.d03.*nc"

So my question is: is it possible to set the observation nudging (OBS_DOM) time interval finer than the metgrid (met_em) time interval?
In addition, if I generate the OBS_DOM files using other methods (e.g., Python, csh, etc.), will they be accepted and used correctly by wrf.exe?
 
Could you explain what's your problem ?
As I understand, you sucessfully did obsgrid.exe but output files are empty Although obsgrid sucessfully read your data, right?
I think It could appear because of latlon coordinates.
Your log reported that "Of the 2 observations found in the observation input file, for OA, only 0 of them are available inside the domain."
It could result from little_r foramt or met_em data or something. Check my convert2_little_r format python code.

import pandas as pd
import numpy as np
import os

def F(val, w, d):
return f"{float(val):{w}.{d}f}"
def I(val, w):
return f"{int(val):{w}d}"
def A(val, w):
return f"{str(val):>{w}}"
def A_right(val, w):
return f"{str(val):>{w}}"
MISSING_F = F(-888888.0, 13, 5)

header_core = (
F(row['LAT'], 20, 5) +
F(row['LON'], 20, 5) +
A_right(str(row['STN']), 40) +
A('AWS', 40) +
A('FM-12 SYNOP', 40) +
A('KMA', 40) +
F(row['ELEVATION'], 20, 5)
)
header_tail = (
I(0, 10) * 5 +
A('F', 10) * 3 +
I(0, 10) * 2 +
A(date_char, 20)
)
header_dummy = (F(-888888.0, 13, 5) + I(0, 7)) * 13
header = header_core + header_tail + header_dummy
def safeF(val, w, d):
return MISSING_F if pd.isna(val) else F(val, w, d)
data = ""
data += safeF(row['PRES_Pa'], 13, 5) + I(0, 7)
data += safeF(row['ELEVATION'], 13, 5) + I(0, 7)
data += safeF(row['TEMP_K'], 13, 5) + I(0, 7)
data += MISSING_F + I(0, 7)
data += safeF(row['WS'], 13, 5) + I(0, 7)
data += safeF(row['WD'], 13, 5) + I(0, 7)
data += MISSING_F + I(0, 7)
data += MISSING_F + I(0, 7)
data += safeF(row['RH'], 13, 5) + I(0, 7)
data += MISSING_F + I(0, 7)
f.write(header + "\n")
f.write(data + "\n")
f.write((F(-777777.0, 13, 5) + I(0, 7)) * 2 + (MISSING_F + I(0, 7)) * 8 + "\n")
f.write(I(1, 7) + I(0, 7) + I(0, 7) + "\n")


Same here, I also had the same query

Other thing is I am not able to ingest the observations in the OBS files, due to some mismatch.
C
 
Back
Top