请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3589|回复: 8

[求助] 线性趋势grad画图问题

[复制链接]

新浪微博达人勋

发表于 2018-2-10 13:22:26 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Dannyqiu 于 2018-2-10 13:26 编辑

在家园论坛里面找见了去线性趋势的Fortran程序,把现有的grd海温距平资料进行去线性趋势,然后写了相应的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文件

ctl文件

gs文件

gs文件
QQ.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-12 19:48:21 | 显示全部楼层
先分享,后下载,再学习,谢谢楼主
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-22 16:01:19 | 显示全部楼层
楼主的陆地颜色,和数值大于1.2的colorbar颜色是一样的,都是灰色了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-24 17:30:18 | 显示全部楼层
3L是一种说法,或者说画sst本来就应该把陆地mask掉
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-24 19:53:14 | 显示全部楼层
我看资料显示的是SST,海温资料陆地上肯定都是缺测值啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-2-26 12:04:11 | 显示全部楼层
13top 发表于 2018-2-12 19:48
先分享,后下载,再学习,谢谢楼主

是的,这是为什么呢,按理说陆地没有数据,应该不显示数据啊,怎么陆地都是大于1.2的数据
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-2-26 12:06:59 | 显示全部楼层
river 发表于 2018-2-24 19:53
我看资料显示的是SST,海温资料陆地上肯定都是缺测值啊

是的,这是为什么呢,按理说陆地没有数据,应该不显示数据啊,怎么陆地都是大于1.2的数据,是不是我用Fortran处理资料的时候吧格点搞错位了?因为原始数据直接画图不会出现陆地有数据的情况
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-26 15:14:28 | 显示全部楼层
Dannyqiu 发表于 2018-2-26 12:06
是的,这是为什么呢,按理说陆地没有数据,应该不显示数据啊,怎么陆地都是大于1.2的数据,是不是我用For ...

你没处理缺测值啊,直接用grads计算会自动处理缺测值。但是在fortran里面你自己不处理它就参加运算了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-7 16:40:56 | 显示全部楼层
river 发表于 2018-2-26 15:14
你没处理缺测值啊,直接用grads计算会自动处理缺测值。但是在fortran里面你自己不处理它就参加运算了

哦哦,这样啊,那请教一下,二进制文件里面的缺测值怎么在fortran里面处理掉呢,万分感谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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