市民工房のためのオープンデータ包装術――自治体データを“すぐ使えるパッケージ”にする技術ガイド

どうも〜おかむーです!今日は自治体オープンデータをエンジニア目線で“市民がすぐ使える状態”にする話をしますよ〜
- これ見てくださいよ:東京都カタログや地方のCSV一覧はあるけど、使いやすさはまちまち
- 要点:データを公開するだけじゃなく、“コントリビュータ向けパッケージ”が必要
- 提案:小さなテンプレートと自動テストで、自治体データの即戦力化を実現する
結論
自治体は「データを出す」フェーズから一歩進んで、「外部が貢献しやすいパッケージ」を作るべき。具体的には、データ本体(CSV/API)に加えて、schema.yaml、サンプルコード、簡易テスト、そしてGitベースのコラボワークフローを同梱すると即戦力化が進むんですよね。
レポート本文
まず事実確認。東京都オープンデータカタログ(https://catalog.data.metro.tokyo.lg.jp/dataset、https://portal.data.metro.tokyo.lg.jp/)や、地方のCSV公開(例:美馬市や函館市のCSV一覧、青森県のカタログ)を眺めると、データは存在する。でも、開発者が取り回す際に必要な "使い方の再現性" が足りないんです。
ポイント技術観察
- フォーマットと例:CSVはあるが、サンプル行/欠損ルールが undocumented のことが多い
- 更新トリガー:更新日時だけではパイプライン再実行条件として不十分
- ライセンス:明示されている場合もあるが、機械判定できる形式(SPDXタグ等)が望ましい
- APIの有無:API有でもバージョニングがなく破壊的変更リスクが高い
エンジニア的に言うと、これは"オンボーディングの摩擦"なんですよ。要するに、最初の1時間で何が分かるかが勝負です。
実務テンプレート(提案)
1) dataset/README.md(短いサマリと利用例)
2) data.csv または API エンドポイント記載
3) schema.yaml(列名・型・許容値・欠損方針)
4) fixtures/sample.json(10行のサンプルデータ)
5) tests/test_schema.py(pytestでスキーマ検証)
6) .github/workflows/validate.yml(CIで自動検証)
コード例:pandasでの簡易スキーマチェック(content_md内コードブロック)
import pandas as pd
from pandera import DataFrameSchema, Column, String, Check
df = pd.read_csv('data.csv')
schema = DataFrameSchema({
'施設名': Column(String, checks=Check.str_length(1, 200)),
'緯度': Column(float, nullable=False),
'経度': Column(float, nullable=False),
})
schema.validate(df)
要するに、この1ファイルで「このCSVは使えるか」をCIで合格させられるんです。自治体側でこれを出しておけば、市民開発者は最初の段階で安心して使えますよね。
運用パターン
- 小自治体向け:GitHub Pages + Data folder の組み合わせで運用コストを低くする
- 中核自治体向け:内部CI(GitLab/GitHub Actions)でデータ検証を自動化、公開はカタログ連携
- 連携窓口:1つのメール・Issueテンプレートでデータ改善依頼を受ける
実際の効果想定
- ハッカソンや市民サービスでの初期実装時間が数時間→数十分に短縮
- データ品質の自動検出で修正サイクルが早くなる
- 外部の貢献が増えてエコシステムが育つ
政策との接点
政策ドキュメント(PDF)に載った表をCSVにするだけじゃなく、「この表の正規化ルール」や「更新の想定頻度」を同梱すること。これにより政策担当者とエンジニアの間の翻訳コストが下がるんです。
まとめ
- データ公開は始まり。外部貢献を想定した"パッケージ"化が肝心
- schema + sample + CI をセットにしておくと再利用性が飛躍的に上がる
- 小さなテンプレートで十分効果が出るので、まずは1つのデータセットで試してほしい
おかむーから一言
テクノロジーで行政を速く、優しく。データは出すだけじゃなく、使われる形にしてこそ価値が出るんだ!
情報ソース
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://portal.data.metro.tokyo.lg.jp/
- https://opendata.pref.tokushima.lg.jp/dataset/5036.html
- https://www.harp.lg.jp/opendata/dataset/79.html
- https://opendata.pref.aomori.lg.jp/dataset/1480.html
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://dxlab.jp/blog-arase-2021-11-15-digital/
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://e-words.jp/w/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB.html
- https://ja.wikipedia.org/wiki/%E5%85%AC%E5%85%B1
- https://www.intec.co.jp/column/smartcity-08.html
- https://kotobank.jp/word/%E5%85%AC%E5%85%B1-494676
- https://www.digital.go.jp/resources/data_case_study_private
- https://edu.web.nhk/kokokoza/koukyou/
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。