爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9517|回复: 4

使用ncl将nc文件变量转换为二维txt文件

[复制链接]

新浪微博达人勋

发表于 2019-9-12 09:52:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 151170080 于 2019-9-12 09:59 编辑

最近,有非大气专业的同学用到气象数据,应其要求非要将nc文件中的变量提转换为二维txt文件才能处理,我写了个脚本实现,分享一下!
首先贴一下这个nc文件的变量信息:
short sp ( time, latitude, longitude )
         scale_factor : 0.6499881858185952
         add_offset :   79875.36836528209
         _FillValue :   -32767
         missing_value :        -32767
         units :        Pa
         long_name :    Surface pressure
         standard_name :        surface_air_pressure
将这个变量,保留经纬度维度,按时间提取。
贴一下主体程序:
begin
        fpath = "/Users/zjkang/ncl/ecmwf/"+fn_head+months(t)+"/"+fn_head+months(t)+".nc"
        f = addfile(fpath,"r")
        ; Translate gregorian time into UT time
        time = f->time
        ut_time = cd_calendar(time,3)
        ;get the value for nc files        
        sp = f->sp
        nt = dimsizes(ut_time)
        ; Translate a nc value into the normal value when the value@add_offset and value@scale_factor exist
        add_offset = sp@add_offset
        scale_factor = sp@scale_factor
        ;Take the time as the output-file name and
        do i=0,nt-1
                sp_normal = sp(i,:,:)*scale_factor + add_offset
                opt = True
                opt@fout = "sp_"+ut_time(i)+".txt"
                write_matrix(sp_normal,"41f10.2",opt)
                delete([/sp_normal,opt/])
        end do
        delete([/fpath,f,time,ut_time,nt,sp,add_offset,scale_factor/])
end
这个程序主要用到了write_matrix这个函数,这个函数不仅可以将格式化的二维数组进行标准输出(opt=False,输出到屏幕上),还可以输出到文件中,它与write_table这个函数,各有各的特点。可以自行比较。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-9-12 20:36:39 | 显示全部楼层
我是大气相关专业,但是如何将txt数据转换成nc数据呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-13 00:21:53 | 显示全部楼层
对方的凤飞飞 发表于 2019-9-12 20:36
我是大气相关专业,但是如何将txt数据转换成nc数据呢?

txt文件转成nc文件,很多语言都可以实现,比如python中的netCDF4包、ncl。总的来说,python更方便快捷一点!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-29 16:44:39 | 显示全部楼层
fpath = "/Users/zjkang/ncl/ecmwf/"+fn_head+months(t)+"/"+fn_head+months(t)+".nc"
楼主,解释一下这个,没整明白
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-30 08:23:00 | 显示全部楼层
151170080 发表于 2019-9-13 00:21
txt文件转成nc文件,很多语言都可以实现,比如python中的netCDF4包、ncl。总的来说,python更方便快捷一 ...

楼主,能解释一下第一行代码吗,没看太明白
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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