1.21 jigowatts

Great Scott!

Python フリーWiFiスポットを地図にプロットしてみる

概要

printとリストとfor文あたりを触ってみたので、それっぽいことをしてみたくなりまして。オープンデータで検索していたら、FREE Wi-Fi & TOKYO スポット情報というのがあったので、この情報を使わせてもらってJupyter Notebookで地図にプロットしてみます。

環境

macOS High Sierra バージョン 10.13.6
Python 3.7.0

準備

都が提供しているフリーWiFiなんすかね。

【東京都産業労働局】 外国人旅行者等が多く訪れる都立施設などにおいて無料で利用できる公衆無線LANWi-Fi)サービス「FREE Wi-Fi & TOKYO」のスポット一覧です。

opendata-catalogue.metro.tokyo.jp
緯度・経度と住所などの情報が欲しいのでCSVをダウンロードして、Jupyter Notebookのディレクトリに配置しておきます。

CSVと地図にプロットするために以下のライブラリをインストールしました。

$ pip install pandas
$ pip install folium

CSVファイルの読み込み

まずはデータを読み込んでみましょう。

import pandas as pd
wifi_spots = pd.read_csv("FREE_WiFi_and_TOKYO.csv", encoding="shift-jis")
wifi_spots.head()

f:id:sh_yoshida:20180809070645p:plain

え?これだけ?

地図にプロット

すべて上手く行っていますね。あとは地図にピンを刺すだけです。

import folium
import pandas as pd
wifi_spots = pd.read_csv("FREE_WiFi_and_TOKYO.csv", encoding="shift-jis")

map = folium.Map(location=[35.6811673,139.7648629], zoom_start=11)

for i, spot in wifi_spots.iterrows():
    latitude = spot['緯度']
    longitude = spot['経度']
    popup = spot['拠点名']+ '<br />' + spot['住所']
    folium.Marker(location=[latitude, longitude], popup=popup).add_to(map)

map

folium.Map(location=[35.6811673,139.7648629], zoom_start=11)で地図の中心地を指定できるっぽいので、東京駅の座標を設定。
拠点名と住所を改行したい場合、改行コードではダメだったのでタグで。

f:id:sh_yoshida:20180809070719p:plain
f:id:sh_yoshida:20180809070827p:plain

ちょっとやってる感が出てきましたね!

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

概要

夏だ!仕事だ!!Excelだ!!!
設計書作成のため日々Excelをこねくり回してます。コードは一行も書いていません。それが今年いっぱい続きます。ってことでPythonインストールします。

環境

macOS High Sierra バージョン 10.13.6
Python 3.7.0

インストール

すでにインストール済みでした。デフォルトのバージョンが2でHomebrewでPython3を別途インストールした記憶があります。

$ python -V
Python 2.7.10
$ python3 -V
Python 3.6.1

調べていたらHomebrewのPythonがデフォルトでバージョン3になったとありました。

$ brew upgrade

これで行けるかと思ったのですが、

$ python -V
Python 2.7.10
$ python3 -V
Python 3.7.0

pythonコマンドは以前のままですね。
インストールし直してもダメ。

$ brew uninstall --force python
$ brew install python

調べてみたら同じような人が!

$ brew info python
python: stable 3.7.0 (bottled), HEAD
...
==> Caveats
Python has been installed as
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python/libexec/bin
...

これだ!
.bash_profileにexport PATH=/usr/local/opt/python/libexec/bin:$PATH追記した結果、デフォルトでPython3になりましたね。

$ python -V
Python 3.7.0
$ pip -V
pip 18.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

Jupyter Notebook

Jupyter Notebookがいいと勧められたのでインストールします。

$ pip install jupyter

起動してみましょう。

$ mkdir jupyter-notebook
$ cd jupyter-notebook/
$ jupyter notebook

f:id:sh_yoshida:20180805014512p:plain

これでPythonを始める準備が整ったはず。

Visual Studio CodeでVisual Studio Live Share

概要

Visual Studio Live Shareがモブプログラミングに良さそうだってことでVisual Studio Code(以下VS Code)で早速試してみることにしました。とは言え、相手がいないのでPC二台用意して一人でLive Shareですよ(´¬’)bb
www.visualstudio.com

環境

PC#1 macOS High Sierra バージョン 10.13.4
PC#2 Windows 10
Visual Studio Code バージョン 1.23.1

準備

VS CodeのExtensionsでVS Live Shareをインストールしておきます。

f:id:sh_yoshida:20180601014755p:plain

PC#1 Mac

ステータスバーのSigh inをクリックするとブラウザが開きます。

f:id:sh_yoshida:20180601014801p:plain

MicrosoftアカウントかGitHubアカウントでサインインできるようですね。

f:id:sh_yoshida:20180601014858p:plain

今回はGitHubアカウントを選択。

f:id:sh_yoshida:20180601014910p:plain

連携できたようなのでVS Codeに戻ります。

f:id:sh_yoshida:20180601014932p:plain

ステータスバーが変わりましたね。
この状態でShareをクリックすると、クリップボードに招待用のリンクがコピーされます。

f:id:sh_yoshida:20180601014945p:plain

通知もでます。

f:id:sh_yoshida:20180601015008p:plain

Slackなどに張り付けてリンクを相手と共有しましょう。

PC#2 Windows

f:id:sh_yoshida:20180601015958p:plain

リンクにアクセスし、Live Share for VS Codeを開くをクリックします。

f:id:sh_yoshida:20180601020230p:plain

VS Codeが起動し通知が出るのでLaunch Sign inよりサインインします。
こちらも同じGitHubアカウントでサインインしてみました。

f:id:sh_yoshida:20180601020004p:plain

Live Share(PC#1 Mac側)

これでLive Share出来ました!
オレンジのカーソルと名前がPC#2側です。
一人でやってるんで、まったく意味がないのですが複数人で使うと楽しそうですね(・ω・´)

f:id:sh_yoshida:20180601015028g:plain

ターミナルもシェアできるぞ!

f:id:sh_yoshida:20180601015637p:plain

コマンド叩くと相手のターミナルにもぺろぺろ出力されます。

f:id:sh_yoshida:20180601015644p:plain

まずはLive Shareしてくれる人を探すところからだな(*>ω<)人