[StatsFragments](http: // sinhrks) anstelle von ** Geopandas **, eingeführt in PyData.Tokyo Meetup # 9 - "Geographic Information Data" Ich habe es mit Bezug auf .hatenablog.com / entry / 2015/07/18/215951) versucht.
Es ist einfach, wenn Sie Anaconda einsetzen und conda-forge von Anaconda cloud verwenden. Ein Befehl unter [^ 1].
bash
conda install -y geopandas -c conda-forge
Wir haben auch ein Docker-Image [tsutomu7 / geopandas] vorbereitet (https://hub.docker.com/r/tsutomu7/geopandas/). Sie sollten in der Lage sein, dies wie folgt zu tun. (Bitte aktualisieren Sie Ihren Browser nach dem Start des Jupyter-Servers.)
bash
firefox http://localhost:8888 &
docker run -it --rm -p 8888:8888 tsutomu7/geopandas sh -c "jupyter notebook --ip=*"
Vorbereitung. Abflachen ist ein Array von Arrays.
python3
%matplotlib inline
import numpy as np, pandas as pd, geopandas as gpd
from bokeh.plotting import output_notebook, show, figure
output_notebook()
flatten = lambda i: [a for b in i for a in (flatten(b) if hasattr(b,'__iter__') else (b,))]
Die Version von Geopandas ist 0.2.1, die aktuellste Version.
python3
gpd.__version__
>>>
'0.2.1'
Laden Sie Tokio-Daten von Earth Map Japan herunter.
python3
!wget --no-check-certificate https://github.com/dataofjapan/land/raw/master/tokyo.geojson
Schauen Sie sich die ersten drei Zeilen an.
python3
df = gpd.read_file('tokyo.geojson')
df[:3]
area_en | area_ja | code | geometry | ward_en | ward_ja |
---|---|---|---|---|---|
0 | Tokubu | Metropolregion | 131211.0 | POLYGON ((139.821051 35.815077, 139.821684 35.... | Adachi Ku |
1 | Tokubu | Metropolregion | 131059.0 | POLYGON ((139.760933 35.732206, 139.761002 35.... | Bunkyo Ku |
2 | Tokubu | Metropolregion | 131016.0 | POLYGON ((139.770135 35.705352, 139.770172 35.... | Chiyoda Ku |
Die Geometrie enthält Polygondaten. Zeichnen Sie mit Matplotlib.
python3
df[df['area_en'] == 'Tokubu'].plot();
Dieses Mal mit Bokeh zeichnen. Das Geometrie-Polygon ist eine Mischung aus Shapely.geometry.Polygon.Polygon und Shapely.geometry.multipolygon.MultiPolygon. Reduzieren Sie es also zu einem Polygon-Array.
python3
xy = [i.exterior.coords.xy for i in flatten(df[df.area_en == 'Tokubu'].geometry)]
p = figure(plot_width=400, plot_height=300)
p.patches([tuple(i[0]) for i in xy], [tuple(i[1]) for i in xy],
fill_color='white', line_color="black", line_width=0.5)
show(p);
Geokodierung hat nicht funktioniert.
Referenzlink
[^ 1]: Sie können dies auch mit "conda install -y pyproj shapeely fiona; pip install geopandas" tun.
das ist alles
Recommended Posts