Projicera en punkt
I det föregående kapitlet arbetade vi med Eiffeltornets position. Vi angav koordinaterna i ett projicerat koordinatsystem så att du till exempel kunde beräkna avstånd. Nu återvänder vi till detta kända landmärke och uttrycker dess position i geografiska koordinater: 48°51′29,6″N, 2°17′40,2″E. Eller i decimalform: latitud 48,8584 och longitud 2,2945.
Shapely-geometriobjekt har ingen uppfattning om CRS och kan därför inte konverteras direkt till ett annat CRS. Vi använder i stället GeoPandas för att omvandla Eiffeltornets punktposition till ett alternativt CRS. Vi placerar den enskilda punkten i en GeoSeries, använder metoden to_crs() och extraherar sedan punkten igen.
GeoPandas är redan importerat.
Den här övningen är en del av kursen
Arbeta med geospatial data i Python
Övningsinstruktioner
- Skapa ett Shapely-punktobjekt med Eiffeltornets koordinater och tilldela det till en variabel med namnet
eiffel_tower. - Skapa en GeoSeries (med namnet
s_eiffel_tower) där Eiffeltornet är det enda elementet, och ange att CRS:et ska vara EPSG:4326. - Konvertera
s_eiffel_towertill EPSG:2154 och kalla resultatets_eiffel_tower_projected.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Construct a Point object for the Eiffel Tower
from shapely.geometry import Point
eiffel_tower = ____
# Put the point in a GeoSeries with the correct CRS
s_eiffel_tower = geopandas.GeoSeries([____], crs={'init': '____'})
# Convert to other CRS
s_eiffel_tower_projected = s_eiffel_tower.____
# Print the projected point
print(s_eiffel_tower_projected)