爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8575|回复: 4

[其他] 关于批量站点数据的处理问题向大家请教。

[复制链接]
发表于 2015-1-5 23:01:46 | 显示全部楼层 |阅读模式

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

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

x
先说明我要处理成什么样的数据:一是我有几十年的逐日站点数据,是按月存储的,一个月的文件里有800多个站点的逐日数据。我想删掉一些站点,并处理成以站点为单位的数据。
1.txt是就是我处理完的718站点号的文件。fils = systemfunc ("ls "+ diri + "SURF_CLI_CHN_MUL_DAY-TEM-12001-*.TXT")这个读取的就是逐日站点数据。格式是50136 5329 12221 102796 1961  1  1   -317   -295   -397 0 0 0。


begin
    fname = "1.txt"
    lines = asciiread(fname,-1,"float")
    diri = "/mnt/lustre/hanzq/ss/TEM/"
    fils = systemfunc ("ls "+ diri + "SURF_CLI_CHN_MUL_DAY-TEM-12001-*.TXT")
    d = dimsizes(fils)
    do i =  0 , d-1
        data := asciiread(fils(i),-1,"float")
    end do

    do a = 0 , 717
        if (data .eq. (/lines(a)/)) then
            data@_FillValue = 9.96921e+36
            write_matrix (data, "13f12.1" , False)
        end if
    end do
end

我把站点号文件和逐日站点数据都按浮点型数据读出来以后,我想做一个站点号这个文件的循环,然后判定逐日站点数据如果是有和站点号相等的话就输出一个文件,这样就能处理成以站点问单位的数据。这只是一个想法,请大家指教可不可行.这个程序还没写完,只是一个想法。
这个程序运行的时候出现
atal:Conditional statements (if and do while) require SCALAR logical values, see all and any functions
fatal:["Execute.c":8567]:Execute: Error occurred at or near line 19 in file 45.ncl
这样的错误提示,应该是说都应该是数值来进行比较,所以请大家指点一下,data和(/lines(a)/)应该都是浮点数据,不包括属性了,到底是哪里错了呢?
密码修改失败请联系微信:mofangbao
发表于 2015-1-7 16:02:29 | 显示全部楼层
if (data .eq. (/lines(a)/)) then
你这里 data 和后面的变量都非标量,也就是不止一个值,所以NCL提示需要 all 或者 any 把结果处理一下才能判断。

点评

原来签名档还可以加链接  发表于 2016-10-8 17:00
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

发表于 2015-1-6 09:44:41 | 显示全部楼层
在 if (data .eq. (/lines(a)/)) then  中
data已经不是SCALAR logical values,是个变量,不能放在if语句中
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-1-6 12:43:32 | 显示全部楼层
lee309 发表于 2015-1-6 09:44
在 if (data .eq. (/lines(a)/)) then  中
data已经不是SCALAR logical values,是个变量,不能放在if语句 ...

那请问这个得怎么解决呢?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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