Überwachung, Verfolgung und Aufzeichnung von Geo-bezogenen Wohnraumdaten mit Python und JSON-Dateien

Jason Kulinski | 14.01.2025 |Optimierung von Arbeitsabläufen

Global Mapper Pro® ist ein entwicklerfreundliches Werkzeug, das für eine einfache Automatisierung konzipiert wurde. Von C++ bis Python bietet Global Mapper Pro eine Reihe von Sprachen, die Sie bei Ihren Automatisierungsanforderungen unterstützen.

In diesem Beitrag befassen wir uns eingehend mit Python- und JSON-Dateien, um zu zeigen, wie Benutzer Geodaten überwachen, verfolgen und aufzeichnen können, um Zeit und Geld zu sparen. Im folgenden Arbeitsablauf wird Python auf mittlerem Niveau besprochen und es werden benutzerdefinierte Global Mapper-Funktionen vorgestellt.

Verbessern Sie die Effizienz von Arbeitsabläufen mit Python

Folgendes Szenario: Vier Personen arbeiten unermüdlich daran, Vektordatenpunkte aus Global Mapper zu extrahieren, und davon gibt es jede Menge. Sie müssen nicht nur all diese Vektorpunkte verarbeiten, sondern es kommen auch jeden Tag weitere Dateien hinzu. Im Laufe eines Monats haben diese vier Personen 640 Stunden Arbeit investiert und haben immer noch mehr Arbeit vor sich. Mit der in Global Mapper Pro verfügbaren Python-Skriptfunktion können diese schwierigen, zeitaufwändigen Aufgaben sofort erledigt werden.

Wir empfehlen allen, die mit Python-Befehlen in Global Mapper Pro nicht vertraut sind, unseren Premium-GIS-Kurs zum Selbststudium – „Basics of Python in Global Mapper Pro“ – zu besuchen, der im Blue Marble Geographics Online Classroom verfügbar ist. Wir veröffentlichen außerdem ausführliche Workflows auf unserer Website und hilfreiche Informationen über die Software in unserer Wissensdatenbank. Benutzer können zusätzlich auf Python-Beispielskripte zugreifen, die als zusätzliche Download-Funktion in allen Versionen von Global Mapper enthalten sind.

Extrahieren von Daten aus Flächenelementen

Der folgende Arbeitsablauf beschreibt eine Vielzahl von Global Mapper-Funktionen, indem er zeigt, wie Attributdaten aus vorhandenen Flächenelementen extrahiert werden. Dadurch können nachfolgende Berechnungen nahezu sofort durchgeführt werden.

Nehmen wir an, Sie haben eine Reihe von Flächenelementen in Global Mapper, die Grundstücksinformationen in Hawley, Minnesota, darstellen. Auf jedes dieser Elemente kann in Python mit den richtigen Befehlen zugegriffen werden. Global Mapper hat Wrapper-Klassen hinzugefügt, die über Python-Scripting auf die C++-Funktionen zugreifen können.

Figure-1.1.png

Abbildung 1.1. Eine doppelt verschachtelte for-Schleife mit dem beabsichtigten Ziel, auf ein Flächenelement zu verweisen und dann auf das Attribut "EMV_TOTAL".

Extrahierte Werte in einem benutzerdefinierten JSON-Dateiformat speichern

Da wir nun eine Liste mit Datenwerten erstellt haben, die für unseren Prozess wichtig sind, können wir einige gängige Python-Bibliotheken zum Speichern und Interpretieren nutzen.

Das Speichern von Daten ist ein Schlüsselelement für die Aufbewahrung und Wiederverwendung. So könnten beispielsweise die in einer JSON-Datei gespeicherten Wohnungsdaten an ein SQL-Backend gesendet und auf einer Webseite erneut angezeigt werden. Automatisierte Arbeitsabläufe machen eine Wartung überflüssig, sodass sich Entwickler auf wichtigere Aufgaben konzentrieren können.

Screenshot-2024-10-03-165122-2.png

Abbildung 1.2. Python-Datenstrukturen, formatiert für die Verwendung in JSON-Dateien

Eine Methode wäre, diese Werte in einem benutzerdefinierten JSON-Format zu speichern, indem die integrierte Python-JSON-API importiert und genutzt wird. Dazu können wir die Datenstruktur erstellen, einige Bezeichner hinzufügen und die Preise der Häuser aus dem EMV_TOTAL-Attribut in die JSON-Datei innerhalb der for-Schleife schreiben.

Figure-1.3.png

Abbildung 1.3. Implementierung des Python-Wörterbuchs und Schreiben von Inhalten in eine JSON-Datei

Da Python-Wörterbücher eine ähnliche Struktur wie JSON-Daten haben, erstellen wir zunächst zwei Wörterbücher und verschachteln sie ineinander. In jeder Schleife wird eine neue Instanz von home_features erstellt und mit einem Wert aus dem Attribut EMV_TOTAL gefüllt. Diese Datenstrukturen können so komplex oder einfach sein, wie Sie sie benötigen, um die für Ihr Projekt erforderlichen Daten darzustellen.

Durch die Einbindung dieses zusätzlichen Codes können wir in Sekundenschnelle einen riesigen Bestand an Wohnungsdaten erstellen. Und JSON-Daten sind erst der Anfang! Mit dieser Methode können wir uns mit Backend-Servern verbinden und Websites sowie private und öffentliche Rechenzentren automatisch aktualisieren. Sie können auch benutzerdefinierte Berichte erstellen, um Datenpunkte in Form von Kreis-, Linien- und Streudiagrammen zu visualisieren.

Figure-1.4.png

Abbildung 1.4. Beispiel für automatisch aus der Python-Datei generierte JSON-Daten

Integrierte Python-Tools zur Erstellung ansprechender vorläufiger Datenvisualisierungen

Zum Abschluss dieses Blogs wollen wir uns die Daten, mit denen wir gearbeitet haben, genauer ansehen. Python bietet eine Reihe von Möglichkeiten zur Datenvisualisierung. Die einfachste besteht darin, die Daten mit "nice print"-Anweisungen an das Terminal auszugeben wie in Abbildung 1.5.

Figure-1.5.png

Abbildung 1.5: Terminalausgabe basierend auf den im Rahmen des Global Mapper Projekts gesammelten Werten

Das ist aber ziemlich langweilig. Versuchen wir etwas Besseres! Glücklicherweise verfügt Python auch über integrierte Werkzeug wie MatPlotLib und Numpy, mit denen langweilige Daten spannend aussehen können. Mit diesen Werkzeug können wir mit minimalem Aufwand faszinierende Grafiken erstellen.

Visualization-Python-1.png

Abbildung 1.6: Mit dem Python-Modul MatPlotLib können wir unsere Werte als Tortendiagramm neu gestalten. Das Tortendiagramm zeigt die Verteilung der Immobilienpreise in Bereichen von 100.000 USD.

Mit unseren automatisch generierten Diagrammen aus dem Global-Mapper-Datensatz können wir andere Vektor-GIS-Dateien nutzen, um automatisch eine der von uns erstellten Ausgaben zu generieren. Dies könnte in Excel eine Stunde oder länger dauern, wenn es manuell durchgeführt wird. Mit Python in Global Mapper ist dies jedoch auf einen Schlag erledigt.

In Teil 2 dieses Artikels werden wir uns eingehender mit dem Reverse Engineering von Global Mapper-Arbeitsabläufen und der Erstellung eigener Geodaten aus CSV-Dateien befassen.

Wenn Sie die Global Mapper-Funktionalität in einem Python-Skript nutzen oder das Werkzeug-Kit in Ihre eigenen Apps integrieren möchten, sehen Sie sich das Global Mapper SDK® an.

Um den Blog zu verfolgen, laden Sie die Dateien hier herunter.

Warenkorb (0 Artikel)