PIOMAS Arctic sea ice thickness daily数据下载和IDL处理
网上好像没有PIOMAS数据处理的文章,最近项目需要进行了处理,因此给大家提供以下参考,不过自己摸索一下应该很快就会了PIOMAS数据下载http://psc.apl.uw.edu/research/projects/arctic-sea-ice-volume-anomaly/data/model_grid在表格中的Sea ice thickness (Volume per unit Area)
网上好像没有PIOMAS数据处理的文章,最近项目需要进行了处理,因此给大家提供以下参考,不过自己摸索一下应该很快就会了
PIOMAS数据下载
http://psc.apl.uw.edu/research/projects/arctic-sea-ice-volume-anomaly/data/model_grid
在表格中的Sea ice thickness (Volume per unit Area) , daily mean即为我下载的海冰厚度数据
点击右侧的 hiday.H<yyyy>
跳转到https://pscfiles.apl.washington.edu/zhang/PIOMAS/data/v2.1/hiday/下载数据
我这里是下载了hiday.H2021
这个数据明显比其他数据小,因为其实只有1和2月的数据
PIOMAS数据处理
其实官网提供了读取数据的IDL程序,就是叫做read_draw_hi.pro这个程序,但是这个程序包含了制图,因此我觉得对我来说稍微有点复杂了。
我按照它程序提供的信息和思路,重新用IDL写了代码,因此以下代码就是能够将我上述下载的数据读取出来,存成每天一个波段的envi格式的数据(不带地理信息),我也将mask之外的数据存储成nan值了
除了上述的数据外,还需要下载grid.dat数据和io.dat_360_120.output数据,http://psc.apl.uw.edu/research/projects/arctic-sea-ice-volume-anomaly/data/model_grid 这个网址都有。
以下程序应该还算是比较简明,值得注意的是一些数据的地址要修改,另外就是如果读取的数据改变导致波段改变,59要改成别的值。因为我处理的是北极的信息,因此nx和ny是这个值,但是如果不是的话,可以从read_draw_hi.pro这个程序再找出进行修改
之后我使用envi的Georeference from IGM建立地理信息。这也是以下代码需要保存lon和lat的原因。
之后可能会更新批量处理的代码,代码也会加上建立地理信息的步骤。
pro read_piomas_2021
nx=360 & ny=120;120 ;Arctic Parallel Ocean and sea Ice Model (POIM) grid
max_levels=30
desired_level =1
mask_value=99999.0
barwidth=200.0
lon=fltarr(nx,ny) & lat=fltarr(nx,ny)
data4=fltarr(nx,ny,59, /NOZERO);注意这里的59其实是指数据为1和2月数据一起59天,最后生成59各波段的数据
kmt=intarr(nx,ny)
;读取经纬度
openr, lunin, 'H:\mission\PIOMAS\grid.dat',/Get_lun ;打开数据文件
readf, lunin, lon, format='(10f8.2)'
readf, lunin, lat, format='(10f8.2)'
close,lunin
free_lun,lunin
;read grid mask (ocean levels)
openr,lunin,'H:\mission\PIOMAS\io.dat_360_120.output',/Get_lun ;打开数据文件
readf, lunin, kmt,format='(360i2)'
close,lunin
free_lun,lunin
;读取数据
openr,lunin, 'H:\mission\PIOMAS\hiday.H2021', /swap_if_big_endian,/Get_lun ;打开数据文件'H:\mission\LNG\PIOMAS\monthly\heff.H2021'
readu,lunin, data4
close,lunin
free_lun,lunin
location=where(kmt lt 1,count)
if count gt 0 then begin
numFiles=size(data4)
numFiles=numFiles[3]
FOR fidx=0, numFiles-1 DO BEGIN
temp=data4[*,*,fidx]
temp[location]=0.0/0
data4[*,*,fidx]=temp[*,*]
ENDFOR
endif
print,'count',count
;储存数据
openw,lunou,'H:\mission\PIOMAS\lon',/get_lun
writeu,lunou,lon;
close,lunou
free_lun,lunou
openw,lunou,'H:\mission\PIOMAS\lat',/get_lun
writeu,lunou,lat;
close,lunou
free_lun,lunou
openw,lunou,'H:\mission\PIOMAS\piomas2021',/get_lun
writeu,lunou,data4;
close,lunou
free_lun,lunou
print,'finished'
end
PIOMAS的一些详细信息,包括格网可以参考:http://psc.apl.uw.edu/research/projects/projections-of-an-ice-diminished-arctic-ocean/model/

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)