Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
by
ぴっかりん
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
PyCon JP 2026 2026.08.21 Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python 青木亮祐 / ぴっかりん (@ra0kley)
Slide 2
Slide 2 text
はじめに ● 本発表は、所属会社で行っていることではなく、 個人の立場としての発表です ● 本資料に対応するノートブックを以下で公開しています https://gist.github.com/raokiey/1eb67be8d8a9ee651b 1b90b143650366 ● X(旧Twitter)を見ていることが多いので、ぜひ #pyconjp2026 #pyconjpD を付けて感想をポストして頂けると嬉しいです! PyCon JP 2026 2
Slide 3
Slide 3 text
はじめに ● 本発表では、以下のDoboXのデータを加工して 使用しています ✓ 広島県「インフラツーリズム_施設情報_2025-10-27」 (CC BY 4.0) ✓ 広島県「インフラツーリズム_自転車道データ_2025-03-13」 (CC BY 4.0) PyCon JP 2026 3
Slide 4
Slide 4 text
本日のトークのゴール ✓ 広島県の土木関係のデータの探し方がざっくり分かる ✓ Pythonでデータの中身を確かめられるようになる ✓ 適切な処理方法を考えるきっかけをつかむ ✓ 生成AI時代の付き合い方 PyCon JP 2026 4
Slide 5
Slide 5 text
発表内容 1. 自己紹介 2. 広島県の土木関係のデータを探してみよう 3. Pythonでデータの中身を確認してみる 4. データをもとに適切な処理を考える 5. 生成AIを用いたときに注意すべきこと PyCon JP 2026 5
Slide 6
Slide 6 text
01 自己紹介 6
Slide 7
Slide 7 text
自己紹介 ● 出身: 静岡県東部地域 ● 趣味: 地理空間情報と戯れる、散歩、旅行... ● 推し: 鬼頭明里さん、すそのん、不動産情報ライブラリス ● 活動: Project PLATEAU ADVOCATE、 一般社団法人OSGeo日本支部(OSGeo.JP) 運営委員、 SatAI.Challenge 運営メンバ ←「ぴっかりん」という名前でSNS等に 生息してます PyCon JP 2026 7
Slide 8
Slide 8 text
自己紹介 私のPyCon参加歴 PyConJP 2021(オンライン) PyCon JP 2026 8
Slide 9
Slide 9 text
自己紹介 私のPyCon参加歴 PyConJP 2021(オンライン) PyConJP 2022(現地) PyCon APAC 2023(現地) 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 PyCon JP 2026 9
Slide 10
Slide 10 text
自己紹介 私のPyCon参加歴 PyConJP 2021(オンライン) PyConJP 2022(現地) PyCon APAC 2023(現地) 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 PyCon mini Shizuoka 2024 continue(現地・発表) PyCon mini Shizuoka 2026(現地・発表) PyCon JP 2026 10
Slide 11
Slide 11 text
自己紹介 私のPyCon参加歴 PyConJP 2025(現地・発表) PyConJP 2026(現地・発表) ↑ New!! 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 関連するイベントも含めると7回目の参加に(自分でも驚き) PyCon JP 2026 11
Slide 12
Slide 12 text
自己紹介? 実は右の地図、都道府県名のほかに 位置の情報も含まれているデータ から作成しています 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 PyCon JP 2026 12
Slide 13
Slide 13 text
自己紹介? = ・・・ 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 PyCon JP 2026 13
Slide 14
Slide 14 text
自己紹介? 都道府県の形が緯度、経度で表され格納 = ・・・ 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 PyCon JP 2026 14
Slide 15
Slide 15 text
自己紹介? このように「位置情報」をもつデータ(位置情報+αでも当然OK) → 地理空間情報 世の中には、様々な地理空間情報が溢れています! PyCon JP 2026 15
Slide 16
Slide 16 text
自己紹介? 世の中には、様々な地理空間情報が溢れています! 位置情報! 広島市「広島市_観光施設一覧」を加工して作成 PyCon JP 2026 16
Slide 17
Slide 17 text
自己紹介? 今までのPyCon関係では3Dデータや衛星画像など専門的なことを 話してきました PyCon mini Shizuoka 2024 continue 「 PythonでPLATEAUのデータを扱ってみる」 PyCon JP 2025 「 Hello, satellite data! ~Pythonではじめる 衛星データ解析~」 PyCon JP 2026 17
Slide 18
Slide 18 text
自己紹介? 最近はPythonで地理空間情報が扱いやすくなってきた (“超”便利なライブラリが増えてきた) しかし、実際に触ろうとすると、自分で色々考える必要がある ということで、オープンデータとして公開されている 地理空間情報をPythonで扱うときに 私が 考えていることを 話そうと思います PyCon JP 2026 18
Slide 19
Slide 19 text
02 広島県の土木関係のデータを 探してみよう 19
Slide 20
Slide 20 text
発表タイトルにもある「DoboX」とは? 広島県が構築・運営しているインフラマネジメント基盤 ✓ 公共土木施設等に関するあらゆる情報を一元化・ オープンデータ化 ✓ 外部システムとのデータ連携可能に 平成30年7月豪雨(西日本豪雨災害)での教訓をもとに導入 PyCon JP 2026 20
Slide 21
Slide 21 text
発表タイトルにもある「DoboX」とは? 広島県が構築・運営しているインフラマネジメント基盤 画像: 広島県 インフラマネジメント基盤 DoboX PyCon JP 2026 21
Slide 22
Slide 22 text
DoboXのデータを探すには? 探したいものが明確なときは、「キーワード検索」 トップページにあります 画像: 広島県 インフラマネジメント基盤 DoboX のWebサイトを加工して作成 PyCon JP 2026 22
Slide 23
Slide 23 text
DoboXのデータを探すには? どんなデータがあるか見たいときは「データセット一覧」 開発者向けタブリンクのボタンがあります 画像: 広島県 インフラマネジメント基盤 DoboX のWebサイトを加工して作成 PyCon JP 2026 23
Slide 24
Slide 24 text
DoboXのデータを探すには? どんなデータがあるか見たいときは「データセット一覧」 画像: 広島県 インフラマネジメント基盤 DoboX PyCon JP 2026 24
Slide 25
Slide 25 text
DoboXのデータを探すには? 今の時代は、データセット一覧のページを生成AIに渡して 探してもらうこともできます PyCon JP 2026 25
Slide 26
Slide 26 text
DoboXのデータを探すには? 今回は、DoboXのデータから2つのデータを使っていきます ✓ インフラツーリズム_施設情報 ✓ インフラツーリズム_自転車道データ 画像: https://hiroshima-dobox.jp/resources/93897 画像: https://hiroshima-dobox.jp/resources/177586 PyCon JP 2026 26
Slide 27
Slide 27 text
データを使う際の重要事項!! 必ずライセンスを確認しましょう 画像: https://hiroshima-dobox.jp/datasets/1673 PyCon JP 2026 27
Slide 28
Slide 28 text
データを使う際の重要事項!! 必ずライセンスを確認しましょう ✓ このデータは商用利用してOK? ✓ 加工したデータを公開してOK? ✓ クレジット表記は必要? PyCon JP 2026 28
Slide 29
Slide 29 text
03 Pythonでデータの中身を 確認してみる 29
Slide 30
Slide 30 text
ダウンロードしたファイルを確認してみる ダウンロードしたファイルの1つはZIPファイル!? いったい、何が入っているのでしょうか? PyCon JP 2026 30
Slide 31
Slide 31 text
ZIPファイルで公開されていることはあるある 地理空間情報のデータは、複数のファイルで1つのデータを 構成するフォーマットなどもあるので、ZIPファイルで 公開されていることは多い PyCon JP 2026 31
Slide 32
Slide 32 text
ダウンロードしたファイルを確認してみる ZIPファイルを解凍すると、63のgeojsonファイルが出現 PyCon JP 2026 32
Slide 33
Slide 33 text
格納されていたGeoJSONとは? WebアプリやAPIなどで広く使われているJSON形式を 位置や形状も記述できるようにした形式 位置や形状がここに 記載されている PyCon JP 2026 33
Slide 34
Slide 34 text
GeoJSONの中身をPythonを用いて確認 「GeoPandas」を使用します Pythonのデータ分析でよく使われるpandasを 位置や形状を扱えるように拡張したライブラリ 画像: https://geopandas.org/en/stable/docs/user_guide.html PyCon JP 2026 34
Slide 35
Slide 35 text
GeoJSONの中身をPythonを用いて確認 read_file () メソッドでデータを読み込めます pandasの read_csv () メソッドと同じ PyCon JP 2026 35
Slide 36
Slide 36 text
GeoJSONファイルの中身をPythonを用いて確認 DataFrameを位置や形状に対応できるように 拡張したGeoDataFrameというオブジェクトになりました 「geometry」列に 位置や形状を格納 PyCon JP 2026 36
Slide 37
Slide 37 text
GeoJSONの中身をPythonを用いて確認 PandasのDataFrameと同様にhead()メソッドなども 利用可能 PyCon JP 2026 37
Slide 38
Slide 38 text
他のファイルも結合し、1つのGeoDataFrameに pandasのconcat関数を用いて、63ファイルの情報を 1つにまとめる PyCon JP 2026 38
Slide 39
Slide 39 text
他のファイルも結合し、1つのGeoDataFrameに 1つにまとめたDataFrameをGeoDataFrameに変換 位置や形状が 格納されている列を geometryに指定 crsは位置をどのよ うに表しているか PyCon JP 2026 39
Slide 40
Slide 40 text
63個あるGeoJSONファイルを確認してみる Nameに重複したデータや欠損値がないかを確認 dropna =False を指定することで、 欠損値も集計対象に PyCon JP 2026 40
Slide 41
Slide 41 text
63個あるGeoJSONファイルを確認してみると Nameに「Path」という文字列が入力されているデータが いくつかある PyCon JP 2026 41
Slide 42
Slide 42 text
63個あるGeoJSONファイルを確認してみる descriptionの情報も確かめてみる notna や isna を用いることで、欠損値を集計 PyCon JP 2026 42
Slide 43
Slide 43 text
63個あるGeoJSONファイルを確認してみる descriptionに何も書かれていないコースがいくつかある 説明がない=情報がない訳ではない (意図的に説明を記載していない場合もある) PyCon JP 2026 43
Slide 44
Slide 44 text
一緒にダウンロードしたCSVも確認してみる CSVをpandasで読み込み、列名を確認すると 「緯度」、「経度」がある → 地図に表示できそう!! PyCon JP 2026 44
Slide 45
Slide 45 text
一緒にダウンロードしたCSVも確認してみる 緯度経度の欠損数を調べると1件ある PyCon JP 2026 45
Slide 46
Slide 46 text
地図で可視化するための情報を整える データにあるすべての列を使う必要はない 例えば、サイクリングコースであれば ✓ Name ✓ description ✓ geometry の列のみで、まずは良いかなと思います PyCon JP 2026 46
Slide 47
Slide 47 text
欠損値をどうするか? 自分であれば ✓ Name: ファイル名と観光サイトなどの情報から補完 ✓ description: 観光サイト等見て分かる場合は記載 ✓ 緯度経度: 自分で調べる ただし、備考列を追加し、どの情報を作者が独自に 入れたか分かるようにする → 「備考」列を新しく作ってそこに記入するなど PyCon JP 2026 47
Slide 48
Slide 48 text
データの可視化方法 GeoPandasにはexplore() という便利なメソッドがある gdf.explore () のみで地図に可視化してくれる 画像: https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.explore.html PyCon JP 2026 48
Slide 49
Slide 49 text
データの可視化方法 先ほどの63のサイクリングコースを地図に可視化してみる PyCon JP 2026 49
Slide 50
Slide 50 text
データの可視化方法 地図に可視化した結果例 背景地図: © OpenStreetMap contributors PyCon JP 2026 50
Slide 51
Slide 51 text
データの可視化方法 背景地図: © OpenStreetMap contributors PyCon JP 2026 51
Slide 52
Slide 52 text
クイズ? では、この地図を画像として貼り付けてSNSなどに 投稿してもOK? PyCon JP 2026 52
Slide 53
Slide 53 text
データの可視化方法 もっとリッチな可視化手法はpycon mini shizuokaにて 発表した資料をご覧ください PyCon JP 2026 53
Slide 54
Slide 54 text
04 データをもとに適切な処理を考える 54
Slide 55
Slide 55 text
サイクリングコースの距離を出してみる GeoPandasのgeometry列には、長さを取得する length という属性がある 画像: https://docs.geopandas.org/en/stable/docs/reference/api/geopandas.GeoSeries.length.html PyCon JP 2026 55
Slide 56
Slide 56 text
サイクリングコースの距離を出してみる 対象とするサイクリングコースは42.4kmとのこと PyCon JP 2026 56
Slide 57
Slide 57 text
サイクリングコースの距離を出してみる 実際に算出してみると、「0.427」に PyCon JP 2026 57
Slide 58
Slide 58 text
サイクリングコースの距離を出してみる 緯度経度とは ✓ 緯度:地球の中心から見た、 赤道を基準とする南北方向の角度 ✓ 経度:地球の中心から見た、 本初子午線を基準とする 東西方向の角度 画像: https://commons.wikimedia.org/wiki/ File:Latitude_and_Longitude_of_the_Earth.svg 緯度経度の単位は「度」 このままでは距離は算出できない → 位置を別の方法(単位が「m」の座標)で表す必要がある PyCon JP 2026 58
Slide 59
Slide 59 text
サイクリングコースの距離を出してみる 平面直角座標系に変換してみる ✓ 日本全体を19の領域に分割し、 その範囲を平面として変換 ✓ 日本の公共測量で使用 ✓ 広島県は第III系 画像: https://www.gsi.go.jp/sokuchikijun/jpc.html PyCon JP 2026 59
Slide 60
Slide 60 text
サイクリングコースの距離を出してみる EPSGコードとは 地理空間データの座標系を一意に識別するためのコード 例えば、今回使用する 「平面直角座標系 第III系」の場合は「6671」 PyCon JP 2026 60
Slide 61
Slide 61 text
サイクリングコースの距離を出してみる 緯度経度から平面直角座標系に位置の座標を変換 to_crs () メソッドで変換可能 どの座標系に変換するかは epsg 引数などで指定 PyCon JP 2026 61
Slide 62
Slide 62 text
サイクリングコースの距離を出してみる 変換後に距離を出してみると、一致しました!! ※ 単位は「m」であることに注意 PyCon JP 2026 62
Slide 63
Slide 63 text
05 生成AI時代に注意すべきこと 63
Slide 64
Slide 64 text
データの可視化と共有方法 そのデータは可視化して共有してもOK? もし、その地域に1世帯しか住んでいなくその情報が あったら?(プライバシーの問題) 地図を見たことにより誤解は生まれる表現をしていない? 色使いや見せ方などが自分が伝えたい思いと 異なって伝わることもある PyCon JP 2026 64
Slide 65
Slide 65 text
データの可視化と共有方法 もう一度、ライセンスの話 多くのオープンデータは、クリエイティブ・コモンズに準拠した ライセンスであり、クレジット表記が必要 可視化した結果を共有するときにクレジット表記を していますか? → 指示をしないと、生成AIはここまで 気を使ってくれないことが多い PyCon JP 2026 65
Slide 66
Slide 66 text
06 宣伝 66
Slide 67
Slide 67 text
宣伝 今回、用いたPythonライブラリであるGeoPandasのような 地理空間情報を扱う自由かつオープンソースなソフトウェア群を FOSS4G(Free and Open Source Software for Geospatial) といいます そして、このFOSS4Gのコミュニティを支援している団体が主催する 年次カンファレンスの名前もFOSS4Gです(ややこしい) 各地の支部が主催する会議の名前も“FOSS4G”を冠することが多い (自己紹介にあったOSGeo.JPは日本の支部) PyCon JP 2026 67
Slide 68
Slide 68 text
宣伝 そして、そのグローバルな年次カンファレンスを、来週 広島 で開催します 会場は、なんと“ここ(広島国際会議場)” PyCon JP 2026 68
Slide 69
Slide 69 text
宣伝 FOSS4G Hiroshima 2026開催するので、ぜひ遊びにきて ください! チケットは残りわずかです PyCon JP 2026 69
Slide 70
Slide 70 text
メッセージ Pythonを用いて、地理空間情報で遊ぶのは めっちゃ楽しいです!!! あなたもぜひ、地理空間情報の沼へ! そして、FOSS4Gなどのイベントにも遊びにきてください PyCon JP 2026 70
Slide 71
Slide 71 text
Ask the SpeakerやPartyで話したいこと ✓ ZIP形式でのデータ配布が多いけど、Pythonからは 扱いやすい? ✓ DataFrameのように扱えるのは敷居が低いのか? ✓ AIエージェントなどが、将来地理空間情報を扱うときに 必要になりそうなもの(メタデータなど?) その他、なんでも!!(Anything else!!) PyCon JP 2026 71
Slide 72
Slide 72 text
ありがとうございました! ↑ X (旧Twitter)アカウント ↑ GitHubアカウント 72