在R中打开光栅图像时,像素值以某种方式重新缩放

问题描述 投票:0回答:1

我使用光栅功能在R中打开了Geotiff图像。但是,图像似乎已重新缩放。最小值和最大值应为13607和15461,但应为275和305。在GIS中打开的Geotiff图像正确,但在R中不正确。

这是我的代码:

脚本:

library(raster)

trial<-raster("MOD11A2.A2000049.h17v05.006.2015058135048.tif", datatype = "INT2U")

trial

plot(trial)
r r-raster
1个回答
0
投票

据我所知,您通过“ R / raster”获得的值是正确的。您正在使用MODIS地表温度(LST)产品,LST的单位为K(开尔文)。这使得raster提供的值合理(也许在一年中的那个时候有点高,但是MODIS LST不太可靠)。

MODIS转换实际值以将其存储为2字节整数,从而减小文件大小。我认为您期待这些转换后的价值,因为那是其他软件可以给您的。但是,“栅格”应用scale0.02返回真实值。如您所见here,有效范围是

c(7500, 65535) * 0.02
#[1]  150.0 1310.7

确认栅格正确无误,而我认为其他软件不正确。

我使用luna(在github上)和terra(在CRAN)包(在这里是manual for MODIS data)得到相似的值

library(luna)
aoi <- c(-4.41, -3.59, 43.88, 44.31)
# you need a username and password for downloads
mf <- luna::getModis(product, start, end, aoi=aoi, download=TRUE,
                     path=".", username=user, password=pwd)
mf
# "./MOD11A2.A2000049.h17v04.006.2015058135051.hdf"

r <- rast(mf)
lst <- r[["LST_Day_1km"]]

# Kelvin to C
lst <- lst - 273.15
lst
#class       : SpatRaster 
#dimensions  : 1200, 1200, 1  (nrow, ncol, nlyr)
#resolution  : 926.6254, 926.6254  (x, y)
#extent      : -1111951, 0, 4447802, 5559753  (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs  
#data source : memory 
#names       : LST_Day_1km 
#min values  :       -3.95 
#max values  :       29.79 
© www.soinside.com 2019 - 2024. All rights reserved.