从HDF读取CALIOP数据并剪切

时间:2019-04-17 14:06:33

标签: r rgdal hdf

我想从CALIPSO卫星中获取数据的子集。 我从Langley数据中心下载了一个磁贴,并找到了有关如何在R中读取HDF的链接:http://geoscripting-wur.github.io/IntroToRaster/hdf.html,以及stackoverflow Reading hdf files into R and converting them to geoTIFF rasters上的此项

library(gdalUtils)
library(raster)

# Provides detailed data on hdf4 files

tile <- "somepath/CAL_LID_L1-ValStage1-V3-40.2019-04-01T09-04-47ZD.hdf"

test <- gdalinfo(tile)


部分输出:

...
[84] "  SUBDATASET_21_NAME=HDF4_SDS:UNKNOWN:\"somepath/CAL_LID_L1-ValStage1-V3-40.2019-04-01T09-04-47ZD.hdf\":20"                                                                                                                                                                                                                                                        
 [85] "  SUBDATASET_21_DESC=[63255x583] Total_Attenuated_Backscatter_532 (32-bit floating-point)"                                                                                                     
...

sds <- get_subdatasets(tile)

gdalinfo给了我130多个条目,而对于sds,我只有67个条目。但是,gdalinfo的名字通常是一个奇怪的“真实”名称,其名称对应于sds中的67个条目。 现在上面的链接说我必须将其转换为tif:

name <- sds[21]
outfilename <- "somepath/CAL_LID_L1-ValStage1-V3-40.2019-04-01T09-04-47ZD.tif"

gdal_translate(sds[1], dst_dataset = outfilename)
# Load the Geotiff created into R
r <- raster(outfilename)

#or more straight away:
r <- raster(sds[20])

我也尝试过

plot(r)

但是,输出毫无意义,并且尺寸不合适。我还尝试了其他一些子集

首先,我需要能够正确读取数据。 我希望以一种方式来细分磁贴,使得我只能获得特定时间范围内的测量值。 也许有人以前曾经使用过CALIOP Data,还是遇到过类似的问题并且可以提供帮助?

0 个答案:

没有答案