Advertisement
Guest User

Einkommen-Entfernung-Skript

a guest
Jul 7th, 2019
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.52 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # https://github.com/brandonxiang/geojson-python-utils
  4. # https://gis.stackexchange.com/questions/73768/converting-geojson-to-python-objects
  5. import pygeoj
  6. import re
  7. from geopy.geocoders import Nominatim
  8. from geopy import distance
  9. import csv
  10. import overpass_api as opi
  11. from numpy import genfromtxt
  12.  
  13. geolocator = Nominatim(user_agent="KulturInHambung")
  14.  
  15. hamburg_mitte_geocode = geolocator.geocode("Hamburg")
  16. hamburg_mitte = hamburg_mitte_geocode.point
  17.  
  18. hamburg_coords = pygeoj.load("hamburg_city_districts.geojson")
  19.  
  20. with open('h_einkommen_distanz.csv', 'w', encoding='utf-8') as csv_file: # Datei anlegen
  21.         writer = csv.writer(csv_file,lineterminator='\n')
  22.         writer.writerow(["Stadtgebiet","Einkünfte","Entfernung"])
  23.  
  24. for feature in hamburg_coords:
  25.  
  26.     # ERZEUGT STADTTEILNAMEN
  27.     property_stadtteil = str(feature.properties).split(': ')
  28.     stadtteil = re.sub('[:\'}]', '', property_stadtteil[1])
  29.     stadtteil = stadtteil.replace('ü','ü')
  30.     stadtteil = stadtteil.replace('ö','ö')
  31.     stadtteil = stadtteil.replace('ä','ä')
  32.     stadtteil = stadtteil.replace('ß','ß')
  33.     stadtteil = stadtteil.replace('.','. ') # St.Pauli / St.Georg --> St. Pauli  / St. Georg
  34.     # print(stadtteil)
  35.  
  36.     # ERZEUGT STADTTEIL, STADTBEZIRK, STADT, LAND
  37.     koord = geolocator.geocode(stadtteil + ", Hamburg")
  38.     koord_plz = koord
  39.     koord_plz = re.sub('[0-9]','',str(koord_plz))
  40.     koord_str = koord_plz.replace(' ,','')
  41.     # You Either Code Properly, Or You Code Long Enough To See Yourself Become Hated By Everyone On Your Team
  42.     print(koord_str) # print(koord)
  43.  
  44.     # DISTANZ VON GEOCODE ZU GEOCODE BERECHNEN
  45.     entfernung = distance.distance(koord.point, hamburg_mitte).kilometers # Zahl im Bereich 0-20 sind Kilometer
  46.     entfernung = (int(entfernung*100)/float(100))    # Runden.
  47.     print(entfernung)
  48.  
  49.     # DATEN VORBEREITEN FÜR CSV
  50.     skorna_array = koord_str.split(', ')
  51.     print(skorna_array) # Super krasses Array mit allen wichtigen Informationen, yo.
  52.     while len(skorna_array) > 1:
  53.             del skorna_array[1]
  54.             print(skorna_array)
  55.     print(skorna_array)
  56.  
  57.     # WRITE INCOME FROM OTHER CSV
  58.  
  59.     # if skorna_array[0] = row_in hamburg_einkommen.csv
  60.         # add einkommen
  61.     with open('hamburg_einkommen.csv', 'r', encoding='utf-8') as ham_ek:
  62.         csvReader = csv.reader(ham_ek)
  63.         for row in csvReader:
  64.             important_row = str(row).split(';')
  65.             sgb = re.sub('[:\'}]', '', important_row[0]) # Stadtgebiet
  66.             sgb = sgb.replace('[','')
  67.             sgb = sgb.replace('ü','ü')
  68.             sgb = sgb.replace('ö','ö')
  69.             sgb = sgb.replace('ä','ä')
  70.             sgb = sgb.replace('ß','ß')
  71.             # sgb = sgb.replace('.','. ') # St.Pauli / St.Georg --> St. Pauli  / St. Georg
  72.             if (skorna_array[0] == sgb) or ((skorna_array[0] in sgb) and ("und" in sgb)): # "Waltershof und Finkenwerder;31649,00"
  73.                 super_ugly_coding = important_row[1].split(',') # '94234, 00]' --> 94234
  74.                 einkommen = re.sub('[:\'}]', '', super_ugly_coding[0]) # Einkommen
  75.                 skorna_array.append(einkommen)
  76.     print(skorna_array)
  77.  
  78.     skorna_array.append(entfernung)
  79.     print(skorna_array)
  80.  
  81.     # CSV SCHREIBEN
  82.     with open('h_einkommen_distanz.csv', 'a', encoding='utf-8') as csv_file: # append
  83.         writer = csv.writer(csv_file,lineterminator='\n',delimiter=",")
  84.         writer.writerow(skorna_array)
  85.  
  86. # For-Loop-End
  87. print("\r\nFinished")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement