Skip to content

Latest commit

 

History

History
150 lines (116 loc) · 7.28 KB

File metadata and controls

150 lines (116 loc) · 7.28 KB

FOIL4G: 自由かつオープンな地理空間情報ライブラリ

コンセプト

FOIL4G(Free and Open Information Library for Geospatial)は、ベンジャミン・フランクリンの図書館の概念に着想を得た地理空間情報のオープンライブラリです。

「私たちの議論の中でしばしば参照される本があるため、それらを集まる場所にすべて集めておけば、必要なときにすぐに参照できるので便利だろうと考えました。さらに、私たちの本を共有の図書館に集めることで、皆がその場に置いておくことを好む間、それぞれが他のメンバーの本を利用することができるので、まるで全員が全ての本を所有しているかのように便利になるのです。」

この哲学は、FOIL4Gプロジェクトの中核をなしています。自由にアクセス可能な地理空間情報のライブラリを構築することで、すべての人が地理データを共有し、集合知を活用できる環境を提供することを目指しています。

国連オープンGISイニシアチブとの関係

FOIL4Gは、国連オープンGISイニシアチブに貢献するプロジェクトであり、以下の使命を支援しています:

  • 国連平和維持活動と人道支援のためのオープンソース地理空間ソリューションの提供
  • 正確な位置情報データに基づく意思決定の支援
  • 協働マッピングとデータ検証の実現
  • 平和維持ミッションのための国連マップエコシステムへの貢献
  • 国連マップラーニングハブを通じた知識共有の促進

目標

FOIL4Gの主な目標は以下の通りです:

  1. 地理空間データライブラリの構築: すべての人が自由にアクセスできる地理空間データのライブラリを作成・提供する
  2. スキルとタスクのライブラリ: 地理空間データを扱うための具体的なスキルやタスクのライブラリを開発する
  3. 効果的な意思決定の促進: 地理空間情報の共有を通じて、効果的な意思決定と問題解決を支援する
  4. AIによる自動処理の推進: 地理空間情報の共有により、生成的AIによる地理空間情報の自動処理を促進する

プロジェクト構造

foil4g/
├── src/                    # フロントエンドソースコード
│   ├── App.tsx            # メインアプリケーションコンポーネント
│   └── components/        # 再利用可能なコンポーネント
│       ├── Maps/          # マップコンポーネント
│       │   ├── OpenStreetMap/
│       │   ├── SatelliteImagery/
│       │   └── UNClearMapRaster/
│       └── Datasets/      # データセットコンポーネント
│           ├── ArmedConflict/
│           ├── OpenCellId/
│           └── VientianeLanduse/
├── lib/                    # コアライブラリ機能
│   ├── api/               # 地理空間サービスのAPI定義
│   ├── data/              # 地理空間データソース定義
│   ├── skills/            # 地理空間処理スキル
│   └── tasks/             # データ処理ワークフロー
└── public/
    └── stylejson/         # マップスタイル設定

主要コンポーネント

マップコンポーネント

  • OpenStreetMapOrgRaster: OSM標準ラスタータイル
  • OpenStreetMapFrHotRaster: 人道支援用OSMタイル
  • OpenStreetMapJpOSMBrightVector: 明るいスタイルのベクタータイル
  • ArcGISWorldImagery: 衛星画像
  • UNClearMapRaster: 国連ベースマップ

コアライブラリ

  1. maplibre-gl: メインマッピングライブラリ
  2. pmtiles: 効率的なタイルストレージフォーマット
  3. react-map-gl: MapLibre GLのReactラッパー
  4. react-leaflet: LeafletをReactで利用するラッパー

APIとデータ構造

API定義構造 (lib/api/*.yaml)

必須フィールド:

  • api_id: 一意の識別子
  • description: APIの目的
  • endpoint_url: アクセスURL
  • parameters: 入力パラメータ

データソース構造 (lib/data/*.yaml)

必須フィールド:

  • data_id: 一意の識別子
  • license: 使用ライセンス
  • attributions: 必須クレジット
  • description: データの説明
  • data_format: フォーマットタイプ
  • file_format: ファイルタイプ
  • file_size: データサイズ
  • url: アクセスURL

タスク定義構造 (lib/tasks/*.yaml)

必須フィールド:

  • task_id: 一意の識別子
  • description: タスクの目的
  • goal: タスクの目標
  • input: 必要なデータソース
  • steps: 処理手順

開発環境のセットアップ

前提条件

  • Node.js
  • npm/pnpm

インストール

npm ci

開発コマンド

# 開発サーバーの起動
npm run dev

# プロジェクトのビルド
npm run build

# リンティングの実行
npm run lint

# Storybookの起動
npm run storybook

# Storybookのビルド
npm run build-storybook

貢献

FOIL4Gへの貢献を検討されていますか?バグ報告、機能リクエスト、プルリクエストの提出方法については、CONTRIBUTING.mdファイルをご覧ください。また、行動規範についての詳細は、CODE_OF_CONDUCT.mdファイルを参照してください。

プルリクエストのワークフロー

  1. まだの場合は、リポジトリをあなたのアカウントにフォークします
  2. 説明的な名前で新しいブランチを作成します
  3. 変更を加えてコミットします
  4. まずは自分のフォークにプルリクエストを作成します
  5. PRが作成された後、ベースをUNopenGIS/foil4gに変更できます

注意: 認証要件のため、最初にPRを自分のフォークに作成し、その後ベースリポジトリをUNopenGIS/foil4gに変更することをお勧めします。これにより、上流リポジトリに直接PRを作成しようとするときに発生する可能性のある認証の問題を回避できます。

用語集

  • FOIL4G: Free and Open Information Library for Geospatial(自由かつオープンな地理空間情報ライブラリ)
  • 国連オープンGISイニシアチブ: 平和維持活動のためのオープンソース地理空間ソリューションを活用するために2016年に設立された国連パートナーシップ
  • 国連マップ: 地理空間データと協働マッピングによる国連フィールド作戦を支援するプログラム
  • UN Clear Map: 標準化された可視化のための国連ベースマップスタイル
  • PMTiles: 地理空間データのための効率的なタイルストレージフォーマット
  • ベクタータイル: 柔軟なレンダリングのためのベクター形式のマップデータ
  • ラスタータイル: 事前レンダリングされたマップ画像
  • MapLibre GL: インタラクティブマップのためのオープンソースライブラリ
  • OSM: OpenStreetMap、協働マッピングプラットフォーム