Skip to main content
Glama

aicesat — クロスミッション測高

Claude Desktop用のMCPサーバーで、選択した領域の実際のICESat-2 ATL03 フォトンとICESat/GLAS GLAH06 ショットを取得し、それらを3Dポイントクラウド(deck.gl)としてレンダリングし、トグルによって、pyprojを使用したITRF2014 + epochコレジストレーション(プレート運動、ITRF2014-PMM / NOAM)を適用して、同位置のΔh統計を更新します。このプロジェクトは、完全な設計と理論的根拠を記載した docs/cross-mission-altimetry-mcp-spec.md を出発点としています。

コレジストレーションは、エポック間のプレート運動を除去します。氷流、GIA、ジオイド/潮汐、ファーン圧密、または垂直基準は除去しません。ウィジェットはすべての回答でその旨を表示します。GLASの高さは、プロダクトの d_deltaEllip を使用して TOPEX/Poseidon → WGS84楕円体に変換され、飽和補正 d_satElevCorr が適用されます。これはすべての比較可能性ブロックに記録されます。

セットアップ

uv sync          # Python 3.13
uv run pytest    # offline unit tests

Earthdataログイン: ベアラートークンは ~/.edl/token.prod から読み取られます(AICESAT_EDL_FILE で上書きするか、EARTHDATA_TOKEN を設定します)。サーバーはstdoutに書き込むことはありません(stdio MCPトランスポート)。ログはstderrに出力されます。

Related MCP server: pointcloud-mcp

Claude Desktop

チェックアウトしたディレクトリの絶対パスを使用して、~/Library/Application Support/Claude/claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "aicesat": {
      "command": "/opt/homebrew/bin/uv",
      "args": ["--directory", "/ABSOLUTE/PATH/TO/aicesat", "run", "aicesat-server"]
    }
  }
}

Claude Desktopを再起動します。統合UIはMCP Appとしてインラインでレンダリングされます。サーバーはブラウザで使用するために、http://127.0.0.1:8765/ でも提供します(ポートは AICESAT_PORT で指定)。

ツール: open_uilist_regionslist_scenescheck_coverageshow_photons (region、bbox、または polygon)、add_glascoregisterlake_statuslake_load_cellsjob_status

UI

1つの自己完結型ページ(src/aicesat/ui/* + 同梱のdeck.gl / h3-js を scripts/build_ui.py で構築、純Python。サーバーは起動時にソースが変更されていれば再構築します)。このページはClaude Desktop内のインラインと / の両方で提供されます。

  • Explore — 3D地球儀(Natural Earthベースマップ、平面投影なし)。任意の場所に移動し、ボックスまたはポリゴンを描画し、カバレッジを確認し、バックグラウンドジョブとしてシーンを構築できます。シーンのフットプリントと読み込まれたH3セルが地球儀上に表示されます。

  • Lake — 永続的なParquetレイクをH3グリッドとして表示: ホバー時のセルごとの統計、最も長く使用されていないセルを自動的に退避させるストレージ上限、選択したセルのバックグラウンド読み込みまたは退避。

  • Scene — 3Dビューア: DEM上にドレープされたICESat-2およびGLASポイント、補正トグルのAdjustmentsパネル、同位置のΔhヒストグラム。実際のプレート運動シフトはシーンスケールではサブピクセルであるため、ポイントクラウドは視覚的には移動しません。効果は誇張されたビジュアルではなくΔhパネルから読み取ります。パネルは折りたたんだり閉じたりできます。

UIはトランスポートに依存しないAPI(api.py)と通信します。このAPIは2つの方法で公開されています。ブラウザ用のlocalhost /api/* ルートと、ホストがインラインアプリ用にプロキシする visibility:["app"] MCPツールです。scripts/e2e_apps.py はMCP-Appの配線をチェックします。

アーキテクチャ

ATL03パスはクエリ時にHDF5を開きません。各グラニュールについて、インデックス構築(index.py)は、各チャンクのバイトレンジ、フィルターパイプライン、およびそれが触れるH3セルを記録します。クエリはbbox/ポリゴンをセルに解決し、HTTPS範囲リクエスト(EDLベアラートークン → プリサインURL)で必要なチャンクのみを取得し、HDF5ライブラリなしでデコードし、行ごとの来歴とコレジストレーション済み座標を伴って、フォトンをハイブパーティション化されたParquetレイク(lake.py)に具体化します。DuckDBはレイク上のクエリに応答します(api.py)。カバレッジテーブルは具体化された内容を記録するため、繰り返しのクエリは何も取得しません。以前の earthaccess.open + h5py パスは比較用に atl03.extract_legacy として維持されています。scripts/bench_access.py はアクセス方法を比較します。アプローチについては仕様書(付録C)を参照してください。

シーンのジオメトリは緯度を考慮します(scene.frame_crs)。極付近では極ステレオ投影、その他の地域ではシーンごとの正距方位図法を使用するため、シーンは地球上のどこでもレンダリングできます。

DEMと画像

シーンの表面は、地域に応じて選択された実際のDEMで、常にWGS84楕円体高(ATL03と同じ垂直基準)に基づきます。/vsicurl/ 経由でウィンドウ単位で読み取られ、キャッシュされます。ArcticDEM v4.1(北極、EPSG:3413)とREMA v2.0(南極、EPSG:3031)はどちらもすでに楕円体高ですが、その他の地域ではCopernicus GLO-30が使用され、そのEGM2008正規高は、NGA egm08ジオイド高を加算して楕円体高に変換されます(h = H + N)。フォトン補間によるフォールバックはありません。シーンはDEMが覆っている場所にのみDEMを表示します。シーンの画像はSentinel-2 cloudless(EOX、CC BY-NC-SA 4.0)で、サーフェスにドレープ表示されます。Explore/Lakeの地球儀ベースマップはNatural Earth 50m陸地(パブリックドメイン)です。帰属表示は画面上に表示されます。

スクリプト

uv run scripts/check_coverage.py --region egig_west_flank   # granule counts by month / laser campaign
uv run scripts/ingest.py egig_west_flank                    # index + byte-range ingest + lake query
uv run scripts/build_index.py --region egig_west_flank      # offline index pre-build (amortized off the query path)
uv run scripts/make_scene.py egig_west_flank --glas --coreg # full pipeline for a region
uv run scripts/serve.py                                     # widget server only, for local testing
uv run scripts/bench_access.py                              # access-method comparison

データ(data/)はgitignoreされています。削除すると再取得が強制されます。

Δhの測定方法

各GLASショットについて、フットプリント中心におけるICESat-2の表面高は、コロケーション半径内のシグナルフォトンの局所的な沿軌道線形フィットから求められます。円盤メディアンは順序統計量であり、サブcmの傾斜効果を解決できません。一方、フィットは位置に関して連続的であるため解決できます。プレート運動シフトのうち沿ビーム成分のみが単一ビームで観測可能であり、ペアごとのアーティファクトパネルは、フレームステップのmmレベルの垂直成分を傾斜効果から分離したまま保持します。すべての回答には unresolved リストが含まれ、「プレート運動が適用されました」と表示され、「ミッションが一致する」とは決して表示されません。

Install Server
F
license - not found
C
quality
B
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • OpenTopography global DEM rasters + point queries (free key)

  • Open Topo Data — global elevation lookups (multiple DEM datasets)

  • Measured ground motion per US address (NASA InSAR). Self-register, $0.40/report, misses free.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eigenbeam/aicesat'

If you have feedback or need assistance with the MCP directory API, please join our Discord server