r - How to subset SpatialGrid using SpatialPolygon -


i trying subset spatialgrid 1 polygon present in class spatialpolygons. how can this?

i tried way:

grd.clip <- grd[!is.na(over(grd, polygon))] 

but error

error in matrix(idx, gr@cells.dim[2], gr@cells.dim[1], byrow = true)[rows,  :    (subscript) logical subscript long 

i've tried way turn out not desired solution. i'll keep here illustrate original idea i'll willing delete if necessary

the solution initial question still not clear me i'll make better if necessary

library(sp) library(rgdal) library(raster) library(latticeextra) 

load shapefile

shp <- readogr(dsn = "d:/programacao/r/stackoverflow/17962821", layer = "shp") proj4string(shp) 

create grid topology

grid <- gridtopology(cellcentre.offset=c(731888.0,7457552.0),                      cellsize=c(16,16),cells.dim=c(122,106)) grid <- spatialgrid(grid, proj4string=crs(proj4string(shp))) 

convert spatialgrid rasterlayer

rgrid <- raster(extent(grid)) res(rgrid) <- c(16, 16) 

give numbers

rgrid[] <- runif(ncell(grid), 1, 10) proj4string(rgrid) <- crs(proj4string(shp)) plot(rgrid) 

rgrid

mask raster spdf

rgrid_msk <- mask(rgrid,shp) plot(rgrid_msk) 

rgrid_msk

convert grid retaining attribute values

grid_ae <- as(rgrid_msk, 'spatialpointsdataframe') grid_ae <- grid_ae[!is.na(grid_ae@data$layer), ] gridded(grid_ae) <- true summary(grid_ae)  > summary(grid_ae) object of class spatialpixelsdataframe coordinates:       min     max x  731912  733816 y 7457560 7459224 projected: true  proj4string : [+proj=utm +zone=22 +south +ellps=aust_sa +units=m +no_defs] number of points: 7814 grid attributes:   cellcentre.offset cellsize cells.dim x            731920       16       119 y           7457568       16       104 data attributes:    min. 1st qu.  median    mean 3rd qu.    max.    1.005   3.231   5.523   5.512   7.748   9.999   spplot(grid_ae) +   latticeextra::layer(sp.polygons(shp, fill = na, col = 'red')) 

grid_ae

the solution preserve attributes of spdf after intersect regular area

library(rgeos) library(rgdal) library(sp) library(latticeextra) grid <- readogr(dsn = 's:/temporarios', layer = 'grid') proj4string(grid) <- crs('+init=epsg:4326')  grid  class       : spatialpolygonsdataframe  features    : 110  extent      : -9.6, -7.95, 36.45, 37.95  (xmin, xmax, ymin, ymax) coord. ref. : +init=epsg:4326 +proj=longlat +datum=wgs84 +no_defs +ellps=wgs84 +towgs84=0,0,0  variables   : 1 names       :  id  min values  : 652  max values  : 761  summary(grid@data)        id        min.   :652.0   1st qu.:679.2   median :706.5   mean   :706.5   3rd qu.:733.8   max.   :761.0    polyg <- readogr(dsn = 's:/temporarios', layer = 'polyg') proj4string(polyg) <- crs('+init=epsg:4326')  # plot spplot(grid, 'id') +   latticeextra::layer(sp.polygons(polyg, fill = na, col = 'blue'))ยด 

plot layers

# clip  clipgrid <- gintersection(grid, polyg, byid = t, id = as.character(grid@data$id)) cells <- row.names(clipgrid) cells <- split(cells, ' ') clipspdf <- as(clipgrid, 'spatialpolygonsdataframe') clipspdf@data$id <- as.numeric(row.names(clipspdf@data)) spplot(clipspdf, 'id') 

plot clip

summary(clipspdf@data)      dummy         id         min.   :0   min.   :665.0    1st qu.:0   1st qu.:687.8    median :0   median :706.5    mean   :0   mean   :706.4    3rd qu.:0   3rd qu.:725.2    max.   :0   max.   :747.0   

download data dropbox


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -