LoginSignup
0
0

続・geopandasで読み込んだシェープファイルを使ってfoliumで地図を描く

Last updated at Posted at 2023-09-03

平成30年7月に発生した西日本豪雨災害時に大きな被害が発生した広島県呉市の被害状況がgeojsonファイルとして公開されていましたので、前回の土石流、急斜面警戒地域をfoliumで描いたのと同じ方法で被害状況をわかりやすくなるように地図を作成してみました。

今回はすべてGoogle Colabで動かしました。

平成30年7月豪雨(Wikipedia)

当時は大規模な土砂災害が発生し、広い地域で被害が広がったのですが、それがどれくらいだったのかという事は、土砂災害発生状況を地図上で可視化したらよっくわかりました。

呉市全体状況

スクリーンショット 2023-09-03 21.08.04.png

呉市のほぼ全体の土砂災害発生状況として土石流等土砂災害発生地点が黒っぽい点で、赤い線が土砂が流れた経路を示しています。(概ね赤い丸で囲んだ地域)
茶色は急傾斜警戒地区(概ね青い丸で囲んだ地域)で、平地が少ない呉市街地の中心部分あたりに集中していますが、土砂災害はそことは違う場所に集中して発生しているのがわかります。

右側の丸の地域あたりは、浄水場に土砂が流れ込んで長期間断水した地域でした。まあこれだけ土砂崩れが発生したらそうなりますな。

上の地図を直接HTMLで開けるようにしていますので、見てみたい人は以下のリンクをクリックしてみてください。

(1)広島呉道路(クレアライン)坂町水尻 道路損壊

スクリーンショット 2023-09-03 21.08.39.png
右上の青丸は国道とJR呉線が完全に土砂に覆われ、復旧に多大な時間がかかったことで多くニュースに取り上げられた場所です。その周りにも多くの黒い点と赤いラインがひしめいています。

(5)主要地方道呉環状線及び大屋大川(天応~焼山間①中心部)

スクリーンショット 2023-09-03 21.43.52.png
こちらも大きな被害を被った天応地区の地図です。青い線で囲ったあたりと呉市作成の以下の報告書に記載された同じ地区です。土石流の様子を撮影した航空写真からgeojsonデータが作成されたので、航空写真とgeojosnで作成された地図は同じイメージですね。(当たりまえか)

利用したデータは国土地理院が公開しているデータでした。

平成30年7月豪雨に関する情報

今回地図データ(HTML)を作ったときのソースコードを載せときます。

import folium
import geopandas as gpd

#被害が大きかった呉市天応地区あたりを中心にして地図を作成
map = folium.Map(location=[34.290075, 132.526188],zoom_start=12)

#豪雨に伴う崩壊地等分布図(ライン)を追加
gdf = gpd.read_file('/content/国土地理院技術資料 D1-No_939 平成30年7月豪雨に伴う崩壊地等分布図(ライン)_広島_線.geojson')
folium.GeoJson(gdf,style_function=lambda feature: {"color": "red"}).add_to(map)

#豪雨に伴う崩壊地等分布図(開始地点)を追加 そのまま追加するとアイコンになって大きすぎるので、小さいサークルで表現する
gdf = gpd.read_file('/content/国土地理院技術資料 D1-No_939 平成30年7月豪雨に伴う崩壊地等分布図(ライン)_広島_始点.geojson')
folium.GeoJson(
    gdf,
    marker=folium.Circle(radius=20, fill_color="orange", fill_opacity=0.4, 
                         color="black", weight=3),
                         ).add_to(map)

#土砂災害特別警戒区域を追加
gdf = gpd.read_file('/content/土砂災害特別警戒区域-ポリゴンK.shp')
folium.GeoJson(gdf,style_function=lambda feature: {"color": "darkred"}).add_to(map)

#地図作成
map.save('kure_saigai.html')

geojsonデータのポイント位置情報をそのままfolium.Mapに追加するとmarker セット事例でよくみる青いアイコンになるんですが、それがデカすぎて見ずらいので、アイコンをやめて小さめの丸(circle)に変更しましたが、そのキモは

folium.GeoJson(
    gdf,
    marker=folium.Circle(radius=20, fill_color="orange", fill_opacity=0.4, 
                         color="black", weight=3),
                         ).add_to(map)

    marker=folium.Circle(radius=20, fill_color="orange", fill_opacity=0.4, 
                   color="black", weight=3),

あたりですね。これもググって見つかったコードをパクってちょっと修正したものですが、上手く動いてるんでオールオッケーです。

追加)
自分の書いたコードを良く読むと、崩壊地等分布図はgeojsonファイルを使ってますが、.shpファイルと同じ記述で処理ができてますね。
(公開されたファイルには.shpとgeojsonの両方が含まれていて、どちらを使っても問題なく同じ地図が作成されました)

現場からはいじょうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0