Pythonでデジタル地図に色々プロットするための準備 その1

■ 概要

 アーアアアアアアア!アーグブイ!アーグシー!

■ はじめに

ざっくり調べたところ、2017年7月現在、Pythonでデジタル地図を扱うには"basemap"パッケージが主流のようだ。他にはイギリス気象局がリリースしている"Cartopy"がある模様。ただ今回はまず初めての準備なので、主流に合わせていく。

興味をそそられる例を挙げていて、説明も必要十分そうに見えた下記サイトを参考に進めることにした。

qiita.com

qiita.com

basemapやcartopyで地図上でplot | mwSoft

 

 

■ 前座:各種パッケージインストールは多分成功

ほぼPython3.6.1(Windows7, 32bit)入れただけの環境から出発する。

インストール手順は公式を参照するのが最善という経験則から、この時点では日本語解説記事はまだ参考にしない。まずはグラフ描画ライブラリ"matplotlib"から。

% pip install matplotlib

で下記パッケージが一度に入った。

  • cycler-0.10.0
  • matplotlib-2.0.2
  • numpy-1.13.1
  • pyparsing-2.2.0
  • python-dateutil-2.6.1
  • pytz-2017.2

numpyは1.2.1より新しいものを入れろ、と公式には書いてあったが、1.13.1って新しいと見ていいのかな?小数点表記内の桁上がりでバージョン表記されるといつも迷う。

次に"PROJ4"と"GEOS"をインストールする。"pip search geos"とやると*geos* 0.2.1が入るだろうことがわかるが、最新のリリースは3.6.2なので罠だろう。こういうのやめてほしい。

Windowsインストール用バイナリを探すと、どちらも"OSGeo4W"の一部として配布されているようだ。これだと今使わないものまで一緒に入ってくる気がしたが、他に妙案も出なかったのでWeb install。カスタムインストールとして、ライブラリ名検索窓に"PROJ4", "GEOS"と入れてフィルタされたものだけチェックして実行。関連パッケージ含めてインストールには少々時間がかかった。というかPython本体とか色々入れられていたような…システムディスクのSSDがだいぶ圧迫されてきたぞ。

さておき、オプション扱いされていたが必要そうなので画像処理ライブラリ"Pillow"も入れておく。

% pip install pillow

これは簡単。

■ 本題:basemapインストールに失敗

いよいよbasemap本体のインストールに取りかかる。

公式の説明書きにはWindowsインストーラバイナリがあるかのように書かれているが見つからないので大人しくソースコードを入手してビルドする。GitHubのリポジトリから延々110MBダウンロードして、setup.pyにgeos_c.hの一つ上のディレクトリ階層を追記してから

% python setup.py install

を実行。

No module named 'numpy.distutils._msvccompiler' in numpy.distutils

(中略)
error: Command "cl.exe (中略) /Fobuild\temp.win32-3.6\Release\src/_geoslib.obj" failed with exit status 127

 

 "numpy-1.13.1+mkl-cp36-cp36m-win32"を代わりに使ってみても状況は変わらず。次回持ち越しとする。

■ 所感

最新のPythonで気軽に何かやってみたいと思ったとき、関連パッケージがpipで扱われていなかったらいったん立ち止まるべきなのかもしれない。pip偉大。

自宅Windows PCへのPython3.6セットアップ その2

■ 概要

wxPythonのインストール失敗は運の要素に左右されたが解決した。

wxPython 4.0.0b1のインストールに成功

昨日散々苦労して入らなかったwxPython、ちょうど同日に新しいバージョンがリリースされ、本日改めてpip install -U wxpythonしたら何の問題も無くインストールが完了した。なんということでしょう。

自宅Windows PCへのPython3.6セットアップ その1

■ 概要

Python3.6系にwxPythonを入れようとして苦労した。結局解決せずに次回持ち越し。

■ はじめに

どうも仕事でPythonを使って色々試してみるには大人の事情が邪魔することが多いので、自宅Windows PCにもPythonを入れてみることにした。というか前々から入れていたのだが真面目に使ってなかったので、この際最新版(Python3.6系)を試してみようと思ったのだ。

ついでにパソコン周りでどうにかする雑用を片付けやすくするため、あとかねてから手を出してみたいと思っていたGUI周りに近づくため、いくつかパッケージを追加することにした。具体的には"pywin32", "selenium", "wxPython"である。それから仕事場でどうしても期待通り動いてくれないでいる"cx_freeze"もいじってやろうと思う。 さらには"flake8"も。LINTは大事よね。

■ Python3.6.2を試す

 pywin32はあいかわらず.exe形式のインストーラを使わないとダメらしいので、素直に公式からダウンロードしてきて実行→成功。

seleniumはpip installであっさり入る。

しかしwxPythonはpipではうまく入らず、ソースコードからビルドしてやっても粗雑に進めたせいか、一見インストールされたように見えてimport wxでエラーとなる。

以前どこかでPython3.5系にはうまく入ったような記憶があるので、下手に最新版に手を出した代償かなー、と思いつつ、ちょっとだけWebで情報収集。

…30分くらい試行錯誤してたら子供がぐずりはじめたので中止。Python3.6.2は2017年7月リリース版である。ちょっと攻めすぎたかと思い、後戻りすることにした。

■ Python3.6.1を試す

./Python36/scripts/以下にpipがあるのだが、pip3(Python3系のためのpipだとか)の他にpip3.6とかいうのがある。WinmergeでDiffをとってみたら、全部同じだった。まぎらわしいが、過去のしがらみとかそういうのだろう。それはそれとして、Winmergeの.exe形式インストーラがzip圧縮されて頒布されているというのはどうなんだろうか。

 

しかるにwxPythonはどうなったかというと不成功。今更ながらエラーログの類をよく見てみたら、Windowsのユーザーフォルダの中にキャッシュを作ってあれこれしていたのでまずは下記のようにしてキャッシュを無効化してみた。

% pip --no-cache-dir install -I wxpython

…これでもNG。まあそんなに期待はしていなかったが…。

おそらく「Unable to find vcvarsall.bat」と指摘されているエラーが問題なのだろう。要するにWindows SDKを別途用意する必要があるようだ(関連記事)。

しかしPython3.6.1をビルドしたと思われるVisual C++ 2015のSDK単体をMS公式ですぐ見つけることができなかった。改めてVisual Studioをインストールするのもどうかと思い、いにしえのVisual Studio2005の場所を環境変数で指定して逃げられないか試してみる。つまり「VS140COMNTOOLS」に値「C:\Program Files\Microsoft Visual Studio 8\VC」を与えてみる…結局ダメ。

もう面倒なのでVisual Studio 2017 communityを最小構成で放り込むことにした。待ち時間が暇だったので、バックグラウンドでpip install cx_freezeしておいた。

 

さてwxPythonに戻ると、今度は「msvc9compiler.py」にて「raise ValueError(str(list(result.keys())))」。

 

そろそろ家族の目が冷たくなってきたので今日はここまでとする。

自宅PCに統計解析ソフト「R」を導入

■ 概要

家計を眺めていて、折れ線グラフや円グラフだけでは掴みきれないデータがまだまだ埋もれていそうだったので、流行に乗ってRを使ってみることにした。ひとまず環境立ち上げだけ(日本語の扱いは後で考える)。

■ 入手先

R本体Google chromeでは何故かアクセスできなかったのでIE経由で入手

R Studio:公式を参照するだけ

■ 試用

日々の出金額リストをCSVで用意してRに読み込ませ、箱ひげ図を書かせてみた。

CSV読み込みの時点で当然のように日本語文字列は化けてしまったが、箱ひげ図はboxprot()命令でとりあえず出てきた。

まあ有益な情報を読み取るにはもう少し元データの整理が必要か。まずは週ごとの出金額を箱ひげ図やヒストグラムで見てみたい。

 

■ 参考サイト

奥村晴彦先生による「Rの初歩

ベビーベッドに対する要件検討

家族用メモ。

  • なるべくシンプルで頑丈な構造であること
  • 衛生的であること。保守掃除がしやすいこと
  • マットレスなどとの組み合わせを考慮して、標準規格に準じたサイズであること。部屋の大きさから、奥行き68cm程度のミニタイプであること
  • ベッド下の収納容積がなるべく大ききこと
  • 側面の柵が上下に可動で、その立て付けがよいこと(上下動が引っかかりなく行えること)
  • キャスターはある方がよい
  • 金額は2万~3万円程度が望ましい(Web調査ではボリュームゾーンがそのあたり)

 

参考URL:

【ベビー布団・寝具】ミニ多機能ベビーベッド|通販のベルメゾンネット

Amazon CAPTCHA

オムニ7 - アカチャンホンポ ネット通販|キンタロー ミニベビーベッド ミニアン ホワイト 通販

オムニ7 - アカチャンホンポ ネット通販|EASE(イーズ)すのこミニハイベッド 通販

 

【2017/2/5追記】

結局下記に落ち着いた。

オムニ7 - アカチャンホンポ ネット通販|キンタロー ミニベビーベッド ミニアン ホワイト 通販

Canon PowerShot G9 X購入

昨年末の話だが、長年使っていたPowerShot S110が登山中に急逝したので、下山したその足でPowerShot G9Xを購入した。

キヤノン:PowerShot G9 X|概要

広角端が28mm相当までしかないのが不満ではあるが、他メーカ含めて同カテゴリ・同価格帯のデジタルカメラで24mm相当まであるものはほとんど無かったので、これが最近の流行なのだろう。ともかく日常メモ用途に今後活躍して貰おうと思う。

 

なおカメラケースをいくつか試してみた。キヤノン純正品はPowerShot系にしてはオシャレにまとまっていて、皮の質感もいいし、コンパクトに収まる。

キヤノン:コンパクトデジタルカメラ アクセサリー紹介

ただカメラ出し入れの際の機動性に欠けることと、高価すぎることから見送り。サードパーティ製を利用することにした。最初はズボンのベルトに通せるタイプのものを選んでみたが、生地が厚すぎて持ち運びに支障があったこと、開閉にマジックテープが使われていて取り出すたびにベリベリうるさいことが気になり、降板。生地が薄手でファスナー式のもの(エレコム GRAPH GEAR S)を買い直した。ベルトに通したりカラビナでつったりはしづらいが、全体的にはカメラを持ち運びやすくなった。

“GRAPH GEAR”デジタルカメラケース[Sサイズ] - DGB-060シリーズ