- 积分
- 4113
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2021-1-14
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
资源是版主大佬这里找到的,在原帖回复以后得到一个链接,那个链接我多点了几次才打开,前几次一直是无法响应,不要放弃,多刷新几次就可以了[url=修正NCL原地图数据:快速绘制准确中国地图,值得你拥有! http://bbs.06climate.com/forum.p ... &fromuid=127029 (出处: 气象家园)]修正NCL原地图数据:快速绘制准确中国地图,值得你拥有! http://bbs.06climate.com/forum.p ... &fromuid=127029 (出处: 气象家园)[/url]
链接里的方法比书上的要方便很多,很推荐!!!
1.中国地图:
按照链接里面的步骤,直接在交互式页面(不打开ncl的情况下)使用"git clone (github里给的链接)"下载提供的地图数据和脚本等文件,默认下载到你在交互式下所打开的文件夹下。(要是没下载文件的话之后的内容可以不看了)
找到电脑上安装ncl的文件夹,根据里面写到的步骤和提供的数据进行地图文件的替换,就能得到有南海区域的地图和正确的中国边界图,文件里还有长江黄河的位置数据可以使用
2.长江黄河:
文件中的rivers是最新的黄河长江的数据,脚本为:
;地图基本设置
res@mpFillOn = True
res@mpMinLatF = 20. 我自己选择的经纬度,需要看到南海区域要改成0
res@mpMaxLatF = 60.
res@mpMinLonF = 50.
res@mpMaxLonF = 145.
res@mpDataSetName = "Earth..4" ; 经过一开始的替换,现在的地图是最准确的
res@mpDataBaseVersion = "MediumRes" ; 中等分辨率, 加上这个边界变细致了
res@mpOutlineOn = True ; Turn on map outlines
res@mpAreaMaskingOn = True
res@mpMaskAreaSpecifiers = (/"land"/);这里我的land是要设置大陆填充,只填充中国就写China就好
res@mpOutlineSpecifiers = (/"China"/)
res@mpLandFillColor = "white"
res@mpInlandWaterFillColor = "white"
res@mpOceanFillColor = "white"
res@mpNationalLineColor = "black"
res@mpGeophysicalLineColor = "black"
base=gsn_csm_contour_map(wks,ccr,res)
;添加黄河和长江
river = True
river@gsLineThicknessF = 0.8
river@gsLineColor = "black"
plotrv = gsn_add_shapefile_polylines(wks,base,"./NCL-Chinamap/cnmap_NetCDF/rivers.nc",river)
(base是我的底图;"./NCL-Chinamap/cnmap_NetCDF/rivers.nc"是我的保存路径,“.”代表我以及在交互式页面打开的文件夹,后面的就是路径)
3.添加南海小图
原来的脚本中有一些getvalues的内容,我发现删去以后并不影响我的作图,可能是我下载的ncl是最新版,直接利用nhres=res就可以
;添加南海
nhres = res
nhres@gsnFrame = False
nhres@gsnDraw = False
nhres@vpHeightF = 0.15
nhres@vpWidthF = 0.15
nhres@mpMinLatF = 2.0 ;南海的地理位置
nhres@mpMaxLatF = 23.0
nhres@mpMinLonF = 105.0
nhres@mpMaxLonF = 123.0
nhres@lbLabelBarOn = False
nhres@tmXBOn = False
nhres@tmYLOn = False
nhres@tmYROn = False
nhres@tmXTOn = False
nhres@gsnLeftString = ""
nhres@gsnRightString = ""
nhres@cnLineLabelsOn = False
map_nanhai = gsn_csm_contour_map(wks,ccr,nhres)
adres = True ;设置在图中的位置
adres@amParallelPosF = 0.49 ; -0.5 is the left edge of the plot.
adres@amOrthogonalPosF = 0.49 ; -0.5 is the top edge of the plot.
adres@amJust = "BottomRight"
plotnh = gsn_add_annotation(base,map_nanhai,adres)
4.显著性打点
打点方法参考之前写过的两种方法[url=【已解决】ncl 降水 空间相关 显著性打点 http://bbs.06climate.com/forum.p ... &fromuid=127029 (出处: 气象家园)]【已解决】ncl 降水 空间相关 显著性打点 http://bbs.06climate.com/forum.p ... &fromuid=127029 (出处: 气象家园)[/url]
我画出南海小图之后,我发现小图里并没有我的显著性区域,只有我画上的等值线的填色图
试了一会以后发现只要把通过显著性部分再overlay在小图上就可以
在map_nanhai = gsn_csm_contour_map(wks,ccr,nhres)这一步后面添加:
plot1=gsn_csm_contour(wks,p,rest);给南海区域通过显著性的地方打点
overlay(map_nanhai,plot1)
要注意的是大图的显著性区域是plot(我没表示出来),小图要换一个我用的是plot1,打点绘图参数是一致的,只是变量名要换一下,
用同一个的话会出现只有一个图打点的情况
|
-
|