R 和 QGIS 之间栅格值的差异
Difference in raster values between R and QGIS
我想问一下关于 R 和 QGIS 导入栅格文件的方式的基本问题。
我有一个波段光栅。当我将它导入 R 时,使用光栅包的 "raster" 函数,我得到了这个像素值范围:
class : RasterLayer
dimensions : 10980, 10980, 120560400 (nrow, ncol, ncell)
resolution : 10, 10 (x, y)
extent : 6e+05, 709800, 5590200, 5700000 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=31 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : /data/MTDA/CGS_S2_RADIOMETRY/2017/10/15/S2B_20171015T104525Z_31UFS_TOC_V100/S2B_20171015T104525Z_31UFS_TOC-B02_10M_V100.tif
names : S2B_20171015T104525Z_31UFS_TOC.B02_10M_V100
values : -32768, 32767 (min, max)
当我在光栅砖中堆叠这一层时,我得到了这些最小-最大值:
class : RasterLayer
band : 2 (of 11 bands)
dimensions : 10980, 10980, 120560400 (nrow, ncol, ncell)
resolution : 10, 10 (x, y)
extent : 6e+05, 709800, 5590200, 5700000 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=31 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : /tmp/Rtmp882dZS/raster/r_tmp_2017-11-10_172819_11532_86514.grd
names : S2B_20171015T104525Z_31UFS_TOC.B02_10M_V100
values : -1129, 9994 (min, max)
但是,如果我在 QGIS 中加载相同的栅格,则最小值为 228,最大值为 907(我使用 "Extent: Full" 和 "Accuracy: Actual (slower)" 选项计算这些值。
那么,这些差异从何而来?我不明白 R 和 QGIS 在做什么...
对于第一个对象,最小值和最大值未知,因为文件未提供(或不正确)。使用 RasterLayer
r
你可以
r <- setMinMax(r)
看看他们是什么。如果它们与您显示的第二层不一样,那么您可能混淆了一些东西。弄清楚这些东西后,与QGIS比较可能会有用。为此,您可能需要提供示例文件。
最后,我发现有什么不同!
当询问 R 时,我得到了真实的 min/max 值。相反,QGIS 使用累积计数计算 min/max 值。当我将 "Load min/max values"(在栅格属性 window 中)设置为 "Min/Max" 时,我得到了 R 显示的相同值。
我想问一下关于 R 和 QGIS 导入栅格文件的方式的基本问题。
我有一个波段光栅。当我将它导入 R 时,使用光栅包的 "raster" 函数,我得到了这个像素值范围:
class : RasterLayer
dimensions : 10980, 10980, 120560400 (nrow, ncol, ncell)
resolution : 10, 10 (x, y)
extent : 6e+05, 709800, 5590200, 5700000 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=31 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : /data/MTDA/CGS_S2_RADIOMETRY/2017/10/15/S2B_20171015T104525Z_31UFS_TOC_V100/S2B_20171015T104525Z_31UFS_TOC-B02_10M_V100.tif
names : S2B_20171015T104525Z_31UFS_TOC.B02_10M_V100
values : -32768, 32767 (min, max)
当我在光栅砖中堆叠这一层时,我得到了这些最小-最大值:
class : RasterLayer
band : 2 (of 11 bands)
dimensions : 10980, 10980, 120560400 (nrow, ncol, ncell)
resolution : 10, 10 (x, y)
extent : 6e+05, 709800, 5590200, 5700000 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=31 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : /tmp/Rtmp882dZS/raster/r_tmp_2017-11-10_172819_11532_86514.grd
names : S2B_20171015T104525Z_31UFS_TOC.B02_10M_V100
values : -1129, 9994 (min, max)
但是,如果我在 QGIS 中加载相同的栅格,则最小值为 228,最大值为 907(我使用 "Extent: Full" 和 "Accuracy: Actual (slower)" 选项计算这些值。
那么,这些差异从何而来?我不明白 R 和 QGIS 在做什么...
对于第一个对象,最小值和最大值未知,因为文件未提供(或不正确)。使用 RasterLayer
r
你可以
r <- setMinMax(r)
看看他们是什么。如果它们与您显示的第二层不一样,那么您可能混淆了一些东西。弄清楚这些东西后,与QGIS比较可能会有用。为此,您可能需要提供示例文件。
最后,我发现有什么不同! 当询问 R 时,我得到了真实的 min/max 值。相反,QGIS 使用累积计数计算 min/max 值。当我将 "Load min/max values"(在栅格属性 window 中)设置为 "Min/Max" 时,我得到了 R 显示的相同值。