爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: Wziqi

[作图] 请教:如何正确的对sst资料(ERSSTV3)做t检验?

[复制链接]
 楼主| 发表于 2015-2-1 22:59:50 | 显示全部楼层
本帖最后由 Wziqi 于 2015-2-1 23:27 编辑
超台十八 发表于 2015-1-31 21:05
解决了吗? 你用 djf 是有问题的,程序只算 jf

还是没有解决呢,我现在是让ncl输出t值,再查表确定阈值,然后再画出显著性的,rtest也有这个问题,真是要跪了

Description

This function computes a user-specified three-month seasonal mean (DJF, JFM, FMA, MAM, AMJ, MJJ, JJA, JAS, ASO, SON, OND, NDJ). The first average (DJF=JF) and the last average (NDJ=ND) are actually two-month averages
对官网month_to_season函数的解释我的理解是只有资料第一年的冬季平均是DJF=JF,难道是所有年的DJF都等于JF吗?我所合成的年不涉及资料第一年1948年的。是不是我理解错了呀?不过这个问题对画显著性的影响应该不大,主要是我现在直接用ttest输出prob是根本一点显著性区域都画不出来,但是如果设置属性同时输出t值却可以通过查表画出像最上面的两张图的显著性区域,百思不得其解啊,如果连续画多张图查表画太麻烦了*-*
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-2-1 23:10:54 | 显示全部楼层
超台十八 发表于 2015-1-31 21:10
xep=(/xdjf(3,:,:),xdjf(10,:,:),xdjf(18,:,:),xdjf(25,:,:),xdjf(29,:,:),xdjf(50,:,:),xdjf(61,:,:)/)    ...

这里的合成事件里没有包括1983年。
密码修改失败请联系微信:mofangbao
发表于 2015-2-2 06:05:42 | 显示全部楼层
Wziqi 发表于 2015-2-1 22:59
还是没有解决呢,我现在是让ncl输出t值,再查表确定阈值,然后再画出显著性的,rtest也有这个问题,真是 ...

你沒错。就第一年才 JF, 后面都 DJF.
密码修改失败请联系微信:mofangbao
发表于 2015-2-2 06:12:35 | 显示全部楼层
我画的没问题呀,奇怪!也看不到你程序有问题。


                               
登录/注册后可看大图
密码修改失败请联系微信:mofangbao
发表于 2015-2-2 06:17:10 | 显示全部楼层
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"

f = addfile("sst.mnmean.nc","r")
sst = f->sst
delete(f)

startyear=1854                   ;; data begins 1854 Jan
index1=(1948-startyear)*12
index2=(2010-startyear)*12+11
epyears = (/1951,1958,1966,1973,1977,1998,2009/)
cpyears = (/1969,1978,1987,1995,2003,2010/)
epyears = epyears-1948                        
cpyears = cpyears-1948

sst2 = sst(index1:index2,:,:)    ;; chop the data

djf = month_to_season(sst2,"DJF")

ep = djf(1:dimsizes(epyears),:,:)      ;; copy the array dimensions
do i=0,dimsizes(epyears)-1
  ep(i,:,:) = djf(epyears(i),:,:)
end do
cp = djf(1:dimsizes(cpyears),:,:)      ;; copy the array dimensions
do i=0,dimsizes(cpyears)-1
  cp(i,:,:) = djf(cpyears(i),:,:)
end do

djf_mean = dim_avg_n_Wrap(djf,0)
djf_variance = dim_variance_n(djf,0)
ep_mean = dim_avg_n_Wrap(ep,0)
ep_variance = dim_variance_n(ep,0)
cp_mean = dim_avg_n_Wrap(cp,0)
cp_variance = dim_variance_n(cp,0)

siglvl = 0.05
iflag = False
probep = ep_mean   ;; copy meta
probcp = cp_mean
probep = ttest(ep_mean,ep_variance,dimsizes(epyears),djf_mean,djf_variance,dimsizes(djf(:,0,0)),iflag,False)
probcp = ttest(cp_mean,cp_variance,dimsizes(cpyears),djf_mean,djf_variance,dimsizes(djf(:,0,0)),iflag,False)

ep_mean = ep_mean-djf_mean
cp_mean = cp_mean-djf_mean

wks = gsn_open_wks("png","mean")
gsn_define_colormap(wks,"BlWhRe")
res = True
res@gsnDraw = False
res@gsnFrame = False
res@cnInfoLabelOn = False
res@cnFillOn = True
res@cnLineLabelsOn = False
res@gsnSpreadColors = True
res@lbLabelBarOn = False
res@tiMainString = ""
res@gsnRightString = ""
res@cnLevelSelectionMode = "ManualLevels"
res@cnMinLevelValF = -2.
res@cnMaxLevelValF = 2.
res@cnLevelSpacingF = 0.4
res@mpCenterLonF = 180

res@gsnLeftString = "EP"
plot1 = gsn_csm_contour_map_ce(wks,ep_mean,res)
res@gsnLeftString = "CP"
plot2 = gsn_csm_contour_map_ce(wks,cp_mean,res)

res2 = res
res2@cnMonoFillPattern = False
res2@cnLevelSelectionMode = "ExplicitLevels"
res2@cnLevels = (/siglvl/)                       ;; set to significance level
res2@cnFillPatterns = (/3,-1/)
res2@gsnLeftString = ""
plot3 = gsn_csm_contour(wks,probep,res2)
overlay(plot1,plot3)
plot4 = gsn_csm_contour(wks,probcp,res2)
overlay(plot2,plot4)

resP = True
resP@gsnPanelLabelBar = True
gsn_panel(wks,(/plot1,plot2/),(/2,1/),resP)
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

发表于 2015-2-2 06:20:08 | 显示全部楼层
资料这里下的 v3b

http://www.esrl.noaa.gov/psd/data/gridded/data.noaa.ersst.html
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-2-2 10:01:31 | 显示全部楼层
超台十八 发表于 2015-2-2 06:20
资料这里下的 v3b

http://www.esrl.noaa.gov/psd/data/gridded/data.noaa.ersst.html

我也是在这里下的数据,看来还不是资料的问题,可能还是我的脚本有问题,但是这个问题出的比较奇葩,所以太难找出来了,唉
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-2-2 10:02:29 | 显示全部楼层
超台十八 发表于 2015-2-2 06:12
我画的没问题呀,奇怪!也看不到你程序有问题。

看不到图,是不是没有传上来?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-2-2 10:09:37 | 显示全部楼层
超台十八 发表于 2015-2-2 06:17
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm ...

用你这个方法截取资料,和选取事件年份很方便耶,又学到了
密码修改失败请联系微信:mofangbao
发表于 2015-2-2 14:58:55 | 显示全部楼层
Wziqi 发表于 2015-2-2 10:02
看不到图,是不是没有传上来?


这样传上来吗

温度

温度
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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