爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 537|回复: 7

NCL 更改Times 变量

[复制链接]

新浪微博达人勋

 成长值: 0
发表于 2024-2-10 10:43:42 | 显示全部楼层 |阅读模式

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

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

x
诸位新年好!

我想用NCL更改下一个wrfout里的Times变量。 这个变量按道理输出的时间应该为2010-06-19_01:00:00, 但变量Times里面确实2010-06-19_01:00:01.

我首先把Times展示出来,显示的是

Variable: times
Type: character
Total Size: 19 bytes
            19 values
Number of Dimensions: 2
Dimensions and sizes:   [Time | 1] x [DateStrLen | 19]
Coordinates:
Number Of Attributes: 0
(0,0)   2
(0,1)   0
(0,2)   1
(0,3)   0
(0,4)   -
(0,5)   0
(0,6)   6
(0,7)   -
(0,8)   1
(0,9)   9
(0,10)  _
(0,11)  0
(0,12)  1
(0,13)  :
(0,14)  0
(0,15)  0
(0,16)  :
(0,17)  0
(0,18)  1

可以看到最后那里是(0,18) 1 ==> 01:00:01

我用的更改这个的脚本是这样:

begin
  f = addfile("cstm_d01_2010-06-19_01_00_00.nc", "r+")
  times = f->Times
  times(0,18) = "0"
  f->Times = times

  delete(f)
end

显示错误为:
fatal:Assignment type mismatch, right hand side can't be coerced to type of left hand side
fatal:["Execute.c":8637]:Execute: Error occurred at or near line 10 in file test2.ncl

请问下如何正确的更改,谢谢


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

新浪微博达人勋

发表于 2024-2-14 15:31:39 | 显示全部楼层
你要注意你这个变量time  和wrfout里面的 Times的数据类型,这里明显提示是数据类型不匹配导致的报错,应是要区分char型和string型叭,建议直接用string字符串赋值试试,这个01:00:01的出现应该你的namelist设置的时间步长不合适导致的,wrf根据你的步长向后连续积分的时候,在这个时刻就是不为整数,这样你就可以通过调整你的时间步长重新WRF就行了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2024-2-16 09:48:42 | 显示全部楼层
HANSEN 发表于 2024-2-14 15:31
你要注意你这个变量time  和wrfout里面的 Times的数据类型,这里明显提示是数据类型不匹配导致的报错,应是 ...

这个步长是因为用了adaptive time step导致的。

我查了一下数据类型,其实这个数据类型是binary的,最后我用Python搞定的。

ncl用string 我也试了,不行。NCL 有将字符转换为binary的?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-2-16 17:38:54 | 显示全部楼层
binary是数据保存的类型吧?这个不是二进制的意思么  我觉得你可能应该要用这样的语句赋值试试,times(0,18) = tochar(0),因为从你上面print的结果看来Times还是char型,但是你在赋值的时候用“0”,这里“0”应该是string型的,所以可能说显示错误
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2024-2-17 23:30:28 | 显示全部楼层
HANSEN 发表于 2024-2-16 17:38
binary是数据保存的类型吧?这个不是二进制的意思么  我觉得你可能应该要用这样的语句赋值试试,times(0,18 ...

我试了tochar(0)

最后改完之后(0,18) 变成了 0X00
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2024-2-17 23:31:17 | 显示全部楼层
tbag 发表于 2024-2-17 23:30
我试了tochar(0)

最后改完之后(0,18) 变成了 0X00

试过char, inttochar
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-2-18 10:53:41 | 显示全部楼层
tochar("0")呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2024-2-18 23:10:21 | 显示全部楼层

也试过,囧
变成0x00
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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