python + faker Generiere zufällig einen Punkt mit einem Radius von 100 m von einem bestimmten Punkt

Ich habe auf diese Seite für die Berechnung verwiesen. http://mononofu.hatenablog.com/entry/20090324/1237894846

Verwenden Sie Pythons Fälscher.

Es gibt japanisches Gebietsschema in faker, verwenden Sie es also.

Generieren Sie beispielsweise 10 Punkte in einem Kreis mit einem Radius von 100 m, der auf der Tokyo Station zentriert ist.

#!/usr/bin/env python

from faker import Factory
fake = Factory.create('ja_JP')

import math
import csv

##
# 
samples       = 10
limit_samples = 10000
csvfile       = "data.csv"

# Tokyo Station(35.681382, 139.766084)
centerlat  = 35.681382
centerlong = 139.766084
radius_m   = 100

#########
earthradius = 6378137
lat1radm   = ((2*math.pi*earthradius)/360)
latradius  = radius_m/lat1radm
long1radm  = ((earthradius*math.cos(centerlat/180*math.pi)*2*math.pi)/360)
longradius = radius_m/long1radm

with open(csvfile, "w+") as f:
    csv_writer = csv.writer(f)
    
    counter = 0
    for _ in range(0,limit_samples):
        geolat  = fake.geo_coordinate(center=centerlat , radius=latradius)
        geolong = fake.geo_coordinate(center=centerlong, radius=longradius)
        
        r = math.sqrt(math.pow((float(geolat)-centerlat)*lat1radm,2)+math.pow((float(geolong)-centerlong)*long1radm,2))
        if r < radius_m:       
            d = [geolat, geolong]
            #print d
            csv_writer.writerow(d)
            counter = counter + 1
        
        if counter >= samples:
            break

Da es schwierig ist, es so zu verwenden, lassen Sie es korrespondieren, damit es durch ein Argument angegeben werden kann.

## args
import argparse
parser = argparse.ArgumentParser(description='Generater of coordinate points.')
parser.add_argument('--samples', type=int, nargs='?', default=10, help='number of points')
parser.add_argument('--csv', type=str, nargs='?', default="dummydata.csv", help='csv file name')
parser.add_argument('--radius', type=int, nargs='?', default=100, help='radius(m)')
# Tokyo Station(35.681382, 139.766084)
parser.add_argument('--latitude', type=float, nargs='?', default=35.681382, help='center latitude of the circle')
parser.add_argument('--longitude', type=float, nargs='?', default=139.766084, help='center longitude of the circle')
args = parser.parse_args()
   
##
# 
samples       = args.samples
limit_samples = samples * samples
csvfile       = args.csv
centerlat     = args.latitude
centerlong    = args.longitude
radius_m      = args.radius
$ python genpointsbygeo.py -h
usage: genpointsbygeo.py [-h] [--samples SAMPLES] [--csv CSV]
                         [--radius RADIUS] [--latitude LATITUDE]
                         [--longitude LONGITUDE]

Generater of coordinate points.

optional arguments:
  -h, --help            show this help message and exit
  --samples SAMPLES     number of points
  --csv CSV             csv file name
  --radius RADIUS       radius(m)
  --latitude LATITUDE   center latitude of the circle
  --longitude LONGITUDE
                        center longitude of the circle

$ python genpointsbygeo.py --samples 100 --csv data1.csv --radius 1000
$ wc -l data1.csv 
     100 data1.csv

Dies ist sehr praktisch, da Sie mehrere Punkte zeichnen und überprüfen können! Vielen Dank! http://www.tree-maps.com/prot/

Recommended Posts

python + faker Generiere zufällig einen Punkt mit einem Radius von 100 m von einem bestimmten Punkt
[Python] Generieren Sie zufällig eine große Anzahl englischer Personennamen
Hasch mit Python und entkomme dem Ego eines bestimmten Ministers
Generieren Sie japanische Testdaten mit Python faker
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Ein Memorandum zum Aufrufen von Python aus Common Lisp
Löse A ~ D des Yuki-Codierers 247 mit Python
Generieren Sie mit Python eine Einfügeanweisung aus CSV.
Erstellen Sie mit Python einen Entscheidungsbaum von 0 (1. Übersicht)
Lesen Sie mit Python Zeile für Zeile aus der Datei
Extrahieren Sie mit Python Daten von einer Webseite
Führen Sie eine Twitter-Suche in Python durch und versuchen Sie, Sätze mit der Markov-Kette zu generieren.
Memo mit Python mit HiveServer2 von EMR verbunden
Lerne Nim mit Python (ab Anfang des Jahres).
Empfehlung zum Erstellen einer tragbaren Python-Umgebung mit conda
Generieren Sie einen Mann wie zwei Meister eines bestimmten Programms
Erstellen Sie eine Kopie einer Google Drive-Datei aus Python
Generieren Sie aus Textdaten ein vertikales Bild eines Romans
Generieren Sie zufällige Sätze aus Ihren Tweets mit Trigramm
Vom Kauf eines Computers bis zur Ausführung eines Programms auf Python
Der süchtig machende Punkt des "Bayes-Denkens in Python"
[Grundlagen der Datenwissenschaft] Sammeln von Daten aus RSS mit Python
Ein Memo, das mit Python & Spark Daten aus dashDB liest
Extrahieren Sie die Vorlage der aus Thunderbird gespeicherten EML-Datei mit python3.7
Erfassung der 3D-Punktgruppe mit Pepper of Softbank (Choregraphe, Python)
Eine Sammlung wettbewerbsfähiger Pro-Techniken, die mit Python gelöst werden können
Anders als der Importtyp von Python. Bedeutung von aus A Import B.
Ich möchte viele Prozesse von Python aus starten
Holen Sie sich eine Liste der mit Python + Selen gekauften DMM-E-Books
Erkennen Sie mit Python Objekte einer bestimmten Farbe und Größe
Python: Erstellen Sie ein Wörterbuch aus einer Liste von Schlüsseln und Werten
Python> Aus einer mehrzeiligen Zeichenfolge anstelle einer Datei lesen> io.StringIO ()
Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren
Drehen Sie ein Array von Zeichenfolgen mit einer for-Anweisung (Python3).
Generieren Sie XML (RSS) mit Python
Lassen Sie uns zufällig eine vollständige Sequenz generieren
Machen Sie eine Lotterie mit Python
Erstellen Sie ein Verzeichnis mit Python
Mit Skype benachrichtigen Sie mit Skype von Python!
Erstellen Sie eine Instanz einer vordefinierten Klasse aus einer Zeichenfolge in Python
Test der Spracherkennung mit Azure mit Python (Eingabe vom Mikrofon)
[Python, Ruby] Selen-Holen Sie sich Webseiteninhalte mit Webdriver
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Aus einem Buch, das Programmierer lernen können ... (Python): Überprüfung von Arrays
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Ich habe viele Dateien für die RDP-Verbindung mit Python erstellt
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
[Python] Ruft das Aktualisierungsdatum eines Nachrichtenartikels aus HTML ab
Batch-Download-Bilder von einer bestimmten URL mit Python Modified-Version
Die Idee, die Konfigurationsdatei mit einer Python-Datei anstelle von yaml zu füttern
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Hinweis] Verwenden eines 16x2-stelligen LCD-Zeichens (1602A) von Python mit Raspeye
Übergeben Sie die Liste von Python an C ++ als Referenz in pybind11