- 积分
- 74
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-11-28
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 mmmman 于 2025-1-9 21:53 编辑
由于从ncl转到python好几年了,导致ncl忘记的差不多了。最近在使用WRF模拟过程中希望在WPS设置namelist时能够叠加上省界、国界和长江黄河,以更直观地判断模拟区域的设置。网上都说ncl内置的省界是有问题的,希望通过shp文件进行绘制。
查阅了相关的经验分享,没有找到很直观的方式,简书上的一个链接给了灵感,但是发现domain的框和shp文件绘制的线不能同时出现。
排查plotgrids_new.ncl文件时,发现文件调用了 $NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl 中的 wrf_wps_dom 函数,这个函数中有一行代码 draw(mp),而在plotgrids_new.ncl中叠加 shp 文件时需要再执行一遍 draw(mp),问题就出现在了这里。
实现方法:
其实有两种实现方法,一种是修改WRFUserARW.ncl中的wrf_wps_dom函数,将绘制省界的命令插入到draw(mp)代码之前,另一种就是将wrf_wps_dom函数中的draw(mp)注释掉,然后在plotgrids_new.ncl中添加绘制shp文件的命令。我这里为了防止以后重新编译WRF导致代码需要再修改,采用了第一种方法。
(1) 将$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl 文件复制到自己的指定路径,比如 ~/Tools/
(2) 在 ~/Tools/WRFUserARW.ncl 中 wrf_wps_dom 函数中的 draw(mp) 和 mp = wrf_wps_map(wks,mpres) 代码之间(大约在4815行附近)添加下面的代码:
- river_file = "XXXXX/river.shp"
- river_res = True
- river_res@gsLineColor = "blue"
- river_res@gsLineThicknessF = 1.0
- river_poly = gsn_add_shapefile_polylines(wks,mp,river_file,river_res)
这里以绘制一个shp文件为例,需要绘制其他的shp文件以此类推
(4) 将plotgrids_new.ncl文件头部中的:
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
修改为:
load "/fs1/home/qxmmm/Tools/WRFUserARW.ncl"
|
|