2015年1月29日木曜日

RでGIS その 1:シェープファイル操作、図示

RでのGIS操作、いずれまとめようと思いつつ放ったらかしてました。だれにでも有用そうなものから少しずつアップしていく予定です。

基本の関数の備忘録、とくにshapefileの読み込みと書き出しの関数が長くて忘れてしまいがちです。。

require(maptools) # shapefileの読み込みなどに用いるパッケージ(要インストール)
shape <- readShapeSpatial(file.choose()) # 読み込み & .shpファイルをメニューで選択

plot(shape) # 図示もできます
zoom(shape) # 自分で選んだ範囲を拡大する場合。
# このコマンドを打った後に、図のウィンドウ上で対角線の端と端をクリックで選択するという、Rらしからぬ操作法でズームします
plot(shape2, add=T) # 他のファイルshape2を重ねて図示したい場合

str(shape, 5) # shapeの中身を眺める場合("5"くらいに制限しておかないとコンソールが溢れて大変なことになる)
shape@data # shapeファイルのデータを取り出す場合(@dataの中身はデータフレーム)


# 手持ちのデータフレームDataからshapefileを作る場合(LongitudeとLatitudeの列を含むデータとします)
# GPSデータはWGS84(133.33333のような表記)にするのが原則です
require(sp) # maptoolsを使用していれば、新たに呼び出さなくてよいはず
coordinates(Data) <- c("Longitude", "Latitude") # このようにGPS列を指定すると空間データ化する
# 変な感じがするかもしれないですが、x, yの順番なのでLongitudeを先に書きます

bbox(Data) # cf. これをやるとデータの四隅(最少・最大)が分かります

#もしデータがグリッド状に揃っている場合はグリッドに変換することができる
gridded(Data) <- TRUE # そうでない場合はエラーになるはず

# データの書き出し
writeSpatialShape(Data, "ファイル名.shp") # readの場合とはShapeとSpatialの順番が逆!