Introduzione

Visualizzare dati geospaziali in Python

Mary van Valkenburg

Data Science Program Manager, Nashville Software School

Posizione

  • Epidemia di colera a Londra nel 1854
  • Oltre 600 morti

nuvola di miasmi

Visualizzare dati geospaziali in Python

La mappa a punti di Snow

Visualizzare dati geospaziali in Python

Cosa imparerai in questo corso

  • Come tracciare punti geospaziali come scatter plot
  • Come tracciare geometrie con geopandas
  • Come creare un GeoDataFrame da un DataFrame
  • Come unire dati spazialmente
  • Come aggiungere una mappa stradale ai grafici
  • Quando e come creare una choropleth
Visualizzare dati geospaziali in Python

Longitudine e latitudine

scatter plot delle altezze di padre e figlio

Terra con griglia di longitudine e latitudine

Visualizzare dati geospaziali in Python
plt.scatter(schools.Longitude, 
            schools.Latitude, 
            c = 'darkgreen', 
            marker = 'p')
plt.show()

semplice scatter plot delle scuole

plt.scatter(schools.Longitude, schools.Latitude, 
            c = 'darkgreen', marker = 'p')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.title('Nashville Public Schools')
plt.grid()
plt.show()

scatter plot delle scuole con etichette, titolo e griglia

Visualizzare dati geospaziali in Python

Estrazione di longitudine e latitudine

bus_stops.head()
Stop ID    StopName       Location
4431      MCC5_11    (36.16659, -86.781996)
588       CHA7AWN    (36.165, -86.78406)
590       CHA8AWN    (36.164393, -86.785451)
541       CXONGULC   (36.162249, -86.790464)
5231      7AVUNISM   (36.163822, -86.783791)

Visualizzare dati geospaziali in Python

Estrazione di longitudine e latitudine

bus_stops['lat'] = [loc[0] for loc in bus_stops.Location]
bus_stops['lng'] = [loc[1] for loc in bus_stops.Location]
bus_stops.head()
Stop ID    StopName  Location                  lat         lng
4431      MCC5_11   (36.16659, -86.781996)    36.16659    -86.781996    
588       CHA7AWN  (36.165, -86.78406)        36.165      -86.78406
590       CHA8AWN  (36.164393, -86.785451)    36.164393   -86.785451
541       CXONGULC  (36.162249, -86.790464)   36.162249   -86.790464
5231      7AVUNISM  (36.163822, -86.783791)   36.163822   -86.783791

Visualizzare dati geospaziali in Python

Estrazione di lng e lat con espressioni regolari

bus_stops2.head()
Stop ID        Location            
4431       MCC - BAY 11\nNashville, TN\n(36.16659, -86.78199)
588        CHARLOTTE AVE\nNashville, TN\n(36.165, -86.78406)
590        CHARLOTTE AV\nNashville, TN\n(36.164393, -86.785451)
541        CHARLOTTE\nNashville, TN\n(36.162249, -86.790464)
5231       Nashville, TN\n(36.163822, -86.783791)
Visualizzare dati geospaziali in Python

Estrazione di lng e lat con espressioni regolari

lat_lng_pattern = re.compile(r'\((.*),\s*(.*)\)', flags=re.MULTILINE)
def extract_lat_lng(address):
    try:
        lat_lng_match = lat_lng_pattern.search(address)
        lat = float(lat_lng_match.group(1))
        lng = float(lat_lng_match.group(2))
        return (lat, lng)
    except:
        return (np.NaN, np.NaN)
lat_lngs = [extract_lat_lng(location)for location in \
           bus_stops2.loc[:, 'Location']]
bus_stops2['lat'] = [lat for lat, lng in lat_lngs]
bus_stops2['lng'] = [lng for lat, lng in lat_lngs]

Visualizzare dati geospaziali in Python

Open data di Nashville

screenshot di nashville.data.gov

testa di pollo gigante

Visualizzare dati geospaziali in Python

Esercitiamoci!

Visualizzare dati geospaziali in Python

Preparing Video For Download...