目的

ポイントデータによる地価の可視化では,地価公示を利用して調査地点(観測ポイント)の土地価格を可視化した.この情報を利用して,調査地点以外の箇所の地価を予測し,地域全体にわたる地価の様子を表現する.

ライブラリ:sftidyversegstat

library(sf)
library(tidyverse)

#idw()利用のため
library(gstat)

地価の可視化

シェープファイルのダウンロード

#富山県の地図
Toyama_map<-
  read_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_lp<-
  read_sf('L01-22_16_GML/L01-22_16.shp', 
          crs="JGD2011")

#富山市の地価の選別
Toyama_lp %>%
  filter(L01_022=="16201") -> 
  Toyama_shi_lp 

各年地価

#1997年(地価はL01_075の列)
#ゼロを削除
Toyama_shi_lp75<- 
  Toyama_shi_lp[!(Toyama_shi_lp$L01_075=="0"),] 

#単位変換
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[!(Toyama_shi_lp$L01_085=="0"),] 

#単位変換
Toyama_shi_lp85 %>% 
  mutate(L01_085=L01_085/10000) -> 
  Toyama_shi_lp85
#単位変換
Toyama_shi_lp %>% 
  mutate(L01_006=L01_006/10000) -> 
  Toyama_shi_lp6

メッシュ(グリッド)の作成

#メッシュ(グリッド)作成
Toyama_shi_grid<-
  st_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)

#1997年の空間内挿
Toyama_shi_idw75<-
  idw(L01_075~1, Toyama_shi_lp75, Toyama_shi_grid, idp=2)

#2007年の空間内挿
Toyama_shi_idw85<-
  idw(L01_085~1, Toyama_shi_lp85, Toyama_shi_grid, idp=2)

#2022年の空間内挿
Toyama_shi_idw6<-
  idw(L01_006~1, Toyama_shi_lp6, Toyama_shi_grid, idp=2)

注意

#データの保存
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")

空間内挿による可視化

データ結合

空間内挿によって作成した図を富山市の地図に重ねてみる.

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_intersec75<-
  st_intersection(Toyama_shi_idw75, Toyama_shi_map)
Toyama_intersec85<-
  st_intersection(Toyama_shi_idw85, Toyama_shi_map)
Toyama_intersec6<-
  st_intersection(Toyama_shi_idw6, Toyama_shi_map)

1997年の地価の可視化

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を変更したりする(好みの問題).

  • 今回は空間内挿のためにCRSJGD2011に指示.これを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_map1Toyama_shi_map1と名付ける).

#富山県の地図(オプションなし)
Toyama_map1<-
  read_sf("N03-20210101_16_GML/N03-20210101_16_GML/N03-21_16_210101.shp")

#富山市の選別
Toyama_map1 %>%
  filter(N03_004=="富山市") -> 
  Toyama_shi_map1

地図上に鉄道(ライン)を示すため,シェープファイルをダウンロード.

  • 国土数値情報ダウンロードサービス > 鉄道(ライン) > 全国 > 世界測地系 > 平成19年(および令和2年) 

    • 鉄道データは全国のみ.
    • 2007年(平成19年)はcrs="WGS84"が必要.railway07と名付ける.
    • 1997年(平成9年)はデータが掲載されていない
    • 2000年(令和2年)はrailway20と名付ける.   - パイプ演算子(%>%)を使い,路線名(鉄道路線の名称,N02_003)の「北陸新幹線」を抜き出しHokuriku_shinkansenと名付ける.
#2007年の鉄道路線図
railway07<-
  read_sf("N02-07_GML/N02-07-g_RailroadSection.shp",
                   crs="WGS84")

#2020年の鉄道路線図
railway20<-
  read_sf("N02-20_GML/N02-20_GML/N02-20_RailroadSection.shp")

#新幹線の選別
railway20 %>%
  filter(N02_003=="北陸新幹線")->
  Hokuriku_shinkansen

完成図

  • メッシュの枠は消す(color=NA).
  • 1997年のコードのみ表記.
    • 地価の水準(凡例)が異なることに注意.
#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枚の地図を並べる.複数の地図を同時に可視化.

データの結合

#物価調整
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行)
Toyama_intersec75$year<-c(rep(1997,4940))
Toyama_intersec85$year<-c(rep(2007,4940))
Toyama_intersec6$year<-c(rep(2022,4940))

#データの結合
Toyama_7585<-rbind(Toyama_intersec75, Toyama_intersec85)
Toyama_75856<-rbind(Toyama_7585, Toyama_intersec6)

凡例を一つにまとめた図

1997年の地価は2007年,2022年の地価より高いことを確認.

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による地理空間データの可視化