ポイントデータによる地価の可視化では,地価公示を利用して調査地点(観測ポイント)の土地価格を可視化した.この情報を利用して,調査地点以外の箇所の地価を予測し,地域全体にわたる地価の様子を表現する.
ライブラリ:sf
,tidyverse
,gstat
library(sf)
library(tidyverse)
#idw()利用のため
library(gstat)
シェープファイルのダウンロード
国土数値情報ダウンロードサービス > 行政区域(ポリゴン) > 富山県 > 令和3年
国土数値情報ダウンロードサービス > 地価公示(ポイント) > 富山県 > 「富山県」データのダウンロード > 世界測地系 令和4年
read_sf()
:データ読込.crs="JGD2011"
を指定.crs(Coordinate
ReferenceSystem,座標参照系)を2011年に定められた世界測地系に基づく日本測地系(Japanese
Geodetic Datum)に投影を意味.この指定がないとうまく行かなかった.%>%
)を使い,富山県のデータから富山市のデータを抜き出し.#富山県の地図
<-
Toyama_mapread_sf("N03-20210101_16_GML/N03-20210101_16_GML/N03-21_16_210101.shp",
crs="JGD2011")
#富山市の選別
%>%
Toyama_map filter(N03_004=="富山市") ->
Toyama_shi_map
#富山県の地価の地図
<-
Toyama_lpread_sf('L01-22_16_GML/L01-22_16.shp',
crs="JGD2011")
#富山市の地価の選別
%>%
Toyama_lp filter(L01_022=="16201") ->
Toyama_shi_lp
各年地価
0
になっている.実際には地価が0
円ということではないため削除.scale_color_viridis_c()
:連続変数の色分けを指示.viridis
で用意されているカラーマップはA
からH
の8種類用意されている.#1997年(地価はL01_075の列)
#ゼロを削除
<-
Toyama_shi_lp75!(Toyama_shi_lp$L01_075=="0"),]
Toyama_shi_lp[
#単位変換
%>%
Toyama_shi_lp75 mutate(L01_075=L01_075/10000) ->
Toyama_shi_lp75
#順番の変更
%>%
Toyama_shi_lp75 arrange(L01_075) ->
Toyama_shi_lp75
#1997年の地価分布の可視化
ggplot()+
geom_sf(data=Toyama_shi_map, fill="white")+
geom_sf(data=Toyama_shi_lp75, aes(color=L01_075))+
scale_color_viridis_c(option="G", direction=-1)+
labs(color="万円/㎡")+
ggtitle("富山市の地価(1997年)")+
theme_bw()
#2007年(地価はL01_085の列)
#ゼロを削除
<-
Toyama_shi_lp85!(Toyama_shi_lp$L01_085=="0"),]
Toyama_shi_lp[
#単位変換
%>%
Toyama_shi_lp85 mutate(L01_085=L01_085/10000) ->
Toyama_shi_lp85
#単位変換
%>%
Toyama_shi_lp mutate(L01_006=L01_006/10000) ->
Toyama_shi_lp6
st_make_grid()
:富山市の地図(Toyama_shi_map
)に合わせてメッシュ(grid
)の作成の指示.
n=c(#, #)
:メッシュの数を指定.x軸方向の数とy軸方向の数の順番.ここでは,それぞれ100
としているため,100×100で1000のメッシュを作成.#メッシュ(グリッド)作成
<-
Toyama_shi_gridst_make_grid(Toyama_shi_map, n=c(100, 100))
#メッシュの可視化
ggplot()+
geom_sf(data=Toyama_shi_grid)+
geom_sf(data=Toyama_shi_map, fill="NA")+
ggtitle("作成したメッシュ")+
theme_bw()
idw()
:逆距離加重法による空間内挿の適用.
L01_075~1
:1997年の地価の内挿を行う際の関数系.1
は線形.Toyama_shi_lp85
:調査地点(観測ポイント)が含まれるデータを指定.Toyama_shi_grid
:内挿を行うメッシュを指示.idp
:予測地点と調査地点の距離にかかる累乗の指定.ここでは2
を選択.#1997年の空間内挿
<-
Toyama_shi_idw75idw(L01_075~1, Toyama_shi_lp75, Toyama_shi_grid, idp=2)
#2007年の空間内挿
<-
Toyama_shi_idw85idw(L01_085~1, Toyama_shi_lp85, Toyama_shi_grid, idp=2)
#2022年の空間内挿
<-
Toyama_shi_idw6idw(L01_006~1, Toyama_shi_lp6, Toyama_shi_grid, idp=2)
注意
save
)して,使用する際に読込(load
).Toyama_shi_idw75
をToyama_shi_idw75.Rdata
と名付けて保存.#データの保存
save(Toyama_shi_idw75, file="Toyama_shi_idw75.Rdata")
save(Toyama_shi_idw85, file="Toyama_shi_idw85.Rdata")
save(Toyama_shi_idw6, file="Toyama_shi_idw6.Rdata")
#データの読込
load("Toyama_shi_idw75.Rdata")
load("Toyama_shi_idw85.Rdata")
load("Toyama_shi_idw6.Rdata")
データ結合
空間内挿によって作成した図を富山市の地図に重ねてみる.
var1.pred
列に含まれる.
Toyama_shi_grid
)は富山市の行政区域(Toyama_shi_map
)からはみ出しているため,はみ出さないように,Toyama_shi_grid
とToyama_shi_map
を結合する.st_intersection()
を用いて共通部分を切り取る.
constant
)と指定.st_agr(Toyama_shi_map)="constant"
st_agr(Toyama_shi_idw75)="constant"
st_agr(Toyama_shi_idw85)="constant"
st_agr(Toyama_shi_idw6)="constant"
#データの結合
<-
Toyama_intersec75st_intersection(Toyama_shi_idw75, Toyama_shi_map)
<-
Toyama_intersec85st_intersection(Toyama_shi_idw85, Toyama_shi_map)
<-
Toyama_intersec6st_intersection(Toyama_shi_idw6, Toyama_shi_map)
1997年の地価の可視化
Toyama_shi_lp
)も参考に示す.ポイントの形状(shape
)を枠を黒,枠内を透明(21
)にサイズ(size
)を小さくする.
Toyama_intersec75
のvar1.pred
列.ggplot()+
geom_sf(data=Toyama_intersec75, aes(fill=var1.pred))+
scale_fill_viridis_c(option="G", direction=-1)+
geom_sf(data=Toyama_shi_lp, shape=21, size=0.5)+
coord_sf(xlim= c(136.96, 137.4), ylim=c(36.5, 36.78))+
labs(fill="万円/㎡")+
ggtitle("調査地点と空間内挿による富山市の地価(1997年)")+
theme_bw()
CRSの変更
概ね,上記の地図により空間内挿による地価分布を示せた.ここからは,地図上に鉄道を示したり,CRS
を変更したりする(好みの問題).
CRS
をJGD2011
に指示.これをWGS84
に変更する.<-
proj"+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"
st_crs(Toyama_intersec75)=proj
st_crs(Toyama_intersec85)=proj
st_crs(Toyama_intersec6)=proj
行政区域の地図
富山県と富山市の行政区域の地図を改めてオプション(crs="JSD2011"
)なしで読み込み.別名を付ける(それぞれToyama_map1
とToyama_shi_map1
と名付ける).
#富山県の地図(オプションなし)
<-
Toyama_map1read_sf("N03-20210101_16_GML/N03-20210101_16_GML/N03-21_16_210101.shp")
#富山市の選別
%>%
Toyama_map1 filter(N03_004=="富山市") ->
Toyama_shi_map1
地図上に鉄道(ライン)を示すため,シェープファイルをダウンロード.
国土数値情報ダウンロードサービス > 鉄道(ライン) > 全国 > 世界測地系 > 平成19年(および令和2年)
crs="WGS84"
が必要.railway07
と名付ける.railway20
と名付ける. -
パイプ演算子(%>%
)を使い,路線名(鉄道路線の名称,N02_003
)の「北陸新幹線」を抜き出しHokuriku_shinkansen
と名付ける.#2007年の鉄道路線図
<-
railway07read_sf("N02-07_GML/N02-07-g_RailroadSection.shp",
crs="WGS84")
#2020年の鉄道路線図
<-
railway20read_sf("N02-20_GML/N02-20_GML/N02-20_RailroadSection.shp")
#新幹線の選別
%>%
railway20 filter(N02_003=="北陸新幹線")->
Hokuriku_shinkansen
完成図
color=NA
).#1997年の完成図
ggplot()+
geom_sf(data=Toyama_map1)+
geom_sf(data=Toyama_intersec75,
aes(fill=var1.pred), color=NA)+
scale_fill_viridis_c(option="G", direction=-1)+
geom_sf(data=Toyama_shi_map1, fill="NA", size=0.8)+
geom_sf(data=railway07, size=0.2,
linetype="dashed")+
labs(fill="万円/㎡")+
ggtitle("富山市の地価(1997年)")+
coord_sf(xlim= c(136.96, 137.4), ylim=c(36.5, 36.78))+
theme_bw()
複数地図の比較
比較しやすいように3枚の地図を並べる.複数の地図を同時に可視化.
データの結合
上の3枚の地図の違いは注意深く見ないと分からない(間違い探しクイズの模様).
year
)による.その他の点として,物価水準の違いを調整.
98.9
,
07年が97.0
,
22年(2015年版には掲載なし,21年)100.9
.pred
と名付ける.#物価調整
%>%
Toyama_intersec75 mutate(pred=var1.pred/0.989) ->
Toyama_intersec75
%>%
Toyama_intersec85 mutate(pred=var1.pred/0.970) ->
Toyama_intersec85
%>%
Toyama_intersec6 mutate(pred=var1.pred/1.009) ->
Toyama_intersec6
#識別する列(year)の作成(各データ:4940行)
$year<-c(rep(1997,4940))
Toyama_intersec75$year<-c(rep(2007,4940))
Toyama_intersec85$year<-c(rep(2022,4940))
Toyama_intersec6
#データの結合
<-rbind(Toyama_intersec75, Toyama_intersec85)
Toyama_7585<-rbind(Toyama_7585, Toyama_intersec6) Toyama_75856
凡例を一つにまとめた図
1997年の地価は2007年,2022年の地価より高いことを確認.
datum=NA
:緯度経度の表記なしfacet_wrap()
:複数の地図の並べ方を指示.
~year
:年ごとに地図を作成..ncol=2
:1行に地図を2枚並列.ggplot()+
geom_sf(data=Toyama_75856,
aes(fill=pred), color=NA)+
scale_fill_viridis_c(option="G", direction=-1)+
coord_sf(xlim=c(136.96, 137.4), ylim=c(36.5, 36.78),
datum=NA)+
facet_wrap(~year, ncol=2)+
labs(fill="万円/㎡")+
theme_bw()
参考文献
Rによる地理空間データの可視化