由于WRF自带最高分辨地形数据是30s的,约900m。要使用更高分辨率的地形数据需要自己制作、添加。下面简要介绍一下下载、制作和使用流程,仅供参考。
1. 数据下载
这里使用 srtm 地形数据,下载地址为:http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp
每个网格为一个文件,一个文件涵盖的区域为
。下载时选择tiff
格式,便于之后处理。
本文选取的区域为:
,
每个文件的下载链接都是有规律的,比如上面所选区域的左下角的网格,纬度的编号是9,经度的编号是53,那么可以通过shell脚本批量下载了。
然后 source
执行。
wang@localhost $ . ./downsrtm.sh
注意:由于WPS地形数据格式的限制,只能制作某个区域的,过大会超出99999。所以选取的文件个数最好不要超过60。
下载完成后新建一个文件夹,解压到里面。
source
该脚本完成解压。
2. 数据拼接
安装Python
的gdal
包,可以通过系统的包管理器这里是使用conda
包管理器来安装的。关于conda
的使用这里不再赘述。
进入解压后的目录,使用下面命令拼接。
gdal_merge.py *.tif -o output.tif -a_nodata -32768
3. 转换为WPS格式
使用openwfm的小程序 convert_geotiff ,
下载地址为:https://github.com/openwfm/convert_geotiff
编译时需要先用yum
安装 libgeotiff
和libgeotiff-devel
。
convert_geotiff
所在的路径加到PATH
环境变量里,或者用绝对路径来调用。topo_3s
文件夹,将之前生成的output.tif
文件放入该文件夹下。执行下面命令就在该文件夹下生成了index和WPS格式的地形文件。
convert_geotiff -w 4 -t 1500 -u "meters MSL" -d "3s topography" -b 0 -m -32768 ouput.tif
最后将topo_3s
目录拷贝到geog
目录下。
注意:这种方法生成的index文件对经纬度描述有误,以本文区域为例。需要做如下修改。
known_lat和known_lon为选取区域左上角点的经纬度。
4. 使用
只拷贝文件还不够,还要让WPS知道在哪找这个地形文件。 打开WPS/geogrid下的GEOGRID.TBL文件,在HGT_M对应位置添加如下信息:
interp_option=3s:average_gcell(4.0)+four_pt+average_4pt
rel_path=3s:topo_3s/
添加好的GEOGRID.TBL
在namelist.wps
的geog_data_res
填写3s
就可以使用了。
选取云南省一部分
不同分辨率的效果
参考资料1:http://www.meteoboy.com/90m-topo-in-WRF.html 参考资料2:http://seisman.info/srtm.html