2013-02-21 1 views
2

Мне нужно преобразовать шейп-файлы в растровый формат.Преобразование файла формы GIS в растровое изображение в R?

Я использовал функцию «растеризировать» в R-пакете «растровый», но результат не выглядит правильным.

tst <- rasterize(shpfile, r, fun="count") 
Found 5 region(s) and 5 polygon(s) 

Там нет ГИРДА с появлением записей:

range(tst[],na.rm=TRUE) 
[1] Inf -Inf 
Warning messages: 
1: In min(x) : no non-missing arguments to min; returning Inf 
2: In max(x) : no non-missing arguments to max; returning -Inf 

sum(tst[],na.rm=TRUE) 
[1] 0 

R сценарий, который я написал:

# download the GIS shape file 
download.file("http://esp.cr.usgs.gov/data/little/abiebrac.zip", 
       destfile = "abiebrac.zip") 

# unzip 
unzip("abiebrac.zip") 

# Read shapefile into R 
library(maptools) 

shpfile <- readShapePoly("abiebrac") 
extent(shpfile) 

# mapping 
plot(shpfile) 

library(maps) 
map("world",xlim=c(-180,-50),ylim=c(7,83),add=FALSE) 
plot(shpfile,add=TRUE,lwd=10) 


# rasterize 
library(raster) 

GridSize <- 0.5 # degree 
r <- raster(ncol= round(abs(-180-(-50))/GridSize), 
      nrow=round(abs(83-7)/GridSize)) 
extent(r) <- extent(c(-180, -50, 7, 83)) 
tst <- rasterize(shpfile, r, fun="count") 

# summary 
sum(tst[],na.rm=TRUE) 
range(tst[],na.rm=TRUE) 

# mapping 
plot(tst,col="red",main="abiebrac") 
map("world",xlim=c(-180,-50),ylim=c(7,83),add=TRUE) 

ответ

6

Я не уверен, почему вы используете «счет» в удовольствии аргумент, но в этом случае, поскольку нет совпадений, он производит результаты NA. Вам также необходимо определить поле атрибута в объекте пространственного объектаPolygonDataFrame для назначения значений вашему растру. Вы также можете вытянуть масштаб непосредственно из объекта sp.

Этот код, похоже, дает то, что вы хотите.

require(raster) 
require(rgdal) 
require(sp) 

setwd("D:/TMP") 
shpfile <- readOGR(getwd(), "abiebrac") 
r <- raster(extent(shpfile)) 
    res(r)=0.05 
    r <- rasterize(shpfile, field="ABIEBRAC_", r) 

plot(r) 
    plot(shpfile,lwd=10,add=TRUE) 
+1

Я автоматизировал это с помощью https://github.com/brry/misc/blob/master/shp2raster.R –

Смежные вопросы