mcpField
F
foehn

foehn

ローカル
github.com地図・旅行452 日前に更新

foehn について

foehn は、MeteoSwiss のオープン気象データを扱う Python API、コマンドラインツール、MCP サーバーです。表形式と格子データの両方に対応し、観測所データを Parquet に変換したり、格子を xarray データセットや Zarr ストアとして開いたりできます。

主な機能

  1. 01STAC 経由での MeteoSwiss データ取得
  2. 02観測所データの Parquet 変換
  3. 03xarray または Zarr での格子データ読込
  4. 04データセットの差分ダウンロード
  5. 05オプションの Databricks Delta 取り込み

活用シーン

  1. 01スイスの観測所データを読み込んで分析
  2. 02気候格子やレーダー合成データの調査
  3. 03MCP 対応 LLM への気象データ提供

MCP 対応

MCP サーバーは、MCP 対応クライアントに MeteoSwiss のオープンデータへのライブアクセスを提供します。`foehn mcp` で起動するよう設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kayhendriksen-foehn": {
"command": "uvx",
"args": [
"foehn"
]
}
}
}
起動コマンドuvx foehn

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypifoehn0.5.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

foehn

MeteoSwiss オープンデータ — Python API、CLI、MCP サーバー · 表形式データはDataFrame/Parquet、グリッドデータはxarray/Zarr

PyPI 最新リリース Python バージョン MIT ライセンス OpenSSF Scorecard 月間ダウンロード数


foehnは、MeteoSwiss OGDのすべてのコレクションをSTAC API経由でダウンロードし、Polarsを使ってCSV/TXTの観測所データをParquetに変換します。また、NetCDF気候グリッド、GRIB2予報、ODIMレーダー合成画像などのグリッドコレクションを、xarrayのデータセットまたはZarrストアとして開きます。必要に応じて、すべてのデータを毎日のスケジュールでDatabricks Unity CatalogのDeltaテーブルに取り込むこともできます。また、LLMがスイスの気象データを直接クエリできるように、MCP サーバーも提供しています。

foehnを利用したベルンの日々の天気

foehnのMCPサーバーとMeteoSwissのオープンデータを利用した、ベルンの日々の天気です。

foehnを選ぶ理由

  • 1つのコマンドで20以上のコレクションに対応 — 気象観測所、レーダー、雹マップ、予報、気候シナリオなど
  • 表形式とグリッド形式に対応 — CSVの観測所データはPolars DataFrameまたはParquetとして、NetCDF、GRIB2、ODIMレーダーグリッドはxarrayデータセットまたはZarrストアとして扱えます
  • LLM向けMCP サーバー — MCP サーバーを使って、お気に入りのLLMにMeteoSwissデータへのリアルタイムアクセスを提供します
  • ディスク上のサイズを大幅に削減 — 生のCSVと比べ、Zstandard圧縮を使用した列指向のParquetで容量を削減します
  • デフォルトで増分処理 — 前回の実行以降に変更されたファイルのみを再ダウンロードします。データセットと時間スライスごとに_last_run.jsonで追跡します
  • ローカルでSparkは不要 — ダウンロードと変換にはPolarsのみを使用します。Deltaへの取り込みにはSparkを任意で使用できます
  • Declarative Automation Bundleを同梱 — パイプライン設定なしで、すぐにデプロイできる毎日のジョブと過去データのバックフィルを利用できます

クイックスタート

pip install foehn
foehn download

直近のデータ(1月1日から昨日まで)がダウンロードされ、./data/meteoswiss/にParquet形式で変換されます。

foehn CLIのデモ

インストール

PyPIから:

pip install foehn

ソースから:

git clone https://github.com/kayhendriksen/foehn
cd foehn
pip install -e .

追加機能を指定する場合:

pip install "foehn[databricks]"   # PySpark + Delta, and Polars' build for CPUs without AVX2
pip install "foehn[mcp]"          # MCP server
pip install "foehn[grids]"        # xarray + Zarr for all gridded data (NetCDF, GRIB2, radar)

Python 3.11以降が必要です。


Python API

import foehn

df = foehn.load("smn", station="BER", frequency="d")

データをPolars DataFrameに直接読み込み、メタデータを調べ、ディスクにダウンロードしてParquetに変換できます。すべてPythonから実行できます。Python APIの全ドキュメントをご覧ください。


CLI

foehn download smn pollen
foehn load smn --station BER --frequency d

CLIはPython APIに対応しており、ダウンロード、変換、読み込み、メタデータの確認を行うサブコマンドを備えています。CLIの全ドキュメントをご覧ください。


グリッドデータ

ds = foehn.open_dataset("surface_derived_grid", match="rhiresd")  # NetCDF climate grid
ds = foehn.open_dataset("forecast_icon_ch1", match="YYYYMMDDHHMM-0-t_2m-ctrl")  # one GRIB2 field
ds = foehn.open_dataset("radar_precip", match="cpcYYDDDHHMM")  # one radar composite
# Forecast and radar files roll off after a day / two weeks: fill in a recent time.
# A match that finds nothing lists the times the collection holds now.
foehn.to_zarr("surface_derived_grid", match="rhiresd")  # Zarr store

NetCDF形式の気候グリッド/平年値/シナリオ、GRIB2形式の予報(ICON-CH1/CH2、KENDA)、HDF5/ODIM形式のレーダー合成画像は、すべてDataFrameではなくxarrayデータセットとして開きます。これらは1つの追加機能で利用できます:pip install "foehn[grids]"。グリッドデータのドキュメントをご覧ください。


MCP server

{
  "mcpServers": {
    "foehn": {
      "command": "foehn",
      "args": ["mcp"]
    }
  }
}

MCP 互換の LLM に、MeteoSwiss データへのリアルタイムアクセスを提供します。MCP サーバーの完全なドキュメントをご覧ください。


ドキュメント

コレクション20 種類以上の MeteoSwiss データセット、カテゴリ、時間スライスの規則
Python APIデータの読み込み、メタデータ、ダウンロード、Parquet への変換
グリッドデータxarray Dataset および Zarr ストアとしての NetCDF グリッド
CLIすべてのサブコマンド、フラグ、環境変数
MCP サーバーセットアップ、設定、利用可能なツール
Databricks Pipeline宣言型 Automation Bundle のデプロイ

データソース

STAC APIhttps://data.geo.admin.ch/api/stac/v1
ドキュメントhttps://opendatadocs.meteoswiss.ch
MeteoSwiss OGDhttps://github.com/MeteoSwiss/opendata

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。