2010-01-15 72 views
15

我在R中讀取.shp(esri形狀文件)時遇到了困難。我嘗試了R中的幾個選項,並嘗試將ArcMap中的形狀文件轉換爲正確讀入形狀文件,但沒有任何工作。 (在ArcMap中,我更正了幾何體,從單個轉換爲多面體等等,這可能不是必需或不相關的)閱讀和繪製R中的esri形狀文件

它可能與我的形狀文件包含'區域'(多多邊形) 'polygons'...

如何在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 

這怎麼解決?

+0

這是一箇中等專業化的問題,有一個特別的列表 - 你考慮問r-ssig空間嗎? – 2010-01-15 14:46:17

回答

11

Jan,

您的shapefile可能已被正確讀取。這種繪圖更可能是不正確的。嘗試spplot()而不是圖():

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

如果shape文件有超過一列(這是有可能的),加ZCOL = 1(或任何其他列),所以你只有一個面板

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

如果您確實想要使用繪圖,您必須爲背景設置一種顏色,否則會將透明的孔打印出來。所以設置pbg =「白色」。嘗試:

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

順便說一句,名單我認爲德克指的是R-sig-Geo,你可以找到很多有答案,問很多SIG相關的問題。

+2

非常明確的答案!兩種解決方案都可以工謝謝你的幫助。 我發現與其它的R的例子一些非常方便的網頁來繪製包含網格數據和矢量數據空間地圖: http://geography.uoregon.edu/GeogR/examples/maps_examples02.htm HTTP:// R-空間。 sourceforge.net/gallery/ 乾杯, Jan – Janvb 2010-01-18 01:46:19