代码之家  ›  专栏  ›  技术社区  ›  Laura Paladini

R和QGIS之间的光栅值差异

  •  1
  • Laura Paladini  · 技术社区  · 7 年前

    我想问一个关于R和QGIS导入光栅文件的方式的基本问题是什么。

    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(我使用选项“范围:完整”和“精度:实际(较慢)”计算这些值)。

    那么,这些差异来自哪里?我不太明白R和QGIS到底在做什么。。。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Robert Hijmans    7 年前

    对于第一个对象,最小值和最大值未知,因为文件未提供它们(或未正确提供)。具有 RasterLayer r 你能做到的

     r <- setMinMax(r)
    

    看看他们是什么。如果它们与您显示的第二层不同,那么您可能混淆了某些内容。在澄清了这些问题之后,与QGIS进行比较可能是有用的。为此,您可能需要提供一个示例文件。

        2
  •  -1
  •   Laura Paladini    7 年前

    最后,我发现了什么不同! 当询问R时,我得到了真正的最小/最大值。相反,QGIS使用累积计数计算最小/最大值。当我将“加载最小值/最大值”(在“光栅属性”窗口中)设置为“最小值/最大值”时,我得到了与R相同的值。