爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5855|回复: 7

[脚本编辑] 用grd画的sst图跟用nc画的图等值线位置不对

[复制链接]

新浪微博达人勋

发表于 2022-3-30 18:00:34 | 显示全部楼层 |阅读模式

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

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

x
画1979年一月的sst图nc文件的ctl:
dset C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst.mnmean.nc
title NOAA ERSSTv5 (in situ only)
undef -9.96921e+36
dtype netcdf
xdef 180 linear 0 2
ydef 89 linear -88 2
zdef 1 linear 0 1
tdef 2013 linear 00Z01JAN1854 1mo
vars 1
sst  0  t,y,x  Monthly Means of Sea Surface Temperature
endvars
nc转grd的gs(提取1979-2020年的数据):
'reinit'
'open C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst.mnmean.ctl'
'set fwrite C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst42.grd'
'set gxout fwrite'
'set lon 0 360'
'set lat -88 88'
'set t 1501 2004'
'set undef -9.96921e+36'
'd sst'
'disable fwrite'
;
对应的ctl:
dset  C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst42.grd
title sst345 DATA
undef -9.96921e+36
xdef 180 linear 0 2
ydef 89 linear -88 2
zdef 1 linear 0 1
tdef 504 linear 00Z01JAN1979 1mo
vars 1
sst  0  t,y,x  Monthly Means of Sea Surface Temperature
endvars
;



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

新浪微博达人勋

 楼主| 发表于 2022-3-30 18:03:02 | 显示全部楼层
本帖最后由 000zhao 于 2022-3-30 18:05 编辑

直接用nc画的图:C:\Users\ASUS\Desktop\nc.png nc.png
转成grd之后画的图(直接打开ctl画的):C:\Users\ASUS\Desktop\grd.png grd.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-3-30 21:41:54 | 显示全部楼层
这个首先是Y轴反向了,需要在你的ctl 里加一项来表示  options yrev
如果画出来的图还有漂移,那就需要在提取资料时,把 'set lon 0 360'
'set lat -88 88' 用 set x ... 和 set y ... 命令来代替就应该没问题了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-3-30 22:12:51 | 显示全部楼层
本帖最后由 000zhao 于 2022-3-30 22:25 编辑
river 发表于 2022-3-30 21:41
这个首先是Y轴反向了,需要在你的ctl 里加一项来表示  options yrev
如果画出来的图还有漂移,那就需要在 ...

谢谢!我按照您说的改了, 但是出现了新的问题 grd.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-3-31 12:19:07 | 显示全部楼层
本帖最后由 river 于 2022-3-31 12:23 编辑
000zhao 发表于 2022-3-30 22:12
谢谢!我按照您说的改了, 但是出现了新的问题

改一下你写的 ctl 里面的语句试试
vars 1
sst  0  t,y,x  Monthly Means of Sea Surface Temperature
endvars
改成
vars 1
sst  0  99 Monthly Means of Sea Surface Temperature
endvars

PS:
1、再回复的时候把你修改过的脚本附上
2、变量后面的  t,y,x  不是随便写的,这个是为了表明资料排列的顺序,好让GrADS识别的,没有特殊情况是不需要加的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-3-31 15:07:48 | 显示全部楼层
river 发表于 2022-3-31 12:19
改一下你写的 ctl 里面的语句试试
vars 1
sst  0  t,y,x  Monthly Means of Sea Surface Temperature ...

修改之后的gs文件:
'reinit'
'open C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst.mnmean.ctl'
'set fwrite C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst42.grd'
'set gxout fwrite'
'set undef -9.96921e+36'
'set x 0 180'
'set y 1 89'
'set t 1501 2004'
'd sst'
'disable fwrite'
;
grd对应的ctl文件(现在没有y轴反向的问题了):
dset  C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst42.grd
title sst345 DATA
undef -9.96921e+36
xdef 180 linear 0 2
ydef 89 linear -88 2
zdef 1 linear 0 1
tdef 504 linear 00Z01JAN1979 1mo
vars 1
sst  0  99  Monthly Means of Sea Surface Temperature
endvars
;打开ctl画出的图: grd.png
麻烦您再看一下,谢谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-3-31 20:32:46 | 显示全部楼层
000zhao 发表于 2022-3-31 15:07
修改之后的gs文件:
'reinit'
'open C:%users\ASUS\Desktop\sj\correlation\sst-uv\sst.mnmean.ctl'

'reinit'
'open C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst.mnmean.ctl'
'set fwrite C:\Users\ASUS\Desktop\sj\correlation\sst-uv\sst42.grd'
'set gxout fwrite'
'set undef -9.96921e+36'
i=1501
while(i<=2004)
'set t 'i''
'set x 1 180'
'set y 1 89'
* 'set t 1501 2004'
'd sst'
'disable fwrite'
;
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-4-1 21:34:04 | 显示全部楼层
river 发表于 2022-3-31 20:32
'reinit'
'open C:%users\ASUS\Desktop\sj\correlation\sst-uv\sst.mnmean.ctl'
'set fwrite C:%user ...

谢谢您的回复!我后来直接选取了需要的部分数据,画出来的图没问题,您给的脚本我也尝试了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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