如何计算R中所选区域的像素面积或像素数?

时间:2013-09-09 15:18:48

标签: r raster

我在光栅文件上绘制了一个区域,但是我需要知道这个框中有多少像素(通过该区域):         光栅文件为1440 pixels*720 lines``(25km*25km)

示例:

   saf <- stack(system.file("external/rlogo.grd", package="raster")) 
    plotRGB( saf )
    e <- drawExtent()

所以在此之后我把e作为一个方框但是这个区域有多少像素/多少? 感谢

1 个答案:

答案 0 :(得分:3)

尝试使用raster::crop ...

crop(saf , e )
#class       : RasterBrick 
#dimensions  : 40, 50, 2000, 3  (nrow, ncol, ncell, nlayers)
#resolution  : 1, 1  (x, y)
#extent      : 23, 73, 26, 66  (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=merc 
#data source : in memory
#names       : red, green, blue 
#min values  :   0,     0,    0 
#max values  : 255,   255,  255

如果你只想要细胞数......

ncell( crop(saf , e ) )
#[1] 2000

并消除NA ......

x <- crop( saf , e )
ncell( ! is.na(x[]) )