Introduction

Visualiser des données géospatiales en Python

Mary van Valkenburg

Data Science Program Manager, Nashville Software School

Localisation

  • Épidémie de choléra à Londres en 1854
  • Plus de 600 décès

nuage de miasmes

Visualiser des données géospatiales en Python

Carte en points de Snow

Visualiser des données géospatiales en Python

Ce que vous allez apprendre dans ce cours

  • Tracer des points géospatiaux en nuage de points
  • Tracer des géométries avec geopandas
  • Construire un GeoDataFrame à partir d'un DataFrame
  • Joindre des jeux de données spatialement
  • Ajouter un plan de rue à vos graphiques
  • Quand et comment créer une choroplèthe
Visualiser des données géospatiales en Python

Longitude et latitude

nuage de points des tailles père-fils

terre avec grille de longitude et latitude

Visualiser des données géospatiales en Python
plt.scatter(schools.Longitude, 
            schools.Latitude, 
            c = 'darkgreen', 
            marker = 'p')
plt.show()

nuage de points simple des emplacements des écoles

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

nuage de points des écoles avec libellés, titre, quadrillage

Visualiser des données géospatiales en Python

Extraire la longitude et la latitude

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)

Visualiser des données géospatiales en Python

Extraire la longitude et la latitude

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

Visualiser des données géospatiales en Python

Extraire lng et lat avec des expressions régulières

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)
Visualiser des données géospatiales en Python

Extraire lng et lat avec des expressions régulières

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]

Visualiser des données géospatiales en Python

Données ouvertes de Nashville

capture d'écran de nashville.data.gov

tête de poulet géante

Visualiser des données géospatiales en Python

Passons à la pratique !

Visualiser des données géospatiales en Python

Preparing Video For Download...