计算二进制栅格中的区域

时间:2017-05-06 21:16:04

标签: r raster area r-raster maxent

我运行了一些物种分布模型(SDM),使用了最大的“dismo”#。几个物种的包装,所以我把每个都保存为光栅文件。

之后,我根据确定的阈值将此环境适用性栅格(SDM结果)转换为二进制映射。

我使用此函数和这些命令行进行转换:

bin <- function(x) {
   ifelse(x <= 0.7, 0,
   ifelse(x > 0.7, 1, NA)) }
sp_bin <- calc(spp, fun=bin) # "spp" is the object within my raster
writeRaster(sp_bin,filename='Results/RasterBin/Patagioenas_fasciata_bin.tif')

现在我有一张二进制映射的栅格(即只有两个值,0和1)。

class       : RasterLayer 
dimensions  : 1117, 1576, 1760392  (nrow, ncol, ncell)
resolution  : 0.008333333, 0.008333333  (x, y)
extent      : -68.39167, -55.25833, -0.7333333, 8.575  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
data source : C:\Users\Ramiro\Desktop\SDM\Results\RasterBin\Patagioenas_fasciata_bin.tif 
names       : Patagioenas_fasciata_bin 
values      : 0, 1  (min, max)

我尝试使用以下参数来使像素值为1,假设其他像素为0,因此总和将等于值为1的所有像素的面积:

cellStats(spp, stat='sum', na.rm=TRUE)

我得到了一个我认为正确的数值结果(12,471)。然而,我为其他物种做了这个,因此其他的栅格,结果保持不变,尽管每个物种都有一个独特的二元图。

如何仅为具有值&#34; 1&#34;的像素计算面积?在R?

中的二进制地图栅格中

谢谢大家的关注。

0 个答案:

没有答案