Cet article est partagé à partir de la communauté Huawei Cloud « Python et Geopandas : Guide de visualisation et d'analyse des données géographiques » par Lemony Hug.
La visualisation des géodonnées est cruciale dans de nombreux domaines, qu'il s'agisse de l'étude de la répartition géospatiale, de l'urbanisme, de la protection de l'environnement ou de la prise de décision commerciale. Le langage Python est connu pour ses puissantes bibliothèques de traitement de données et de visualisation, et Geopandas, en tant qu'extension de son domaine de système d'information géographique (SIG), fournit des outils pratiques pour traiter les données géospatiales. Cet article expliquera comment utiliser Python et Geopandas pour la visualisation de données géographiques et fournira des exemples de code pratiques.
1. Préparation
Avant de commencer, assurez-vous que Python et la bibliothèque Geopandas sont installés. Les géopandas peuvent être installés en utilisant pip :
pip installer des géopandas
2. Charger des données géographiques
Tout d’abord, nous devons charger les données géographiques. Geopandas prend en charge plusieurs formats de données géographiques, notamment Shapefile, GeoJSON, Geopackage, etc. Dans cet exemple, nous utiliserons des données cartographiques au format Shapefile.
importer des géopandas en tant que gpd # Lire les données cartographiques au format Shapefile monde = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
3. Exploration et traitement des données
Après avoir chargé les données, nous pouvons effectuer une exploration et un traitement de base, comme afficher les premières lignes des données, le type de données, etc.
# Afficher les premières lignes de données print(monde.head()) # Afficher les noms de colonnes des données imprimer (monde.colonnes) # Vérifiez le type de géométrie des données imprimer (monde.geom_type)
4. Visualisation des données géographiques
Visualisons ensuite les données géographiques à l'aide de la bibliothèque Matplotlib.
importer matplotlib.pyplot en tant que plt # dessiner une carte monde.plot() plt.show()
5. Personnalisez le style de la carte
Vous pouvez également personnaliser le style de la carte, par exemple en modifiant les couleurs, en ajoutant des étiquettes, etc.
# Style de carte personnalisé monde.plot(color='lightblue', edgecolor='black') plt.title('Carte du monde') plt.xlabel('Longitude') plt.ylabel('Latitude') plt.show()
6. Ajouter des données
En plus de dessiner des cartes, nous pouvons également ajouter d'autres données à la carte pour fournir plus d'informations.
#Ajouter d'autres données villes = gpd.read_file(gpd.datasets.get_path('naturalearth_cities')) monde.plot() villes.plot(marker='o', couleur='red', Markersize=5) plt.show()
7. Analyse spatiale et requête
Les géopandas peuvent être utilisés non seulement pour la visualisation de données géographiques, mais également pour l'analyse et les requêtes spatiales. Par exemple, nous pouvons utiliser des requêtes spatiales pour trouver d’autres lieux à proximité d’un emplacement.
à partir du point d'importation shapely.geometry #Créer un objet ponctuel pour représenter la latitude et la longitude d'un certain emplacement point = Point(-74.006, 40.7128) # Requête spatiale pour trouver la ville la plus proche du point ville_la plus proche = villes[villes.distance(point).idxmin()] print("La ville la plus proche est :", la ville la plus proche['nom'])
8. Superposition et regroupement de cartes
En visualisation cartographique, il est parfois nécessaire de superposer différentes données géographiques et de les afficher en groupes selon certaines conditions.
#Grouper par continent world_grouped = world.groupby('continent').agg({'geometry': 'union'}) monde_grouped.plot() plt.title('Carte du monde regroupée par continent') plt.xlabel('Longitude') plt.ylabel('Latitude') plt.show()
9. Opérations de données géographiques plus complexes
En plus des opérations de base ci-dessus, Geopandas prend également en charge des opérations de données géographiques plus complexes, telles que les tampons spatiaux, les superpositions spatiales, l'analyse des relations topologiques géographiques, etc.
# Exemple de tampon d'espace buffered_area = monde.geometry.buffer(5) buffered_area.plot() plt.title('Carte du monde tamponnée') plt.xlabel('Longitude') plt.ylabel('Latitude') plt.show()
13. Visualisation interactive des données géographiques
En plus de la visualisation de données géographiques statiques, des outils interactifs peuvent également être utilisés pour explorer et afficher des données géographiques. Bokeh et Folium sont deux bibliothèques Python couramment utilisées qui permettent la visualisation interactive de données géographiques.
importer une feuille #Créer un objet cartographique m = folium.Map(location=[40.7128, -74.006], zoom_start=10) #Ajouter une balise de ville pour idx, ligne dans city.iterrows() : folium.Marker([row['latitude'], row['longitude']], popup=row['name']).add_to(m) # afficher la carte m
14. Superposition et contrôle multicouches
Dans une carte interactive, vous pouvez ajouter plusieurs couches et fournir des contrôles pour personnaliser l'affichage.
#Créer un objet cartographique m = folium.Map(location=[40.7128, -74.006], zoom_start=10) #Ajouter une couche de carte du monde folium.GeoJson(monde).add_to(m) #Ajouter une couche de ville city_layer = folium.FeatureGroup(name='Villes') pour idx, ligne dans city.iterrows() : folium.Marker([row['latitude'], row['longitude']], popup=row['name']).add_to(city_layer) city_layer.add_to(m) #Ajouter un contrôle de calque folium.LayerControl().add_to(m) # afficher la carte m
15. Applications d'intégration et de visualisation de données
En intégrant la visualisation des données géographiques avec d'autres données, des scénarios d'application plus riches peuvent être réalisés. Par exemple, combinez des données démographiques, des indicateurs économiques et d’autres informations pour effectuer une analyse plus approfondie des données géographiques et un affichage visuel.
# Lire les données démographiques population_data = pd.read_csv("population.csv") # Fusionner les données de population avec les données de la ville en fonction du nom de la ville villes_avec_population = pd.merge(villes, population_data, comment='gauche', on='nom') # Dessinez des villes sur la carte et ajustez la taille du marqueur en fonction de la population m = folium.Map(location=[40.7128, -74.006], zoom_start=4) pour idx, ligne dans city_with_population.iterrows() : folium.CircleMarker(location=[row['latitude'], row['longitude']], radius=row['population'] / 100000, fill_color='bleu', fill_opacity=0.6).add_to(m) m
16. Cas d’analyse et de visualisation de données géographiques
Utilisons un cas pour démontrer comment utiliser Python et Geopandas pour l'analyse et la visualisation de données géographiques. Supposons que nous disposions d'un ensemble de données sur le PIB et la population de divers pays du monde. Nous souhaitons analyser la situation économique et démographique de chaque pays et visualiser les résultats.
# Lire les données sur le PIB et la population gdp_data = pd.read_csv("gdp_data.csv") population_data = pd.read_csv("population_data.csv") # Combiner des données dans un DataFrame world_data = pd.merge(world, gdp_data, how='left', left_on='name', right_on='Country Name') world_data = pd.merge(world_data, population_data, how='left', left_on='name', right_on='Country Name') # Calculer le PIB par habitant world_data['PIB par habitant'] = world_data['PIB (USD courants)'] / world_data['Population'] # Dessinez une carte du PIB par habitant fig, hache = plt.subplots(1, 1, figsize=(10, 6)) world_data.plot(column='PIB par habitant', cmap='OrRd', linewidth=0.8, ax=ax, edgecolor='0.8', legend=True) ax.set_title('PIB mondial par habitant') plt.show()
17. Résultats de l'analyse
Grâce au code ci-dessus, nous pouvons obtenir la carte du PIB par habitant des pays du monde entier, à partir de laquelle nous pouvons voir les différences de niveaux de développement économique entre les différents pays. Ensuite, nous pourrons analyser plus en profondeur des questions telles que la densité de population et le développement régional inégal, et proposer des recommandations politiques correspondantes.
# Calculer la densité de population world_data['Densité de population'] = world_data['Population'] / world_data.geometry.area # Dessiner une carte de densité de population fig, hache = plt.subplots(1, 1, figsize=(10, 6)) world_data.plot(column='Densité de population', cmap='Blues', linewidth=0.8, ax=ax, edgecolor='0.8', legend=True) ax.set_title('Densité de la population mondiale') plt.show()
18. Conclusion et perspectives
Grâce à l'introduction et à la démonstration de cas de cet article, nous avons appris à utiliser Python et Geopandas pour analyser et visualiser des données géographiques. L'analyse et la visualisation des données géographiques peuvent nous aider à mieux comprendre la répartition spatiale et les caractéristiques de la Terre, fournissant ainsi un soutien plus solide à la prise de décision.
À l'avenir, avec le développement continu des technologies de collecte et de traitement des données, l'analyse et la visualisation des données géographiques joueront un rôle de plus en plus important, fournissant des informations et des idées plus utiles pour le développement durable de la société humaine et la protection de l'environnement.
Merci d'avoir lu cet article, j'espère qu'il vous inspirera et vous aidera !
Résumer
Cet article examine en profondeur comment utiliser Python et Geopandas pour la visualisation et l'analyse de données géographiques, et fournit une multitude d'exemples de code et de démonstrations de cas. Voici le résumé principal de cet article :
-
Préparation : Avant de commencer, vous devez vous assurer que les bibliothèques Python et Geopandas ont été installées. Vous pouvez utiliser pip pour installer Geopandas.
-
Chargement de données géographiques : Geopandas prend en charge plusieurs formats de données géographiques, notamment Shapefile, GeoJSON, Geopackage, etc. Vous pouvez utiliser
gpd.read_file()
des fonctions pour charger des données. -
Exploration et traitement des données : après avoir chargé les données, vous pouvez effectuer une exploration et un traitement de base, tels que l'affichage des premières lignes des données, des noms de colonnes, des types de données, etc.
-
Visualisation de données géographiques : utilisez la bibliothèque Matplotlib pour visualiser des données géographiques et personnalisez la carte en ajustant les styles et en ajoutant des étiquettes.
-
Analyse spatiale et requête : Geopandas prend en charge l'analyse et les requêtes spatiales, telles que la requête spatiale, le tampon spatial et d'autres opérations.
-
Sauvegarde et exportation de données : vous pouvez utiliser Geopandas pour enregistrer des données géographiques dans des fichiers au format Shapefile, GeoJSON et autres formats.
-
Projection de données et conversion de coordonnées : Geopandas prend en charge la projection de données et la conversion de coordonnées, et peut projeter la carte dans différentes méthodes de projection.
-
Visualisation interactive des données géographiques : La visualisation interactive des données géographiques peut être réalisée via des bibliothèques telles que Bokeh et Folium, améliorant l'interactivité de l'exploration et de l'affichage des données.
-
Cas d'analyse et de visualisation de données géographiques : Grâce à une démonstration de cas, il montre comment utiliser Python et Geopandas pour analyser la situation économique et démographique des pays du monde et visualiser les résultats.
-
Conclusion et perspectives : L'analyse et la visualisation des données géographiques sont largement utilisées dans divers domaines. Avec le développement de la technologie, elles nous fourniront des informations et des informations plus utiles.
En étudiant cet article, les lecteurs peuvent maîtriser les méthodes de base de traitement et de visualisation des données géographiques à l'aide de Python et Geopandas, et fournir une assistance et des conseils pour des applications pratiques.
Cliquez pour suivre et découvrir les nouvelles technologies de Huawei Cloud dès que possible~
Combien de revenus un projet open source inconnu peut-il rapporter ? L'équipe chinoise d'IA de Microsoft a fait ses valises et s'est rendue aux États-Unis, impliquant des centaines de personnes. Huawei a officiellement annoncé que les changements d'emploi de Yu Chengdong étaient cloués au « pilier de la honte FFmpeg » 15 ans. il y a, mais aujourd'hui il doit nous remercier—— Tencent QQ Video venge son humiliation passée ? Le site miroir open source de l'Université des sciences et technologies de Huazhong est officiellement ouvert à l'accès externe : Django est toujours le premier choix pour 74 % des développeurs. L'éditeur Zed a progressé dans la prise en charge de Linux. Un ancien employé d'une société open source bien connue . a annoncé la nouvelle : après avoir été interpellé par un subordonné, le responsable technique est devenu furieux et impoli, et a été licencié et enceinte. Une employée d'Alibaba Cloud publie officiellement Tongyi Qianwen 2.5 Microsoft fait un don d'un million de dollars à la Fondation Rust.