【データ分析】MinicondaをインストールしてCartopyで世界地図を描画しよう
今回はデータ分析(データサイエンス)に必要なソフトウェアパッケージをまとめて提供しているAnacondaの最小構成版であるMinicondaをインストールしていきたいと思います。
なぜ私がMinicondaにしたのかというと、ファイルサイズがAnacondaに比べて約1/10と非常に軽量だったのと、自分で環境構築(データ分析や機械学習の)をしたかったからです。
そしてAnaconda(Miniconda)を導入しようと思った経緯は、地図描画ライブラリであるBasemapやCartopyでハマりにハマったからです。
素のPython環境では非常に難しく、地図の描画に必要なソフトも別で導入しコンパイルなどして、手間暇かかってしまいます。
それも1つ勉強にはなったのですが、どうやらAnaconda(Miniconda)を導入してデータ分析用のライブラリを使用することを推奨しているみたいです。
実行環境 |
---|
Windows Subsystem for Linux |
Miniconda |
使用ライブラリ | ライセンス |
---|---|
cartopy | GNU Lesser General Public License v3 or later (LGPLv3+) (LGPLv3) |
まずはブラウザでMinicondaのアーカイブがあるとこまで行き、最新のファイルリンクのアドレスを右クリックで指定してコピーします。(Anacondaでも手順は同じ)
AnacondaもしくわMinicondaどちらかを指定。(ここではMiniconda)
最新のファイルの上で右クリックし、リンクのアドレスをコピーします。ファイル名の語尾がLinux-x86_64.shであることに注意してください。
リンクのアドレスをコピーしたら、ターミナルでファイルを読み込みます。
# HTTPアクセスをしてコンテンツをファイルに保存する
$ wget https://repo.anaconda.com/miniconda/Miniconda3-4.7.10-Linux-x86_64.sh
# ファイルを確認
$ ls
Miniconda3-4.7.10-Linux-x86_64.sh ..... ......
..... ......
# bashコマンドでファイルを実行
$ bash Miniconda3-4.7.10-Linux-x86_64.sh
メッセージが表示される
利用規約などが表示されるので、目をしっかり通した後、同意するか決めてください。
同意したらインストール先を聞かれます。デフォルではホームディレクトリにインストールされるので、よければエンターキーで進めます。
最後に初期化をするか求められるので、yesと打ってインストール完了です。
完了したら、.bashrcの設定を反映させます。
# カレントディレクトリに.bashrcがあるか確認
$ ls -a
.bash_profile .bashrc .local ..... Miniconda3-4.7.10-Linux-x86_64.sh
# 設定を反映
$ source .bashrc
# もしくわ
$. .bashrc
それでは動作確認をしてみましょう。
Anaconda(Miniconda)が起動しているときは、ターミナル先頭に(base)と付与されます。確認出来たらPythonを立ち上げてみます。
(base)$
(base)$ python
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>exit() ←対話終了
Anaconda(Miniconda)を抜ける時は、exitで終了します。起動するときはbashコマンドで立ち上げます。
Miniconda終了
(base)$ exit
$ python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34)
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>exit()
# Miniconda起動
$ bash
(base)$
続いてパッケージ管理用ソフトのcondaを使って地図を描画するために必要なパッケージをインストールしていきます。
ここからは世界地図を描画するためのソフトをインストールしていきたいと思います。
データ分析で使われているBasemapモジュール(mpl_toolkits.basemap)は2020年にサポートが終了し、それ以降はCartopyにて開発が行われるということで非推奨となっています。
なので推奨されている方のCartopyを導入していきます。
素のPython環境ではpipというパッケージ管理用ソフトを使用していましたが、Anaconda(Miniconda)ではcondaというパッケージ管理用ソフトが備わっています。
他にcondaを使って仮想環境も構築できたりします。
# バージョン確認
(base)$ conda -V
conda 4.7.11
# 必要であればアップデート
(base)$ conda update -n base -c defaults conda
condaを使用するに当たって注意していただきたいのが、同種のモジュール(ソフト)をpipでインストールしない事です。
condaとpip両者に同じモジュールが存在している場合、インストールされているソフトが上手く起動せずにエラーもしくわクラッシュ(コアダンプ)する恐れがあるからです。
なので例えば今回初めてcondaでパッケージをインストールしていきますが、インストールされたモジュールがpipに既にインストールされていないか確認し、存在していればアンインストールします。
両者パッケージマネージャの中身を確認してみましょう。
(base)$ conda list
(base)$ pip3 freeze
# Ubuntuのパッケージ確認
(base)$ dpkg -l
ではCartopyをインストールしていきます。
(base)$ conda install cartopy
これだけで、地図の描画に必要なソフトを一括でインストールします。
たとえば、matplotlibやgeosやproj4などです。
素のPythonでCartopyを構築しようとした時より簡単かつ秒速に感じられます。
インストールが終わったら、先ほども触れましたが素のPython環境(pipやUbuntu)に同一のソフトが含まれていないか確認します。
私の場合はmatplotlibやnumpyが含まれているのでpipもしくわUbuntu(シェル)コマンドでアンインストールします。
(base)$ pip3 uninstall matplotlib numpy
# aptインストールしている場合
(base)$ sudo apt remove python3-matplotlib python3-numpy
これで環境が構築できたと思うので、さっそくCartopyを使って地図を描画していきます。
# 実行
(base)$ python
.....
.....
>>> import matplotlib.pyplot as plt
>>> import cartopy.crs as ccrs
>>>
>>> ax = plt.axes(projection=ccrs.PlateCarree())
>>> ax.coastlines()
<cartopy.mpl.feature_artist.FeatureArtist object at 0x7f952e64cbe0>
>>>
>>> plt.show()
地図は描画されたでしょうか?
GUIの起動も忘れずに行ってください。
それでは以上となります。
最後までご覧いただきありがとうございました。