誰でも編集可能です。 :pencil2: / :book: アイコンからMarkdownで書けます。
みんなで作るログにご協力ください。:pray:
このノートのリンクは
bit.ly/20191027geo
:link: Connpass
:link: GooglePhotos 191027Geo+Python
日時: 10/27(日)13:00〜18:00 (開場12:45〜)
場所: 東京大学 駒場第二キャンパス 生産技術研究所 As311・312
アクセス: https://www.iis.u-tokyo.ac.jp/ja/access/
募集人数: 30名
PyCon JP 2019のポスターセッションで発表した 「Geo + Python JP」 の内容をもとに、その解説とゆるいハンズオンを行います。
ここ数年のオープンデータ推進の成果として、公的機関から位置や区域に関する地理空間情報(Geoデータ)が公開され、誰でもそのデータを手軽に利用できるようになりました。これらのデータとGIS(地理情報システム)のツールをMIXすることで様々なアウトプットが可能になります。
4名のGeoマニアのゆかいな仲間たちが、それぞれ地理空間情報(Geoデータ)をどのように利用しているか事例とともに、PythonとGeoデータによる様々な可視化や解析方法の一端をご紹介します!
UTokyo Guest アカウントの取得方法
“UTokyo-Guest” という SSID に接続してください。
携帯電話による認証を行った上で無料で利用できます。ソフトバンク社が提供するサービスを用いており、東京大学のネットワークではありません。
アカウント取得については、接続時に表示される web ページの案内に従ってください。
https://www.softbank.jp/biz/nw/wifispot/freewifi/
自分を表すキーワード3つ 書いて下さい。
呼ばれたい名前でOKです。本名フルネームでなくてもOKです。
SNSなどリンクがあればフォローしやすいです。
太字は発表者さん
当日みんなで追記する
発表資料
GeoとPythonといえば…
サンプル開けますか?
メルカトル図法
日本語は恐らく !pip install japanize-matplotlib
で文字化けしなくなると思います。
-> ありがとうございます
Q:Google Colaboratory を使う理由は、無料のWebホスティング環境を使えることですか?
A:無料でGPU環境を使えるというところです。
-> 手軽に環境が用意できる点
-> 今回はやりませんでしたが、機械学習との連携をしたい場合を想定をしています。
道路ネットワークの計算と表示をおこなってくれるOSMnxライブラリを使った事例紹介などを漫談します
OSMnx
GeoPandas
OSGeo財団(The Open Source Geospatial Foundation)
QGIS
発表資料 : https://hackmd.io/@colspan/one-stop-3dtiles-on-GoogleColab
Google Colaboratory : https://colab.research.google.com/drive/1zekaXKdcGFl6mlwr0E-5Wa14U7_fcPAB
八ッ場ダム(様)クッキーあるよー
いじりたい
kepler.gl をセルフホストする
docker pull crazycapivara/kepler.gl
docker run --name kepler.gl -p 8080:80 -d crazycapivara/kepler.gl
自分の[Google のロケーション履歴]を表示させようと思ったが、上記と同じく形式がGeoJsonでない、形式で、変換をしないと読み込めないので、苦戦した
mamiさんの発表のパーソントリップデータ試してみる
Jupyterからいじってみたい
まだ途中です
なんとなく仲良くなる
とりあえず使ってみる
触ってみる
公式Exampleはここ
地図上にプロットした複数の点を検索できるようなやつをつくりたい
+Bokeh
folium
ヒートマップをやってみたい(pon)
初心者なので、これのチュートリアル系でもやろうかな?
GeoJSONサンプルデータはこちら
Google colb にインストールしたいけどなんか不具合があるので動かしたい
!pip install geopandas
!apt-get install libproj-dev proj-data proj-bin
!apt-get install libgeos-dev
!pip install geoplot
仙石さんのこれも参考になるかも
GeoPandas=0.5.0(2019年5月時点で最新)の場合には、Githubの本家から直接インストールすることをおすすめします。PyPIに登録されているversionはoveralayの関数の修正が反映されていないようですが、github上では修正後版がmasterブランチにマージされているようです。
Colaboratory上でのサンプルデータの使い方
https://qiita.com/uni-3/items/201aaa2708260cc790b8
macでlocalに入れたい場合はここを参考に。
https://qiita.com/hiroga/items/80b03b3cbf80650c2c2d
Google colab のGPUを焼きまくるサンプルコードつくるとか
自分で書いた空間結合を行うローカル環境用サンプルコードがGoogleでは通らないマン
usr/local/lib/python3.6/dist-packages/geopandas/base.py:105: UserWarning: Cannot generate spatial index: Missing package `rtree`.
warn("Cannot generate spatial index: Missing package `rtree`.")
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-6-9697c3c30f98> in <module>()
16
17 # 空間結合
---> 18 spj = gpd.sjoin(df_hx, df_pt, op='within')
19
20 # GeoJSONで書き出し
2 frames
pandas/_libs/lib.pyx in pandas._libs.lib.map_infer()
/usr/local/lib/python3.6/dist-packages/geopandas/tools/sjoin.py in <lambda>(x)
117 # tree_idx_df == 'left'
118 idxmatch = right_df.geometry.apply(lambda x: x.bounds).apply(
--> 119 lambda x: list(tree_idx.intersection(x)) if not x == () else []
120 )
121 idxmatch = idxmatch[idxmatch.apply(len) > 0]
AttributeError: 'NoneType' object has no attribute 'intersection'
↑ 確かに同じエラーが出た。
import geopandas
import contextily as ctx
df = df.to_crs(epsg=3857)
ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')
ctx.add_basemap(ax)
ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')
ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLite)
ax.set_axis_off()
とりあえず触ってみて理解を深めたい。
各建物などの位置情報を使って現在地からの距離の計算をしたい
ゴール
メンバー
参考情報
Install方法
conda create -n ox -c conda-forge python=3 osmnx
conda activate ox
Colaboratoryでインストールする方法
colaboratory install
How to install libspatialindex on Google Collaboratory
!apt-get install -qq curl g++ make
!curl -L http://download.osgeo.org/libspatialindex/spatialindex-src-1.8.5.tar.gz | tar xz
import os
os.chdir('spatialindex-src-1.8.5')
!./configure
!make
!make install
!pip install rtree
!ldconfig
from rtree import index
from rtree.index import Rtree
p = index.Property()
idx = index.Index(properties=p)
idx
公式によるExample
気付き
G = ox.graph_from_place('Manhattan Island, New York City, New York, USA', network_type='drive')
で2分くらいかかった。活用例
conda install networkx
やりたいこと/不明点など
# 適当な自治体名を指定して、その地域の道路網を表示(データ量が多いので重い
ox.plot_graph(ox.graph_from_place('新宿区'))
# 座標値を指定してその周囲の道路網を表示
point = (35.6918383, 139.702996)
street_graph = ox.graph_from_point(point,
distance=300,
distance_type='network',
network_type='drive', # 歩道の場合は'walk'
simplify=False)
ox.plot_graph(street_graph)
二輪version