R 分区统计
我使用R 分区统计,r,polygon,raster,geography,r-raster,R,Polygon,Raster,Geography,R Raster,我使用R中的graster包,对包含多个多边形的shapefile光栅执行提取(200)。每个多边形都有一列,其中指定了多边形的类。 当我执行提取时,我会得到一个数据框,其中光栅的每个值都“指定”给一个多边形:哪个多边形是哪个像素所在的。但是,我的多边形包含的信息(即,它们是什么类)将不复存在。提取后的数据帧类似于: test <- extract(myRaster, myTrainingPolygon, df = TRUE) ID band1 band2 band
R
中的graster
包,对包含多个多边形的shapefile
光栅执行提取
(200)。每个多边形都有一列,其中指定了多边形的类
。
当我执行提取
时,我会得到一个数据框
,其中光栅的每个值都“指定”给一个多边形:哪个多边形是哪个像素所在的。但是,我的多边形包含的信息(即,它们是什么类)将不复存在。提取后的数据帧类似于:
test <- extract(myRaster, myTrainingPolygon, df = TRUE)
ID band1 band2 band3
1 0.101 0.827 ...
... ... ... ...
200 0.876 0.821 ...
我如何在那里获取信息?或者首先,在我执行摘录时不要丢失它们 ?extract
表示sp
参数控制是否应将提取的值添加到空间对象的数据帧。指定sp=TRUE
应该可以做到这一点。例如:
library(maptools)
library(raster)
data(wrld_simpl)
r <- raster(extent(-180, 180, -90, 90), res=10)
r[] <- runif(ncell(r))
wrld_simpl_new <- extract(r, wrld_simpl, fun=mean, sp=TRUE)
head(wrld_simpl_new)
## FIPS ISO2 ISO3 UN NAME AREA POP2005 REGION SUBREGION LON LAT layer
## ATG AC AG ATG 28 Antigua and Barbuda 44 83039 19 29 -61.783 17.078 0.9142067
## DZA AG DZ DZA 12 Algeria 238174 32854159 2 15 2.632 28.163 0.1774097
## AZE AJ AZ AZE 31 Azerbaijan 8260 8352021 142 145 47.395 40.430 0.3098710
## ALB AL AL ALB 8 Albania 2740 3153731 150 39 20.068 41.143 0.3746480
## ARM AM AM ARM 51 Armenia 2820 3017661 142 145 44.563 40.534 0.3494729
## AGO AO AO AGO 24 Angola 124670 16095214 2 17 17.544 -12.296 0.2873931
库(maptools)
图书馆(光栅)
数据(wrld_siml)
r?extract
表示sp
参数控制是否应将提取的值添加到空间对象的数据帧。指定sp=TRUE
应该可以做到这一点。例如:
library(maptools)
library(raster)
data(wrld_simpl)
r <- raster(extent(-180, 180, -90, 90), res=10)
r[] <- runif(ncell(r))
wrld_simpl_new <- extract(r, wrld_simpl, fun=mean, sp=TRUE)
head(wrld_simpl_new)
## FIPS ISO2 ISO3 UN NAME AREA POP2005 REGION SUBREGION LON LAT layer
## ATG AC AG ATG 28 Antigua and Barbuda 44 83039 19 29 -61.783 17.078 0.9142067
## DZA AG DZ DZA 12 Algeria 238174 32854159 2 15 2.632 28.163 0.1774097
## AZE AJ AZ AZE 31 Azerbaijan 8260 8352021 142 145 47.395 40.430 0.3098710
## ALB AL AL ALB 8 Albania 2740 3153731 150 39 20.068 41.143 0.3746480
## ARM AM AM ARM 51 Armenia 2820 3017661 142 145 44.563 40.534 0.3494729
## AGO AO AO AGO 24 Angola 124670 16095214 2 17 17.544 -12.296 0.2873931
库(maptools)
图书馆(光栅)
数据(wrld_siml)
r始终包括并使用示例数据
library(raster)
r <- raster(ncol=36, nrow=18)
r[] <- 1:ncell(r)
cds1 <- rbind(c(-180,-20), c(-160,5), c(-60, 0), c(-160,-60), c(-180,-20))
cds2 <- rbind(c(80,0), c(100,60), c(120,0), c(120,-55), c(80,0))
p <- spPolygons(cds1, cds2)
p <- SpatialPolygonsDataFrame(p, data.frame(class=c('A', 'B'), stringsAsFactors=FALSE))
合并两者
m <- merge(pd, d)
m始终包含并使用示例数据
library(raster)
r <- raster(ncol=36, nrow=18)
r[] <- 1:ncell(r)
cds1 <- rbind(c(-180,-20), c(-160,5), c(-60, 0), c(-160,-60), c(-180,-20))
cds2 <- rbind(c(80,0), c(100,60), c(120,0), c(120,-55), c(80,0))
p <- spPolygons(cds1, cds2)
p <- SpatialPolygonsDataFrame(p, data.frame(class=c('A', 'B'), stringsAsFactors=FALSE))
合并两者
m <- merge(pd, d)
m您能提供一个shapefile示例吗?您能提供一个shapefile示例吗?它要求将fun
参数设置为某个值,例如mean
。但是,我只想知道哪个像素位于哪个光栅中。假设您有100x100像素的光栅,并且有两个多边形。一个多边形有50个像素,另一个多边形有20个像素。我想写出哪个像素在哪个多边形中!。执行mean
会将所有像素减少为一个值。这需要将fun
参数设置为某个值,例如mean
。但是,我只想知道哪个像素位于哪个光栅中。假设您有100x100像素的光栅,并且有两个多边形。一个多边形有50个像素,另一个多边形有20个像素。我想写出哪个像素在哪个多边形中!。执行平均值
会将我的所有像素减少到一个值。
pd <- cbind(id=1:length(p), data.frame(p))
m <- merge(pd, d)