Python gmaps でgpxデータをgoogle mapに表示する

STRAVA のgpxデータの表示についてです。
実際に走行しないでも、gpxデータはSTRAVAのMyルートで作成できます。
プログラムに直接関係ありませんが、サイコンのナビに使うこともできますのでおすすめな機能です。
自転車ルートが選ばれるところがよいところです。
表示にはjupyter notebook 上でgpxpy とgmapsを使います。
gpxデータの読み込みは前回と同様に行います。
gmapsのインストールはGitHubを参考してください。
*Installing jupyter-gmaps with pipで行いました。


gmaps参考サイト

コード

一応できました。まあJavaScriptでgoogle mapを扱うのが通常のようです。

written by gatamix

Python3.6 にOpenCV3をインストール

環境は以下です。
MacBook Air MAC OSX Sierra 10.12.6
Python 3.6.1 :: Anaconda 4.4.0 (x86_64)
OpenCV3.3
 OpenCVとは

  インストールの参考にしたサイト

Anacondaでpythonはインストール。homebrewもインストールしてある条件です。

  opencv3のインストール

$brew tap homebrew/science
$brew install opencv3 –with-contrib –with-python3 –without-python

cv2.soファイルをインストールしたら
/usr/local/Cellar/opencv/3.3.0_3/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so
にあったのanacondaのsite-packagesにシンボリックリンクの作成を作成する。
バージョンなどが違う可能性がありますが、$open /usr/local/Cellar/opencv でfinderを開き、次々フォルダーを開いていくと見つかると思います。homebrewでインストールしたものは/usr/local/Cellar/配下に入る。(リンク先参照)
シンボリックリンクじゃなくて、PYTHONPATHに追加してもたぶん大丈夫だと思う。(未実行未確認)

  シンボリックリンクの作成

(hogeはユーザー名)
$ln -s /usr/local/Cellar/opencv/3.3.0_3/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so /Users/hoge/anaconda3/lib/python3.6/site-packages

  実行

$python

>>import cv2
RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
Traceback (most recent call last):
  File "", line 1, in 
ImportError: numpy.core.multiarray failed to import

numpyのverが古いとのエラー

  アップデート

$pip install numpy -U
$python

>>import cv2

今の所は問題なし。

自分用のメモとしてpipでのインストールの関連記事を見つけたので貼っておきます。(未確認)

written by gatamix

Mac のPython 3.6 にkivy をインストールする

Python のGUIを作るため下記環境にkivy を使えるようにインストールします。

  環境
OS: macOS Sierra 10.12.6
Python version : 3.6.0 :: Anaconda custom (x86_64)

  homebrewのインストール
インストールするためにhomebrewのインストールが必要です。
appstoreからXcodeのインストールして、Command Line Tools for Xcodeをインストールしておく。

インストール方法は下記参照ください。

$pip list で必要なものがインストールされているか確認する。

  kivyのインストール
kivy をインストールする。
環境を切り替える(anacondaの場合)
$source activate root
pipでインストールする。(通常はこれだけでいい)
$ pip install kivy
環境から抜ける。(anacondaの場合)
$source deactivate

  pygameのインストール
SDLなどのインストールをする。
$brew install sdl sdl_image sdl_mixer sdl_ttf portmidi

Mercurialのインストールをする。
brew install mercurial

pygameのインストールをする。
環境を切り替える(anacondaの場合)
$source activate root
pygameのインストール
$pip install hg+http://bitbucket.org/pygame/pygame
環境から抜ける。(anacondaの場合)
$source deactivate

  実行の確認
kivyの設定はリンク先の記事を参考にしました。
記事にあるテスト用のコードを実行して起動できるかを確認しました。

 hackerslog.net 
https://hackerslog.net/post/labs/kivy-installation/
https://hackerslog.net/post/labs/kivy-installation/

kivyのversionの確認
$pip search Kivy

written by gatamix

Python Matplotlibでグラフの範囲を自動的に設定 & scipy でピークの検出

Gatamixです。
Matplotlib でグラフを範囲を自動で設定するようにプログラムしてみました。
通常でも自動で範囲が設定されますが、プログラムで設定してみました。
具体的には、以下のようなことをしています。
①最小と最大の値を算出する。
②最大と最小の差をとる。(温度の場合は下限値の設定は0℃で固定とするため、最大値とした。)
③差の20%をマージンとして設定する。
④範囲を設定する。(範囲の最大値と最小値にマージン分の余裕をとる。)
また、おまけで以下のこともしています。
scipyを使ってピークの算出を行って、ラベルをプロット。
y1、y2軸の小数の有効桁の指定。

KURO
scipyのメソッドの signal.argrelmax()で上側のピーク,signal.argrelmin()で下側のピークを検出できるよ

written by gatamix

Pythonを使ってcsvファイルをメールする 前半

MIKE
Python 3.6でのやり方だよ。Python 2.7とは、モジュールが違うので注意だよ。

pythonから今度は添付ファイルとしてCSVをメールで送信をやってみました。
python2.7では下記リンクを参考にしてやってみました。


ほとんど、違いのないコードなので今回は省略します。
そこでpython 3.6 で同様のことをしてみました。
2.7系のプログラムと下記リンクを参考にして作ってみました。

maintypeとsubtypeを指定するとエラーとなるため、省略しています。
プログラムの修正完了しました。ファイルをopenする際に’rb’が抜けていたためのエラーでした。

KURO
バイナリーで開かないとファイルの形式を指定してもエラーになります。

ライブラリーが一部違うため、結構苦労しました。
あと前回と同様にGメールから送信ができるようにしています。

NIKE
コード内の以下4箇所は適切に設定下さい。
hoge:アカウント名
fuga:送信先
piyo:ファイル添付
pw:ログインパスワード

  プログラムコード

追記
  画像送付するプログラムの場合
imghdrimport imghdrで呼び出します。
attach_file={‘name’:’test.csv’,’path’:’./test.csv’}
のファイル名とパス変更して、
msg.add_attachment(file_read, maintype=“text”,
subtype=‘comma-separated-values’,filename=attach_file[‘name’])
から
msg.add_attachment(file_read, maintype=‘image’,
subtype=imghdr.what(None, file_read),filename=attach_file[‘name’])
に変更します。
subtypeを関数メソッドで自動判定するように変更しています。

  関連記事
関連記事をまとめました。

written by gatamix