国土数値情報のデータの読み込みやデータの列名、コードリストを簡単に変換できるパッケージの紹介です。大変便利です。
国土数値情報「鉄道時系列データ」のN05-20_GML.zipを読み込んだ例で紹介します。
国土数値情報「鉄道時系列データ」:https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N05-v1_3.html
パッケージバージョンは1.0.0。実行コマンドはwindows 11のR version 4.1.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール
install.packages("kokudosuuchi")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージの読み込み
library("kokudosuuchi")
#ダウンロードしたzipファイルを選択
library("tcltk")
TestData <- paste0(as.character(tkgetOpenFile(title = "zipファイルを選択",
filetypes = '{"zipファイル" {".zip"}}',
initialfile = c("*.zip"))))
#zipファイル内のshpファイルを読み込む:readKSJDataコマンド
#list形式で各shpファイルのデータが格納されます
GetKokudoData <- readKSJData(TestData)
#内容表示
GetKokudoData
#$`N05-20_RailroadSection2`
#Simple feature collection with 2594 features and 11 fields
#Geometry type: LINESTRING
#Dimension: XY
#Bounding box: xmin: 127.6523 ymin: 26.19315 xmax: 145.7539 ymax: 45.41634
#Geodetic CRS: JGD2011
# A tibble: 2,594 x 12
#N05_001 N05_002 N05_003 N05_004 N05_005b N05_005e N05_006 N05_007 N05_008 N05_009
#<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#1 2 函館線 北海道旅客鉄~ 1880 1950 1968 EB02_1~ NA NA NA
#2 2 函館線 北海道旅客鉄~ 1880 1950 1968 EB02_1~ NA NA NA
#3 2 函館線 北海道旅客鉄~ 1880 1969 9999 EB02_1~ NA NA NA
#4 2 函館線 北海道旅客鉄~ 1880 1969 9999 EB02_1~ NA NA NA
#5 2 江差線 北海道旅客鉄~ 1913 1950 2013 EB02_1~ NA NA NA
#6 2 海峡線 北海道旅客鉄~ 1988 1988 9999 EB02_1~ NA NA NA
#7 2 室蘭線 北海道旅客鉄~ 1892 1950 1967 EB02_1~ NA NA NA
#8 2 室蘭線 北海道旅客鉄~ 1892 1997 9999 EB02_1~ NA NA NA
#9 2 室蘭線 北海道旅客鉄~ 1892 1968 1996 EB02_1~ NA NA NA
#10 2 室蘭線 北海道旅客鉄~ 1892 1950 1967 EB02_1~ NA NA NA
# ... with 2,584 more rows, and 2 more variables: N05_010 <chr>,
# geometry <LINESTRING [arc_degree]>
###以降データは省略###
#読み込んだファイルに列名付与やコードリストを変換:translateKSJDataコマンド
ChangeGetKokudoData <- translateKSJData(GetKokudoData)
#内容表示
ChangeGetKokudoData
#$`N05-20_RailroadSection2`
#Simple feature collection with 2594 features and 13 fields
#Geometry type: LINESTRING
#Dimension: XY
#Bounding box: xmin: 127.6523 ymin: 26.19315 xmax: 145.7539 ymax: 45.41634
#Geodetic CRS: JGD2011
# A tibble: 2,594 x 14
#事業者種別 事業者種別_code 路線名 運営会社 供用開始年 `設置期間(設置開~
# <chr> <chr> <chr> <chr> <chr> <chr>
#1 JR在来線(旧国鉄含む) 2 函館線 北海道旅客~ 1880 1950
#2 JR在来線(旧国鉄含む) 2 函館線 北海道旅客~ 1880 1950
#3 JR在来線(旧国鉄含む) 2 函館線 北海道旅客~ 1880 1969
#4 JR在来線(旧国鉄含む) 2 函館線 北海道旅客~ 1880 1969
#5 JR在来線(旧国鉄含む) 2 江差線 北海道旅客~ 1913 1950
#6 JR在来線(旧国鉄含む) 2 海峡線 北海道旅客~ 1988 1988
#7 JR在来線(旧国鉄含む) 2 室蘭線 北海道旅客~ 1892 1950
#8 JR在来線(旧国鉄含む) 2 室蘭線 北海道旅客~ 1892 1997
#9 JR在来線(旧国鉄含む) 2 室蘭線 北海道旅客~ 1892 1968
#10 JR在来線(旧国鉄含む) 2 室蘭線 北海道旅客~ 1892 1950
# ... with 2,584 more rows, and 8 more variables: 設置期間(設置終了) <chr>,
# 関係ID <chr>, 変遷ID <chr>, 変遷ID_code <chr>, 変遷備考 <chr>, 備考 <chr>,
# 関係備考 <chr>, geometry <LINESTRING [arc_degree]>
###以降データは省略###
「tmmap」パッケージのプロット例
「translateKSJData」コマンドで処理した「ChangeGetKokudoData」でプロットしています。
#プロット
tmap_mode("plot")
tm_shape(ChangeGetKokudoData$`N05-20_RailroadSection2`) +
tm_lines(col = "事業者種別", lwd = 2, legend.show = TRUE,
legend.col.show = TRUE)
・出力例

参考記事
少しでも、あなたの解析が楽になりますように!!