R Language
空間分析
サーチ…
XYデータセットから空間点を作成する
地理データに関しては、Rはデータ処理、分析、視覚化のための強力なツールであることを示しています。
多くの場合、空間データは、表形式のXY座標データとして使用できます。この例では、XYデータセットから空間データセットを作成する方法を示します。
パッケージrgdal
とsp
は強力な機能を提供します。 Rの空間データとして記憶することができるSpatial*DataFrame
( *
することができるPoints
、 Lines
又はPolygons
)。
この例では、 OpenGeocodeでダウンロードできるデータを使用しています。
最初に、作業ディレクトリをダウンロードしたCSVデータセットのフォルダに設定する必要があります。さらに、パッケージrgdal
をロードする必要があります。
setwd("D:/GeocodeExample/")
library(rgdal)
その後、都市とその地理的座標を格納しているCSVファイルがdata.frame
としてRにロードされdata.frame
xy <- read.csv("worldcities.csv", stringsAsFactors = FALSE)
多くの場合、データとその構造(カラム名、データタイプなど)を垣間見ることが有用です。
head(xy)
str(xy)
これは、 "-33.532"のようなエントリを保持しているので、緯度と経度の列は文字値として解釈されることを示しています。空間データセットを作成する後で使用される関数SpatialPointsDataFrame()
では、データ型numeric
座標値が必要です。したがって、2つの列を変換する必要があります。
xy$latitude <- as.numeric(xy$latitude)
xy$longitude <- as.numeric(xy$longitude)
値のうちのいくつかを数値データに変換できないため、 NA
値が作成されます。それらは削除する必要があります。
xy <- xy[!is.na(xy$longitude),]
最後に、XYデータセットを空間データセットに変換することができます。これには、座標が格納されている座標参照系(CRS)の座標と指定が必要です。
xySPoints <- SpatialPointsDataFrame(coords = c(xy[,c("longitude", "latitude")]),
proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"),
data = xy
)
基本的なプロット関数を使用すると、生成された空間点のピークを簡単に突き止めることができます。
plot(xySPoints, pch = ".")
シェイプファイル(.shp)のインポート
rgdal
ESRIシェイプファイルは、 rgdal
パッケージからreadOGR()
関数を使用してRに簡単にインポートできます。
library(rgdal)
shp <- readORG(dsn = "/path/to/your/file", layer = "filename")
重要なのは、 dsn
は/
で終わるべきではなく、 layer
がファイルの終了を許可していないこと(例えば.shp
)です。
ラスター
シェイプファイルをインポートするもう1つの方法は、 raster
ライブラリとshapefile
関数です。
library(raster)
shp <- shapefile("path/to/your/file.shp")
パス定義がrgdal import文とどのように異なるかに注意してください。
tmap
tmap
パッケージは、 rgdal::readORG
関数の素晴らしいラッパーを提供します。
library(tmap)
sph <- read_shape("path/to/your/file.shp")