JAXA Earth API for JavaScript は、Node.js、Deno、BunのJavaScript環境でも実行可能です。 地球観測データを扱うための複雑な環境構築をすることなく、地球観測データを可視化してPNG画像として保存したり、CSVファイルとして保存したり、簡単な統計処理を行うことが可能です。
ES Module (ESM) 形式及び CommonJS 形式に対応しています。開発方法に応じてどちらかをご利用ください。
なお、画像出力に関しては、非ブラウザ環境ではHTMLCanvasElementとOffscreenCanvasは利用できません。PNG画像として出力するためのcreatePngをご利用ください。
この解説内容は次の環境で動作確認済です(2026.2時点)。動作しない場合は次のバージョンよりも新しい環境をお試しください。
次のリンク先からモジュールのファイルをダウンロードしてください。
https://data.earth.jaxa.jp/api/javascript/v2.0.0/jaxa.earth.esm.js
また、VS Code等のコード補完機能(インテリセンス)を利用したり、TypeScriptで開発したりする場合は、次の型定義ファイルを利用してください。jaxa.earth.esm.jsと同じフォルダに保存すると自動で適用されます。
https://data.earth.jaxa.jp/api/javascript/v2.0.0/jaxa.earth.esm.d.ts
下記の通り任意のフォルダに保存します。
- package.json
- jaxa.earth.esm.js
- jaxa.earth.esm.d.ts (VS Code等のコード補完機能を使用したい場合のみ)
- main.js
ESM形式で開発する場合は、package.jsonに次の通り記載します。
{
"type": "module"
}
main.jsには次のように記載します。
import * as je from "./jaxa.earth.esm.js";
//ファイル出力するための機能(Node.jsがインストールされている場合)
import fs from "node:fs";
//DataObjectを取得
const dataObject = await je.getDataObject({
collectionUrl: "https://s3.ap-northeast-1.wasabisys.com/je-pds/cog/v1/JAXA.EORC_ALOS.PRISM_AW3D30.v3.2_global/collection.json",
band: "DSM",
width: 1000,
height: 500,
bbox: [-180, -90, 180, 90],
onloading: (progress, dataObject) => {
console.log(progress);
},
});
//カラーマップを作成
const colorMap = new je.image.ColorMap({
min: 0,
max: 6000,
colors: je.Colors.JET,
});
//PNG画像にして保存
const png = await je.image.createPng(dataObject, colorMap);
fs.writeFileSync("image.png", png);
//CSVファイルにして保存
const csv = je.data.createCsv(dataObject);
fs.writeFileSync("data.csv", csv, "utf8");
//上記の保存方法は、Node.js環境、または、Node.jsがインストールされていないBun環境で実行可能です。
//Node.jsがインストールされていないDeno環境では、代わりに次の方法でも保存できます。
//await Deno.writeFile("image.png", png);
//await Deno.writeTextFile("data.csv", csv);
Node.jsの場合は、次のコマンドで実行できます。
node main.js
Denoの場合は、通信とファイル操作のアクセス権限を許可する必要があるため、下記のようにオプションを用います。
deno -A main.js
Bunの場合は、次のコマンドで実行できます。
bun main.js
実行が成功すると、同一フォルダ内にimage.png、data.csvとして結果が保存されます。
次のリンク先からモジュールのファイルをダウンロードしてください。Universal Module Definition (UMD) 形式のモジュールはCommonJS形式の開発環境でも利用可能です。
CommonJS形式で開発する場合は、package.jsonに次の通り記載します。
{
"type": "commonjs"
}
main.jsには次のように記載します。
//requireでモジュールをインポートします。
const je = require("./jaxa.earth.umd.js");
//CommonJS形式ではトップレベルawaitが不可のため、即時実行関数の中に記載します。
(async function () {
//await je.getDataObjectなどの処理はESM形式のサンプルと同様です。
})();
JAXA Earth API for JavaScript では、データの取得のためにデータが保存されたサーバーと通信を行います。
企業や組織内のネットワークの都合上、SSL証明書のエラーが発生する場合は、SSL証明書の確認を一時的に回避する方法として、次のコードをmain.jsの一番最初に追記します。
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = "0";