天天看点

WRF使用3s(90m)分辨率的地形数据

由于WRF自带最高分辨地形数据是30s的,约900m。要使用更高分辨率的地形数据需要自己制作、添加。下面简要介绍一下下载、制作和使用流程,仅供参考。

1. 数据下载

这里使用 srtm 地形数据,下载地址为:

http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp

每个网格为一个文件,一个文件涵盖的区域为

WRF使用3s(90m)分辨率的地形数据

。下载时选择

tiff

格式,便于之后处理。

本文选取的区域为:

WRF使用3s(90m)分辨率的地形数据

WRF使用3s(90m)分辨率的地形数据
WRF使用3s(90m)分辨率的地形数据

每个文件的下载链接都是有规律的,比如上面所选区域的左下角的网格,纬度的编号是9,经度的编号是53,那么可以通过shell脚本批量下载了。

WRF使用3s(90m)分辨率的地形数据

然后

source

执行。

wang@localhost $ . ./downsrtm.sh           

复制

注意:由于WPS地形数据格式的限制,只能制作某个区域的,过大会超出99999。所以选取的文件个数最好不要超过60。

下载完成后新建一个文件夹,解压到里面。

WRF使用3s(90m)分辨率的地形数据

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

  • 编译

    ./configure CPPLAGS=/usr/include/libgeotiff --prefix=/yourinstallpath

    make && make install

    安装后需要将编译出的

    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 = 45.000416
  • known_lon = 79.999583
  • dx = 8.333333e-04
  • dy = 8.333333e-04

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/           

复制

WRF使用3s(90m)分辨率的地形数据

添加好的GEOGRID.TBL

namelist.wps

geog_data_res

填写

3s

就可以使用了。

WRF使用3s(90m)分辨率的地形数据
5. 验证

选取云南省一部分

WRF使用3s(90m)分辨率的地形数据
WRF使用3s(90m)分辨率的地形数据

不同分辨率的效果

参考资料1:http://www.meteoboy.com/90m-topo-in-WRF.html

参考资料2:http://seisman.info/srtm.html