Utilisez python + galbé pour générer des points uniquement à Tokyo

Continuation de la dernière fois http://qiita.com/motokazu/items/aaa5970ab34044237cc7

La dernière fois, j'ai dessiné un cercle avec le rayon d'un point spécifique et j'en ai généré un, mais si vous souhaitez le générer uniquement dans une certaine zone, vous ne pouvez pas utiliser de cercle.

Utilisez donc le fichier Shape de National Land Numerical Information pour générer des points à Tokyo.

Après avoir ouvert la Page de téléchargement, sélectionnez JPGIS et sélectionnez "Zone administrative" -> "Tokyo", le dernier statut Sélectionnez 2015. Remplissez le questionnaire et téléchargez.

Essayez d'ouvrir le fichier de forme avec QGIS スクリーンショット 2015-11-02 22.02.42.png

Tokyo est affiché!

Utilisez ce fichier de forme pour créer un point à Tokyo. En tant qu'image traitée,

  1. Dot avec l'outil précédent
  2. Lisez le fichier de forme et vérifiez s'il se trouve dans le fichier de forme
  3. OK si c'est dans le fichier de forme

Lisez le fichier de forme et rendez-le utilisable Veuillez vous référer ici. http://stackoverflow.com/questions/7861196/check-if-a-geopoint-with-latitude-and-longitude-is-within-a-shapefile

Tout d'abord, installez et utilisez Utilisez fiona pour lire les fichiers Shape

$ pip install shapely
$ pip install fiona

Chargez la bibliothèque

# shape
import fiona
from shapely.geometry import Point,asShape

Extrayez le fichier de forme et vérifiez si les points indiqués par la latitude et la longitude sont dans le fichier de forme.

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):

Si vous pensez que contient n'est pas du tout vrai ... parce que le fichier de forme est composé de plusieurs polygones et que fiona_collection.next () ne récupère qu'une seule partition ... j'en suis sûr.

En référence à cela, plusieurs polygones sont fusionnés. Cela aide beaucoup! https://sites.google.com/site/qgisnoiriguchi/vector01/09

Combinez en utilisant QGIS. Sélectionnez le menu "Vecteur" -> "Outil de calcul spatial" -> "Fusion" スクリーンショット 2015-11-02 22.51.18.png

Sélectionnez la forme à générer, OK スクリーンショット 2015-11-02 22.52.02.png

Est devenu un! スクリーンショット 2015-11-02 22.52.53.png

Essayez de générer des points à l'aide de ce fichier de forme Apparemment, le nombre de contenus qui sont True a changé.

Cliquez ici pour le code final https://gist.github.com/motokazu/a1cb634aa0d6726039bd

Exemple d'utilisation

$ python genpointsbygeo.my.py --shapefile Tokyo.shp  --samples 100 --radius 50000

Recommended Posts

Utilisez python + galbé pour générer des points uniquement à Tokyo
Générer une vignette arrondie en Python
Générer une distribution U en Python
Générer du code QR en Python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Générez 8 * 8 (64) cubes avec Blender Python
Programmation GUI en Python avec Appjar
Précautions lors de l'utilisation de Pit avec Python
[Python] Générer un code QR en mémoire
Générer le notebook Jupyter ".ipynb" en Python
Essayez d'utiliser LevelDB avec Python (plyvel)
Dans la commande python, python pointe vers python3.8
Utilisation de variables globales dans les fonctions python
Étude sur Tokyo Rent en utilisant Python (3-2)
Voyons voir l'utilisation de l'entrée en python
Puissance totale en Python (en utilisant functools)
Étude sur Tokyo Rent en utilisant Python (3-3)
Essayez d'utiliser LeapMotion avec Python
Recherche de priorité de profondeur à l'aide de la pile en Python
Lors de l'utilisation d'expressions régulières en Python
Création d'interface graphique en python avec tkinter 2
Générer une collection de première classe en Python
Comment générer un nouveau groupe de journaux dans CloudWatch à l'aide de python dans Lambda
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
Essayez d'utiliser l'API Wunderlist en Python
Création d'interface graphique en python à l'aide de tkinter partie 1
Générer une URL signée AWS-S3 (limitée dans le temps) en Python
Obtenir l'équilibre Suica en Python (en utilisant libpafe)
Pratique d'utilisation de ceci en Python (mauvais)
Hachez lentement les mots de passe en utilisant bcrypt en Python
Essayez d'utiliser l'API Kraken avec Python
Utilisation de venv dans un environnement Windows + Docker [Python]
[FX] Hit oanda-API avec Python en utilisant Docker
Tweet à l'aide de l'API Twitter en Python
[Python] [Windows] Communication série en Python à l'aide de DLL
J'ai essayé d'utiliser l'optimisation bayésienne de Python
Générer automatiquement un commentaire de chaîne de document Python avec Emacs
Connectez-vous à Slack à l'aide de requêtes en Python
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Utilisation des constantes physiques dans Python scipy.constants ~ constant e ~
Scraping de sites Web à l'aide de JavaScript en Python
Module pour générer le mot N-gramme en Python
Développement de slack bot avec python en utilisant chat.postMessage
Ecrire un module python dans fortran en utilisant f2py
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Étude sur Tokyo Rent en utilisant Python (3-1 sur 3)
Générer une classe à partir d'une chaîne en Python
Remarques sur l'utilisation de python (pydev) avec eclipse
Générer un langage C à partir d'une expression S avec Python
Classification des maladies par Random Forest en utilisant Python
Téléchargez des fichiers dans n'importe quel format en utilisant Python
Exécution de tâches parallèles à l'aide de concurrent.futures en Python
Générer la séquence look-and-say présentée dans QuizKnock en Python
Créer un fichier GIF en utilisant Pillow en Python
Comment générer une séquence en Python et C ++
Pièces jointes par e-mail à l'aide de votre compte gmail avec python.
Création d'un processus de numérotation à l'aide de python dans le processus de numérotation locale DynamoDB