LoginSignup
1
2

More than 3 years have passed since last update.

cartopy でローカルにあるデータを利用する

Posted at

basemap と比べて cartopy について日本語で書かれたサイトは少ない気がする。何故だろう……?
Qiita でも cartopy の記事数は basemap の記事数に比べて少ないし……

そもそも cartopy とは何か

cartopy とは python で地理データを描画する為のライブラリである。
anaconda 環境なら conda install で簡単にインストールすることができる。

conda install -c conda-forge cartopy

似たようなライブラリに basemap があるが、こちらは既に開発が終了しており、cartopy はその後継らしい。
であれば、今から使うのであれば cartopy で描画するのが良いだろう。

何がしたいのか

cartopy では、スクリプト実行時に Natural Earth というサイトから地理データを自動でダウンロードして描画する。
しかし、セキュリティの問題等何らかの理由でインターネットからダウンロードが行えない環境では、これでは困ってしまう。
また、cartopy を頻繁に使うのであれば、データをわざわざインターネットからダウンロードするのではなく、ローカルにあった方が良いだろう。
ということで、あらかじめローカルにデータを手動でダウンロードしておき、そのデータを参照して描画を行いたい。

どうすれば良いのか

Natural Earth のダウンロードページから zip データをダウンロードする。
この zip データを解凍し、anaconda のあるパスに以下のようなディレクトリ構造でデータを置く。シンボリックリンクでも良い。
ここで、category は Cultural, Physical, Raster で、resolution (解像度)は 10m, 50m, 110m のいずれかである。
name はデータの名前を指しており、例えば海岸線なら category が Physical の Coastline である。

anaconda3/lib/python3.7/site-packages/cartopy/data/shapefiles/natural_earth/{category}/ne_{resolution}_{name}.[ext]

そして、ソースコードに以下のように書いておく。

import cartopy
cartopy.config["data_dir"] = cartopy.config["repo_data_dir"]

これで、ローカルにあるデータを参照し、地理データを描画してくれる。めでたしめでたし。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2