Fortsetzung des letzten Males http://qiita.com/motokazu/items/aaa5970ab34044237cc7
Beim letzten Mal habe ich einen Kreis mit dem Radius von einem bestimmten Punkt gezeichnet und einen Punkt darin generiert. Wenn Sie ihn jedoch nur in einem bestimmten Bereich generieren möchten, können Sie keinen Kreis verwenden.
Verwenden Sie daher die Formdatei von National Land Numerical Information, um Punkte in Tokio zu generieren.
Wählen Sie nach dem Öffnen der Download-Seite JPGIS und dann "Verwaltungsbereich" -> "Tokio", den neuesten Status Wählen Sie 2015 aus. Füllen Sie den Fragebogen aus und laden Sie ihn herunter.
Versuchen Sie, die Formdatei mit [QGIS] zu öffnen (http://qgis.org/ja/site/).
Tokio wird angezeigt!
Verwenden Sie diese Formdatei, um einen Punkt in Tokio zu erstellen. Als verarbeitetes Bild
Lesen Sie die Formdatei und machen Sie sie verwendbar Bitte beziehen Sie sich hier. http://stackoverflow.com/questions/7861196/check-if-a-geopoint-with-latitude-and-longitude-is-within-a-shapefile
Zunächst installieren und verwenden Verwenden Sie fiona, um Shape-Dateien zu lesen
$ pip install shapely
$ pip install fiona
Laden Sie die Bibliothek
# shape
import fiona
from shapely.geometry import Point,asShape
Extrahieren Sie die Formdatei und prüfen Sie, ob sich die durch Breite und Länge angegebenen Punkte in der Formdatei befinden.
with fiona.open(shapefile) as fiona_collection:
shapefile_record = fiona_collection.next()
shape = asShape(shapefile_record['geometry'])
geolat = fake.geo_coordinate(center=centerlat , radius=latradius)
geolong = fake.geo_coordinate(center=centerlong, radius=longradius)
point = Point(geolong, geolat)
if shape.contains(point):
Wenn Sie denken, dass enthält überhaupt nicht True ist ... weil die Formdatei aus mehreren Polygonen besteht und fiona_collection.next () nur eine Partition abruft ... bin ich mir sicher
In Bezug darauf werden mehrere Polygone verschmolzen. Das hilft sehr! https://sites.google.com/site/qgisnoiriguchi/vector01/09
Mit QGIS kombinieren. Wählen Sie das Menü "Vektor" -> "Raumberechnungswerkzeug" -> "Fusion"
Wählen Sie die zu generierende Form aus, OK
Wurde einer!
Versuchen Sie, mit dieser Formdatei Punkte zu generieren Anscheinend hat sich die Anzahl der enthaltenen True geändert.
Klicken Sie hier für den endgültigen Code https://gist.github.com/motokazu/a1cb634aa0d6726039bd
Anwendungsbeispiel
$ python genpointsbygeo.my.py --shapefile Tokyo.shp --samples 100 --radius 50000
Recommended Posts