ふくふくHukuhuku Inc.
EP.40Open Data 13分公開: 2026-09-01

OSM の網羅率を測る ── 「無い」は「存在しない」ではない

地図データは地域によって充実度が大きく違います。データに無いことを「存在しない」と解釈すると、分析結果が地域差ではなく入力の差になります。

#オープンデータ#OSM#データ品質#Python
執筆 / 監修
松尾 亮合同会社ふくふく 代表社員

データ基盤・データパイプライン構築 / BI / 生成 AI 活用支援を専門とするエンジニア (28 年)。 本記事は AI 利用ポリシーに基づき、生成 AI の補助で執筆 → 人間が監修・編集して公開しています。

プロフィール詳細
シェア

EP.35 で、地図データを取り出す方法を扱いました。この回は、その結果をどこまで信じてよいかを扱います。

結論から言うと、「データに無い=存在しない」ではありません。この誤解が、分析結果を大きく歪めます。

1. 何が起きるか

有志による地図データは、入力する人がいる地域ほど充実します。つまり、データの量が地域の実態を表しているとは限りません

用途と、起きうる誤り
やりたいこと起きうる誤り
地域ごとの施設密度を比べる入力の充実度を比べている
空白地帯を見つける入力されていないだけかもしれない
時系列で増減を見る入力が進んだだけかもしれない
特定の場所の位置を得る問題が起きにくい
道路網の形を見る比較的問題が少ない

1行目が最も危険です。「A市はB市より飲食店が多い」という結論が、実は「A市のほうが熱心に入力されている」だけかもしれません。

3行目も注意が必要です。去年より今年のほうがデータが多いのは、実際に増えたのか、入力が進んだのか。区別できません。有志による地図データは時間とともに充実していくため、何を測っても右肩上がりに見えるという性質があります。

下2行は比較的安全

「そこに何があるかを知りたい」という用途なら、網羅率の影響は小さい。EP.35 で扱った経路や位置の取得は、この使い方にあたります。問題になるのは、密度や件数を比べる用途です。

2. 網羅率を測る

対処の第一歩は、測ってみることです。感覚ではなく、数字で確認します。

方法は、正解が分かる別のデータと突き合わせること。公的な統計で施設数が分かるなら、その数と比較できます。

公的統計と突き合わせて網羅率を出す
Python
import pandas as pd

def coverage_by_area(osm_counts: dict, official_counts: dict) -> pd.DataFrame:    """地域ごとの網羅率を出す。
    osm_counts:      地図データから数えた件数 {"A市": 120, ...}    official_counts: 公的統計での件数       {"A市": 200, ...}    """    rows = []    for area in sorted(set(osm_counts) | set(official_counts)):        osm = osm_counts.get(area, 0)        official = official_counts.get(area, 0)        rate = osm / official if official else float("nan")        rows.append({"地域": area, "地図データ": osm,                     "公的統計": official, "網羅率": rate})
    df = pd.DataFrame(rows).sort_values("網羅率")    return df

# 例osm = {"A市": 480, "B市": 120, "C町": 15, "D村": 2}off = {"A市": 520, "B市": 310, "C町": 95, "D村": 40}
result = coverage_by_area(osm, off)for _, r in result.iterrows():    print(f"  {r['地域']:6s} 地図 {r['地図データ']:4d} / 統計 {r['公的統計']:4d} "          f"→ 網羅率 {r['網羅率']:6.1%}")
lo, hi = result['網羅率'].min(), result['網羅率'].max()print(f"\n  最低 {lo:.1%} / 最高 {hi:.1%}{hi / lo:.1f} 倍の開き)")

実行すると、地域によって網羅率が大きく違うことが数字で見えます。この開きが大きいなら、そのまま密度を比べてはいけないと判断できます。

突き合わせる相手がない場合

公的統計がない種類のものもあります。その場合、一部の地域だけ現地または他の情報で確認して、そこから推し量る方法があります。全域は無理でも、代表的な数地域で測れば傾向は掴めます

3. 種類ごとに違う

地域差だけでなく、対象の種類による差もあります。同じ地域でも、種類によって充実度が違います。

対象の種類による充実度の差
対象充実しやすさ理由
道路高い地図の基礎として優先的に整備される
鉄道・駅高い数が限られ、変化も少ない
公共施設中〜高情報が公開されている
大きな店舗目立つので入力されやすい
小さな個人店低い入れ替わりが速く、追いつかない
属性の細かさまちまち営業時間などは特に欠けやすい

5行目が実務で問題になります。個人経営の店舗は、開店・閉店の速度にデータが追いつきません。閉店した店が残り、新しい店が入っていない。時点のずれも含めて考える必要があります。

6行目も見落とされます。「その場所がある」ことは入力されていても、営業時間や電話番号は空ということが多い。EP.35 で扱ったタグの話ですが、タグが付いている割合も種類ごとに測る価値があります。 で他のデータと組み合わせる場合、結合の鍵になる属性が欠けていると、そもそも結合できません。

4. 網羅率が低くても使える用途

網羅率が低いからといって、使えないわけではありません。用途を選べば有用です。

網羅率の影響と、使える用途
用途網羅率の影響使えるか
特定の場所の位置を得るほぼ無い使える
経路を計算する道路網は充実使える
面や境界を得る小さい使える
「ここにこれがある」を確認小さい使える
地域間で密度を比較大きい使えない
時系列で増減を見る大きい使えない
空白地帯を見つける大きい使えない

上4つは「あることが分かっている対象の情報を得る」用途です。網羅率が低くても、得られた情報自体は正しいので問題ありません。ただし「正しい」のは入力された時点でであって、古くなっている可能性は別の問題として残ります。

下3つは「無いこと」に意味を持たせる用途です。ここで網羅率が効いてきます。無いのは、実際に無いのか、入力されていないのかが区別できないためです。

5. 補う方法

密度の比較をどうしてもやりたい場合、補正するか、別のデータと組み合わせるという選択があります。

  1. 1網羅率で補正する — 測った網羅率で割り戻す。粗い推定になる
  2. 2公的統計を主にして、地図データは位置だけ使う最も確実
  3. 3網羅率の高い地域だけで比較する — 対象は狭まるが信頼できる
  4. 4種類を絞る — 道路や駅など、充実している対象に限定
  5. 5比較をやめる — 目的を見直す

2番目が最も確実です。件数は公的統計から、位置は地図データからという組み合わせなら、両方の長所を使えます。公的統計は網羅的ですが座標を持たないことが多く、地図データはその逆です。

1番目の補正は可能ですが、網羅率自体に誤差があるため、粗い推定になります。補正したことを明記して、精度を過大に見せないでください。

6. 使う前に必ずやること

この回の内容を、実務の手順としてまとめます。

  1. 1自分の対象範囲で網羅率を測る — 一般論ではなく、実データで
  2. 2種類ごとにも測る — 対象によって大きく違う
  3. 3用途が「無いこと」に依存しないか確認 — 依存するなら注意
  4. 4依存するなら、公的統計と組み合わせる — 件数は統計から
  5. 5測った網羅率を記録に残す — 後から解釈するときに要る

5番目が実務で効きます。分析結果だけが残って、前提が失われるというのはよくあります。「この分析は網羅率◯%のデータに基づく」と書いておけば、後から読む人が信頼度を判断できます

そして最も重要なのは、 を確認せずに「無い=存在しない」と解釈しないことです。これは地図データに限らず、あらゆるデータに共通する注意でもあります。

ここまでのまとめ

「データに無い」は「存在しない」ではない。有志のデータは入力する人がいる地域ほど充実するため、密度の比較は入力の充実度の比較になりかねない。公的統計と突き合わせて網羅率を測る種類によっても大きく違う(個人店は追いつかない)。「あることが分かっている対象の位置を得る」用途なら網羅率が低くても使える。密度を比べたいなら、件数は統計から、位置は地図からが確実です。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp