爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
12
返回列表 发新帖
楼主: H_OU

[求助] 想用fortran将txt(类似于格点存储)转为grads可读的二进制文件,谢谢

[复制链接]

新浪微博达人勋

发表于 2020-3-29 15:57:40 | 显示全部楼层
{:5_275:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2020-4-2 20:00:31 | 显示全部楼层

回帖奖励 +1 金钱

http://bbs.06climate.com/forum.php?mod=viewthread&tid=90016
我自己写的一个小程序
当然你得自己把数据重写为grads的数据储存顺序。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-17 10:50:19 | 显示全部楼层
{:5_275:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-4-27 17:20:54 | 显示全部楼层

回帖奖励 +1 金钱

我也是这个问题,但是我的数据是按月份的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-28 11:52:45 | 显示全部楼层

回帖奖励 +1 金钱

本帖最后由 radon 于 2020-4-28 11:56 编辑

简单写一段fortran程序,功能是将txt转为二进制。配合.ctl描述文件,grads就可以读取
注意grads的纬度排列默认是从南向北,如果txt文件中不是,要调顺序,或在ctl文件中标明

                integer lon,lat
                parameter(lon=72,lat=18)
                character(len=200) tempc
                real dat(lon,lat)
                integer i,j

open(110,file='SURF_CLI_CHN_TEM_DAY_GRID_0.5-MIN-20040704.txt',form='formatted',status='old',action='read')
do i=1,6
read(110,*) tempc
enddo

do j=1,lat
   read(110,*) (dat(i,j),i=1,lon)
enddo
close(110)
                open(210,file='TEM_20040704.dat',form='unformatted',access='direct',status='unknown',action='write',recl=lat*lon)
write(210,rec=1) ((dat(i,j),i=1,lon),j=1,lat)
close(210)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-15 15:37:15 | 显示全部楼层

回帖奖励 +1 金钱

等楼主解决
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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