SSTのデータセット”OSTIA”をCopernicus Data MarineからPythonAPIでダウンロードする方法を解説する。
インストール
copernicusmarineはPyPIやAnacondaからインストールできる。
PyPI
pip installで導入する。
pip install copernicusmarine
バージョン等の情報は以下のサイトに記述がある。
Anaconda
Anaconda環境がない場合は導入し、仮想環境を作成する。
仮想環境を起動し、conda installで導入する。
conda install -c conda-forge copernicusmarine
バージョン情報などは以下のページを参考にされたい。
アカウント作成・ログイン
Copernicus Marine Serviceの上部バーの”REGISTER”からアカウントを作成する。
Pythonで、先ほどのアカウントを使ってログインする。
copernicusmarine.login(
username="username",
password="passward",
force_overwrite=True
)
“username”, “password”は自分のアカウントのもので置き換える。
dataset_idの取得
ダウンロードに必要なdataset_idを取得する。
copernicusmarineにはデータセットの情報を表示するdescribeメソッドが用意されている。
OSTIAのdata accessのサイトでproduct_idが見えている。

これをヒントに、dataset_idを検索する。
copernicusmarine.describe(
product_id="SST_GLO_SST_L4_NRT_OBSERVATIONS_010_001",
)
実行すると、以下のような辞書likeな情報が標準出力される。
CopernicusMarineCatalogue(products=[CopernicusMarineProduct(title='Global Ocean OSTIA Sea Surface Temperature and Sea Ice Analysis', product_id='SST_GLO_SST_L4_NRT_OBSERVATIONS_010_001',
(中略)
datasets=[CopernicusMarineDataset(dataset_id='METOFFICE-GLO-SST-L4-NRT-OBS-SST-V2', dataset_name='Global SST & Sea Ice Analysis, L4 OSTIA, 0.05 deg daily (METOFFICE-GLO-SST-L4-NRT-OBS-SST-V2)',
(後略)
Unixのgrepコマンドなどで、”dataset_id”を検索する。
OSTIAの場合は以下の通り。
METOFFICE-GLO-SST-L4-NRT-OBS-SST-V2
ダウンロード
getメソッドでダウンロードする。
copernicusmarine.get(
dataset_id="METOFFICE-GLO-SST-L4-NRT-OBS-SST-V2",
filter = "*20250201*",
output_directory="./",
)
filterで、ダウンロードするファイル名を指定する。”*”などのワイルドカードも使用可能。
output_directoryで保存先のディレクトリを指定。
便利なオプション
getメソッドでよく使うオプションを示す。
copernicusmarine.get(
username="username",
password="passward",
dataset_id="METOFFICE-GLO-SST-L4-NRT-OBS-SST-V2",
filter = "*20250201*",
output_directory="./",
no_directories=True,
disable_progress_bar=True,
)
- username, passwardは、CopernicusMarineのアカウント情報。loginメソッドを使わず、getメソッドでログイン操作も兼ねる。
- no_directoryは、ディレクト構造を自動で作らず、output_directory直下に直接配置
- disable_progress_barでバッチモード。内部のtqdmを呼び出さない。
試しに描画
まずはxarrayで中身を確認する。
import xarray as xr
ds = xr.open_dataset("./20250201120000-UKMO-L4_GHRSST-SSTfnd-OSTIA-GLOB-v02.0-fv02.0.nc")
print(ds)
出力は以下の通り。
<xarray.Dataset> Size: 415MB
Dimensions: (time: 1, lat: 3600, lon: 7200)
Coordinates:
* time (time) datetime64[ns] 8B 2025-02-01T12:00:00
* lat (lat) float32 14kB -89.97 -89.93 -89.88 ... 89.93 89.97
* lon (lon) float32 29kB -180.0 -179.9 -179.9 ... 179.9 180.0
Data variables:
analysed_sst (time, lat, lon) float32 104MB ...
analysis_error (time, lat, lon) float32 104MB ...
(後略)
matplotlibで描画してみる。
import matplotlib.pyplot as plt
plt.pcolormesh(
ds["lon"],
ds["lat"],
ds["analysed_sst"].isel(time=0)
)
plt.colorbar()
plt.show()
出力は以下の通り。



コメント