IDL笔记——bpch文件剪切+bpch转nc文件

好久不见,水博客来了。最近甚是懒散。没啥想写的,感觉可以把一些code理一理,算是在这里备份一下。


bpch文件剪切

eg. seperate_bpch.pro (主要是用一下bpch_sep这个函数)

该代码能够对GEOS-Chem输出的二进制文件进行裁剪,要不然trac*文件可能有几十上百G,太大了实在不方面分析。通过这个代码可以对文件进行时间和变量切片。

关键在bpch_dep这一行,tau0对应时间切片,tracer对应变量切片,这里的数字对应到tracerinfo.dat里看。我这里tracer=2表示将臭氧相关的变量切出来。

;This is a program to seperate bpch

pro seperate_bpch
year=1982
sday=[1,1,1,1,1,1,1,1,1,1,1,1]
eday=[31,28,31,30,31,30,31,31,30,31,30,31]
;---------
;readfile
;---------
dir='./'
file=dir+'trac_avg.merra2_2x25_standard.198209010000'

        for mon=9,9 do begin
        for id=sday(mon-1),eday(mon-1) do begin
        date=year*10000L+mon*100+id
        num=NYMD2TAU(date)
        print,num,date

outfile='./bpch/'+'ctm_merra2.2x25.'+strtrim(string(date),2)+'.bpch'

 bpch_sep,file,outfile,tau0=num,tracer=2

        endfor
        endfor


stop
end

bpch文件转nc文件

eg. bpch2nc_ts.pro (主要是用一下bpch2nc这个函数)

;This is a program to transfer bpch file into nc file

pro bpch2nc_ts
year=1982
monthday=[31,29,31,30,31,30,31,31]
for month=09,09 do begin
for day=01,monthday(month-1) do begin
filein ='ctm_merra2.2x25.'+string(year,form='(i4.4)')+string(month,form='(i2.2)')+string(day,form='(i2.2)')+'.bpch'
fileout='ctm_merra2.2x25.'+string(year,form='(i4.4)')+string(month,form='(i2.2)')+string(day,form='(i2.2)')+'.nc'
bpch2nc, filein, fileout
print,fileout
endfor
endfor
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
IDL是一种科学数据分析和可视化软件,在处理气象、遥感等领域的数据时,常常需要用到类似于NetCDF(nc)格式的数据。NC格式是一种用于存储科学数据的文件格式,其中包含了数据数组和对数组的描述信息。在IDL中读取NC格式的数据以及将其换为TIFF格式的数据有很多种方法。 其中一种方法是使用IDL内置的NCDF库来读取NC格式的数据,将其换为IDL内置的数据类型,再使用IDL内置的GDAL库将其换为TIFF格式的数据。具体步骤如下: 第一步:在IDL软件中调用NCDF库,读取NC格式的数据文件。首先需要调用ncdf_open函数打开文件,读取数据时可以使用ncdf_varget函数,该函数返回一个IDL数组,可以调用size函数得到数组的维度信息。例子如下: ```IDL file = 'data.nc' fid = ncdf_open(file) ;打开nc文件 data = ncdf_varget(fid, 'data') ;读取data变量 dimensions = size(data) ;获取data数据的大小信息 ``` 第二步:将读取的数据换为TIFF格式的文件。可以使用IDL内置的GDAL库来操作TIFF文件,将数据写入TIFF文件。首先需要调用gdal_module函数加载GDAL模块,之后创建一个TIFF元数据信息文件,并利用gdal_create函数创建一个TIFF影像文件,最后利用gdal_bandwrite函数将数据写入影像文件中。例子如下: ```IDL tiffFile = 'data.tif' gdal_module 'gdal' ;调用GDAL模块 meta = '{GDALGeoTransform=0, 1, 0, 0, 0, 1}' ;创建TIFF元数据文件 tifID = gdal_create(tiffFile, dimensions, 1, 'GTIFF', metadata=meta) ;创建TIFF影像文件 gdal_bandwrite, tifID, data ;将数据写入TIFF文件 ``` 总之,将读取NC文件换为TIFF文件需要借助IDL内置的NCDF库和GDAL库,将NC文件的数据读入内存后,利用GDAL库的功能创建TIFF文件并将数据写入其中即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J同学的大气笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值