LINK:[GoogleEarthとR][ShapeFileライブラリ][kmlラボ][空間的なデータの分析][Rでジオコーディング][RでGPS]
目次
論文引用・書籍等に引用する場合の著作権についての連絡>>okinawa
財団法人統計情報研究開発センター専門誌ESTRELAへ6回に渡って「Rと空間統計」について連載します。連載にあたって、必要な情報やデータをここに蓄積しますので、ご了解ください。
[R Spatial Projects]
[CRAN Task View: Analysis of Spatial Data]
[CRAN Task View]
[Spatial data in R]
このプログラムは、空間統計関連パッケージを一括インストールするために作成しました。
以下のプログラムを実行するためには、事前にRがインストールされている必要があります。
随時、必要なパッケージの追加を行っておりますので、常に新しいバージョンのもの適応してください
対象 | プログラム | ver | 対応R | 備考 |
[MacOSX10.4.10] | 0.1.3 | R2.4.1 | 解凍後、Macintosh HD 直下に移動させ、InstallGISpacks をダブルクリックしてください。インストール終了後、自動的にCloseします。 | |
[WindowsXPSP2/2000SP4] | 0.1.2 | R2.4.1 | 解凍後、C:\直下に移動させ、InstallGISpacksR-2.4.1.batをダブルクリックしてください。インストール終了後、自動的にCloseします。 |
[Mac版Rで、library 起動時にエラーが出る場合の一般的な注意点]
[パッケージの一括インストールプログラムの応用]
[更新履歴]
2007/06/05 GISpacksWin.zip 更新 ver0.1.2、XML追加。
ShapeFileライブラリで許可いただきました内容から、更に許可範囲を広げていただきましたので、その内容を公開いたします。
このたびはお問い合わせありがとうございました。
ご質問にお答えいたします。
<問い合わせ内容>
以前、「Rを利用したShapeFileの県別の切り出し加工・公開」を許可していただいたものです。
今回、ご相談したいことは、公開されている全国市区町村行政界ShapeFileデータにつきまして
(1)現在作成されている*緯度経度座標* (*回転楕円体:GRS1980、データム:JGD2000*)から他の測地系・座標系への変換した場合の加工物(ShapeFileもしくはそれ以外のフォーマット)の公開が可能か。
(2)ShapeFileからGoogleEarthのKMLへの変換を行った加工物の公開が可能か。
<回答>
「ご公開可能」と回答いたします。 ただし、以下の条件を遵守願います。
(1)営利目的には利用しない。
(2)公開時には、以下の文章を入れていただく。
「本データの作成に当たっては、ESRIジャパン株式会社の全国市区町村界データを使用しました。本データの著作権はESRIジャパン株式会社に帰属します。」
上記のように、加工・公開されるデータにつきましては、ESRIジャパン株式会社様の回答内容を守って取り扱っていただきますようよろしくお願いいたします。
[更新履歴]
2010/01/24 maptoolsdemoSP.txt追加しました。ダウンロード後、C:\GISdataフォルダに入れてください。
2007/12/16 rgdaldemo.txt追加しました。ダウンロード後、C:\GISdataフォルダに入れてください。
2007/11/20 rcomdemo.txt追加しました。ダウンロード後、C:\GISdataフォルダに入れてください。
2007/10/18 shp2kmlver035.txt追加しました。ダウンロード後、C:\GISdataフォルダに入れてください。
(注)なお「本データの作成に当たっては、ESRI ジャパン株式会社の全国市区町村界データを使用しました。本データの著作権は ESRI ジャパン
株式会社に帰属します。」
[解説]
Rでの空間統計を理解する上での一番の早道は、各パッケージ(ライブラリ)に用いられている「空間統計用のクラス」の構造を知ることです。通常、クラス構造はマニュアルには明示されていないものが多いので、自分で調べる必要があります。クラス構造を知るためには生成されたオブジェクトに対して str(*) を用いてください。
maptools では、従来より S3 Mapクラスが用いられてきましたが、sp パッケージと連携することにより、 S4SpatalPolygonsDataFrame、SpatialLinesDataFrame、SpatialPointsDataFrame も生成できるようになりました。sp のクラスを取り込むことにより、地図投影法の変更など、細かな処理が可能となってきています。
maptools(Maptools)パッケージ中のオブジェクト一覧
[S3クラス:Map]
class type | class name | obj | attribute1 | attribute2 | attribute3 | atomic type | comment1 | comment2 |
S3 | Map | * | $Shapes | list | ||||
[[n]] | list | |||||||
$Pstart | int | ポリゴン開始点 | ポリゴン分割に利用(複数) | |||||
$verts | num | ポリゴン点列 | 緯度経度情報 | |||||
$shp.type | int | シェープタイプ | 5=ポリゴン(shapefile仕様書) | |||||
$nVerts | int | $verts行数 | ポリゴン点行数 | |||||
$nParts | int | $vertsの分割数 | ポリゴン分割数 | |||||
$bbox | num | 最小包含箱 | バウンディングボックス | |||||
$shpID | int | シェープID | DBFの並びと一致 | |||||
attr(,"nVeart") | int | ポリゴン点数 | ||||||
attr(,"nParts") | int | ポリゴン点分割数 | vertsがいくつ分割されているか | |||||
attr(,"shp.type") | int | シェープタイプ | 5=ポリゴン(shapefile 仕様書) | |||||
attr(,"bbox") | num | 最小包含箱 | バウンディングボックス | |||||
$att.data | data.frame | .DBFのデータ** | ||||||
$PREF | Factor | 都道府県名 | ||||||
$CITY1 | Factor | 市町村名 | 政令指定都市の場合は区名 | |||||
$CITY2 | Factor | 政令指定都市の市名 | ||||||
$TOWN1 | Factor | 郡名(町村部のみ) | ||||||
$TOWN2 | Factor | 県市区町村名 | ||||||
$JCODE | num | 市町村コード | 5桁のJISコード | |||||
$P_NUM | num | 人口 | ||||||
$H_NUM | num | 世帯数 | ||||||
$FLAG1 | num | 陸/水フラグ | 陸部:1、 湖沼:2 | |||||
$FLAG2 | num | 更新時のデータ変更フラグ | 変更無:0、ver3.0:1、ver5.0:3 | |||||
$S_TKY2JGD | num | 自動作成データ | ||||||
attr(*,"data_types") | chr | $*のデータタイプ | "C" "N" | |||||
attr(*, "class") | chr | クラスタイプ | Map |
**:DBFのデータによって$att.dataの内容は変わります。ここでは、ESRI Japan 社公開の shapefile の構造を示してあります。文字コードは Shift-JIS になっていますので、Mac/Linux で利用する場合は変換が必要です。
GoogleEarthとRではこの構造をプログラムが解析して、XML(KML)を生成しています。
bbox(バウンディングボックス)は、ポリゴンが表示されている領域の四角の緯度・経度を示していますので、このデータからポリゴンの中心点が計算できます。また、ポリゴンの中心点に円/棒などを表示させることで、3D のグラフを作成することも可能でしょう。
[S3クラス:polylist]
class type | class name | obj | attribute1 | attribute2 | attribute3 | atomic type | comment1 | comment2 |
S3 | polylist | * | list | |||||
[[n]] | ||||||||
[[n,m]] | num | ポリゴン点 | 緯度・経度情報 | |||||
attr(*, "nParts") | int | ポリゴン分割数 | ||||||
attr(*, "pstart") | list | ポリゴン開始点 | ||||||
$from | int | |||||||
$to | int | |||||||
attr(*, "after") | num | |||||||
attr(*, "plotOrder") | num | プロット順 | ||||||
attr(*, "bbox") | num | 最小包含箱 | バウンディングボックス | |||||
attr(*, "nParts") | int | |||||||
attr(*, "ringDir") | int | リングの向き(ポリゴン点の方向) | 時計回り'clockwise' | |||||
attr(*, "area") | num | エリア | ||||||
attr(*, "centroid") | list | 重心点 | ||||||
$x | num | |||||||
$y | num | |||||||
attr(*, "shpID") | int | シェープID | ||||||
attr(*, "region.id") | chr | リージョンID | ||||||
attr(*, "class") | chr | クラスタイプ | polylist | |||||
attr(*, "maplim") | list | |||||||
$ x | num | |||||||
$ y | num | |||||||
attr(*, "after") | int | |||||||
attr(*, "plotOrder") | int | プロット順 |
**:S3 MapObject より Map2poly() 関数で取り出されるオブジェクト。ポリゴン情報のみ持っている。オブジェクトはリスト構造のためポリゴンの色を指定色にて塗り分けることが可能。
[S4クラス:SpatialPolygonsDataFrame]
class type | class name | obj | attribute1 | attribute2 | attribute3 | atomic type | comment1 | comment2 |
S4 | SpatialPolygonsDataFrame | * | sp package 'SpatalPolygonsDataFrame'class | |||||
@data | data.frame | .DBFのデータ** | ||||||
$PREF | Factor | 都道府県名 | ||||||
$CITY1 | Factor | 市町村名 | 政令指定都市の場合は区名 | |||||
$CITY2 | Factor | 政令指定都市の市名 | ||||||
$TOWN1 | Factor | 郡名(町村部のみ) | ||||||
$TOWN2 | Factor | 県市区町村名 | ||||||
$JCODE | num | 市町村コード | 5桁のJISコード | |||||
$P_NUM | num | 人口 | ||||||
$H_NUM | num | 世帯数 | ||||||
$FLAG1 | num | 陸/水フラグ | 陸部:1、 湖沼:2 | |||||
$FLAG2 | num | 更新時のデータ変更フラグ | 変更無:0、ver3.0:1、ver5.0:3 | |||||
$S_TKY2JGD | num | 自動作成データ | ||||||
attr(*,"data_types") | chr | $*のデータタイプ | "C" "N" | |||||
@polygons | [[n]] | list | ||||||
@Polygons | sp package 'Polygons'class | |||||||
[[n]] | list | sp package 'Polygon'class | ||||||
@labpt | num | ラベルポイント | ||||||
@area | num | エリア | ||||||
@hole | logi | ホール | ホール(穴)チェック | |||||
@ringDir | int | リングの向き(ポリゴン点の方向) | 時計回り'clockwise' | |||||
@coords | num | ポリゴン点 | 緯度・経度情報 | |||||
@plotOrder | int | プロット順 | ||||||
@labpt | num | ラベルポイント | ||||||
@ID | chr | ID | DBFの並びと一致 | |||||
@area | num | エリア | ||||||
@plotOrder | int | プロット順 | ||||||
@bbox | num | 最小包含箱 | バウンディングボックス | |||||
attr(*, "dimnames") | list | bbox配列名 | ||||||
$ | chr | bbox配列名 | "r1" "r2" | |||||
$ | chr | bbox配列名 | "min" "max" | |||||
@proj4string | sp package 'CRS'class | |||||||
@projargs | chr | 地図投影法指定 |
**:DBFのデータによって@dataの内容は変わります。ここでは、ESRIJapan社の公開shapefileの構造を示してあります。
S3Mapクラスと比較すると属性が一層深く作られていることがわかります。(ポリゴン開始点を使わずに、ポリゴン個々に管理されるようになっている。)また、ホールフラグが存在するので、ポリゴンを塗る場合のチェックを行うことが可能です。
[S4クラス:SpatialLinesDataFrame]
class type | class name | obj | attribute1 | attribute2 | attribute3 | atomic type | comment1 | comment2 |
S4 | SpatialLinesDataFrame | * | sp package 'SpatialLinesDataFrame' class | |||||
@data | data.frame | .DBFのデータ** | ||||||
$PREF | Factor | 都道府県名 | ||||||
$CITY1 | Factor | 市町村名 | 政令指定都市の場合は区名 | |||||
$CITY2 | Factor | 政令指定都市の市名 | ||||||
$TOWN1 | Factor | 郡名(町村部のみ) | ||||||
$TOWN2 | Factor | 県市区町村名 | ||||||
$JCODE | num | 市町村コード | 5桁のJISコード | |||||
$P_NUM | num | 人口 | ||||||
$H_NUM | num | 世帯数 | ||||||
$FLAG1 | num | 陸/水フラグ | 陸部:1、 湖沼:2 | |||||
$FLAG2 | num | 更新時のデータ変更フラグ | 変更無:0、ver3.0:1、ver5.0:3 | |||||
$S_TKY2JGD | num | 自動作成データ | ||||||
attr(*,"data_types") | chr | $*のデータタイプ | "C" "N" | |||||
@lines | [[n]] | list | ||||||
@Lines | sp package 'Lines'class | |||||||
[[n]] | list | sp package 'Line'class | ||||||
@coords | num | ポリゴン点 | 緯度・経度情報 | |||||
@ID | chr | ID | ||||||
@bbox | num | 最小包含箱 | バウンディングボックス | |||||
attr(*, "dimnames") | list | bbox配列名 | ||||||
$ | chr | bbox配列名 | "r1" "r2" | |||||
$ | chr | bbox配列名 | "min" "max" | |||||
@proj4string | sp package 'CRS' class | |||||||
@projargs | chr | 地図投影法指定 |
[S4クラス:SpatialPointsDataFrame]
注)GISdata.zipで提供しているShapeFileからは生成できないので、system.file("shapes/baltim.shp", package="maptools"[1])を使いました。
class type | class name | obj | attribute1 | attribute2 | attribute3 | atomic type | comment1 | comment2 |
S4 | SpatialPointsDataFrame | * | sp package 'SpatialPointsDataFrame' class | |||||
@data | data.frame | |||||||
$STATION | num | |||||||
$PRICE | num | |||||||
$NROOM | num | |||||||
$DWELL | num | |||||||
$NBATH | num | |||||||
$PATIO | num | |||||||
$FIREPL | num | |||||||
$AC | num | |||||||
$BMENT | num | |||||||
$NSTOR | num | |||||||
$GAR | num | |||||||
$AGE | num | |||||||
$CITCOU | num | |||||||
$LOTSZ | num | |||||||
$SQFT | num | |||||||
$X | num | 経度 | ||||||
$Y | num | 緯度 | ||||||
attr(*,"data_types") | chr | $*のデータタイプ | "N" | |||||
@coords.nrs | num | |||||||
@coords | num | |||||||
attr(*,"dimnames") | list | |||||||
$ | NULL | |||||||
$ | chr | "coords.x1" "coords.x2" | ||||||
@bbox | num | 最小包含箱 | バウンディングボックス | |||||
attr(*, "dimnames") | list | bbox配列名 | ||||||
$ | chr | bbox配列名 | "coords.x1" "coords.x2" | |||||
$ | chr | bbox配列名 | "min" "max" | |||||
@proj4string | sp package 'CRS' class | |||||||
@projargs | chr | 地図投影法指定 |
空間統計のための共用クラス(谷村先生の解説)http://jasp.ism.ac.jp/kinou2sg/contents/tanimura-20061209.pdf
通常、地図情報を扱う場合には、表示範囲・次元数などの利用目的に応じて、投影方法を変更する。
全世界を表現する場合にはメルカトル図法などをよく利用するが、角度・距離・面積・形状のいずれかを正確に表現するかで、非常に多くの投影方法が開発されてきた。
最近では、GPSの利用が進んでいるため世界的な基準の統一が望まれてきている*1。
proj4は地図投影法のC言語ライブラリProj.4をRで利用できるようにしたパッケージである。
rgdalは汎用地図ラスターデータ変換ライブラリGDALと汎用地図ベクターデータ変換ライブラリOGR、地図投影法変換ライブラリProj.4をRで利用できるようにしたパッケージである。投影方法を変更するための、CRSクラスを実装している。
[maptools]
地理的なデータ、特にESRIの shapefile を処理するためのツール群:パッケージはPBSmapping、spatstat、maps、RArcInfo、Stata tmap、WinBUGS、Mondrian、および他のパッケージと空間的なデータを交換するためのインターフェースラッパーを提供する。
maptools で地図表示
[shapefiles]
ESRIのshapefilesを読み、書く機能
[DCluster]
一組の計算データを使用して疾病の空間的な集積の検出をするための機能。 ブートストラップが統計量の標本分布を推定するのに使用されている。
GoogleEarthとR
[XML]
[rgdal]
WarmerdamのGeospatialのデータ抽象化ライブラリ(GDAL) (>= 1.3.1)の結合およびPROJ.4ライブラリからの投影または変換操作へのアクセスを提供する。
[RCurl]
Rでジオコーディング
7168 人