爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12797|回复: 19

[作图] NCL6.4.0 绘制雷达圆圈

[复制链接]

新浪微博达人勋

发表于 2019-8-18 22:07:24 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 小其其格 于 2019-8-18 22:08 编辑

  • 在做数值模拟时,要对比实况雷达回波和模拟出来的雷达回波,需要在模拟图像上
  • 绘制雷达的圆圈。查了一下官网函数,发现6.5.0版本的geolocation_circle函数
  • 可以直接求取圆圈的格点经纬度,但是6.5.0没有CYGWIN版本。
  • 6.4.0版本的nggcog函数也有这样的功能,
  • 但是我在使用时候怎么也调不出效果来。
  • 因此决定自己动手写个添加绘制圆圈的脚本,思路如下:
  • (1)给定雷达站的中心经纬度和半径
  • (2)根据赤道半径和极半径求出圆圈上纬度对应的半径
  • (3)求出圆圈各个点的经纬度数值
  • (4)利用gsn_add_polyline函数绘制圆圈。
  • 具体脚本如下:
    1. mpres@gsLineColor          = "white"       ;-- marker color
    2.     mpres@gsLineThicknessF       =  4.          ;-- marker line thickness
    3.     mpres@gsLineDashPattern = 1
    4.     ;mpres@tfPolyDrawOrder = "PreDraw"
    5.     ;----Ningbo
    6.     slon      =  121.5088                     ; lon: station or storm         
    7.     slat      =   30.0758                     ; lat: station or storm
    8.     srad      = (/ 50, 100, 150 /)  ; station radii (km)
    9.     ;R = 150. ;雷达圆圈半径 km
    10.     ;srad_unit = 1                            ; km
    11.     N         = 360                          ; # of points; more points nicer 'circle'
    12.     nLoc = dimsizes(slat)                   ; # locations
    13.     nRad = dimsizes(srad)                   ; # radii
    14.     circle_lon = new( (/nLoc,nRad,N/), float)                 ; a new array
    15.     circle_lat = new( (/nLoc,nRad,N/), float)
    16.     PI = 3.1416

    17.     Ea = 6378.137;     //   赤道半径  km
    18.     Eb = 6356.725;     //   极半径    km
    19.     ec = Eb + (Ea-Eb) * (90.0 - slat) / 90.0 ;相当于(ec-Eb)/(Ea=Eb)=(Lat-90)/(0-90),ec的作用就是修正因为纬度不断变化的球半径长度。详见https://www.cnblogs.com/zhoug2020/p/7634187.html
    20.     ed = ec * cos(slat * PI / 180)           ;ed是slat所在纬度的纬度圈的半径 https://www.cnblogs.com/zhoug2020/p/7634187.html
    21.   
    22.     do nl=0,nLoc-1
    23.         do nr=0,nRad-1
    24.             do nN=0,N-1
    25.                dx = srad(nr)*sin(nN*PI/180.);
    26.                dy = srad(nr)*cos(nN*PI/180.);
    27.                circle_lon(nl,nr,nN) = (dx/ed + slon*PI/180.)*180./PI;
    28.                circle_lat(nl,nr,nN) = (dy/ec + slat*PI/180.)*180./PI;
    29.             end do     ;N  
    30.         end do       ; nr
    31.     end do         ; nl
    32.    

    33.     do nl=0,nLoc-1
    34.       do nr=0,nRad-1
    35.         circ_id = "radii_"+nl+"_"+nr           ; any unique name
    36.         plot@$circ_id$ = gsn_add_polyline(wks, plot, circle_lon(nl,nr,:), circle_lat(nl,nr,:), mpres)
    37.         ;plot@$str$ = gsn_add_polymarker(wks, plot, slon, slat, mpres)
    38.         end do       ; nr
    39.     end do         ; nl
    40.    
    41.    ;Lines of E-W and N-S
    42.     X_EW = (/circle_lon(nLoc-1,nRad-1,270), circle_lon(nLoc-1,nRad-1,90)/)
    43.     Y_EW = (/slat, slat/)
    44.     X_NS = (/slon, slon/)
    45.     Y_NS = (/circle_lat(nLoc-1,nRad-1,0), circle_lat(nLoc-1,nRad-1,180)/)
    46.     circ_id2 = "radii_2"       ; any unique name
    47.     plot@$circ_id2$ = gsn_add_polyline(wks, plot, X_EW, Y_EW, mpres)
    48.     circ_id3 = "radii_3"       ; any unique name
    49.     plot@$circ_id3$ = gsn_add_polyline(wks, plot, X_NS, Y_NS, mpres)
    复制代码
    效果图(实况和模拟的同时刻dBz对比):
  • 雷达圆圈.png

评分

参与人数 3金钱 +70 贡献 +5 收起 理由
D_Fora + 20 编得很棒!
风往北吹 + 30 很给力!
尽头的尽头 + 20 + 5 赞一个!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-8-18 22:17:07 | 显示全部楼层
{:eb502:}{:eb502:}楼主厉害!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-19 10:07:26 | 显示全部楼层
{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-19 10:07:27 | 显示全部楼层
本帖最后由 解脱 于 2019-8-19 10:10 编辑

  {:eb502:}  {:eb502:}  高手
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-19 10:08:12 | 显示全部楼层
6.5是有CYGWIN版本的哦,6.6.2是没有了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-8-19 11:05:35 | 显示全部楼层
尽头的尽头 发表于 2019-8-19 10:08
6.5是有CYGWIN版本的哦,6.6.2是没有了

我在官网没看到呀,大神给个链接呗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-19 15:53:18 | 显示全部楼层
超厉害啊。给你个链接下载https://www.earthsystemgrid.org/dataset/ncl.650.dap/file.html,就是我这边打开特别慢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-19 16:06:38 | 显示全部楼层
抱紧大腿{:5_235:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-19 16:07:54 | 显示全部楼层
小其其格 发表于 2019-8-19 11:05
我在官网没看到呀,大神给个链接呗

7楼给了链接了,如果下载慢,我可以分享一下百度网盘
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-19 16:14:08 | 显示全部楼层
楼主厉害!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表