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):
J'utilise python 3.6 (apparemment certaines bibliothèques comme Basemap
ne fonctionnent pas sur cette version).
Comment puis je faire ça?
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: