Verwenden Sie Python + Shapely, um Punkte nur in Tokio zu generieren

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/). スクリーンショット 2015-11-02 22.02.42.png

Tokio wird angezeigt!

Verwenden Sie diese Formdatei, um einen Punkt in Tokio zu erstellen. Als verarbeitetes Bild

  1. Punkt mit dem vorherigen Werkzeug
  2. Lesen Sie die Formdatei und prüfen Sie, ob sie in der Formdatei enthalten ist
  3. OK, wenn es sich in der Formdatei befindet

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" スクリーンショット 2015-11-02 22.51.18.png

Wählen Sie die zu generierende Form aus, OK スクリーンショット 2015-11-02 22.52.02.png

Wurde einer! スクリーンショット 2015-11-02 22.52.53.png

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

Verwenden Sie Python + Shapely, um Punkte nur in Tokio zu generieren
Generieren Sie in Python ein abgerundetes Miniaturbild
Generieren Sie eine U-Verteilung in Python
Generieren Sie QR-Code in Python
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Generieren Sie 8 * 8 (64) Cubes mit Blender Python
GUI-Programmierung in Python mit Appjar
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
[Python] Generiert QR-Code im Speicher
Generieren Sie das Jupyter-Notizbuch ".ipynb" in Python
Versuchen Sie es mit LevelDB mit Python (plyvel)
Im Python-Befehl zeigt Python auf Python3.8
Verwendung globaler Variablen in Python-Funktionen
Studie über die Miete in Tokio mit Python (3-2)
Mal sehen, wie man Eingaben in Python verwendet
Gesamtleistung in Python (mit Funktools)
Studie über die Miete in Tokio mit Python (3-3)
Versuchen Sie es mit LeapMotion mit Python
Suche nach Tiefenpriorität mit Stack in Python
Bei Verwendung regulärer Ausdrücke in Python
GUI-Erstellung in Python mit tkinter 2
Generieren Sie eine erstklassige Sammlung in Python
So generieren Sie eine neue Protokollgruppe in CloudWatch mit Python in Lambda
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
Versuchen Sie es mit der Wunderlist-API in Python
GUI-Erstellung in Python mit tkinter Teil 1
Generieren Sie eine AWS-S3-signierte (zeitlich begrenzte) URL in Python
Holen Sie sich Suica Balance in Python (mit libpafe)
Übung, dies in Python zu verwenden (schlecht)
Hash-Passwörter langsam mit bcrypt in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Verwenden von venv in der Windows + Docker-Umgebung [Python]
[FX] Hit oanda-API mit Python mit Docker
Tweet mit der Twitter-API in Python
[Python] [Windows] Serielle Kommunikation in Python über DLL
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Python Docstring-Kommentar automatisch mit Emacs generieren
Melden Sie sich mit Anforderungen in Python bei Slack an
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Verwenden physikalischer Konstanten in Python scipy.constants ~ Konstante e ~
Scraping von Websites mit JavaScript in Python
Modul zum Generieren des Wortes N-Gramm in Python
Entwicklung eines Slack Bot mit Python mit chat.postMessage
Schreiben Sie mit f2py ein Python-Modul in fortran
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Studie über die Miete in Tokio mit Python (3-1 von 3)
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
Hinweise zur Verwendung von Python (Pydev) mit Eclipse
Generieren Sie mit Python eine C-Sprache aus dem S-Ausdruck
Krankheitsklassifizierung durch Random Forest mit Python
Laden Sie Dateien in jedem Format mit Python herunter
Parallele Taskausführung mit concurrent.futures in Python
Generieren Sie die Look-and-Say-Sequenz in QuizKnock in Python
Erstellen Sie eine GIF-Datei mit Pillow in Python
So generieren Sie eine Sequenz in Python und C ++
E-Mail-Anhänge über Ihr Google Mail-Konto mit Python.
Erstellen eines Nummerierungsprozesses mit Python im lokalen DynamoDB-Nummerierungsprozess