RとPostGIS
ここでは、Open GIS Simple Features Specification for SQL に準拠したPostGIS を R 内より利用して、GISの空間検索、空間解析および空間分析の方法を説明していくことにする。
PostgreSQL 用のオープンソースの空間データベースエンジン。カナダの Refractions 社が開発。PostgreSQL 上で大容量の地理空間ベクトルデータの蓄積・検索・解析・地図投影変換が可能。WKT を格納するフィールドのデフォルト名は"the_geom"。
PostGIS は国際標準の地理情報格納形式であるOpenGIS シンプルフィーチャをベースにしたWKTというテキスト形式で図形情報を格納している*1。
PostGISのユーティリティツール shp2pgsql を利用してSQL 文を生成する。
shp2pgsql シェープファイル名 テーブル名 データベース名 > SQLファイル
使用例*2
createdb columbusdb #データベース作成 createland plpgsql columbusdb #PL/PGSQL の利用を可能にする psql -d columbusdb -f <PostgreSQLのインストール先のディレクトリ>/share/contrib/postgis.sql #PostGIS の利用を可能にする shp2pgsql columbus columbus columbusdb > columbus.sql #SQL文生成 psql -d columbusdb -f columbus.sql #テーブル作成
library(rgdal) meuse = readOGR("PG:dbname=postgis", "meuse2") meuse[1:10,] # first ten rows proj4string(meuse)
rgeos の利用
ここではRODBC を利用して、PostgreSQL に接続する。ただし、この方法は 処理できるサイズの小さなものに限られる。
library(rodbc) #パッケージのロード con <- odbcConnect("gisdb") ## query sql <- "SELECT ST_AsText(the_geom) from gis_data.gadm2 where name_2='Berlin'" ## execute query d <- readWKT(sqlQuery(con, sql, stringsAsFactors=F)[1,1])
なかまさんのWin32 バイナリがあるが、PostgreSQL のバージョンが違うので利用できない? ビルドも面倒なので今はパス。
convexhull
ユニオンの応用
α版でサポート予定
オンデマンド・トポロジーを利用