【问题标题】:reading and plotting an esri shape file in R在 R 中读取和绘制 esri 形状文件
【发布时间】:2011-01-05 09:42:51
【问题描述】:

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

如何解决?

【问题讨论】:

  • 这是一个中等专业的问题,对此有一个特殊的列表——您是否考虑过在 r-ssig-spatial 上提问?

标签: r vector geospatial plot esri


【解决方案1】:

一月,

您的 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 相关的问题。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-12-13
  • 2020-11-19
  • 1970-01-01
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 2017-02-17
  • 2015-11-24
相关资源
最近更新 更多