金子邦彦研究室3次元,地図地図情報システムとデータベースosmar のデータ構造例

osmar のデータ構造例

osmar とは R 言語処理系用の OpenSteetMap の種々の機能のパッケージ.

福岡市内全域を含む OpenStreetMap XML ファイルを,osmar パッケージを使ってR言語処理系に読みこんでデータ構造を確認した.R言語処理系へ読み込むコマンドを次に示す.

#ライブラリの読み込み
library("osmar")
#XMLデータの読み込み
xml <- readLines('/home/hoge.xml')
#OpenStreetMapデータとして整形
map <- as_osmar(xmlParse(xml))
#データ構造の表示
STR(map)

◆実行結果例

> str(map)
List of 3
 $ nodes    :List of 2
  ..$ attrs:'data.frame':    495982 obs. of  9 variables:
  .. ..$ id       : num [1:495982] 2.41e+08 2.41e+08 2.41e+08 2.41e+08 2.41e+08 ...
  .. ..$ timestamp: POSIXlt[1:495982], format: "2011-04-07 13:44:33" "2008-01-21 07:47:00" ...
  .. ..$ uid      : Factor w/ 108 levels "1008753","105009",..: 52 71 48 69 12 12 12 12 12 69 ...
  .. ..$ user     : Factor w/ 108 levels "AJI-INTERNATIONAL",..: 44 41 38 47 3 3 3 3 3 47 ...
  .. ..$ visible  : Factor w/ 1 level "true": 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ version  : num [1:495982] 4 1 4 4 2 2 2 2 2 2 ...
  .. ..$ changeset: num [1:495982] 7794785 675578 12697666 13096850 756400 ...
  .. ..$ lat      : num [1:495982] 33.6 33.7 33.6 33.6 33.6 ...
  .. ..$ lon      : num [1:495982] 130 130 130 130 130 ...
  ..$ tags :'data.frame':    160600 obs. of  3 variables:
  .. ..$ id: num [1:160600] 2.52e+08 2.52e+08 2.52e+08 2.52e+08 2.52e+08 ...
  .. ..$ k : Factor w/ 137 levels "FIXME","KSJ2:ADS",..: 37 37 37 37 37 37 37 37 37 37 ...
  .. ..$ v : Factor w/ 48191 levels "?????","(有)浜田電業",..: 43122 43122 43122 43122 43122 43122 43122 43122 43122 43122 ...
  ..- attr(*, "class")= chr [1:3] "nodes" "osmar_element" "list"
 $ ways     :List of 3
  ..$ attrs:'data.frame':    46857 obs. of  7 variables:
  .. ..$ id       : num [1:46857] 22491953 23303818 23303822 23303825 23303826 ...
  .. ..$ timestamp: POSIXlt[1:46857], format: "2012-08-12 04:27:31" "2012-09-06 11:45:27" ...
  .. ..$ uid      : Factor w/ 75 levels "103253","105009",..: 27 42 42 71 27 42 68 71 42 27 ...
  .. ..$ user     : Factor w/ 75 levels "42429","Andre68",..: 24 32 32 23 24 32 13 23 32 24 ...
  .. ..$ visible  : Factor w/ 1 level "true": 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ version  : num [1:46857] 6 4 6 27 13 7 5 33 13 29 ...
  .. ..$ changeset: num [1:46857] 12697666 13008987 14891887 14989948 12213785 ...
  ..$ tags :'data.frame':    171329 obs. of  3 variables:
  .. ..$ id: num [1:171329] 22491953 23303822 23303825 23303825 23303825 ...
  .. ..$ k : Factor w/ 127 levels "FIXME","KSJ2:ADS",..: 103 117 72 81 103 104 117 72 77 78 ...
  .. ..$ v : Factor w/ 3633 levels "    172.11298791800",..: 411 2745 10 2799 397 3101 2745 10 3064 386 ...
  ..$ refs :'data.frame':    567420 obs. of  2 variables:
  .. ..$ id : num [1:567420] 22491953 22491953 22491953 22491953 22491953 ...
  .. ..$ ref: num [1:567420] 2.41e+08 1.86e+09 1.86e+09 1.26e+09 1.26e+09 ...
  ..- attr(*, "class")= chr [1:3] "ways" "osmar_element" "list"
 $ relations:List of 3
  ..$ attrs:'data.frame':    106 obs. of  7 variables:
  .. ..$ id       : num [1:106] 111091 359426 952499 952500 952537 ...
  .. ..$ timestamp: POSIXlt[1:106], format: "2012-09-03 14:28:14" "2012-12-23 14:46:55" ...
  .. ..$ uid      : Factor w/ 15 levels "205208","24247",..: 14 6 1 1 1 10 10 1 9 3 ...
  .. ..$ user     : Factor w/ 15 levels "42429","Keolety",..: 8 15 14 14 14 3 3 14 12 9 ...
  .. ..$ visible  : Factor w/ 1 level "true": 1 1 1 1 1 1 1 1 1 1 ...
  .. ..$ version  : num [1:106] 2 40 1 1 1 3 2 1 5 4 ...
  .. ..$ changeset: num [1:106] 12968317 14379004 4924513 4924513 4924513 ...
  ..$ tags :'data.frame':    432 obs. of  3 variables:
  .. ..$ id: num [1:432] 111091 111091 111091 359426 359426 ...
  .. ..$ k : Factor w/ 49 levels "KSJ2:AAC","KSJ2:AAC_label",..: 20 41 45 22 23 24 25 26 32 33 ...
  .. ..$ v : Factor w/ 122 levels "  11958.77567180000",..: 79 57 74 107 33 32 107 34 95 42 ...
  ..$ refs :'data.frame':    3383 obs. of  4 variables:
  .. ..$ id  : num [1:3383] 111091 111091 111091 359426 359426 ...
  .. ..$ type: Factor w/ 3 levels "node","relation",..: 3 3 3 3 3 3 3 3 3 3 ...
  .. ..$ ref : num [1:3383] 2.33e+07 3.30e+07 1.64e+08 2.34e+07 1.88e+08 ...
  .. ..$ role: Factor w/ 8 levels "","admin_centre",..: 5 6 6 1 1 1 1 1 1 1 ...
  ..- attr(*, "class")= chr [1:3] "relations" "osmar_element" "list"
 - attr(*, "class")= chr [1:2] "osmar" "list"

データ構造 は list 形式で, nodes,ways,relationsの3つの list を持つ.

以下、共通属性

attrs データフレーム

tags データフレーム

nodes 固有の属性

attrs データフレーム

ways 固有の属性

refs データフレーム

relations 固有の属性

refs データフレーム