2016-04-17 4 views
1

私は次のパスにアップロードされた形状ファイル、持っている:私は「シェープファイル」のパッケージに「read.shapefiles」機能を使用してデータをインポートRの形状ファイルオブジェクトの重心を抽出しますか?

https://drive.google.com/open?id=0B1ITb_7lHh1EUFVfVWc4ekRfSnc

を:

landuse<- read.shapefile("landuse") 

私は今、土地利用オブジェクト内のすべての図形の緯度/経度の重心を抽出して土地利用$ dbfデータフレームに追加する必要があります

私は2つ試しました:

私は続行する方法について確認していない

Error in coordinates(as.data.frame(obj)) : 
    error in evaluating the argument 'obj' in selecting a method for function 'coordinates': Error in data.frame(record = 1L, content.length = 80L, shape.type = 5L, : 
    arguments imply differing number of rows: 1, 4, 7 

lu_df<-coordinates(landuse) 
lu_df<-SpatialPoints(landuse) 

どちらも、私に次のエラーが発生しました。

答えて

1

まず、空間データにrgdalパッケージを使用することをお勧めします。 readOGRwriteOGRの関数は、(射影の入力や出力などの)素晴らしいShapefile処理を提供します。

UPDATE: このmaptools機能readShapePoly()を利用し、(コメントのエラーを参照)@Shazのために働いていないので。また、this postを参照してください。

問題:rgeosパッケージには、ポリゴンの重心を計算する関数gCentroid()が用意されています。ソリューションは、このようなものになります。readOGRで エラー(、 『土地利用』「」):私はreadOGR機能を使用することができませんなぜ私にはわからない

setwd("/path/to/your/shapefile/") 

library(maptools) 
library(rgeos) 
landuse <- readShapePoly("landuse") 

centr <- gCentroid(landuse, byid = TRUE) 

# create SpatialPointsDataFrame to export via writeOGR 
# positive side effect: All data from [email protected] joined to [email protected] 
centr <- SpatialPointsDataFrame(centr, data= [email protected]) 

writeOGR(centr, ".", "landuse_centroids", driver = "ESRI Shapefile") 
+0

を..私はいつも次のエラーを取得します:機能が見つかりません さらに:警告メッセージ: ogrInfo(dsn = dsn、レイヤー=レイヤー、エンコード=エンコーディング、use_iconv = use_iconv、: ogrInfo:すべての機能NULL – Shaz

+0

は 'library(maptools)'を使用します。 – loki

+0

これはうまくいきました。ありがとうございます。なぜ、readOGRが私のために働いていないのですか? – Shaz

関連する問題