чтение и построение файла формы esri в R - PullRequest
15 голосов
/ 15 января 2010

У меня проблемы с чтением в .shp (файл формы esri) в R. Я пробовал несколько вариантов в R и пытался преобразовать файл формы в ArcMap во что-то, что правильно читается в файле формы, но ничего не помог еще. (В ArcMap я исправил геометрию, преобразовав ее из одиночного в мультиполигон и т. Д., Что, вероятно, было не нужно или не актуально)

Вероятно, это связано с тем, что мой файл формы содержит «области» (мульти-полигоны) вместо «полигонов» ...

Как правильно прочитать этот тип файла формы в R для построения? (в ArcMap это выглядит как нормальная форма)

В ArcMap файл формы выглядит так: http://bfast.r -forge.r-project.org / arcmapshape.jpg

(показывает файл формы с многоугольниками внутри других многоугольников)

В R это выглядит так: enter image description here

(показывает файл формы, в котором неправильно заполнены некоторые полигоны)

Я использовал следующий код в R:

require(maptools)
require(rgdal)

newproj <- "+proj=utm +zone=55 +south +ellps=GRS80 +units=m"
shape<- readShapeSpatial(pdir, proj4string = CRS(newproj),repair=TRUE,force_ring=T,verbose=TRUE) # without any errors
plot(shape, col="gray",border="blue", axes=TRUE)

# via rgdal
folder <- c("spatial")
lyr <- c("clipped_forest_mga")
shp <- readOGR(dsn=folder,layer=lyr)
plot(shp, col="gray",border="blue", axes=TRUE)

Обе команды plot () дают одинаковый результат R. Ошибок не возникает. только следующее сообщение

OGR data source with driver: ESRI Shapefile 
Source: "P:/Victoria_DSE/BFAST_spatial/vector/PLM_excl_fire03_09_GDA94LL/mgaz94z55/clipped_EG", layer: "clipped_forest_mga"
with 1 features and 4 fields
Feature type: wkbMultiPolygon with 2 dimensions

Как это можно решить?

1 Ответ

11 голосов
/ 15 января 2010

Jan

Возможно, ваш шейп-файл прочитан правильно. Скорее всего, сюжет был неправильным. Попробуйте spplot () вместо plot ():

spplot(shp, col.regions="gray", col="blue")

Если ваш шейп-файл содержит более одного столбца (что вполне вероятно), добавьте zcol = 1 (или любой другой столбец), чтобы получить только одну панель

spplot(shp, zcol=1, col.regions="gray", col="blue")

Если вы действительно хотите использовать график, вы должны установить цвет фона, потому что в противном случае он будет печатать отверстия прозрачными. Так что установите pbg = "white". Попробуйте:

plot(shp, col="gray", border="blue", axes=TRUE, pbg="white")

Кстати, список, о котором я думаю, что Дирк имел в виду, это R-sig-Geo , и вы можете найти там много ответов и задать много вопросов, связанных с сигом.

...