当前位置: 首页 > article >正文

GOME数据IDL处理

GOME数据后缀为xdr

数据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

http://www.kler.cn/news/335704.html

相关文章:

  • 大数据新视界 --大数据大厂之 DataFusion:超越传统的大数据集成与处理创新工具
  • FP7209: 用于紫外线消毒灯的 升压LED恒流驱动芯片
  • GO语言工程构建示例-mac和linux适用
  • 【动态规划-最长公共子序列(LCS)】【hard】力扣1458. 两个子序列的最大点积
  • Windows搭建RTMP服务器
  • SpringBoot:让开发更加简单
  • 爬虫案例——爬取情话网数据
  • 程序bug的修复
  • C# 文件与文件夹操作指南:深入探索流、文件流及文件夹管理
  • ReGCL Rethinking Message Passingin Graph Contrastive Learning
  • Python知识点:如何使用Edge Impulse与Python进行机器学习模型部署
  • 实现mnist手写数字识别
  • Elasticsearch——数据聚合、数据同步与集群搭建
  • vscode提交修改Failed to connect to github.com port 443: Timed out
  • 研究生系统化入门教程(四)【机器学习】分类算法:决策树(信息熵,信息增益);集成学习方法之随机森林:估计器的工作流程是什么?为何采用BootStrap抽样?
  • Redis:cpp.redis++通用接口
  • Prometheus+Grafana备忘
  • T-Sql分支判断语句
  • 排版套料系统设计说明
  • 算法修炼之路之二分查找