Proiezioni e Sistemi di Riferimento di Coordinate

Visualizzare dati geospaziali in Python

Mary van Valkenburg

Data Science Program Manager, Nashville Software School

Proiezioni

mappa appiattita della Terra sferica

Visualizzare dati geospaziali in Python

Molti approcci alla proiezione delle mappe

vignetta xkcd sulle proiezioni cartografiche

Visualizzare dati geospaziali in Python

Sistemi di Riferimento di Coordinate

EPSG:4326

  • Usato da Google Earth
  • Unità: gradi decimali

EPSG:3857

  • Usato da Google Maps, Bing Maps, OpenStreetMap
  • Unità: metri
Visualizzare dati geospaziali in Python
School Name              Latitude     Longitude
A. Z. Kelley Elementary    36.021       -86.658
Alex Green Elementary      36.252       -86.832
Amqui Elementary           36.273       -86.703
Andrew Jackson Elementary  36.231       -86.623
import geopandas as gpd
schools['geometry'] = gpd.points_from_xy(schools.Longitude, schools.Latitude)
schools.head(4)
School Name                Latitude  Longitude                geometry
A. Z. Kelley Elementary      36.021    -86.658  POINT (-86.658 36.021)
Alex Green Elementary        36.252    -86.832  POINT (-86.832 36.252)
Amqui Elementary             36.273    -86.703  POINT (-86.703 36.273)
Andrew Jackson Elementary    36.231    -86.623  POINT (-86.623 36.231)
Visualizzare dati geospaziali in Python

Creare un GeoDataFrame da un DataFrame

import geopandas as gpd

schools_geo = gpd.GeoDataFrame(schools, 
                               crs = 'epsg:4326', 
                               geometry = schools.geometry)
schools_geo.head(4)
School Name                Latitude  Longitude               geometry
A. Z. Kelley Elementary      36.021    -86.658  POINT (-86.658 36.021)
Alex Green Elementary        36.252    -86.832  POINT (-86.832 36.252)
Amqui Elementary             36.273    -86.703  POINT (-86.703 36.273)
Andrew Jackson Elementary    36.231    -86.623  POINT (-86.623 36.231)
Visualizzare dati geospaziali in Python

Passare da un CRS a un altro

schools_geo.head(2)
School Name              Latitude  Longitude                geometry
A. Z. Kelley Elementary    36.021    -86.658  POINT (-86.658 36.021)
Alex Green Elementary      36.252    -86.832  POINT (-86.832 36.252)
schools_geo.geometry = schools_geo.geometry.to_crs(epsg = 3857)
schools_geo.head(2)
School Name              Latitude  Longitude                      geometry
A. Z. Kelley Elementary    36.021    -86.658  POINT (-9646818.8 4303623.8)
Alex Green Elementary      36.252    -86.832  POINT (-9666119.5 4335484.4)
Visualizzare dati geospaziali in Python

Esercitiamoci!

Visualizzare dati geospaziali in Python

Preparing Video For Download...