Dieser Artikel wurde von der Huawei Cloud Community „ Python and Geopandas: Geographic Data Visualization and Analysis Guide “ von Lemony Hug geteilt.
Die Visualisierung von Geodaten ist in vielen Bereichen von entscheidender Bedeutung, sei es bei der Untersuchung der räumlichen Verteilung, der Stadtplanung, des Umweltschutzes oder der Geschäftsentscheidung. Die Python-Sprache ist für ihre leistungsstarken Datenverarbeitungs- und Visualisierungsbibliotheken bekannt, und Geopandas bietet als Erweiterung seiner GIS-Domäne (Geographic Information System) praktische Tools für die Verarbeitung von Geodaten. In diesem Artikel wird die Verwendung von Python und Geopandas zur Visualisierung geografischer Daten vorgestellt und praktische Codebeispiele bereitgestellt.
1. Vorbereitung
Stellen Sie vor dem Start sicher, dass Python und die Geopandas-Bibliothek installiert sind. Geopandas können mit pip installiert werden:
pip geopandas installieren
2. Laden Sie geografische Daten
Zuerst müssen wir die geografischen Daten laden. Geopandas unterstützt mehrere geografische Datenformate, einschließlich Shapefile, GeoJSON, Geopackage usw. In diesem Beispiel verwenden wir Kartendaten in einem Shapefile-Format.
Geopandas als GPD importieren # Kartendaten im Shapefile-Format lesen world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
3. Datenexploration und -verarbeitung
Nach dem Laden der Daten können wir einige grundlegende Untersuchungen und Verarbeitungen durchführen, z. B. die ersten Zeilen der Daten, den Datentyp usw. anzeigen.
# Sehen Sie sich die ersten Datenzeilen an print(world.head()) # Sehen Sie sich die Spaltennamen der Daten an print(world.columns) # Überprüfen Sie den Geometrietyp der Daten print(world.geom_type)
4. Visualisierung geografischer Daten
Als nächstes visualisieren wir die geografischen Daten mithilfe der Matplotlib-Bibliothek.
matplotlib.pyplot als plt importieren # Karte zeichnen world.plot() plt.show()
5. Passen Sie den Kartenstil an
Sie können auch den Stil der Karte anpassen, z. B. Farben ändern, Beschriftungen hinzufügen und mehr.
# Benutzerdefinierter Kartenstil world.plot(color='lightblue', edgecolor='black') plt.title('Weltkarte') plt.xlabel('Längengrad') plt.ylabel('Latitude') plt.show()
6. Daten hinzufügen
Zusätzlich zum Zeichnen von Karten können wir der Karte auch andere Daten hinzufügen, um weitere Informationen bereitzustellen.
#Weitere Daten hinzufügen Städte = gpd.read_file(gpd.datasets.get_path('naturalearth_cities')) world.plot() towns.plot(marker='o', color='red', markersize=5) plt.show()
7. Räumliche Analyse und Abfrage
Geopandas können nicht nur zur Visualisierung geografischer Daten, sondern auch zur räumlichen Analyse und Abfrage verwendet werden. Beispielsweise können wir räumliche Abfragen verwenden, um andere Orte in der Nähe eines Standorts zu finden.
aus shapely.geometry Import Point #Erstellen Sie ein Punktobjekt, um den Breiten- und Längengrad eines bestimmten Standorts darzustellen Punkt = Punkt(-74,006, 40,7128) # Räumliche Abfrage, um die Stadt zu finden, die dem Punkt am nächsten liegt nächstgelegene_stadt = städte[cities.distance(point).idxmin()] print("Die nächstgelegene Stadt ist:", next_city['name'])
8. Kartenüberlagerung und Gruppierung
Bei der Kartenvisualisierung ist es manchmal erforderlich, verschiedene geografische Daten zu überlagern und entsprechend bestimmter Bedingungen in Gruppen anzuzeigen.
#Nach Kontinent gruppieren world_grouped = world.groupby('continent').agg({'geometry': 'union'}) world_grouped.plot() plt.title('Weltkarte gruppiert nach Kontinent') plt.xlabel('Längengrad') plt.ylabel('Latitude') plt.show()
9. Komplexere geografische Datenoperationen
Zusätzlich zu den oben genannten Grundoperationen unterstützt Geopandas auch komplexere geografische Datenoperationen, wie z. B. räumliche Puffer, räumliche Überlagerungen, Analysen geografischer topologischer Beziehungen usw.
# Beispiel für einen Raumpuffer buffered_area = world.geometry.buffer(5) buffered_area.plot() plt.title('Gepufferte Weltkarte') plt.xlabel('Längengrad') plt.ylabel('Latitude') plt.show()
13. Interaktive geografische Datenvisualisierung
Neben der statischen Geodatenvisualisierung können auch interaktive Tools zur Erkundung und Darstellung geografischer Daten eingesetzt werden. Bokeh und Folium sind zwei häufig verwendete Python-Bibliotheken, die eine interaktive Visualisierung geografischer Daten ermöglichen.
Blatt importieren #Erstellen Sie ein Kartenobjekt m = folium.Map(location=[40.7128, -74.006], zoom_start=10) #Stadt-Tag hinzufügen für idx, Zeile in towns.iterrows(): folium.Marker([row['latitude'], row['longitude']], popup=row['name']).add_to(m) # Karte anzeigen M
14. Mehrschichtige Überlagerung und Kontrolle
In einer interaktiven Karte können Sie mehrere Ebenen hinzufügen und Steuerelemente bereitstellen, um die Anzeige anzupassen.
#Erstellen Sie ein Kartenobjekt m = folium.Map(location=[40.7128, -74.006], zoom_start=10) #Weltkartenebene hinzufügen folium.GeoJson(world).add_to(m) #Stadtebene hinzufügen city_layer = folium.FeatureGroup(name='Cities') für idx, Zeile in towns.iterrows(): folium.Marker([row['latitude'], row['longitude']], popup=row['name']).add_to(city_layer) city_layer.add_to(m) #Ebenensteuerung hinzufügen folium.LayerControl().add_to(m) # Karte anzeigen M
15. Datenintegrations- und Visualisierungsanwendungen
Durch die Integration der geografischen Datenvisualisierung mit anderen Daten können umfangreichere Anwendungsszenarien erreicht werden. Kombinieren Sie beispielsweise Bevölkerungsdaten, Wirtschaftsindikatoren und andere Informationen, um eine tiefergehende geografische Datenanalyse und visuelle Darstellung durchzuführen.
# Bevölkerungsdaten lesen population_data = pd.read_csv("population.csv") # Bevölkerungsdaten mit Stadtdaten basierend auf dem Stadtnamen zusammenführen Cities_with_population = pd.merge(cities, population_data, how='left', on='name') # Zeichnen Sie Städte auf der Karte und passen Sie die Markierungsgröße basierend auf der Bevölkerung an m = folium.Map(location=[40.7128, -74.006], zoom_start=4) für idx, Zeile in towns_with_population.iterrows(): folium.CircleMarker(location=[row['latitude'], row['longitude']], radius=row['population'] / 100000, fill_color='blue', fill_opacity=0.6).add_to(m) M
16. Fälle zur Analyse und Visualisierung geografischer Daten
Lassen Sie uns anhand eines Falls demonstrieren, wie Python und Geopandas für die Analyse und Visualisierung geografischer Daten verwendet werden. Angenommen, wir verfügen über eine Reihe von Daten über das BIP und die Bevölkerung verschiedener Länder der Welt. Wir möchten die wirtschaftliche und demografische Situation jedes Landes analysieren und die Ergebnisse visualisieren.
# Lesen Sie BIP- und Bevölkerungsdaten gdp_data = pd.read_csv("gdp_data.csv") population_data = pd.read_csv("population_data.csv") # Daten in einem DataFrame kombinieren 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') # Berechnen Sie das BIP pro Kopf world_data['BIP pro Kopf'] = world_data['BIP (aktueller US-Dollar)'] / world_data['Population'] # Zeichnen Sie eine Karte des Pro-Kopf-BIP fig, ax = plt.subplots(1, 1, figsize=(10, 6)) world_data.plot(column='BIP pro Kopf', cmap='OrRd', linewidth=0.8, ax=ax, edgecolor='0.8', legend=True) ax.set_title('Welt-BIP pro Kopf') plt.show()
17. Analyseergebnisse
Mit dem obigen Code können wir die Karte des Pro-Kopf-BIP von Ländern auf der ganzen Welt erhalten, anhand derer wir die Unterschiede im wirtschaftlichen Entwicklungsniveau zwischen verschiedenen Ländern erkennen können. Als nächstes können wir Themen wie Bevölkerungsdichte und ungleiche regionale Entwicklung weiter analysieren und entsprechende politische Empfehlungen aussprechen.
# Bevölkerungsdichte berechnen world_data['Population Density'] = world_data['Population'] / world_data.geometry.area # Zeichnen Sie eine Bevölkerungsdichtekarte fig, ax = plt.subplots(1, 1, figsize=(10, 6)) world_data.plot(column='Population Density', cmap='Blues', linewidth=0.8, ax=ax, edgecolor='0.8', legend=True) ax.set_title('Weltbevölkerungsdichte') plt.show()
18. Fazit und Ausblick
Durch die Einführung und Falldemonstration dieses Artikels haben wir gelernt, wie man Python und Geopandas zur Analyse und Visualisierung geografischer Daten verwendet. Die Analyse und Visualisierung geografischer Daten kann uns helfen, ein tieferes Verständnis der räumlichen Verteilung und Eigenschaften der Erde zu erlangen und so unsere Entscheidungsfindung besser zu unterstützen.
Mit der kontinuierlichen Weiterentwicklung der Datenerfassungs- und -verarbeitungstechnologie werden die Analyse und Visualisierung geografischer Daten in Zukunft eine immer wichtigere Rolle spielen und mehr nützliche Informationen und Erkenntnisse für die nachhaltige Entwicklung der menschlichen Gesellschaft und den Umweltschutz liefern.
Vielen Dank für das Lesen dieses Artikels. Ich hoffe, er wird Sie inspirieren und Ihnen helfen!
Zusammenfassen
Dieser Artikel befasst sich ausführlich mit der Verwendung von Python und Geopandas zur Visualisierung und Analyse geografischer Daten und bietet eine Fülle von Codebeispielen und Falldemonstrationen. Das Folgende ist die Hauptzusammenfassung dieses Artikels:
-
Vorbereitung : Bevor Sie beginnen, müssen Sie sicherstellen, dass die Python- und Geopandas-Bibliotheken installiert sind. Sie können pip verwenden, um Geopandas zu installieren.
-
Geografische Daten laden : Geopandas unterstützt mehrere geografische Datenformate, einschließlich Shapefile, GeoJSON, Geopackage usw. Sie können
gpd.read_file()
Funktionen zum Laden von Daten verwenden. -
Datenuntersuchung und -verarbeitung : Nach dem Laden der Daten können Sie einige grundlegende Untersuchungen und Verarbeitungen durchführen, z. B. die ersten Zeilen der Daten, Spaltennamen, Datentypen usw. anzeigen.
-
Visualisierung geografischer Daten : Verwenden Sie die Matplotlib-Bibliothek, um geografische Daten zu visualisieren und die Karte durch Anpassen von Stilen und Hinzufügen von Beschriftungen anzupassen.
-
Räumliche Analyse und Abfrage : Geopandas unterstützt räumliche Analysen und Abfragen, z. B. räumliche Abfragen, räumliche Puffer und andere Vorgänge.
-
Speichern und Exportieren von Daten : Sie können Geopandas verwenden, um geografische Daten in Dateien in Shapefile, GeoJSON und anderen Formaten zu speichern.
-
Datenprojektion und Koordinatenkonvertierung : Geopandas unterstützt Datenprojektion und Koordinatenkonvertierung und kann die Karte in verschiedene Projektionsmethoden projizieren.
-
Interaktive Visualisierung geografischer Daten : Die interaktive Visualisierung geografischer Daten kann über Bibliotheken wie Bokeh und Folium realisiert werden, wodurch die Interaktivität der Datenexploration und -anzeige verbessert wird.
-
Fallbeispiel zur Analyse und Visualisierung geografischer Daten : Anhand von Falldemonstrationen wird gezeigt, wie Python und Geopandas verwendet werden können, um die wirtschaftliche und demografische Situation von Ländern auf der ganzen Welt zu analysieren und die Ergebnisse zu visualisieren.
-
Fazit und Ausblick : Die Analyse und Visualisierung geografischer Daten wird in verschiedenen Bereichen häufig eingesetzt und wird uns mit der Entwicklung nützlicher Informationen und Erkenntnisse liefern.
Durch das Studium dieses Artikels können Leser die grundlegenden Methoden zur Verarbeitung und Visualisierung geografischer Daten mit Python und Geopandas beherrschen und Unterstützung und Anleitung für praktische Anwendungen bieten.
Wie viel Umsatz kann ein unbekanntes Open-Source-Projekt bringen? Das chinesische KI-Team von Microsoft hat zusammengepackt und ist mit Hunderten von Menschen in die USA gegangen. Huawei gab offiziell bekannt, dass Yu Chengdongs Jobwechsel an der „FFmpeg-Säule der Schande“ festgenagelt wurden vor, aber heute muss er uns danken – Tencent QQ Video rächt seine vergangene Demütigung? Die Open-Source-Spiegelseite der Huazhong University of Science and Technology ist offiziell für den externen Zugriff geöffnet. Bericht: Django ist immer noch die erste Wahl für 74 % der Entwickler. Zed-Editor hat Fortschritte bei der Linux-Unterstützung gemacht brachte die Nachricht: Nachdem er von einem Untergebenen herausgefordert wurde, wurde der technische Leiter wütend und unhöflich, wurde entlassen und schwanger. Die Mitarbeiterin von Alibaba Cloud veröffentlicht offiziell Tongyi Qianwen 2.5. Microsoft spendet 1 Million US-Dollar an die Rust Foundation