2013-02-26 3 views
0

Я импортировал шейп-файл с использованием readOGR (из пакета 'rgdal') и получил SpatialPolygonsDataFrame. Когда я использую функцию «Rasterize» (из пакета «растр») я получаю этот http://img15.hostingpics.net/pics/427269plot.png Но я хочу растеризации только края, так что я могу получить GeoTiff, который выглядит, как этот http://img15.hostingpics.net/pics/270288Rplot.png Любая идея? (Я новичок в R!) Спасибо заранее!R - Растрировать только края SpatialPolygonsDataFrame

+0

могли бы вы предоставить воспроизводимый пример? Если вы просто хотите построить многоугольник с цветами, посмотрите на 'ggplot2' или (проще)' spplot'. –

+0

Я хочу преобразовать шейп-файл в tiff без заполнения полигонов цветами. Я хочу преобразовать только края. (Первое изображение - это мой результат с использованием графика (растеризовать (форма, растр)), второе изображение - это то, что я хочу иметь в моем tiff (что совпадает с моим шейп-файлом) –

ответ

1

Вы можете сделать это с помощью raster и sp, используя тип объекта . Попробуйте этот пример и substitue spdf с именем импортированного шейпа:

spdf <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1]) # Read in your datafile. You can use readOGR or readShapePoly, it doesn't really matter. 
sldf <- as(spdf , "SpatialLinesDataFrame") # Create a lines object. This gives you the borders of the polygons 
r <- raster(nrow = 180 , ncols = 360 , ext = extent(spdf)) # Create a template raster file which will form the mask you will rasterzie to (so if you want a more precise 
r <- rasterize(sldf , r) # Depending on the resolution of your target raster and the complexity of your shapefile this may take a few seconds or a few minutes to run 

Вы можете сохранить растровый файл, как вы хотите.

plot(spdf) 
plot(r) 

enter image description here enter image description here

+0

Это именно то, что я хочу сделать! благодаря! –

0

В общем, чтобы получить многоугольник данные, приведенные на ggplot2:

library(ggplot2) 
# Convert the SpatialPolygons object to a data.frame, which ggplot2 needs 
poly_data_frame = fortify(poly_spatialpolygon) 
ggplot(poly_data_frame, aes(x = x, y = y)) + geom_polygon(fill = "transparent") 
ggsave("poly_plot.png") 

теперь вы в конечном итоге с полигона участка в файл PNG без каких-либо цветов внутри полигонов.

+0

Спасибо за ваш ответ. Poly_spatialpolygon - это мой SpatialPolygonsDataFrame? шейп-файл, загруженный с помощью readOGR()?) И ​​что, если я хочу сохранить его как GeoTiff? (tif + tfw) Извините, но я очень новичок в R! Спасибо заранее –

+0

Это решение с ggplot2 предоставляет только изображение, а не привязанный к географии. И ваше предположение о poly_spatialpolygon верное. –

+0

Итак, что я могу сделать, если хочу геотип? –

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