GOME数据IDL处理

GOME数据后缀为xdr
感谢张洋老师提供的读取程序:CSDN:梦雨璃愁

数据url:https://lweb.cfa.harvard.edu/~xliu/GMLV3/
官方文档给出的读取方式为IDL(restore方式):
在这里插入图片描述
以下是包含的数据字段:

;print,LONS
;print,ALB
;print,NLON
;print,NLAT
;print,LATS
;  AVGK
;  CFRAC
;  CTP
;  DFS
;  FILENAME
;  NL
;  NMEAS
;  NTP
;  OZAPROF
;  OZPROF
;  PPROF
;    PS
;    PT
;    RES
;    SCO
;    TCO
;    TDFS
;    TOTAREA
;    TOZ
;    TPROF
;      UNITAREA
;      ZPROF

下面将其完整代码列出,将xdr复写成h5数据:

pro xdr_test
input_dir='D:\GOME\source_data\'
output_dir='D:\GOME\h5\'
file_list=file_search(input_dir,'*.xdr')
for file_i=0,n_elements(file_list)-1 do begin
  restore,file_list[file_i],DESCRIPTION=variable,/verbose
  file_id=h5f_create(output_dir+file_basename(file_list[file_i])+'.h5')
  att_value_temp=FILENAME
  datatype_id=h5t_idl_create(att_value_temp)
  dataspace_id=h5s_create_simple([1])
  attr_id=h5a_create(file_id,'Description',datatype_id,dataspace_id)
  h5a_write,attr_id,att_value_temp
  data_group_id=h5g_create(file_id,'All Data')
  
  creat_attribution,LONS,'LONS',data_group_id
  creat_attribution,ALB,'ALB',data_group_id
  creat_attribution,NLON,'NLON',data_group_id
  creat_attribution,NLAT,'NLAT',data_group_id
  creat_attribution,LATS,'LATS',data_group_id
  creat_attribution,AVGK,'AVGK',data_group_id
  creat_attribution,CFRAC,'CFRAC',data_group_id
  creat_attribution,CTP,'CTP',data_group_id
  creat_attribution,DFS,'DFS',data_group_id
  creat_attribution,NL,'NL',data_group_id
  creat_attribution,NMEAS,'NMEAS',data_group_id
  creat_attribution,NTP,'NTP',data_group_id
  creat_attribution,OZAPROF,'OZAPROF',data_group_id
  creat_attribution,OZPROF,'OZPROF',data_group_id
  creat_attribution,PPROF,'PPROF',data_group_id
  creat_attribution,PS,'PS',data_group_id
  creat_attribution,PT,'PT',data_group_id
  creat_attribution,RES,'RES',data_group_id
  creat_attribution,SCO,'SCO',data_group_id
  creat_attribution,TCO,'TCO',data_group_id
  creat_attribution,TDFS,'TDFS',data_group_id
  creat_attribution,TOTAREA,'TOTAREA',data_group_id
  creat_attribution,TOZ,'TOZ',data_group_id
  creat_attribution,TPROF,'TPROF',data_group_id
  creat_attribution,UNITAREA,'UNITAREA',data_group_id
  creat_attribution,ZPROF,'ZPROF',data_group_id
   
  h5f_close,file_id
  
  print,output_dir+file_basename(file_list[file_i])+'.h5 has been writen!'
endfor

end
pro creat_attribution,data,data_name,data_group_id
  target_data=data
  data_size=size(target_data)
  print,data_size
  dataset_name=data_name
  datatype_id=h5t_idl_create(target_data)
  if data_size[0] eq 0 then begin
    dataspace_id=h5s_create_simple([1])
    dataset_id=h5d_create(data_group_id,dataset_name,datatype_id,dataspace_id,$
      chunk_dimension=[1],gzip=9)
    h5d_write,dataset_id,target_data
    
;    att_value_temp=data
;    dataspace_id=h5s_create_simple([1])
;    attr_id=h5a_create(dataset_id,string(data),datatype_id,dataspace_id)
;    h5a_write,attr_id,att_value_temp
  endif
  if data_size[0] eq 1 then begin
    data_col=data_size[1]
    dimension=data_col
    dataspace_id=h5s_create_simple(data_col)
    dataset_id=h5d_create(data_group_id,dataset_name,datatype_id,dataspace_id,$
      chunk_dimension=dimension,gzip=9)
    h5d_write,dataset_id,target_data
  endif
  if data_size[0] eq 2 then begin
    data_col=data_size[1]
    data_line=data_size[2]
    dimension=[data_col,data_line]
    dataspace_id=h5s_create_simple([data_col,data_line])
    dataset_id=h5d_create(data_group_id,dataset_name,datatype_id,dataspace_id,$
      chunk_dimension=dimension,gzip=9)
    h5d_write,dataset_id,target_data
  endif
  if data_size[0] eq 3 then begin
    data_col=data_size[1]
    data_line=data_size[2]
    data_3d=data_size[3]
    dimension=[data_col,data_line,data_3d]
    dataspace_id=h5s_create_simple([data_col,data_line,data_3d])
    dataset_id=h5d_create(data_group_id,dataset_name,datatype_id,dataspace_id,$
      chunk_dimension=dimension,gzip=9)
    h5d_write,dataset_id,target_data
    
  endif
  

end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值