【发布时间】:2023-04-02 17:35:02
【问题描述】:
我正在处理关于海洋初级生产力的 28 个 HDF4 文件(可以在此处找到年度 .tar 文件:http://orca.science.oregonstate.edu/1080.by.2160.monthly.hdf.cbpm2.v.php) 我的目标是进行一些计算(我需要计算每个区域的浓度并获得几年的平均值,即在空间上合并所有文件),然后将它们转换为我可以在 ArcGIS 中使用的地理参考文件(最好是 shapefile 或 geotiff) .
我尝试了几种方法来转换为 ASCII 或光栅文件,然后使用 gdalUtils 工具(例如 gdal_translate 和 get_subdatasets)添加投影。但是,由于 HDF4 文件不是以标准命名的(与 MODIS 文件不同),因此后者不起作用,我无法访问子集。
这是我用来转换为栅格的代码:
library(raster)
library(gdalUtils)
setwd("...path_to_files...")
gdalinfo("cbpm.2015060.hdf")
hdf_file <- "cbpm.2015060.hdf"
outfile="testout"
gdal_translate(hdf_file,outfile,sds=TRUE,verbose=TRUE)
file.rename(outfile,paste("CBPM_test",".tif",sep=""))
rast <- raster("CBPM_test.tif")
wgs1984 <- CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0")
projection(rast) <- wgs1984
#crs(rast) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
plot(rast)
writeRaster(rast, file="CBPM_geo.tif", format='GTiff', overwrite=TRUE)
生成的投影完全关闭。我会很感激帮助如何做到这一点(通过任何有效的格式转换),最好是批处理。
【问题讨论】: