在R中读取和绘制esri形状文件

时间:2010-01-15 06:23:33

标签: r vector geospatial plot esri

我在将.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 个答案:

答案 0 :(得分: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相关的问题。