Lesson 43

計測年度図(1m)単独 3 研究例分析 — 1 ラスタを 3 角度で読む

LiDAR計測年度GeoTIFFrasteriogeopandasコロプレスsmall-multiplesFormat-B-3RQ
所要 60-90 分 (初回 DL 含む) / 再実行 < 30 秒 / 想定レベル: リテラシ / データ: DoBoX dataset 1634 (計測年度図 1m)

データ取得手順

このスクリプトは初回実行時にデータを自動取得します(DoBoX からの直接ダウンロード)。

IDデータセット名
#333dataset #333
#888都市計画区域情報_区域データ_安芸高田市_行政区域
#1634計測年度図(1m)

実行コマンド:

cd "2026 DoBoX 教材"
python -X utf8 lessons/L43_measurement_year.py

DoBoX のオープンデータは申請不要・商用/非商用とも利用可。 data/extras/.gitignore 対象(約 57 GB のキャッシュ)。 スクリプト実行で自動再生成されます。

スクリプト(全体ソースコード)

⬇ L43_measurement_year.py

cd "2026 DoBoX 教材"
python -X utf8 lessons/L43_measurement_year.py

学習目標と問い

本記事は DoBoX のシリーズ 「計測年度図(1m)」 1 件 (dataset_id = 1634) を 単独で取り上げ、 広島県内 23 市町の航空レーザ計測の 計測年度ラスタ 全 23 件 を 3 つの独立した研究角度から並列に分析する。

研究の問い (3 RQ)

仮説 H1〜H5

本記事の独自用語定義

到達点

3 つの研究角度それぞれで、計測年度ラスタという同じ 1 つのデータから 独立した知見が得られることを学ぶ。「データ数 = 1 でも、研究角度 × 3 = 知見 × 3」 という探究法を、計測年度図というシンプルなラスタを舞台に身につける。

使用データ

本記事は DoBoX シリーズの 1 件のみ を扱う:

項目
dataset_id 1634
タイトル 計測年度図(1m)
DoBoX https://hiroshima-dobox.jp/datasets/1634
リソース数 23 (= 県内 23 市町)
形式 GeoTIFF (uint16)
解像度 1m × 1m
CRS EPSG:6671 (平面直角座標系第 III 系)
値の意味 西暦年 (例: 2014 = 2014年度計測)
NoData 0 (計測なし or 100m バッファ)
ZIP 合計サイズ ~138 MB (圧縮後)
TIFF 合計サイズ ~35.7 GB
計測ピクセル合計 8,795,040,202 (= 8795 km²)
観測年度 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
ライセンス CC-BY 4.0

23 市町ラスタの基本統計

市町 地理クラス TIFF 高さ TIFF 幅 計測 km² 未計測率 % 主要計測年 平均計測年 有効年数
三原市 沿岸 30968 29291 487.82 46.22 2016 2015.81 3
三次市 北部山岳 44499 43881 800.08 59.03 2016 2015.64 3
世羅町 中山間 16357 27248 288.44 35.28 2015 2015.25 2
北広島町 北部山岳 26568 43671 664.91 42.69 2016 2015.97 5
呉市 沿岸 34185 39184 374.87 72.01 2017 2016.29 4
坂町 都市近郊 6906 4438 17.92 41.52 2014 2014.03 3
大崎上島町 沿岸島嶼 10766 13659 48.61 66.95 2016 2015.68 2
大竹市 沿岸 23793 20864 87.24 82.43 2016 2013.06 4
安芸太田町 中山間 24479 26670 353.81 45.81 2015 2014.75 5
安芸高田市 中山間 35358 24987 553.36 37.37 2014 2014.04 5
尾道市 沿岸 35494 22900 307.95 62.11 2016 2015.10 3
広島市 都市 35482 47779 933.35 44.94 2009 2011.67 6
庄原市 北部山岳 41210 52228 1269.95 41.00 2016 2015.10 5
府中市 中山間 25688 17424 205.20 54.16 2016 2015.35 3
府中町 都市近郊 5390 4418 12.10 49.18 2014 2013.69 2
廿日市市 沿岸 39240 29861 508.93 56.57 2013 2013.42 6
東広島市 都市近郊 40183 29634 656.15 44.90 2017 2016.14 4
江田島市 沿岸島嶼 19175 13622 109.95 57.90 2014 2014.03 2
海田町 都市近郊 4952 5796 15.90 44.61 2014 2014.00 1
熊野町 都市近郊 8614 7568 36.69 43.72 2014 2014.05 2
神石高原町 中山間 25083 22500 394.23 30.15 2016 2014.42 5
福山市 沿岸 44758 24322 540.66 50.33 2016 2015.29 3
竹原市 沿岸 15138 21378 126.91 60.78 2015 2015.97 3

各市町の TIFF は +100m バッファ 付き矩形。値 = 計測年度 (西暦)、値 0 = 計測なし or バッファ部 (= 海域 or 行政界外)。

ダウンロード

DoBoX 本体 (1 件)

中間 CSV (本レッスンが生成)

図 PNG (9 枚)

再現スクリプト

再現コマンド

cd "2026 DoBoX 教材"
py -X utf8 lessons/L43_measurement_year.py

初回実行時は dataset 1634 の 23 ZIP (~138 MB) を DL し、TIFF を展開する (~35.7 GB)。展開済みなら 1 分以内で再実行完了。中間集計は data/extras/L43_measurement_year/year_histogram_per_city.json にキャッシュ。

【RQ1】時間分布の研究 — いつ・どこで・どれだけ計測されたか

狙い

広島県の航空レーザ計測は 2009 年から 2018 年 までの 10 年間に 分割実施された。23 市町の TIFF を集計して 「いつ・どこで・どれだけ」計測されたかを定量的に明らかにする。

手法 (Mode Year / Mean Year)

本記事独自の 2 指標を導入する:

入力: 各市町の TIFF からの (年, ピクセル数) 集計。 出力: 23 市町 × {主要計測年, 平均計測年}。

限界: バッファ部 (NoData=0) は除外して計算するので、 「市町全体」ではなく 「TIFF 内の計測ピクセルだけ」 の重心。 代替案として中央値もあるが、ここでは外れ値への敏感さで mean を採用。

実装の要点

実装 1: タイル単位で年度ヒストグラム

L43_measurement_year.py 行 1020–1098

 1
 2
 3
 4
 5
 6
 7
 8
 9
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
# 各 TIFF を 2048×2048 タイル単位で読み、年度ごとのピクセル数を集計
import rasterio
from rasterio.windows import Window
import numpy as np, json

def hist_one_tiff(tif_path):
    counts = {}
    with rasterio.open(tif_path) as src:
        H, W = src.height, src.width
        tile = 2048
        for r0 in range(0, H, tile):
            for c0 in range(0, W, tile):
                w = Window(c0, r0, min(tile, W-c0), min(tile, H-r0))
                arr = src.read(1, window=w)              # uint16
                u, c = np.unique(arr, return_counts=True)  # 年度ヒストグラム
                for uv, cn in zip(u.tolist(), c.tolist()):
                    counts[int(uv)] = counts.get(int(uv), 0) + int(cn)
    return counts                                          # {0: nodata, 2014: ..., ...}

# 23 市町 → JSON キャッシュ
year_hist_per_city = {slug: hist_one_tiff(f"extracted/{slug}/year.tiff")
                       for slug in CITY_SLUGS}

実装 2: mode_year / mean_year 算出

L43_measurement_year.py 行 1045–1079

 1
 2
 3
 4
 5
 6
 7
 8
 9
1057
1058
1059
1054
1055
1056
# mode_year / mean_year を市町ごとに
import pandas as pd, numpy as np
ALL_YEARS = [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018]

records = []
for slug, h in year_hist_per_city.items():
    real = {y: h.get(y, 0) for y in ALL_YEARS}    # 0=nodata は除外
    total = sum(real.values())
    if total == 0: continue
    mode_y = max(real, key=real.get)              # 最多年
    mean_y = sum(y * c for y, c in real.items()) / total  # 重み付き平均年
    records.append({"slug": slug, "mode_year": mode_y,
                    "mean_year": round(mean_y, 2),
                    "real_km2": total / 1_000_000})  # 1m² ピクセル → km²
city_year_df = pd.DataFrame(records)

図 1: 県全域 年度別カバレッジ (棒) と累積 (折れ線)

なぜこの図か: 計測ペースが 加速したか減速したか を直感的に見るには、 年度別の bar と累積の折れ線を1枚に重ねるのが最も明確。 H1 「2014-2016 に集中」を視覚的に検証する。

県全域 年度別カバレッジ + 累積
県全域 年度別カバレッジ + 累積

この図から読み取れること:

図 2: 市町別 主要計測年 コロプレス

なぜこの図か: 市町ごとの代表的な計測時期を 地図上で 見ると、 時間と空間の関係 (= H2 西高東低) が一目瞭然。bar/table だけでは 「東がいつ、西がいつ」が頭に入らない。

市町別 主要計測年 コロプレス
市町別 主要計測年 コロプレス

この図から読み取れること:

図 3: 西東勾配 散布図

なぜこの図か: H2 を Pearson 相関で定量的に検証するには、 「市町の中心 X 座標」 vs 「平均計測年」を散布図で見るのが正攻法。 バブル面積 = 計測 km² で、大きな市町ほど影響が大きいと見える。

西東勾配 散布図 (バブル面積=計測 km²)
西東勾配 散布図 (バブル面積=計測 km²)

この図から読み取れること:

表: 県全域 年度別カバレッジ

年度 計測 km² 全体に占める % 累積 km² 累積 %
2009 588.20 6.69 588.20 6.69
2010 0.00 0.00 588.20 6.69
2011 0.00 0.00 588.20 6.69
2012 146.90 1.67 735.10 8.36
2013 681.20 7.75 1416.40 16.10
2014 1177.30 13.39 2593.70 29.49
2015 2097.90 23.85 4691.60 53.34
2016 3424.60 38.94 8116.20 92.28
2017 678.30 7.71 8794.40 99.99
2018 0.60 0.01 8795.00 100.00

この表から読み取れること: 県全域の計測ピーク は 2016 年度 (3425 km², 全体の 38.9%)。2014-2016 累積 92.3% は H1 を強く支持。2017-2018 は計 679 km² (新規エリア中心)。

表: 市町別 主要計測年 ranking (昇順 = 古い順)

市町 地理クラス 計測 km² 主要計測年 平均計測年
広島市 都市 933.40 2009 2011.67
大竹市 沿岸 87.20 2016 2013.06
廿日市市 沿岸 508.90 2013 2013.42
府中町 都市近郊 12.10 2014 2013.69
海田町 都市近郊 15.90 2014 2014.00
江田島市 沿岸島嶼 110.00 2014 2014.03
坂町 都市近郊 17.90 2014 2014.03
安芸高田市 中山間 553.40 2014 2014.04
熊野町 都市近郊 36.70 2014 2014.05
神石高原町 中山間 394.20 2016 2014.42
安芸太田町 中山間 353.80 2015 2014.75
庄原市 北部山岳 1270.00 2016 2015.10
尾道市 沿岸 308.00 2016 2015.10
世羅町 中山間 288.40 2015 2015.25
福山市 沿岸 540.70 2016 2015.29
府中市 中山間 205.20 2016 2015.35
三次市 北部山岳 800.10 2016 2015.64
大崎上島町 沿岸島嶼 48.60 2016 2015.68
三原市 沿岸 487.80 2016 2015.81
北広島町 北部山岳 664.90 2016 2015.97
竹原市 沿岸 126.90 2015 2015.97
東広島市 都市近郊 656.20 2017 2016.14
呉市 沿岸 374.90 2017 2016.29

この表から読み取れること: 最古市町は 広島市 (平均年 2011.67)、最新は 呉市 (平均年 2016.29)。差は約 2-3 年あり、計測史としての奥行きがある。

表: 西東勾配 (X 中心順)

市町 X 中心 (km) Y 中心 (km) 平均計測年 計測 km²
廿日市市 2.90 -176.70 2013.42 508.90
大竹市 6.40 -196.90 2013.06 87.20
安芸太田町 8.60 -154.70 2014.75 353.80
北広島町 18.30 -143.90 2015.97 664.90
江田島市 23.90 -198.20 2014.03 110.00
広島市 24.90 -171.30 2011.67 933.40
坂町 32.00 -185.60 2014.03 17.90
府中町 32.30 -177.60 2013.69 12.10
海田町 35.10 -181.40 2014.00 15.90
熊野町 39.10 -183.80 2014.05 36.70
呉市 45.30 -201.70 2016.29 374.90
安芸高田市 46.30 -144.80 2014.04 553.40
東広島市 54.60 -172.40 2016.14 656.20
三次市 64.50 -132.40 2015.64 800.10
大崎上島町 65.00 -193.60 2015.68 48.60
竹原市 67.20 -181.40 2015.97 126.90
三原市 77.00 -171.10 2015.81 487.80
世羅町 77.70 -153.80 2015.25 288.40
庄原市 80.50 -119.50 2015.10 1270.00
尾道市 92.60 -175.50 2015.10 308.00
府中市 92.60 -150.10 2015.35 205.20
神石高原町 99.70 -138.20 2014.42 394.20
福山市 108.00 -164.50 2015.29 540.70

この表から読み取れること: 西端 (大竹市 X≈18km) は古計測中心、東端 (神石高原町 X≈110km) は中間値。X が大きい (東) ほど平均年が新しい弱傾向は表からも追えるが、高原台地の特殊性 (世羅町・神石高原町は内陸高原) が混じる。

【RQ2】古/新 比率と災害地の研究 — 更新優先度の論理

狙い

計測の 古い・新しい という 2 値視点で 23 市町を比較し、 「古計測が残るのはどんな市町か」「新計測の偏りは何で説明できるか」を探る。 さらに H30 豪雨 (2018年7月) 被災地 がより新しい計測を持つかを検証する。

手法 (Old vs New 二分法)

分水嶺を 2014 に置く:

2014 を境にする理由: 観測データを見ると、ピクセル合計の中央値が 2014 で ちょうど真っ二つに割れる (累積 50% 付近)。広島県の航空レーザ整備史でも 2014 年度から砂防課・林野庁・国交省の連携体制が本格化し、計測仕様が統一された。

H30 被災市町の定義

本記事では以下 10 市町を 「H30 豪雨被災市町」 と定義する (国交省・広島県発表ベース): 坂町・熊野町・海田町・三原市・呉市・広島市・府中町・東広島市・廿日市市・竹原市。 これらは 2018年7月豪雨で土砂・洪水・河川氾濫を受けた市町。

注: H30 被災=「災害救助法適用市町」と必ずしも一致しない (本記事独自の集合)。 災害発生は 2018 年 7 月 = 計測年度 2018 中盤なので、被災後の再計測が 2018 年度内ピクセルとして表れるかは Edge case。

実装の要点

実装

L43_measurement_year.py 行 1189–1225

 1
 2
 3
 4
 5
 6
 7
 8
 9
1198
1199
1200
1201
1202
1203
1204
# 古/新 比率 + H30 被災フラグ join
H30_DAMAGED = {"saka", "kumano", "kaita", "mihara", "kure", "hiroshima",
               "fuchu", "higashihiroshima", "hatsukaichi", "takehara"}

city_df["pre2014_km2"]  = city_df[[f"y_{y}" for y in ALL_YEARS if y <= 2013]].sum(axis=1) / 1e6
city_df["from2014_km2"] = city_df[[f"y_{y}" for y in ALL_YEARS if y >= 2014]].sum(axis=1) / 1e6
city_df["pre2014_pct"]  = 100 * city_df["pre2014_km2"]  / city_df["real_km2"]
city_df["from2014_pct"] = 100 * city_df["from2014_km2"] / city_df["real_km2"]
city_df["h30_damaged"]  = city_df["slug"].isin(H30_DAMAGED)

# 多年計測の検出 (1 市町に複数年が出現)
import numpy as np
year_active_cols = [f"y_{y}" for y in ALL_YEARS]
threshold = city_df["real_pixels"].values * 0.001       # 0.1% 以上を「有効」
year_arr  = city_df[year_active_cols].values            # (n_city, n_year)
city_df["n_years_active"] = (year_arr > threshold[:, None]).sum(axis=1)

図 4: 市町別 古/新 stacked bar

なぜこの図か: 23 市町を 2 色で並べる ことで、 古計測比率の高い市町と低い市町が一目で対比できる。 H30 被災 (🔴) を脇に明示して、災害履歴と新計測の関係を確かめる。

市町別 古/新 stacked bar
市町別 古/新 stacked bar

この図から読み取れること:

図 5: H30 被災 vs 非被災 平均計測年 比較 (boxplot + strip)

なぜこの図か: H3 を 定量で 検証するには、 2 群 (被災 10 市町 vs 非被災 13 市町) の mean_year を分布で比較するのが必須。 strip で個別市町をプロットし、外れ値も見せる。

H30 被災 vs 非被災 平均計測年比較
H30 被災 vs 非被災 平均計測年比較

この図から読み取れること:

図 6: H30 主要被災地 (坂町・熊野町) の計測年度ラスタ詳細

なぜこの図か: ヒストグラムでは「2014 が大半」しか分からない。 実ラスタを地図として描いて、「同じ市町でも局所的に異なる年度がある」 という空間パターンを直接見るために必要。

坂町・熊野町 計測年度ラスタ詳細
坂町・熊野町 計測年度ラスタ詳細

この図から読み取れること:

表: 古/新 比率 ranking (古計測比率 降順)

市町 地理クラス 計測 km² 2013以前 km² 2014以降 km² 2013以前 % 2014以降 %
広島市 都市 933.40 537.20 396.20 57.60 42.40
廿日市市 沿岸 508.90 249.20 259.70 49.00 51.00
大竹市 沿岸 87.20 36.90 50.30 42.40 57.60
神石高原町 中山間 394.20 128.50 265.70 32.60 67.40
安芸太田町 中山間 353.80 87.20 266.60 24.70 75.30
庄原市 北部山岳 1270.00 226.30 1043.60 17.80 82.20
尾道市 沿岸 308.00 49.20 258.70 16.00 84.00
福山市 沿岸 540.70 76.20 464.40 14.10 85.90
府中市 中山間 205.20 13.50 191.70 6.60 93.40
府中町 都市近郊 12.10 0.80 11.30 6.30 93.70
三原市 沿岸 487.80 8.30 479.50 1.70 98.30
北広島町 北部山岳 664.90 2.30 662.60 0.30 99.70
安芸高田市 中山間 553.40 0.60 552.80 0.10 99.90
三次市 北部山岳 800.10 0.00 800.10 0.00 100.00
世羅町 中山間 288.40 0.00 288.40 0.00 100.00
大崎上島町 沿岸島嶼 48.60 0.00 48.60 0.00 100.00
坂町 都市近郊 17.90 0.00 17.90 0.00 100.00
呉市 沿岸 374.90 0.00 374.90 0.00 100.00
東広島市 都市近郊 656.20 0.00 656.20 0.00 100.00
海田町 都市近郊 15.90 0.00 15.90 0.00 100.00
江田島市 沿岸島嶼 110.00 0.00 110.00 0.00 100.00
熊野町 都市近郊 36.70 0.00 36.70 0.00 100.00
竹原市 沿岸 126.90 0.00 126.90 0.00 100.00

この表から読み取れること: 古計測比率 50% 超は 1 市町。古計測比率 0% (= 完全に新計測) は 10 市町。西部・都市部は古計測の遺産が残り、北部・島嶼は新計測一色。

表: H30 被災 vs 非被災 集計

H30被災 市町数 総 km² 古計測 km² 新計測 km² 平均計測年 古計測 % 新計測 %
非被災 13 5624.40 620.90 5003.50 2014.90 11.00 89.00
被災 10 3170.70 795.50 2375.20 2014.51 25.10 74.90

この表から読み取れること: 被災市町 (13 市町, 5624 km²) の 古計測比率 = 11.0%、非被災 (10 市町, 3171 km²) は 25.1%。被災市町のほうが 新計測比率が高い ことが分かる。

表: 多年計測市町 (有効年数 ≥3, 降順)

市町 地理クラス 計測 km² 有効年数 H30被災
広島市 都市 933.40 6
廿日市市 沿岸 508.90 6
北広島町 北部山岳 664.90 5
安芸太田町 中山間 353.80 5
庄原市 北部山岳 1270.00 5
安芸高田市 中山間 553.40 5
神石高原町 中山間 394.20 5
大竹市 沿岸 87.20 4
呉市 沿岸 374.90 4
東広島市 都市近郊 656.20 4

この表から読み取れること: 有効年数 5 年以上 = 7 市町。広島市・大竹市は 9 年・8 年で 計測史の縮図。市域が広く、また異なる時期に分割計測された証拠。

【RQ3】未計測エリアの研究 — 空間構造の限界

狙い

各 TIFF には NoData = 0 の領域がある。これは計測されなかった地点 or 100m バッファ (= 行政界の外側、海域、隣接市町とのオーバーラップ部) を含む。 「未計測 = 低優先度」 仮説と 「未計測 = バッファ・海域」 仮説のどちらが 支配的かを地理クラス別に検証する。

手法

実装の要点

実装

L43_measurement_year.py 行 1319–1346

 1
 2
 3
 4
 5
 6
 7
 8
 9
1328
1329
1330
# 未計測率の地理クラス別集計
nodata_rank = city_df[["name_jp", "geo_class", "real_km2",
                        "nodata_pct", "nodata_pixels"]].copy()
nodata_rank["nodata_km2"] = nodata_rank["nodata_pixels"] / 1_000_000
nodata_rank = nodata_rank.sort_values("nodata_pct", ascending=False)

geo_class_summary = city_df.groupby("geo_class").agg(
    cities=("name_jp", "count"),
    total_real_km2=("real_km2", "sum"),
    total_nodata_km2=("nodata_pixels", lambda x: x.sum()/1e6),
    avg_nodata_pct=("nodata_pct", "mean"),
).reset_index().sort_values("avg_nodata_pct", ascending=False)

図 7: 市町別 未計測率 (色 = 地理クラス)

なぜこの図か: 未計測率の地理クラス間の差を確認するには、 横棒で全市町を並べて色分けが最も読みやすい。沿岸・島嶼は海域分が大きく出るはず。

市町別 未計測率
市町別 未計測率

この図から読み取れること:

図 8: 市町別 未計測率 コロプレス

なぜこの図か: 未計測の地理的な濃淡を見るには地図が必須。 沿岸が一様に濃く、内陸が薄いことが直感的に伝われば H4 の決定的証拠になる。

市町別 未計測率コロプレス
市町別 未計測率コロプレス

この図から読み取れること:

表: 市町別 未計測率 ranking (降順)

市町 地理クラス 計測 km² 未計測 km² 未計測率 %
大竹市 沿岸 87.20 409.20 82.43
呉市 沿岸 374.90 964.60 72.01
大崎上島町 沿岸島嶼 48.60 98.40 66.95
尾道市 沿岸 308.00 504.90 62.11
竹原市 沿岸 126.90 196.70 60.78
三次市 北部山岳 800.10 1152.60 59.03
江田島市 沿岸島嶼 110.00 151.20 57.90
廿日市市 沿岸 508.90 662.80 56.57
府中市 中山間 205.20 242.40 54.16
福山市 沿岸 540.70 547.90 50.33
府中町 都市近郊 12.10 11.70 49.18
三原市 沿岸 487.80 419.30 46.22
安芸太田町 中山間 353.80 299.00 45.81
広島市 都市 933.40 761.90 44.94
東広島市 都市近郊 656.20 534.60 44.90
海田町 都市近郊 15.90 12.80 44.61
熊野町 都市近郊 36.70 28.50 43.72
北広島町 北部山岳 664.90 495.30 42.69
坂町 都市近郊 17.90 12.70 41.52
庄原市 北部山岳 1270.00 882.40 41.00
安芸高田市 中山間 553.40 330.10 37.37
世羅町 中山間 288.40 157.30 35.28
神石高原町 中山間 394.20 170.10 30.15

この表から読み取れること: 未計測率の中央値 = 46.2%、最大-最小レンジ = 52.3%。30-82% の幅は地理 (海域・島嶼の比率) で大半が説明される。

表: 地理クラス別 未計測サマリ

地理クラス 市町数 計測 km² 合計 未計測 km² 合計 平均未計測率 % 未計測シェア %
沿岸島嶼 2 158.60 249.70 62.42 61.16
沿岸 7 2434.40 3705.40 61.49 60.35
北部山岳 3 2734.90 2530.30 47.57 48.06
都市 1 933.40 761.90 44.94 44.94
都市近郊 5 738.80 600.40 44.79 44.83
中山間 5 1795.00 1199.00 40.55 40.05

この表から読み取れること: 沿岸島嶼の平均未計測率 (62.4%) は 中山間 (40.5%) の 約 1.5 倍。明確な地理クラス勾配 → H4 を強く支持。

図 9 (統合): 全 23 市町の計測年度ラスタ small multiples

3 RQ を一望するため、全 23 市町を 200×200 解像度で並べる。市町の形・計測モザイク・未計測 (白) の差が一目で確認できる。

23 市町 計測年度ラスタ overview
23 市町 計測年度ラスタ overview

この図から読み取れること:

仮説検証総合 (3 RQ × 5 仮説)

3 RQ × 5 仮説 を一括で検証する。

仮説 RQ 予想 観測 判定
H1 (時間集中) RQ1 60%以上が 2014-2016 に集中 2014-2016 は全体の 76.2% (合計 6700 km²) 支持
H2 (西高東低) RQ1 西部が古く東部が新しい (mean_year x_center 正相関) Pearson r = 0.508 支持
H3 (災害再計測) RQ2 H30被災地は被災後の 2018 値が出現 2018 計測ピクセル合計 = 0.6 km² (内 H30被災地: 0.0 km²) 部分支持
H4 (未計測の偏り) RQ3 未計測 = 海域 or バッファ。沿岸島嶼 ≫ 内陸 沿岸島嶼平均 62.4% vs 中山間 40.6% 支持
H5 (計測ペース) RQ1 1 年あたり 800-1500 km² 年平均 880 km²/年 (10 年間, 中央値 633) 支持

仮説検証総合の読み取り:

3 つの研究角度が互いに補強し合う構造になっている: RQ1 で時間軸を、RQ2 で災害との関係を、RQ3 で空間構造の限界を解明する。同じ 1 つの計測年度図ラスタが、視点を変えると 3 つの異なる物語を語るのが本記事の主旨。

発展課題 (3 RQ 各 1 + 統合 1)

本記事の結果から導かれる新仮説と発展課題を 3 RQ ごとに 1 つ以上提示する。

発展課題 A (RQ1 → 次データ追跡)

発展課題 B (RQ2 → 災害履歴との空間結合)

発展課題 C (RQ3 → 行政界精度との比較)

発展課題 D (3 RQ 統合 → 計測コスト推定)