爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
12
返回列表 发新帖
楼主: hfh-grads

[求助] 线性趋势

[复制链接]

新浪微博达人勋

发表于 2015-6-1 16:05:12 | 显示全部楼层
言深深 发表于 2015-6-1 11:45
额,是的哎。是我看错了。
你试试程序看看,这两个都是一样的。

公式运行了,应该是对的
{:eb514:}还想再请教一个问题哈
我的这个数据是逐月的温度数据,为什么我对原始数据求线性趋势得出来的值要比将这个数据求年平均距平(就是先求逐月距平,再将每年的数据求一个平均值)得到的线性趋势小好多呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2015-6-2 09:45:24 | 显示全部楼层
呼啦呼啦 发表于 2015-6-1 16:05
公式运行了,应该是对的
还想再请教一个问题哈
我的这个数据是逐月的温度数据,为什 ...

这个你自己思考一下看看吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-1 13:44:28 | 显示全部楼层
呼啦呼啦 发表于 2015-6-1 09:25
恩,好像是有问题,后来我又修改了一下,能帮我再看一下吗?
!x=bt+a
program station

请问楼主,海温月平均资料要去除线性趋势,然后还是要用grads画图,具体步骤怎么操作,是先用Fortran处理资料,然后得到新的数据资料再利用grads画图吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-2 17:00:33 | 显示全部楼层
呼啦呼啦 发表于 2015-5-29 14:30
深深你好,关于这个问题我想问一下,如果我不考虑缺测和季节的话,想做线性趋势的空间分布,我自己照着上 ...

呼啦呼啦,你好,请问你程序里面最前面nx=105,ny=14是怎么来的哦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-7 17:04:40 | 显示全部楼层
Dannyqiu 发表于 2018-2-2 17:00
呼啦呼啦,你好,请问你程序里面最前面nx=105,ny=14是怎么来的哦

nx和ny是格点数,比方说经度范围是110~160,分辨率是2.5°,那么nx=(160-110)/2.5+1=21
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-10 12:22:19 | 显示全部楼层
本帖最后由 Dannyqiu 于 2018-2-10 12:24 编辑
呼啦呼啦 发表于 2018-2-7 17:04
nx和ny是格点数,比方说经度范围是110~160,分辨率是2.5°,那么nx=(160-110)/2.5+1=21

嗯嗯,我参考你的程序把现有的海温距平资料去线性趋势了,海洋范围数据没啥问题,可是陆地范围为什么会出现距平数据,我把相应的Fortran,ctl, gs贴出来,麻烦你看一下呢,谢谢了
Fortran:

!x=bt+a
program station
parameter (nx=180,ny=89,mt=636)
real tmsu(nx,ny,mt),yr(mt),y(nx,ny,mt)
real s1(nx,ny),s2(nx,ny),s3(nx,ny),s4(nx,ny),b(nx,ny),a(nx,ny)
integer i,j,it,k
open(1,file='d:\AENSO\sst.mnmean.ssta.grd',form='binary')
do it=1,mt
read(1) ((tmsu(i,j,it),i=1,nx),j=1,ny)
end do
do it=1,mt
yr(it)=it
end do
do i=1,nx
do j=1,ny
do it=1,mt
s1(i,j)=s1(i,j)+tmsu(i,j,it)*yr(it)
s2(i,j)=s2(i,j)+yr(it)
s3(i,j)=s3(i,j)+tmsu(i,j,it)
s4(i,j)=s4(i,j)+yr(it)*yr(it)
enddo
b(i,j)=(s1(i,j)*636-s2(i,j)*s3(i,j))/(s4(i,j)*636-s2(i,j)**2)
a(i,j)=(s3(i,j)-b(i,j)*s2(i,j))/636.0
do it=1,mt
     y(i,j,it)=tmsu(i,j,it)-it*b(i,j)-a(i,j)
     enddo
enddo
enddo
open(2,file='D:\AENSO\sst.mnmeanqvshi.grd',form='binary')
write(2)(((y(i,j,it),i=1,nx),j=1,ny),it=1,mt)
END

ctl:
dset d:\AENSO\sst.mnmeanqvshi.grd
undef -999000000.0
xdef 180 linear 0 2
ydef 89 linear -88 2
zdef 1 linear 0 1
tdef 636 linear JAN1961 1mo
vars 1
sst 0 -999 Monthly Means of Sea Surface Temperature
endvars

gs:
'reinit'
'open d:\AENSO\sst.mnmeanqvshi.ctl'
'set lat -30 30'
'set lon -90 15'
'define ave1=ave(sst,t=297,t=299)'
'set gxout shaded'
'set cint 0.2'
'set clevs -1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1.0 1.2'
'set ccols 14 9 4 11 5 13 3 10 7 12 8 2 6 15'
'd ave1'
'set gxout contour'
'set cint 0.2'
'set clevs -1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1.0 1.2'
'd ave1'
'set line 1 1 7'
'draw title east la after3 qiuTNA sst'
'cbarn 1 0 4.5 0.35'
'printim d:\AENSO\eastlaafter3qiuTNAssthecheng.gif gif white'
;
然后画的图是
C:\Users\Danny\Desktop\QQ.png
QQ.png
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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