我想从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,还是遇到过类似的问题并且可以提供帮助?