我一直在WRF用户近5年了,最近的一次公开发布和贡献代码。我不知道WPS (WRF预处理系统)有这样一个工具,需要在网格和点坐标并返回适当的索引。然而,它是非常简单的自己。一些建议使用一个外部的库,我认为这可能是一种过度对于这样一个简单的任务。这是你需要做的是:
运行
geogrid.exe
生成网格。因为你还不知道鸟巢的确切位置,设置max_dom = 1
在namelist.wps
。这将生成一个文件geo_em.d01.nc
。看一下
geo_em.d01.nc
文件为你的孩子找到合适的索引域。i_parent_start
和j_parent_start
引用父网格上的x和y指数的西南角落的孩子网格将定位。XLONG_M
和XLAT_M
的经度和纬度网格质量(压力)点。使用编程语言的选择,找到离你的期望位置的网格单元为孩子窝。这通常是通过寻找所需的位置之间的距离的最小值和网格上的所有点。例如,在Fortran,可以做一些类似:j_parent_start整数,整数:i_parent_start维度(2)::坐标
坐标=argminminloc((lon0-xlong_m) * * 2 + (lat0-xlat_m) * * 2) i_parent_start =坐标(1)j_parent_start =坐标(2)
在哪里xlong_m
和xlat_m
是你读从电网二维数组,然后呢lat0
和lon0
是孩子的所需的坐标巢西南角。类似地,如果您使用Python,你能做的:
进口numpy np j_parent_start, i_parent_start = np。unravel_index (\ np.argmin ((lon0-xlong_m) * * 2 + (lat0-xlat_m) * * 2), xlon_m.shape) #添加一个因为WRF指数从1 i_parent_start + = 1 j_parent_start + = 1
现在编辑
namelist.wps
再次,设置i_parent_start
和j_parent_start
对您在步骤3中,计算的值集max_dom = 2
,重新运行geogrid.exe
。子域文件geo_em.d02.nc
应该创建。看一下
geo_em.d02.nc
文件。重复这个过程,直到满意域位置。
关于parent_grid_ratio
参数。这是一个整数倍子网格细化相对于父网格。例如,如果设置为3,父网格分辨率为12公里,孩子网格分辨率将4公里。奇怪的值parent_grid_ratio
(3、5等)推荐,因为即使值,插值误差出现由于荒川C-grid惊人的本质。parent_grid_ratio = 3
是最常用的值,推荐自己。