[RAILS] Génération de données factices Python (édition d'adresse)

Contexte

Après avoir généré l'adresse en utilisant ʻaddress () ʻ de faker-python,

4-14-7 Matsuishi, Nakano-ku, Préfecture de Hyogo Crest Chizuka 106

Il y a Nakano Ward dans la préfecture de Hyogo comme celui-ci, et une terrible fausse adresse sort, mais même si vous recherchez ces informations, comme lors de tests avec une application qui utilise réellement une carte, le résultat de l'exécution sera identifié. Cela ne sort pas.

Alors

** 1. Générez des données d'adresse réelles au lieu de fausses données. ** ** ** 2. En outre, obtenez plusieurs adresses pour une exécution sous forme de données factices. ** **

Cette fois, je voudrais supprimer ces deux points et générer des données.

Comment faire

Immédiatement, j'ai trouvé une méthode pour formater et générer des informations via une API qui fournit des informations d'adresse. Je vais l'essayer pour le moment.

HeartRails Geo API L'API qui sera prise en charge cette fois est HeartRails Geo API. Les adresses factices seront générées à l'aide de «l'API de recherche d'adresse par latitude et longitude» ici. zyuusyof.png

Programme de génération d'adresses

import requests
import random
import json

#xml_url = 'httpi://geoapi.heartrails.com/api/xml?method=searchByGeoLocation'
json_url = 'http://geoapi.heartrails.com/api/json?method=searchByGeoLocation'

#Fonction de demande d'API
def get_data(lug,lat):
    payload = {'method': 'searchByGeoLocation', 'x': lug, 'y': lat}
    try:
        ret = requests.get(json_url, params=payload)
        json_ret = ret.json()
    except requests.exceptions.RequestException as e:
        print("ErrorContent: ",e)

    return json_ret

#Fonction de formatage des données d'adresse
def serealize_data(data):
    try:
        dic = data['response']['location'][0]
        det = dic['prefecture'] + dic['city'] + dic['town']
        return det
    except KeyError as e:
        print(e)

#Génération de nombres aléatoires utilisés pour la longitude et la latitude
def gene_number(lug_fnum, lug_lnum, lat_fnum, lat_lnum):
    lug = round(random.uniform(lug_fnum,lug_lnum),6)
    lat = round(random.uniform(lat_fnum,lat_lnum),6)
    return lug,lat

def main():
    for i in range(10):
        lug,lat = gene_number(123,154,20,46)
        ret = get_data(lug,lat)
        print("longitude:" + str(lug) + "," + "latitude:" + str(lat))
        print("%s\n" %serealize_data(ret))

if __name__ == '__main__':
    main()                                                                                                                                                                                                                                                                                                     

J'ai choisi le format json comme format de données cette fois. Il n'y a pas de raison particulière.

-La fonction get_data est une fonction qui récupère des données. -La fonction data_number formate les données extraites. -La fonction gene_number génère automatiquement la longitude et la latitude au Japon et la transmet à la fonction get_data.

Vérification


Longitude: 149.691295,Latitude: 20.525873

'location'
None
Longitude: 146.369748,Latitude: 23.905043

'location'
None
Longitude: 128.552226,Latitude: 28.268003

'location'
None
Longitude: 138.839354,Latitude: 36.14651

Akihata, Kanraku-cho, Kanraku-gun, préfecture de Gunma
Longitude: 128.442362,Latitude: 24.173392

'location'
None
Longitude: 149.328955,Latitude: 35.501685

'location'
None
Longitude: 143.701187,Latitude: 31.806533

'location'
None
Longitude: 152.518577,Latitude: 38.932277

'location'
None
Longitude: 131.0144,Latitude: 38.670175

'location'
None
Longitude: 149.70269,Latitude: 36.445081

'location'
None

J'ai spécifié de générer 10 données pour une exécution de programme, mais la plupart des données sont affichées comme Aucune. Seules les données du 4ème «Akihata, Kanraku-cho, Kanraku-gun, préfecture de Gunma» ont pu être générées.

Pour certaines raisons. .. ..

Ah. ..

J'ai vérifié les secondes données de coordonnées à titre d'essai.

zyuusyoo.png

C'est la mer.

Changer le paramètre de latitude et de longitude au centre de Tokyo

lug,lat = gene_number(139.51,139.76,35.68,35.87)
Longitude: 139.699048,Latitude: 35.780655
4-chome, Kozuzawa, Itabashi-ku, Tokyo

Longitude: 139.739455,Latitude: 35.733378
1-chome, Negamo, Toyoshima-ku, Tokyo

Longitude: 139.542504,Latitude: 35.711219
5-chome Sekimae, Musashino City, Tokyo

Longitude: 139.591343,Latitude: 35.718665
3-chome, Zenpukuji, Suginami-ku, Tokyo

Longitude: 139.683952,Latitude: 35.787578
3-chome Sakashita, Itabashi-ku, Tokyo

Longitude: 139.624341,Latitude: 35.795323
3-chome Niikura, Wako City, Préfecture de Saitama

Longitude: 139.543935,Latitude: 35.771779
2-chome Uehara, ville de Higashi-Kurume, Tokyo

Longitude: 139.517793,Latitude: 35.718969
2-chome, Hanakoganei Minamimachi, Kodaira City, Tokyo

Longitude: 139.674748,Latitude: 35.687898
3-chome, Yayoi-cho, Nakano-ku, Tokyo

Longitude: 139.606371,Latitude: 35.746559
4-chome, Ishigami-cho, Nerima-ku, Tokyo

C'était un succès.

Conclusion

Apparemment, lorsque j'ai défini le méridien et la latitude du Japon à peu près dans la plage de (rayonnement 123-154) et (latitude 20-46), j'ai oublié que la mer était incluse.

Par conséquent, il semble préférable de se concentrer sur la longitude et la latitude dans le pays. Après cela, il semble tout à fait ainsi avec mes propres fonctions et réglages fins.

Recommended Posts

Génération de données factices Python (édition d'adresse)
python> tuple> données, adresse = s.recvfrom (10000)
Génération de données factices en forme de vent dans le processus de Markov
Analyse de données python
[python] Lecture de données
Analyse de données avec python 2
Algorithme A * (édition Python)
Première 3e édition de Python
Bibliothèques de visualisation de données Python
Nettoyage des données à l'aide de Python
Génération de chaînes aléatoires (Python)
[Tutoriel Python] Structure des données
[Python] Tri des données Numpy
Analyse de données avec Python
J'ai essayé de créer diverses "données factices" avec Python faker
20200329_Introduction à l'analyse de données avec Python 2nd Edition Personal Summary
Génération de spécifications et génération de code dans le développement d'API REST (édition Python)
Exemple de données créées avec python
Mon conteneur d'analyse de données python
Gérer les données ambiantes en Python
structure de données Python push pop
Génération artificielle de données avec numpy
Python pour l'analyse des données Chapitre 4
PyTorch C ++ VS Python (édition 2019)
Afficher les données UTM-30LX en Python
Obtenez des données Youtube avec python
Construction de l'environnement CI ~ Édition Python ~
[Python] Insérez ":" dans l'adresse MAC
Fiche technique de la science des données (Python)
Installation de Python (édition Mac) (ancienne)
[Python] Notes sur l'analyse des données
Mon environnement d'analyse de données python
Application Python: visualisation de données, partie 2: matplotlib
Notes d'apprentissage sur l'analyse des données Python
Créer un fichier de données factice
Mémo récapitulatif des types de données Python
[Python] Tracer des données de séries chronologiques
Python pour l'analyse des données Chapitre 2
[python] Mémorandum de génération aléatoire
Conversion de type de données d'image [Python]
Analyse de données à l'aide de pandas python
Python pour l'analyse des données Chapitre 3
Lire des données json avec python
Exercice pratique d'analyse de données avec Python ~ 2016 New Coder Survey Edition ~
Pratique de l'analyse de données par Python et pandas (Tokyo COVID-19 data edition)