Introdução

Visualizando dados geoespaciais em Python

Mary van Valkenburg

Data Science Program Manager, Nashville Software School

Localização

  • Surto de cólera em Londres em 1854
  • 600+ mortes

nuvem de miasma

Visualizando dados geoespaciais em Python

Mapa de pontos de Snow

Visualizando dados geoespaciais em Python

O que você vai aprender neste curso

  • Como plotar pontos geoespaciais como dispersão
  • Como plotar geometrias usando geopandas
  • Como criar um GeoDataFrame a partir de um DataFrame
  • Como fazer junção espacial de conjuntos de dados
  • Como adicionar um mapa de ruas aos gráficos
  • Quando e como criar um coroplético
Visualizando dados geoespaciais em Python

Longitude e latitude

diagrama de dispersão de alturas de pai e filho

Terra com linhas de grade de longitude e latitude

Visualizando dados geoespaciais em Python
plt.scatter(schools.Longitude, 
            schools.Latitude, 
            c = 'darkgreen', 
            marker = 'p')
plt.show()

dispersão simples das localizações das escolas

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

dispersão das escolas com rótulos, título e grade

Visualizando dados geoespaciais em Python

Extraindo longitude e 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)

Visualizando dados geoespaciais em Python

Extraindo longitude e 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

Visualizando dados geoespaciais em Python

Extraindo lng e lat com expressões regulares

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)
Visualizando dados geoespaciais em Python

Extraindo lng e lat com expressões regulares

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]

Visualizando dados geoespaciais em Python

Dados abertos de Nashville

captura de tela de nashville.data.gov

cabeça de galinha gigante

Visualizando dados geoespaciais em Python

Vamos praticar!

Visualizando dados geoespaciais em Python

Preparing Video For Download...