15

我在将 .shp(esri 形状文件)读入 R 时遇到了困难。我在 R 中尝试了几个选项,并尝试将 ArcMap 中的形状文件转换为可以在形状文件中正确读取但没有任何效果的文件。(在 ArcMap 中,我更正了几何,从单面转换为多面等,这可能不是必需的或相关的)

这可能与我的形状文件包含“区域”(多多边形)而不是“多边形”的事实有关......

如何在 R 中正确读取该类型的形状文件以进行绘图?(在 ArcMap 中看起来像一个正常的形状)

在 ArcMap 中,形状文件如下所示: http ://bfast.r-forge.r-project.org/arcmapshape.jpg

(显示一个形状文件,其中包含其他多边形内的多边形)

在 R 中,它看起来像这样: 在此处输入图像描述

(显示一些多边形被错误填充的形状文件)

我在 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

如何解决?

4

1 回答 1

11

简,

您的 shapefile 可能已被正确读取。更有可能是绘图不正确。尝试 spplot() 而不是 plot() :

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

如果您的 shapefile 包含多于一列(很可能),请添加 zcol= 1 (或任何其他列),以便您只获得一个面板

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

如果您真的想使用绘图,则必须为背景设置颜色,否则它将打印透明的孔。所以设置 pbg="white"。尝试:

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

顺便说一句,我认为 Dirk 所指的列表是R-sig-Geo,您可以在那里找到许多答案并提出许多与 sig 相关的问题。

于 2010-01-15T20:54:23.270 回答