0

我在 1km * 1km 上有两个光栅图像(公园和物种)。我需要通过这个公式对各个公园的每个单元格应用敏感性分析并对数据进行归一化,因为它的范围从 50 到 484,所以在分析中解释起来非常复杂,所以我想将它从 0 归一化到 1(0 分钟和最多 1 个)。

        R= species * parks

我尝试通过以下示例进行此乘法运算,但我不知道它是否适用于逐个单元格以及在得到此结果后如何将其标准化为 0 到 1。

     Park <- raster("park_area.tif")
     species <- raster("species_extracted.tif")

     R <- park *species

     plot(R,
     main="Species in each park",
     axes=FALSE) 

得到 R 后(通过公园中的物种相乘)我得到了这个。

      class      : RasterLayer 
      dimensions : 1800, 2400, 4320000  (nrow, ncol, ncell)
      resolution : 0.008333333, 0.008333333  (x, y)
      extent     : 59.99986, 79.99986, 22.99986, 37.99986  (xmin, xmax, 
                 ymin, ymax)
      crs        : +proj=utm +zone=54 +datum=WGS84 +units=m +no_defs 
      source     : memory
      names      : layer 
      values     : 0, 484  (min, max)

更新 1

当我应用评论部分中给出的公式时。他们给了我从 0 到 1 的数据,但它没有显示任何内容。

      R <- raster(ncol=2400, nrow=1800)
      values(R) <- sample(c(0,1), ncell(4320000), replace=TRUE)

我得到的结果如下图所示。用标准化数据绘制我的确切多边形的任何解决方案/

在此处输入图像描述

更新 2

当我在获得 R 后应用通用归一化公式时。我的结果也遇到了问题。这次我采用不同的方法。

   R <- raster(nrows=1800, ncols=2400)
   R[] <- round(runif(ncell(R), 0, 11),0) 
   R.min = cellStats(R, "min")
   R.max = cellStats(R, "max")

   R.scale <- ((R - R.min) / (R.max - R.min) - 0 ) * 1
   plot(R)

得到与上图相同的结果

4

0 回答 0