【问题标题】:R Raster Merge Changes ValuesR光栅合并更改值
【发布时间】:2016-07-28 08:56:46
【问题描述】:

我有一系列 GTiff 图像,我试图将它们合并到一个更大的范围内。需要组合 6 个小图块来生成我的更大范围。我原来的 6 个图块的值范围从 0 到 255。

例如:

> tiff.list[[1]]
class       : RasterLayer 
dimensions  : 1200, 1200, 1440000  (nrow, ncol, ncell)
resolution  : 926.6254, 926.6254  (x, y)
extent      : -10007555, -8895604, 2223901, 3335852  (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 : D:\Scratch\Data\MOD15A2.A2016153.h09v06.005.2016166083754.tif 
names       : MOD15A2.A2016153.h09v06.005.2016166083754 
values      : 0, 255  (min, max)

但是,when merging the tiles using the code detailed here,我得到了一个新的图像文件并且值已经改变了:

> xx
class       : RasterLayer 
dimensions  : 2400, 3600, 8640000  (nrow, ncol, ncell)
resolution  : 926.6254, 926.6254  (x, y)
extent      : -10007555, -6671703, 1111951, 3335852  (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 : D:\Scratch\Modis\A2016161.tif 
names       : A2016161 
values      : 0, 25  (min, max)

有人知道为什么会这样吗?我尝试更改文件格式和数据类型('INT1U'),但它一直在发生。重要的是,这些值不会从 0 变为 255,因为原始数据来自 NASA 的 MODIS 卫星,并且某些值(即 248-255)具有与之相关的特定填充值(例如,土地覆盖被指定为水或雪)。这种从最大值 255 到 25 的更改正在从原始文件中删除重要信息。

欢迎提供任何帮助。

【问题讨论】:

  • 我在处理 MODIS 数据时也遇到过同样的事情,但并不是 RobertH 建议原始文件中不存在这些值,出于某种原因 mergemosaic 会更改 MODIS 栅格的值(它似乎通常是 2 个数量级)。我发现使用gdalutils 中的mosaic_rasters() 会产生所需的结果,请参阅此问题的最终答案以获取更多信息:stackoverflow.com/questions/15876591/…

标签: r raster r-raster


【解决方案1】:

这表明这些值在原始文件中不存在。为原始文件报告的最小值和最大值基于其中提供的元数据。元数据可能是错误的(显示可能的范围,而不是实际值)。去调查做

setMinMax(tiff.list[[1]])

tiff.list[[1]] * 1

【讨论】:

  • 无论出于何种原因,mergemosaic 来自 raster 包的 MODIS 数据都不会更改值。
  • 那可能是因为他们使用了增益和偏移量?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
相关资源
最近更新 更多