【问题标题】:Reading and Writing Arrays from Multiple HDF Files in IDL在 IDL 中从多个 HDF 文件中读取和写入数组
【发布时间】:2016-11-27 13:10:12
【问题描述】:

我对 IDL 相当陌生,我正在尝试编写一个代码,该代码将采用 MODIS HDF 文件(具体为三级数据 MOD14A1 和 MYD14A1),读取数组,然后最好从数组中写入数据到 csv 文件,但 ASCII 也可以。我有代码可以让我为一个文件执行此操作,但我希望能够为多个文件执行此操作。本质上,我希望它读取一个 HDF 数组,将其写入 csv,移动到下一个 HDF 文件,然后将该数组写入下一行的同一个 csv 文件。这里的任何帮助将不胜感激。到目前为止,我已经提供了使用一个文件执行此操作的代码。

filename = dialog_pickfile(filter = filter, path = path, title = title)
csv_file = 'Data.csv'

sd_id = HDF_SD_START(filename, /READ)

; read "FirePix", "MaxT21"

attr_index = HDF_SD_ATTRFIND(sd_id, 'FirePix')
HDF_SD_ATTRINFO, sd_id, attr_index, DATA = FirePix


attr_index = HDF_SD_ATTRFIND(sd_id, 'MaxT21')
HDF_SD_ATTRINFO, sd_id, attr_index, DATA = MaxT21


index = HDF_SD_NAMETOINDEX(sd_id, 'FireMask')
sds_id = HDF_SD_SELECT(sd_id, index)
HDF_SD_GETDATA, sds_id, FireMask
HDF_SD_ENDACCESS, sds_id

index = HDF_SD_NAMETOINDEX(sd_id, 'MaxFRP')
sds_id = HDF_SD_SELECT(sd_id, index)
HDF_SD_GETDATA, sds_id, MaxFRP
HDF_SD_ENDACCESS, sds_id


HDF_SD_END, sd_id

help, FirePix
print, FirePix, format = '(8I8)'
print, MaxT21, format = '("MaxT21:", F6.1, " K")'
help, FireMask, MaxFRP


WRITE_CSV, csv_file, FirePix

运行此程序并选择正确的文件后,我得到的输出如下:

FIREPIX         LONG      = Array[8]
   0       4       0       0       3      12       3       0
MaxT21: 402.1 K
FIREMASK        BYTE      = Array[1200, 1200, 8]
MAXFRP          LONG      = Array[1200, 1200, 8]

“FIREPIX”数组是我想要存储到 csv 中的数组。

提前感谢您的帮助!

【问题讨论】:

    标签: arrays csv idl-programming-language hdf


    【解决方案1】:

    不使用WRITE_CSV,使用原始IO例程编写逗号分隔数组相当简单,即:

    openw, lun, csv_file, /get_lun
    
    ; the following line produces a single line the output CSV file
    printf, lun, strjoin(strtrim(firepix, 2), ', ')
    
    ; TODO: do the above line as many times as necessary
    
    free_lun, sun
    

    【讨论】:

      猜你喜欢
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多