爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
123
返回列表 发新帖
楼主: 一顾留白

求取90百分位数

[复制链接]

新浪微博达人勋

发表于 2023-9-5 13:59:13 | 显示全部楼层
您好,我现在也需要求极端降水的百分位,这个脚本能发我学习一下吗?感谢感谢我的邮箱是1223411046@qq.com
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-12-20 15:12:43 | 显示全部楼层
一顾留白 发表于 2023-3-7 18:07
我还不太清楚怎么上传文件,麻烦你留个邮箱我把脚本发你~

楼主您好,我也想参考这个脚本,可以麻烦楼主分享吗?2818907034@qq.com
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-12-21 17:42:45 | 显示全部楼层
Jyy1108 发表于 2023-12-20 15:12
楼主您好,我也想参考这个脚本,可以麻烦楼主分享吗?

发你邮箱了~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-12-21 17:53:56 | 显示全部楼层

谢谢谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-1-12 17:10:02 | 显示全部楼层
楼主!求一个脚本谢谢!798127194@qq.com谢谢啦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2024-1-15 14:54:02 | 显示全部楼层

         h2 = new(429,float)   ;39年*11日 滑动  筛选90th
         h3 = new((/365,45,321/),float)    ;90th
         
       do i =0,364,1
         do j =0,44,1
           do k =0,320,1
              if (.not.all(ismissing(h0(:,i,j,k))) .and. (i.ge.5) .and. (i.le.359))  ;h0为海温序列(year,day,lat,lon), i为day,可进行修改
                  h1 = ndtooned(h0(:,(i-5):(i+5),j,k))     ;429数据转成一维方便后续排序
                  h2 := h1(ind(.not.ismissing(h1)))        ;去掉缺测值
                  m = dimsizes(h2)                         ;区域内非缺测的格点数
                  qsort(h2)                                ;进行排序
         
                 if ((toint(floor(0.9*m))) .eq. (0.9*m))then     ;判断第90th个数是否为整数
                    h3(i,j,k) =  h2(toint(0.9*m))
                 else                                        ;不是整数则前后两个数求平均得到90th
                   a=toint(floor(0.9*m))
                   b=toint(ceil(0.9*m))
                   h3(i,j,k)=(h2(a)+h2(b))/2  
                 end if
                 delete(h1)
                 delete(h2)
              else if(.not.all(ismissing(h0(:,i,j,k))) .and. ((i.lt.5)))   ;前后11天涉及365天首尾相接
                  h1 = ndtooned(h0(:,(360+i):364,j,k))
                  hn = ndtooned(h0(:,0:(i+5),j,k))
                  a1 = array_append_record (h1, hn, 0)
                  h2 := a1(ind(.not.ismissing(a1)))

                  qsort(h2)
                  m = dimsizes(h2)
                  if ((toint(floor(0.9*m))) .eq. (0.9*m))then
                    h3(i,j,k) =  h2(toint(0.9*m))
                 else
                   a=toint(floor(0.9*m))
                   b=toint(ceil(0.9*m))
                   h3(i,j,k)=(h2(a)+h2(b))/2  
                 end if
                   ;h3(i,j,k)=(h2(386)+h2(387))/2
                 delete(h1)
                 delete(hn)
                 delete(h2)
              else if(.not.all(ismissing(h0(:,i,j,k))) .and. ((i.gt.359)))
                  h1 = new((/30,11,45,321/),float)
                  h1(:,0:(i-360),j,k) = h0(:,0:(i-360),j,k)  
                  h1(:,(i-359):10,j,k) = h0(:,(i-5):364,j,k)
                  hn = ndtooned(h1)
                  h2 := hn(ind(.not.ismissing(hn)))
                  ;printVarSummary(h2)
                  qsort(h2)
                   m = dimsizes(h2)
                 if ((toint(floor(0.9*m))) .eq. (0.9*m))then
                    h3(i,j,k) =  h2(toint(0.9*m))
                 else
                   a=toint(floor(0.9*m))
                   b=toint(ceil(0.9*m))
                   h3(i,j,k)=(h2(a)+h2(b))/2  
                 end if
                  ;h3(i,j,k)=(h2(386)+h2(387))/2
                 delete(h1)
                 delete(hn)
                 delete(h2)
              end if
              end if
              end if
           end do
         end do
       end do  


     h3!0 ="time"
     h3!1 ="lat"
     h3!2 ="lon"
     h3&lat = nlat
     h3&lon = nlon
     h3&time = time
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2024-1-15 17:18:39 | 显示全部楼层
我直接把脚本求90th部分复制过来了~可以参考一下~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-3-4 19:32:54 | 显示全部楼层
{:eb511:}{:eb511:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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