デイビッド・ビーズリーのPythonでパブリックデータのハック
カルフォルニアのサンタクララで3月13日から21日に行われたPythonコミュニティの最大のカンファレンスであるPyCon USのプレゼンテーションから面白いのを紹介するシリーズ第二弾です。 NextDayVideoにPyConのビデオにたくさん面白いプレゼンテーションが上がって来ていますのでご覧ください。英語ですが、Youtubeなので自動字幕で日本語訳をつけながらみれることもできます。 今日はデイビッド・ビーズリー氏(David Beazley)によるPythonの初心者向けパブリックデータハックのチュートリアルの紹介です。
David Beazleyのプレゼンテーションはいつも面白いので(PyPyのトークとか)当方はとってもファンなのですが、Davidは普段からPythonのトレーニングコースを提供する会社を運営していたりします。これもプレゼンテーションというよりは2時間半もあるチュートリアルなのでかいつまんでいきます。最初は短めなPython 101コースと言う感じでなので、Python知っている人は16分くらいはすっ飛ばした方がいいでしょう。で、ここから面白くなってきます。
課題1:The Traveling Suitcase問題
巡回セールスマン問題ではありません。。。Numericとnumarrayを統合してNumpyを作ったトラビス(Travis Oliphant)がシカゴのデイビッド・ビーズリーのオフィスを訪れた時にバスの中にスーツケースを置き忘れたという実話からインスパイアされた「バスに置き忘れたスーツケースを取り戻す」という課題です。Pythonを使ってインターネットにある情報をつかって、スーツケースが今どこにいるのか探っていくわけです。
実際に、彼らは「同じバスがまた戻ってくるだろう」と予想し、戻ってきた時にバスに乗り込んで見事にスーツケースを取り返しました。
課題としては、まずは、公共交通機関のChicago Transit Authorityがつくった乗り換え案内システムのAPIをハックして利用して、トラビスが乗ったと思われるいくつかのバスのリアルタイムの位置情報をGetします。ダウンロードには標準ライブラリurllibを使います。この情報はXMLファイルなので標準ライブラリxmlをつかってパースして、中身からGPS座標など必要な情報を取り出します。これを周期的に行なって、最後は、バスがデイブのオフィスから0.5マイル以内に来たらGoogle Static Maps APIをつかって対応する座標に上にピンを置いたアラート画面をブラウザに表示して終わりです。ブラウザへのアクセスは標準ライブラリのwebbrowserをつかいます。
0:26からは参加者がコーディングしている時間で退屈ですので、答えのあるだいたい54分へ飛びましょう。
課題2:Diabolical Road Biking
さて1:08からは2つ目の課題です。バスは退屈なので、自転車にのりましょう。でも道路がキレイで平らだと面白くないので、道路の凹み(potholes)をシカゴのデータポータルサイトから見つけて、一番凸凹なストリートはどこかを考えようという悪乗りな企画です。これは最後の方まで延々と続きます。。。2:14からの標準ライブラリのcollectionsにあるツールのデモがちょっと参考になります。2:17からはpandasのデモ。
課題3:シカゴのレストランの調査データを使って、なんか面白いPie Chartを表示
2:20あたりからは次の課題で、「違反の多いレストランはどこか?」とか独自の切り口でなんかmatplotlibでプロットしてねという課題。
初心者向けのチュートリアルなのでPython普段使っている人にはあまり参考にならなかったかもしれませんが、こんな使いかたもあるのねという感じで飛ばしとばしみるといいかと。正直、今回のは長すぎでしたが、David Beazleyのプレゼンテーションはいつも面白いです。
« タビス・ラッド氏による「Pythonで音声プログラミング」 | トップページ | YouTubeで自動字幕、日本語訳、ビデオ内テキスト検索する方法。 »
「パソコン・インターネット」カテゴリの記事
- Linuxのデスクトップ環境にログインした時にxmodmapコマンド実行(2023.12.30)
- youtube-dlでrumbleをダウンロード(2023.12.06)
- Pop!_OSのアプデがfcitxを繰り返し葬る件(2023.05.22)
- vue.jsで遊んでみる(2023.01.02)
- 『将棋神やねうら王』のオープンソース版MyShogiをLinux Mint 19.1でビルドしてみた件(2019.03.24)
「学問・資格」カテゴリの記事
- ウイルスを殺すのは簡単。人に無害でやるのが難しいの!! 二酸化塩素「こう?えい!」(2020.03.11)
- 老化はエピジェネティクスな影響が積り、スプライシングに影響を与えるのかも(2017.11.20)
- シネッセンス細胞がアツい。不老不死とハゲの治療が同時に可能か?(2017.11.18)
- 古めの論文でテキスト選択がおかしい時の対処法(2017.09.08)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
「Python」カテゴリの記事
- Noteの記事をPythonでバックアップしといた。(2021.05.05)
- JupyterLabでも好きな外部エディターを使いたい!(2018.05.02)
- ローカルエリア内のJupyterLabサーバーにLAN経由で接続する。(2018.05.02)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
« タビス・ラッド氏による「Pythonで音声プログラミング」 | トップページ | YouTubeで自動字幕、日本語訳、ビデオ内テキスト検索する方法。 »
コメント