海岸線やその他の参照データをまだダウンロードする必要があっても、地図自体はローカルで生成できます。Cartopyが必要なリソースを見つけられない場合、標準のDownloaderが描画の完了前に取得します。

このダウンローダーはPythonのurllib.request.urlopenを使用します。両方の宛先スキームに対応するHTTPフォワードプロキシを使う場合は、次のような環境で描画プロセスを起動します。

export http_proxy=http://proxy.example:8080
export https_proxy=http://proxy.example:8080

プロキシは、実際のPythonプロセスが継承する環境に置く必要があります。すでに起動中のノートブックカーネルやデスクトップIDEは、独自の起動設定が必要な場合があります。Jupyterでは、データ取得の前に選択したカーネルの起動環境を設定してください。HTTPS変数にはHTTPプロキシのURLを入れてもかまいません。公開参照データのダウンロードでは、その経路が許可されプロキシアカウントが未設定の場合、HTTPプロキシ一覧のHTTPエントリを使用できます。

ダウンロードの警告や例外に表示される要求先データURLを確認してください。データリソースの欠落、プロキシの認証要求、HTTPSの信頼エラーはそれぞれ発生する段階が異なります。投影法を変えてもダウンローダーのネットワーク経路は修復されません。

オフラインのままにすべきマシンの場合

必要なデータセットを事前に用意し、Cartopyにそのルートを指定します。

from pathlib import Path
import cartopy

cartopy.config['pre_existing_data_dir'] = Path('/srv/map-data')

ディレクトリには、該当するダウンローダーが期待する構成が必要で、データセットの完全なファイルを含める必要があります。任意のアーカイブを置いたフォルダーが、そのままCartopyの探すリソースパスになるわけではありません。

pre_existing_data_dirはdata_dirより先に確認されます。どちらにもリソースがない場合、ダウンロード可能な項目はdata_dirへの取得を依然として起こせます。そのため書き込み可能である必要があります。既存ディレクトリの設定は検索の選択であり、「ネットワークを決して使わない」という全体スイッチではありません。

予定している描画に必要な解像度と地物をすべて用意してください。以前に成功した粗い地図は、より詳細な海岸線がすでに利用可能であることを示しません。タイルサービスや独自のダウンローダーには、それぞれの取得方法があります。

関連記事