web-dev-qa-db-fra.com

Tracez la longitude de latitude à partir de CSV en Python 3,6

J'essaie de tracer un grand nombre de valeurs de longitude et de latitude à partir d'un fichier CSV sur une carte, ayant ce format (première colonne et deuxième colonne):

enter image description here

J'utilise python 3.6 (apparemment certaines bibliothèques comme Basemap ne fonctionnent pas sur cette version).

Comment puis je faire ça?

4
Tina J

Si vous cherchez simplement à tracer les données ponctuelles sous forme de nuage de points, c'est aussi simple que

import matplotlib.pyplot as plt
plt.scatter(x=df['Longitude'], y=df['Latitude'])
plt.show()

Si vous souhaitez tracer les points sur la carte, cela devient intéressant car cela dépend davantage de la façon dont vous tracer votre carte.

Un moyen simple consiste à utiliser shapely et geopandas. Le code ci-dessous n'est pas testé étant donné mon accès limité sur l'ordinateur portable que j'utilise actuellement, mais il devrait vous donner une feuille de route conceptuelle.

from shapely.geometry import Point
import geopandas as gpd
from geopandas import GeoDataFrame

df = pd.read_csv("Long_Lats.csv", delimiter=',', skiprows=0, low_memory=False)

geometry = [Point(xy) for xy in Zip(df['Longitude'], df['Latitude'])]
gdf = GeoDataFrame(df, geometry=geometry)   

#this is a simple map that goes with geopandas
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
gdf.plot(ax=world.plot(figsize=(10, 6)), marker='o', color='red', markersize=15);

Trouvez ci-dessous un exemple de l'image rendue:

enter image description here

13
Xiaoyu Lu