RとPostGIS

 ここでは、Open GIS Simple Features Specification for SQL に準拠したPostGIS を R 内より利用して、GISの空間検索、空間解析および空間分析の方法を説明していくことにする。

PostGIS とは

PostgreSQL 用のオープンソースの空間データベースエンジン。カナダの Refractions 社が開発。PostgreSQL 上で大容量の地理空間ベクトルデータの蓄積・検索・解析・地図投影変換が可能。WKT を格納するフィールドのデフォルト名は"the_geom"。

WKT(Well Known Text)

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                    #テーブル作成 

Rとの接続

rgdal

読み込み

library(rgdal)
meuse = readOGR("PG:dbname=postgis", "meuse2")
meuse[1:10,] # first ten rows
proj4string(meuse)

WKT(Well Known Text)

 rgeos の利用

書込み

RODBC + rgeos --- [R-sig-Geo] Connection between R and PostGISより引用

ここでは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])

関連リンク

RPostgreSQL

Rdbi/RdbiPgSQL

なかまさんのWin32 バイナリがあるが、PostgreSQL のバージョンが違うので利用できない? ビルドも面倒なので今はパス。

凸包

convexhull

ユニオン

GeomUnion または memGeomUnion

ディゾルブ

ユニオンの応用

オーバーレイ解析

ポリゴン

オンデマンド・トポロジー

α版でサポート予定

道路ネットワーク解析

空間ウェイトマトリックス

オンデマンド・トポロジーを利用

空間データマイニング

リンク

参考書


*1 WKB(Well Known Binary)というバイナリ形式もあり、PostGIS はこれもサポートしている
*2 例に使用した columbus のシェープファイルは maptools パッケージに含まれている

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 11:19:17