我想將一個shapefile(.shp和相關文件爲here)的子集映射到另一個由一組座標(比如longs [80,90]和lats [20,30]之間的座標),然後寫出來作爲另一個shapefile。如果我使用maptools
包:R/GIS:如何通過經緯度長的邊界框對shapefile進行子集劃分?
df = readShapeLines("/path/asia_rivers.shp")
,然後看文件的結構與as.data.frame(df)
,我無法找到座標子集的任何明顯的方法。我可以使用PBSmapping
包到子集:
df = importShapefile("/path/asia_rivers.shp")
df_sub = subset(df, X>=80 & X<=90 & Y >=20 & Y <=30)
但然後我似乎無法能夠迫使成可經由writeSpatialShape()
在maptools
導出一個數據幀這一點。我不斷收到此錯誤:Error in PolySet2SpatialLines(df_sub) : unknown coordinate reference system
。當然,我錯過了一些非常基本的東西,應該有一種通過地理座標對地理數據進行子集化的簡單方法?
這個問題是不是在策劃,但在可導出爲shape文件的格式子集。 – user702432 2012-03-22 17:42:55
您是否嘗試讀取shapefile,並使用gIntersection將其與相應的邊界框相交,然後將其導出(例如,與maptools :: writeShapeLines?我只繪製它來向你顯示這些行已經被僞數據修剪過,因爲你提供的形狀文件是無效的(一個shapefile不僅僅包含一個* .shp文件; http://en.wikipedia.org/維基/ Shape文件)。 – johannes 2012-03-22 18:03:37
嗨jmsigner ...對不起,我的壞。我將鏈接更改爲包含原始.dbf,.lyr,.prj,.sbn,.sbx,.shp和.shx文件的壓縮文件夾。謝謝。 – user702432 2012-03-23 01:48:57