爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 17880|回复: 10

[作图] 关于滑动相关函数(run_cor)的返回值的坐标属性

[复制链接]

新浪微博达人勋

发表于 2020-5-3 18:40:04 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 LiuW 于 2020-5-3 18:44 编辑

run_cor[size=13.3333px](x,y,time,5),参考官网的函数说明,我将x,y,time变量的Coordinates属性的范围均设置为1438-1473,但是返回值的Coordinates属性范围是在2002-2033,返回值的size倒是没问题,但是时间坐标怎么差这么远?求解

图中cor10是返回值,其他两个x和time变量,y也是一样的

图中cor10是返回值,其他两个x和time变量,y也是一样的
Snipaste_2020-05-03_18-43-07.png

本帖被以下淘专辑推荐:

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

新浪微博达人勋

 楼主| 发表于 2020-5-4 16:07:58 | 显示全部楼层
经过学习,发现RUN_COR函数中time变量的单位影响返回值的坐标属性,但是还是存在问题,按照官网给的介绍和计算过程的详细代码,计算11年滑动相关时,第i年的返回值应该是两气候要素的i至i+11量的相关系数,也就是最后画XY曲线图,最后10年应该没有,但是我的返回值看上去是两气候要素i-5至i+5年的相关系数,画XY图前后各少五年,到底哪个变量的属性设置引起这样的变化?向有了解的大佬求助。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-5 12:17:38 | 显示全部楼层
请问您的time的单位属性设置的什么?我的cor出来的时间序列都是2002-2031,太奇怪了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-5-6 08:44:07 | 显示全部楼层
小悦悦 发表于 2020-5-5 12:17
请问您的time的单位属性设置的什么?我的cor出来的时间序列都是2002-2031,太奇怪了。

time的单位属性必须要设置为ut_calendar(cd_calendar)能够识别的单位,我的是年际的数据,就设置了“years since .........”,好像设置的识别不了就会从2000开始,你的是五年滑动吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-8 15:53:28 | 显示全部楼层
我做的11年滑动。我看了一下,这个函数做的结果和我自己写的程序做滑动过后然后用escorc做相关的结果一样,但是我还是不知道这样做滑动相关的公式是否和林学椿老师提出来的做法一样,而且我看做滑动相关也有两种算法吧,纠结。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-5-8 21:45:38 | 显示全部楼层
小悦悦 发表于 2020-5-8 15:53
我做的11年滑动。我看了一下,这个函数做的结果和我自己写的程序做滑动过后然后用escorc做相关的结果一样, ...

按照NCL官网的函数提供者的代码,这就是以i至i+n-1(n为滑动点数)来计算i时刻的相关系数,我数理基础比较弱,我理解林老师1978年文献中提到的滑动系数计算方法和这个是一样,下面附上面提到的代码,仅供参考。
Here I am contributing a function to calculate running/moving
correlation..............
; Function to calculate running/moving correlation..
undef ("run_cor")
function run_cor(x:numeric,y:numeric,time:numeric,wSize:integer)
;**********************************************************************
; x and y: numeric array of 1D [eg: x(time) and y(time)]
; x and y should have same size
; time: numeric array of 1D that represent time coordinate of x or y
; time coordinate must have recognized by ut_calendar
; wSize is the scalar integer that specifies window size.[e.g 11 yr, 15
year, 21 year, etc]
;Sample usage: x(time) and y(time).
; cor_11=run_cor(x,y,time,11)
; cor_15=run_cor(x,y,time,15)
; cor_21=run_cor(x,y,time,21)
;************************************************************************
local aa,bb,i,cor,k,N
begin
N=dimsizes(x)
cor=new((/(N-(wSize-1))/),float)
date=new((/(N-(wSize-1))/),integer)
utc_date=ut_calendar(time,0)
year = floattointeger(utc_date(:,0))
k=(wSize-1)/2
do j=0,N-(wSize)
date(j)=year(k)+j
end do
do i=0,(N-wSize)
aa=x(i:i+(wSize-1))
bb=y(i:i+(wSize-1))
cor(i)=escorc(aa,bb)
end do
cor!0="time"
cor&time=date
return(cor)
end
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-9 11:23:15 | 显示全部楼层
LiuW 发表于 2020-5-8 21:45
按照NCL官网的函数提供者的代码,这就是以i至i+n-1(n为滑动点数)来计算i时刻的相关系数,我数理基础比 ...

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

使用道具 举报

新浪微博达人勋

发表于 2021-3-16 10:14:24 | 显示全部楼层
请问做了滑动相关后,您有做显著性检验吗?是用公式计算有效自由度来做检验的吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-25 19:02:23 | 显示全部楼层
qxlong 发表于 2021-3-16 10:14
请问做了滑动相关后,您有做显著性检验吗?是用公式计算有效自由度来做检验的吗?

我没做,如果要做是需要用公式计算出有效自由度。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-5-8 15:26:14 | 显示全部楼层
楼主可以贴上完整代码吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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