Mehr

Python-Skript zur Berechnung der Fläche eines Polygons

Python-Skript zur Berechnung der Fläche eines Polygons


Ich suche nach einem Python-Code für dieses Polygon. Ich muss die Fläche innerhalb dieses Polygons berechnen und bin neu in der Programmierung. (Sehr neu). Kann mir jemand dabei helfen? Ich muss dafür einen Python-Code verwenden, ich kann keine anderen Mittel verwenden.


Hier ist ein Beispiel dafür, wie Sie den Bereich mit einem Suchcursor ermitteln können:

polygon_layer = "C:Polygon.shp" mit arcpy.da.SearchCursor(polygon_layer, ("[email protected]", "[email protected]")) as search_cursor: für Zeile in search_cursor: oid = row[0] Geometrie = row[ 1] print "OID {0}: area is {1}".format(oid, Geometrie.area)

OS von Osgeo importieren ogr importieren daShapefile = r"C:Users
ew1.shp" #Pfad, in dem Ihre Shape-Datei vorhanden ist driver = ogr.GetDriverByName('ESRI Shapefile') dataSource = driver.Open(daShapefile,1) # 0 bedeutet schreibgeschützt. 1 bedeutet beschreibbar. # Überprüfen Sie, ob Shapefile gefunden wird. if dataSource is None: print 'Konnte %s nicht öffnen' % (daShapefile) else: print 'Opened %s' % (daShapefile) layer = dataSource.GetLayer() featureCount = layer.GetFeatureCount() print "Anzahl der Features in % s: %d" % (os.path.basename(daShapefile),featureCount) print "
" new_field = ogr.FieldDefn("Area", ogr.OFTReal) new_field.SetWidth(32) new_field.SetPrecision(2) # Zeile hinzugefügt, um die Genauigkeit Layer.CreateField(new_field) für Feature im Layer festzulegen: geom = feature.GetGeometryRef() area = geom.GetArea() print area feature.SetField("Area", area) layer.SetFeature(feature)

"Dieser Code hier findet die Fläche der Polygone in Ihrer Shape-Datei und fügt Ihrer Datenbank ein Feld namens "Area" mit dem Wert der Fläche jedes Polygons hinzu


dasselbe wie die akzeptierte Antwort, aber es ist ein Einzeiler.

area = arcpy.da.FeatureClassToNumPyArray(polygon_layer, '[email protected]')[0][0]

für mehrere, wenn Sie die Gesamtfläche wünschen

from arcpy import da total_area = sum(i[0] for i in da.FeatureClassToNumPyArray(water_feature, '[email protected]'))


Python-Programm zum Berechnen der Fläche zweidimensionaler Formen

Dies ist das erste Miniprojekt, das ich selbst mit Python 2.7 abgeschlossen habe. Ich habe ein einfaches Programm geschrieben, das die Fläche verschiedener zweidimensionaler Formen berechnet und es funktioniert. Ich möchte wissen, was Sie davon halten und auch wissen, wie es verbessert werden kann und wenn ich etwas falsch gemacht habe, also ist dies mein Code:

Es gibt noch eine Sache, die ich hinzufügen möchte, aber ich weiß nicht wie. Ich möchte eine Endlosschleife machen, wenn der Benutzer eine andere Antwort als 'ja' oder 'nein' auf die Frage "Möchtest du die Fläche berechnen" eingibt eine andere Form?" , bis der Benutzer die richtige Antwort eingibt, die ja oder nein lautet, dann bricht die Schleife und es wird neu berechnet, irgendwelche Tipps?


Wie überprüfe ich, ob der Punkt innerhalb eines Polygons liegt?¶

Rechnerisch wird die Erkennung, ob sich ein Punkt innerhalb eines Polygons befindet, am häufigsten mit einer speziellen Formel namens Ray Casting-Algorithmus durchgeführt. Glücklicherweise müssen wir eine solche Funktion nicht selbst erstellen, um die Point-in-Polygon-Abfrage (PIP) durchzuführen. Stattdessen können wir die binären Prädikate von Shapely nutzen, die die topolocischen Beziehungen zwischen geografischen Objekten wie dem PIP bewerten können, wie wir hier interessiert sind.

Grundsätzlich gibt es zwei Möglichkeiten, PIP in Shapely durchzuführen:

  1. Verwenden einer Funktion namens .within(), die überprüft, ob ein Punkt innerhalb eines Polygons liegt
  2. mit einer Funktion namens .contains(), die prüft, ob ein Polygon einen Punkt enthält

Hinweis: obwohl wir hier von sprechen Punkt im Polygon-Betrieb ist es auch möglich zu prüfen, ob sich ein LineString oder Polygon in einem anderen Polygon befindet.

Okay, wir können also sehen, dass der erste Punkt innerhalb dieses Polygons zu liegen scheint und der andere nicht.

Somit ergeben sich beide Möglichkeiten der Überprüfung der räumlichen Beziehung auf die gleiche Weise.

Welches solltest du dann verwenden? Es hängt davon ab:

wenn Sie viele Punkte und nur ein Polygon haben und versuchen herauszufinden, welcher davon innerhalb des Polygons liegt:

  • Sie müssen über die Punkte iterieren und einen nach dem anderen überprüfen, ob dies der Fall ist innerhalb() das angegebene Polygon

wenn Sie viele Polygone und nur einen Punkt haben und herausfinden möchten, welches Polygon den Punkt enthält

  • Sie müssen über die Polygone iterieren, bis Sie ein Polygon finden, das enthält() der angegebene Punkt (vorausgesetzt, es gibt keine überlappenden Polygone)

Schneiden¶

Eine weitere typische Geodatenoperation besteht darin, zu sehen, ob eine Geometrie eine andere schneidet oder berührt. Der Unterschied zwischen diesen beiden besteht darin:

  • Wenn sich Objekte schneiden, müssen sich die Grenze und das Innere eines Objekts in irgendeiner Weise mit denen des anderen schneiden.
  • Wenn ein Objekt das andere berührt, muss nur (mindestens) ein einziger Punkt ihrer Grenzen gemeinsam sein, aber ihr Inneres sollte sich NICHT schneiden.

Tatsächlich tun sie es und wir können dies sehen, indem wir die Merkmale zusammen darstellen

Somit wird line_b von demselben Knoten ((1,1)) fortgesetzt, an dem line_a endet.

Wenn sich die Linien jedoch vollständig überlappen, berühren sie sich aufgrund der räumlichen Beziehungsregel nicht, wie wir sehen können:


Python

Der Python-Wrapper ist nützlich für Python-Entwickler, die die what3words Public API nahtlos in ihre Python-Anwendungen integrieren möchten, ohne die Low-Level-API-Aufrufe selbst verwalten zu müssen.

Die what3words-API ist eine schnelle, einfache Schnittstelle, mit der Sie 3-Wort-Adressen wie ///index.home.raft in Breiten- und Längenkoordinaten wie (-0.203586, 51.521251) und umgekehrt konvertieren können. Es verfügt über eine leistungsstarke Autosuggest-Funktion, die Benutzereingaben validieren und automatisch korrigieren und auf bestimmte geografische Gebiete beschränken kann (dies unterstützt das Suchfeld auf unserer Kartenseite). Sie können einen Abschnitt des what3words-Rasters anfordern (das als GeoJSON zur einfachen Anzeige auf Online-Karten angefordert werden kann) und die Liste aller von what3words unterstützten Sprachen anfordern. Für fortgeschrittene Benutzer kann Autosuggest verwendet werden, um die Sprachausgabe nachzubearbeiten. Siehe Links auf der linken Seite, um zu navigieren.

Alle Koordinaten sind Breiten-Längen-Paare im Standard WGS-84 (wie er weltweit in GPS-Systemen verwendet wird). Alle Breitengrade müssen im Bereich von -90 bis 90 (einschließlich) liegen.


1 Antwort 1

Beachten Sie einfach, dass das Polynom $frac . ist$ hat Wurzeln $operatorname(2pi k/8)$ für $k in <1, ldots, 7>$.

Der Wert ist also die Fläche des regelmäßigen Achtecks ​​minus der Fläche eines Dreiecks, das durch zwei benachbarte Seiten gebildet wird.

Die Fläche eines Achtecks ​​(durch Aufspaltung in Dreiecke) mit Radius $1$ beträgt $8 cdot frac<1> <2>cdot frac> <2>= 2sqrt<2>$.

Das ist ein Einheitsquadrat innerhalb eines Achtecks. Wenn Sie das Quadrat entfernen, werden $4$ kleine Dreiecke sichtbar. Somit ist die Fläche eines kleinen Dreiecks $frac <2sqrt<2>- 1> <4>= frac> <2>- frac<1><4>$.


Python-Skript zur Berechnung der Fläche eines Polygons - Geographische Informationssysteme

Aufstiegspfad für einen GIS-Analysten, der sich mit Python für GIS vertraut machen möchte: vom Lehrling zum Guru

Dies ist in Arbeit

Dies ist ein Versuch, eine strukturierte Sammlung von Ressourcen bereitzustellen, die einem GIS-Experten helfen könnte, Python bei der Arbeit mit Geodatenmanagement, Kartierung und Analyse zu verwenden. Die Ressourcen sind nach Fortschrittskategorien geordnet, sodass im Grunde jeder in der Lage sein sollte, unterwegs etwas Neues zu lernen.

Die Ressourcen umfassen Bücher, Webseiten und Blog-Posts, Online-Kurse, Videos, Q/A von GIS.SE, Links zu Code-Snippets und einige Lektüre vor dem Schlafengehen.

Die Ressourcen sind sowohl für Benutzer von Esri-Software als auch für Open-Source-GIS-Experten geeignet.

Sie sollten in der Lage sein, kurze einfache Skripte in reinem Python ohne Verbindung zum GIS zu schreiben. Um die Grundlagen von Python zu erlernen, finden Sie online eine Vielzahl von Ressourcen wie CodeAcademy, Learn Python the Hard Way, Dive into Python, A Whirlwind Tour of Python und viele andere Bücher von Python.org und dieses GitHub-Repository für kostenlose Programmierbücher .

Wenn Sie Python nicht auf diese Weise lernen möchten und lieber nachholen möchten, wie Python für GIS verwendet werden kann:

Diese Bücher durchgehen kann ausreichen, um alles zu lernen, was Sie als Esri- bzw. Open-Source-GIS-Benutzer benötigen.

  • Von Esri geleiteter Kurs Einführung in Geoverarbeitungsskripte mit Python
  • Kostenloser Esri-Webkurs Python für alle
  • Esri-Webkurs Grundlagen von Python (für ArcGIS 10)
  • Penn State kostenloser Webkurs GIS-Programmierung und -Automatisierung

Suchen Sie auf der Esri Video-Webseite nach Videos, suchen Sie nach Python und sortieren Sie nach den neuesten. Ein URL-Beispiel.

  • Esri-Video Arbeiten mit Feature-Daten mithilfe von ArcPy
  • Esri-Video ArcMap und Python: Schließen der VBA-Lücke
  • Esri-Video Python: Erste Schritte 2014
  • Esri-Video Python: Entwicklung von Geoverarbeitungswerkzeugen
  • Esri-Video Python: Erste Schritte 2013

An dieser Stelle sollten Sie in der Lage sein:

  • einige einfache Skripte schreiben, entweder mit arcpy site-package oder ogr/gdal/pyqgis-Bibliotheken
  • Melden Sie Informationen zu Ihren GIS-Assets (Datenformat, Geometrietyp, Datenschema, Raumbezug)
  • Code zum Aufrufen von ArcGIS-Geoverarbeitungswerkzeugen schreiben (das zurückgegebene arcpy.Result-Objekt überprüfen) / ogr-Geometriemethoden / PyQGIS-Werkzeuge aus Python-Code
  • Führen Sie eine Operation an mehreren Datensätzen im Batch-Modus durch, indem Sie arcpy / ogr-Auflistungsfunktionen verwenden
  • Lesen und Aktualisieren von Attributen und Geometrie von Features mithilfe von arcpy.da-Cursors oder ogr-Datenquellenmethoden
  • Erstellen und Bedienen von arcpy.Geometry()-Objekten (Zugriff auf ihre Eigenschaften und Methoden) oder ogr.Feature()
  • Erstellen Sie eine ArcGIS-Toolbox mit einem einfachen Skriptwerkzeug, das eine Python-Quelldatei ausführt
  • Melden von Informationen zu Karten-Layern (z. B. Datenquellen, unterbrochene Pfade, Definitionsabfragen) in einem ArcMap-Kartendokument (.mxd) mit dem arcpy.mapping-Modul oder pyqgis-Modul

An dieser Stelle sollten Sie vertraut sein mit:

  • Variablen unterschiedlicher Datentypen (numerisch, String, Boolean, Datum etc.)
  • Datenstrukturen unterschiedlicher Art (Liste, Tupel, Wörterbuch, Menge)
  • for- und while-Schleifen, if-elif-else-Blöcke
  • Import von externen Python-Modulen und -Paketen (zB import os )
  • Funktionen und wie sie funktionieren (z. B. Eingabeargumente und Return-Anweisung)
  • Lesen/Schreiben von Textdateien mit der integrierten Open-Funktion
  • Lesen/Schreiben von .csv-Dateien mit dem csv-Modul und dem Unicodecsv-Modul

Dieser Abschnitt enthält Beispiele für Aufgaben, die Sie möglicherweise irgendwann schreiben müssen. Die Implementierung dieser Aufgaben in Python-Code wäre ein gutes Zeichen dafür, dass Sie die Grundlagen von Python für GIS beherrschen.

  • Abrufen einer Liste von Feldnamen vom Typ Datum in einer File-Geodatabase-Feature-Class
  • mehrere Shapefiles gleichzeitig in eine File-Geodatabase kopieren
  • Projizieren Sie alle Raster in einem Ordner neu und kopieren Sie die Ergebnisse in einen neuen Ordner
  • Datenquellen für Layer in einem Kartendokument aktualisieren und ein neues Kartendokument speichern
  • Informationen zu Ihren GIS-Assets in eine TXT- oder CSV-Datei schreibenGIS
  • Lernen Sie verschiedene Python-IDEs kennen und finden Sie heraus, welche Ihnen am besten gefällt. Viele beginnen mit kostenlosem PyScripter und wechseln dann zu etwas anderem:
    • SO Frage Welche IDE für Python verwenden?
    • Überprüfen Sie PyCharm, WingIDE, Eclipse PyDev, Visual Studio Code, Python Tools für Visual Studio oder Rich-Text-Editoren wie Sublime mit Python-Unterstützung
    • Lesen Sie den Esri-Blogpost Auswahl der richtigen integrierten Python-Entwicklungsumgebung

    Für den Einstieg in die Python-Entwicklung ist Visual Studio Code mit Python-Erweiterung(en) wohl die beste Wahl. Es ist völlig kostenlos, Sie können es auf jeder Ihrer physischen oder virtuellen Maschinen installieren und es bietet eine hervorragende Unterstützung für die Python-Entwicklung. Die Wahl zwischen kommerziellen IDEs, Wing IDE oder PyCharm wäre eine gute Wahl.

    Erfahren Sie mehr über VCS wie Git zum Verwalten des Quellcodes. BitBucket von Atlassian und GitLab bietet kostenlose private Repositorys und GitHub bietet kostenlose öffentliche Repositorys (Sie müssen bezahlen, um private zu erstellen).

    • Finden Sie heraus, ob in Ihrem Unternehmen intern eine VCS-Lösung bereitgestellt wird, wie z. B. Microsoft TFS, mit der Sie den Code einchecken können
    • Wenn Sie tiefer in Git eintauchen möchten, lesen Sie das Git Pro-Buch kostenlos online

    Erfahren Sie mehr über Typhinweise in Python. Es gibt einen ausgezeichneten Blog-Beitrag über die Verwendung von Typhinweisen in PyCharm und eine Hilfeseite von Wing IDE-Mitarbeitern. Finden Sie heraus, ob Ihre Python-IDE statische Codeanalyse unterstützt, und beginnen Sie mit der Verwendung der Typhinweise (mit Unterstützung für Python 2.7 und 3.5+).

    Erfahren Sie, wie Sie andere Python-Programme oder ausführbare Dateien von Ihrem Programm mit dem Subprocess-Modul ausführen. Dies ist praktisch, wenn Sie ein .exe-Programm mitten in Ihrem Python-Programm ausführen müssen. Dies ist häufig der Fall, wenn Sie am Anfang des Skripts arcpy / ogr-Code verwenden, dann aber die ArcObjects-Konsolen-App / die kompilierte C++-App ausführen müssen, um etwas zu erledigen, bevor Sie fortfahren können.

    • Esri-Blog Generieren einer Auswahlliste aus einem Feld für ein benutzerdefiniertes Skriptwerkzeug und Python- und GIS-Blog 2
    • Konvertieren Sie die ArcGIS-Skript-Toolbox (.tbx) in die Python-Toolbox (.pyt) mit tbxtopyt
    • Esri-Blog So debuggen Sie Python-Toolboxen in 3 einfachen Schritten
    • Esri-Blog Feldzuordnung und Python-Skripterstellung
    • Blog des Esri ArcPy-Teams
    • Komfortfunktionen für arcpy in repo arcapi
    • Beispiel-ArcGIS-Toolbox SampleArcPyMappingScriptTools_10_v1 für die Arbeit mit arcpy.mapping (über 20 Werkzeuge)
    • Erfahren Sie, wie Sie pip zum Verwalten von Python-Paketen verwenden
    • Lernen Sie virtualenv bzw. venv für die Verwaltung von Python 2 für Python 3-Umgebungen.
    • Lernen Sie Tox und Retox, um Ihre Tests/Programme auf mehreren Python-Installationen auszuführen (kann praktisch sein, wenn Sie Skriptwerkzeuge erstellen, die sowohl in ArcGIS Desktop mit Python 2.7 als auch in ArcGIS Pro mit Python 3.x oder QGIS mit Python 2.7 und QGIS mit Python 3 verwendet werden können .x)
    • Lernen Sie die R-ArcGIS Bridge kennen, um Python und R-Code zu kombinieren

    An dieser Stelle sollten Sie in der Lage sein:

    • automatisieren Sie die Kartenerstellung mit arcpy.mapping mit datengesteuerten Seiten oder pyqgis
    • .pdf-Dateien verwalten (z. B. neu anordnen, zusammenführen, aufteilen) mit arcpy oder reinen Python-Paketen wie pypdf2
    • Exportieren Sie das ArcMap-Kartendokument-Layout in verschiedene Dateiformate wie .png und .pdf
    • Aktualisieren des Inhalts von Textelementen im Layout eines ArcMap-Kartendokuments
    • Ausführen von SQL-Abfragen aus Python mit arcpy.ArcSDESQLExecute() oder GDALDataset::ExecuteSQL()
    • Verwenden Sie die Klassen FieldInfo , FieldMap und FieldMappings von arcpy oder ogr.FieldDefn(), um Datenschemaänderungen zu verwalten
    • Passen Sie das Verhalten von benutzerdefinierten ArcGIS-Skriptwerkzeugen mithilfe der ToolValidator-Klasse an oder erstellen Sie einfache QGIS-Plugins
    • Beginnen Sie mit der Verwendung von Python-Toolboxen und Python-Add-Ins in ArcGIS, wenn es sinnvoll ist
    • debuggen Sie arcpy-gesteuerten Code mit Hilfe von Geoverarbeitungsnachrichten
    • Schreiben kleinerer Unit-Tests für GIS-Workflows
    • Umgang mit JSON-Daten in Python und arcpy und GeoJSON für ogr
    • Lesen Sie Excel-Dateien mit dem xlrd-Python-Paket
    • Generieren Sie einfache Excel-Dateien aus Datensätzen mit Python und xlsxwriter-Paket oder xlwd
    • Verwenden von arcpy.da.Walk() und os.walk() zum rekursiven Durchsuchen von Ordnern mit GIS-Datensätzen

    An dieser Stelle sollten Sie vertraut sein mit:

    • Python-Pakete mit pip installieren
    • PYTHONPATH-Umgebungsvariable und Konzept von Pfaden und Ausführen von Python-Programmen von cmd
    • Python 3, um Code schreiben zu können, der später auf ArcGIS Pro / QGIS 3.x portiert wird
    • Python PEP-8-Styleguide
    • Datenstrukturen des Sammlungsmoduls wie defaultdict , namedtuple , Counter
    • Listen-, Wörterbuch- und Mengenverständnisse + Mengentheorie-Operationen
    • Aufzählen von Sequenzen mit der integrierten Aufzählungsfunktion
    • eigene Funktionen schreiben und die Argumente mit *args und **kwargs und Komfortfunktionen behandeln handling
    • Zugriff auf DBMS-Datenbanken mit Python
    • Arbeiten mit festplattenbasierten Datenbanken wie SQLite von Python
    • Verwendung nicht-lateinischer Zeichen in der Quelldatei, Umgang mit Unicode, Kodierung von Shebang
    • Python-Ausnahmen und Try/Exception-Block
    • Python-Rückverfolgungsmodul
    • Tupel-Entpacken mit Funktionsaufrufen
    • E-Mails mit Python senden
    • Zugriff auf FTP-Sites mit Python mithilfe des ftplib-Moduls
    • Ausführen von Python-Dateien mit dem cmd und einem Aufgabenplaner
    • Komprimieren von Ordnern und Dateien mit Python und Lesen/Entpacken von Archivdateien (mit dem zipfile-Modul für .zip-Dateien und tarfile für .tar- und .tar.gz-Dateien)
    • Senden von SMS mit Python und Twilio
    • Logging Ihrer Python-Programme (mit dem Logging-Modul) - praktisch zu verwenden anstelle von print-Anweisungen

    Erfahren Sie, wie Sie ArcObjects von Python verwenden:

    • GIS.SE Zugriff auf ArcObjects von Python aus?
    • GIS.SE-Richtlinien für die Verwendung von ArcObjects aus Python
    • Esri-Video Python mit C++ und ArcObjects erweitern
    • Esri hat ein Live-Trainingsseminar zu ArcObjects aufgezeichnet
    • Esri Hilfeseite ArcObjects lernen hilft Ihnen zu bestimmen, welche ArcObjects die für Ihre Anpassung erforderliche Funktionalität bieten provide
    • Esri-Hilfeseite Reading OMDs bietet eine Beschreibung der Diagrammnotation, die in den ArcObjects-Objektmodelldiagrammen (OMDs) verwendet wird.
    • Blogbeitrag Zugriff auf ArcObjects in Python mit Tutorial zu ArcObjects

    Erfahren Sie, wie Sie über Python auf ArcGIS Pro .NET-Bibliotheken zugreifen:

    • Lernen Sie die Grundlagen von C# oder VB.NET
    • Erfahren Sie, wie Sie das Python-Paket verwenden
    • Erfahren Sie, wie Sie mit clr eine Klassenbibliothek erstellen, um von Python aus auf ihre Methoden zuzugreifen
    • Erfahren Sie in der Pro .NET SDK-Hilfe, wie Sie eine Konsolen-App erstellen, die Pro-Bibliotheken einbettet

    Erfahren Sie mehr über andere GIS-Pakete:

    • Sehen Sie sich eine umfassende Liste der Essential Python Geospatial Libraries an (auch auf dieser GitHub-Seite verfügbar).
    • Sehen Sie sich die Reihe aufgezeichneter Workshops zur Verwendung von Open-Source-GIS-Paketen an: Geodaten in Python: Datenbank, Desktop und das Web
    • Sehen Sie sich die Reihe verschiedener Vorträge zur Verwendung von Open-Source-GIS-Paketen an: Geospatial Python Talks

    Erfahren Sie, wie Sie Desktop-GUI-Anwendungen mit Tkinter, WxPython, PyQt, PySide oder Kivy erstellen und diese dann in ArcGIS einbetten oder einfach auf räumliche Datensätze aufmerksam machen:

    Erfahren Sie mehr über Computergeometrie und finden Sie heraus, wie sie Ihnen bei Ihrer Arbeit helfen kann. Vielleicht könnten Sie ein Werkzeug verwenden, das in Ihrem Desktop-GIS nicht vorhanden ist, oder Sie suchen nach etwas, das schneller funktioniert. Es gibt zwei Hauptbibliotheken für Computergeometrie und beide wurden in C geschrieben:

      . Auf seinen Python-Wrapper wird über das Modul scipy.spatial zugegriffen, ein außergewöhnliches Werkzeug für jeden, der mit geometrischen Daten zu tun hat. . Seine Python-Bindungen werden mit SWIG generiert. Die CGAL ist etwas schwierig zu installieren und zu kompilieren, bietet aber viel umfangreichere Funktionen.
  • Sehen Sie sich Computational Geometry in Python - PyCon 2016 und Python Powered Computational Geometry an, um mehr über qhull bzw. CGAL zu erfahren.
  • Erfahren Sie mehr über die Verwendung von Python mit FME Desktop:

    • Finden Sie heraus, wie Sie eine FME-Workbench von Python aus ausführen
    • Finden Sie heraus, wie Sie Python-Code aus einer FME-Workbench mit dem PythonCaller-Transformator aufrufen
    • Erfahren Sie, wie Sie mit Hilfe der Python-API von FME Objects Daten verarbeiten können, ohne eine FME-Workbench zu verwenden

    Lernen Sie die ArcGIS-REST-API kennen:

    • Lernanfragen-Modul
    • ArcGIS-Toolbox ArcGIS Server Administration Toolkit - 10.1+
    • Lernen Sie die ArcGIS Python API kennen, um ArcGIS Online-/Portal-Organisationen und ArcGIS Server-Ressourcen zu verwalten

    Erfahren Sie mehr über die Verwaltung und Verarbeitung größerer Geodatensätze, da die Leistung entscheidend ist:

    • Erlernen von Profiling-Techniken, um herauszufinden, welcher Code die meiste Zeit zur Ausführung benötigt (cProfile)
    • Lernen Sie Benchmarking, um die Ausführungszeit für Funktionen zu vergleichen, die mit verschiedenen Tools dasselbe tun (z. B. nach der schnellsten Methode zum Zählen von Punkten in Polygonen suchen).
    • Lesen Sie den Esri-Blog Zugriff auf mehrdimensionale wissenschaftliche Daten mit Python
    • Erfahren Sie im Esri-Blogbeitrag Multiprocessing with ArcGIS – Approaches and Considerations (Teil 1), wie Sie das Multiprocessing-Modul mit ArcGIS verwenden.
    • Lesen Sie den Esri-Blog Erfolgreiche Überlagerung großer, komplexer Datasets in der Geoverarbeitung

    Erfahren Sie mehr über die Verwendung von Python für Big Data-Management und -Analyse

    • Erfahren Sie mehr über PySpark, mit dem Sie Spark in Python verwenden können, sowie über verschiedene Geobibliotheken, mit denen Sie Geoanalysen mit Spark durchführen können: magellan , Spatialspark und GeoSpark
    • Sehen Sie sich ein Video an, das die Verwendung von Spark für die Analyse großer Daten zeigt: Large Scale Geospatial Analytics mit Python, Spark und Impala
    • Lesen Sie einen Artikel über die Verwendung von Hadoop und Presto für die Analyse großer Datenmengen bei Uber: Query the planet: Geospatial Big Data Analytics bei Uber
    • Erfahren Sie mehr über die Geodatenfunktionen von Presto und den Presto Python-Client
    • Erfahren Sie mehr über Omnisci Geospatial Map-d Core und seine Python JayDeBeApi
    • Erfahren Sie mehr über Geomesa und seine Integration mit der Spark Python API für den Zugriff auf Daten in GeoMesa-Datenspeichern
    • Machen Sie sich mit der Esri Geometry API für Java vertraut, da sie von vielen Java-basierten Big-Data-Plattformen verwendet wird, die eine Art raumbezogene Unterstützung bieten

    Erfahren Sie mehr über die Esri File Geodatabase C++ API mit .NET-Bindungen, um programmgesteuert mit C++ oder .NET mit File-Geodatabases arbeiten zu können

    • Erfahren Sie, wie Sie die GDAL-Treiber von ESRI File Geodatabase (OpenFileGDB) und ESRI File Geodatabase (FileGDB) verwenden, um programmgesteuert oder mit Open-Source-Werkzeugen eine Verbindung mit der Esri File-Geodatabase herzustellen
    • Entdecken Sie ein Beispiel für die Verwendung von GDALDataset::ExecuteSQL() in einem PyQT-Desktop-SQL-Editor GDBee

    Erfahren Sie, wie Python im Unternehmen verwendet wird, indem Sie den Videokurs Enterprise Software with Python O'reilly ansehen

    Lernen Sie IPython und das Konzept der reproduzierbaren Forschung kennen:

    Erfahren Sie mehr über die Verwendung von Python für die Webentwicklung:

    • Lerne Flakon und Django. Beginnen Sie mit der Flasche und wechseln Sie erst dann zu Django
    • Lernen Sie Geodjango, um Geodatensätze im Web bereitzustellen. Folien durchlesen ArcGIS JavaScript Plus Django entspricht dynamischer Web-App

    Erfahren Sie mehr über das nlpk-Python-Paket, um mit menschlichen Sprachdaten zu arbeiten (z. B. das Parsen von Adressdaten)

    Erfahren Sie mehr über das regex Python-Paket, um mit regulären Ausdrücken in Python zu arbeiten (z. B. das Finden von Adressen in einem bestimmten Format)

    Erfahren Sie mehr über difflib und die Levenshtein C-Erweiterung, um einen Fuzzy-String-Abgleich durchzuführen (z. B. das Finden der nächsten Adresszeichenfolge in der Registrierung für eine Eingabeadresse)

    Lernen Sie das Selenium Python-Paket kennen, um das Testen von Web-Apps zu automatisieren. Lesen Sie hier die Dokumentation für Python-Bindungen

    Erfahren Sie mehr über numerisches Rechnen und Data Science:

    • Installieren Sie Anaconda und erfahren Sie mehr über conda. Dies ist hilfreich, da Python in ArcGIS Pro mithilfe einer Conda-Umgebung implementiert wird
    • Installieren Sie die wissenschaftliche Python-Distribution von Enthought Canopy und erfahren Sie, welche Tools sie hat
    • Lernen Sie Numerik, Naturwissenschaften und Daten mit Python mit scipy-Lectures
    • Erfahren Sie, was scipy.spatial für Ihre GIS-Arbeit leisten kann
    • Python for Data Analysis und Python for Computational Science and Engineering lesen (kostenloses Buch)

    Erfahren Sie, wie Sie von Python aus eine Verbindung zu verschiedenen DBMS herstellen:

    • Für Microsoft SQL Server - pymssql
    • Für Oracle - cx_Oracle
    • Für PostgreSQL - psycopg2 oder sqlalchemy

    Erfahren Sie mehr über die Verwendung von maschinellem Lernen mit Python:

    • Beginnen Sie mit der Verwendung von scikit-learn für verschiedene GIS-bezogene Operationen wie Datenklassifizierung und -regression sowie scikit-image für die Bildverarbeitung (z. B. Erkennung von Satellitenbildern)

    Erfahren Sie mehr über die Verwendung von Computer Vision (CV) mit Python für die Bildverarbeitung:

    Erfahren Sie mehr über das Erstellen und Parsen von HTML:

    • Analysieren und konstruieren Sie HTML-Seiten mit Python mit BeautifulSoup . Diese Fähigkeit ist praktisch, wenn eine Webseite nach Informationen durchsucht und in einen GIS-Datensatz geladen werden soll oder wenn Sie HTML-Berichte erstellen
    • Erfahren Sie, wie das Registrantenpaket Informationen zu den Inhalten der Esri-Geodatabase meldet
    • Erfahren Sie mehr über Web-Scraping mit Scrapy

    Erfahren Sie mehr über das Erstellen und Parsen von XML:

    Erfahren Sie mehr über das Testen von Quellcode, Linting und Refactoring:

    • Lernen Sie das integrierte Unittest-Modul und das erweiterte pytest-Framework kennen
    • Lernen Sie das Modul cover.py kennen, um Berichte zur Codeabdeckung zu erstellen
    • Lernen Sie die Hypothese, um leistungsfähigere Unit-Tests zu schreiben
    • Lernen Sie Python-Linters wie pylint , flake8 und pyflakes8, um den Code sauber zu halten
    • Erfahren Sie mehr über Python-Styleguides wie den Google-Styleguide. Dies ist besonders nützlich, wenn Sie anfangen, in einem Team zu arbeiten
    • Erfahren Sie mehr über den umfassendsten Python-Linter wemake-python-styleguide . Es ist nur ein Flake8-Plugin, es kombiniert jedoch Verstöße von vielen anderen Flake8-Plugins
    • Lernen Sie Python-Formatierer wie yapf und autopep8 kennen, um den Quellcode automatisch neu zu formatieren, damit er einem Stil entspricht. Es ist am besten, autopep8 mit aktivierter aggressiver Option auszuführen, um den Code neu zu formatieren, und dann yapf für den Ergebniscode auszuführen
    • Lernen Sie den statischen Code-Analysator von SonarPython kennen, um Code-Geruchs und Refactoring-Optionen zu finden. Viele der Regeln von SonarPython sind in wemake-python-styleguide implementiert
    • Erfahren Sie mehr über Python-Schnittstellendateien (PEP-484) und wie Sie diese verwenden, um Ihrer Python-IDE zu helfen, statische Codeanalysen durchzuführen und bessere Intelligenz bereitzustellen.

    Beginnen Sie mit der Suche nach bestimmten Dingen außerhalb von GIS-Anwendungen mit reinem Python, zum Beispiel mit Pandas

    Erfahren Sie Best Practices zum Organisieren von Konfiguration und Einstellungen für einen größeren Workflow, bei dem Sie die Konfigurationswerte getrennt von der Geschäftslogik halten müssen (z. B. mit json , ConfigParser oder mit OOP-Konstruktoren).

    Erfahren Sie, wie Sie Python mit C oder C++ erweitern:

    • Erfahren Sie, wie Sie eine C++-Erweiterung für Python erstellen (kompilierte .pyd-Datei, die als reguläres Modul in das Python-Modul importiert werden kann)
    • Gehen Sie den Kurs Schnittstelle zu anderen Sprachen von Enthought durch, um mit der Erstellung nativer Python-Module zu beginnen
    • Lernen und vergleichen Sie verschiedene Alternativen zum Umschließen von C++-Code für Python, z. B. die Verwendung von Boost , SWIG , der nativen Python C-API und pybind11 . pybind11 ist das benutzerfreundlichste

    An dieser Stelle sollten Sie in der Lage sein:

    • Ausführen von ArcObjects-Code aus Python mithilfe der comtypes-Bibliothek
    • Exportieren Sie die Daten aus Tabellen und Feature-Classes in Excel mit benutzerdefinierter Formatierung mit xlsxwriter
    • Generieren Sie mit reportlab . von Grund auf neu .pdf-Dateien, die Kartenbilder, benutzerdefinierte Diagramme und Tabellen enthalten
    • Teilen, Zusammenführen, Zuschneiden und Transformieren von .pdf-Dokumenten mit pypdf2
    • Generieren Sie PDF-Berichtsdateien mit ArcGIS-Berichtsvorlagen (.rlf) und arcpy
    • Generieren Sie Diagramme mit arcpy.Graph , arcpy.GraphTemplate mit Diagrammvorlagendateien ( .tee ) und dem Werkzeug Graph GP erstellen
    • Durchführen von Graphentheorie-Operationen an linearen Datensätzen unter Verwendung von networkx (z. B. Punkt-zu-Punkt-Routing)
    • Plotten von Geodaten mit Matplotlib (sowohl Vektor als auch Raster)
    • Verwenden Sie Numpy und Pandas, um die Attributtabelle für räumliche Datensätze zu bearbeiten
    • Verwenden Sie Anfragen und/oder das Arcrest-Paket, um über die ArcGIS-REST-API auf die ArcGIS Server-Site, ArcGIS Online / Portal-Organisationen zuzugreifen
    • FME-Workbenches von Python aus aufrufen
    • Zugriff auf Leser und Schreiber in FME mit fmeobjects
    • ein georeferenziertes Bild lesen, ändern und schreiben
    • Generieren Sie nützliche Informationen über einen Punktdatensatz (am meisten isolierte Punkte, ein Paar von zwei am weitesten entfernten Punkten usw.)

    An dieser Stelle sollten Sie vertraut sein mit:

    • Erstellen von Desktop-GUI-Anwendungen mit PyQt, PySide oder Kivy (z. B. Visualisieren der Funktionen eines Shapefiles in einem Anwendungsfenster)
    • Beitrag zu Open-Source-Projekten wie Arcrest oder Geopandas, die Fehler melden oder neue Funktionen einführen
    • Erstellen neuer Conda-Umgebungen und Installieren verschiedener Pakete in bestimmten Umgebungen
    • Refactoring Verpacken des Codes in Funktionen, Module und Pakete
    • OOP-Grundlagen und Erstellen eigener Klassen
    • Kompilieren Sie ein einfaches Python-Erweiterungsmodul ( .pyd ) und schreiben Sie eine .pyi-Schnittstellendatei, um die Intellisense für Ihre Python-IDE bereitzustellen

    Dieser Abschnitt enthält Beispiele für Aufgaben, die Sie möglicherweise zu einem bestimmten Zeitpunkt schreiben müssen. Die Implementierung dieser Aufgaben in Python-Code wäre ein gutes Zeichen dafür, dass Sie die fortgeschrittenen Konzepte von Python für GIS beherrschen.

    • Kartenraster des Datenrahmens in einem Kartenlayout aus-/einblenden, bevor die Karte in ein Kartendokument mit arcpy-Paket und ArcObjects exportiert wird
    • Aktualisieren des Beschriftungstextes einer Maßstabsleiste in einem Kartenlayout mit reinen ArcObjects
    • Generieren Sie ein Einzugsgebiet (Fahrzeit)-Polygon für einen beliebigen Punkt in einem Straßennetz, das als Shapefile mit networkx . gespeichert wird
    • Finden Sie den schnellsten Spatial Join heraus - ArcGIS Spatial Join GP-Tool, rtree in PostGIS, SQL Server STContains oder das formschöne Python-Paket
    • Erstellen Sie eine neue CSV-Datei aus einer vorhandenen, indem Sie bestimmte Zeilen mit Pandas filtern
    • Punkt-Dataset-Features mithilfe von scikit-learn in Cluster klassifizieren, um einige der Spatial Statistics-Werkzeuge von ArcGIS nachzuahmen
    • ein Programm schreiben, das die Fläche eines Sees berechnet, die automatisch aus Satellitenbildern erkannt wird
    • Erstellen Sie mit Hilfe von PyQt eine GUI-Anwendung zum Ausführen von SQL-Abfragen für File-Geodatabases

    Erhalten einer Top-Down-Ansicht des Bildes

    Okay, sehen wir uns diesen Code in Aktion an.

    Öffnen Sie eine Shell und führen Sie den folgenden Befehl aus:

    Sie sollten eine Ansicht der Notecard von oben nach unten sehen, ähnlich wie unten:

    Abbildung 1: Anwenden einer OpenCV-Perspektivtransformation, um eine “-Top-Down”-Ansicht eines Bildes zu erhalten.

    Figur 2: Anwenden einer OpenCV-Perspektivtransformation, um das Bild zu verzerren und eine Top-Down-Ansicht zu erhalten.

    Und ein drittes zur Sicherheit:

    Figur 3: Noch ein weiteres OpenCV getPerspectiveTranform-Beispiel, um eine Vogelperspektive des Bildes zu erhalten.

    Wie Sie sehen können, haben wir erfolgreich eine “Vogelperspektive” der Notecard von oben nach unten erhalten!

    In einigen Fällen sieht die Notecard etwas verzogen aus – das liegt daran, dass der Aufnahmewinkel des Fotos ziemlich streng ist. Je näher wir dem 90-Grad-Winkel von “Blick nach unten” auf der Notecard kommen, desto besser werden die Ergebnisse sein.

    Was kommt als nächstes? Ich empfehle die PyImageSearch-Universität.

    Ich glaube fest daran, dass du es schaffen könntest, wenn du den richtigen Lehrer hättest Meister Computervision und Deep Learning.

    Glauben Sie, dass das Erlernen von Computer Vision und Deep Learning zeitaufwändig, überwältigend und kompliziert sein muss? Oder muss es komplexe Mathematik und Gleichungen beinhalten? Oder erfordert ein Studium der Informatik?

    Alles, was Sie brauchen, um Computer Vision und Deep Learning zu beherrschen, ist, dass Ihnen jemand die Dinge erklärt in einfach, intuitiv Begriffe. Und genau das tue ich. Meine Mission ist es, die Bildung und die Art und Weise, wie komplexe Themen der Künstlichen Intelligenz gelehrt werden, zu verändern.

    Wenn Sie es ernst meinen mit dem Erlernen von Computer Vision, sollte Ihre nächste Station die PyImageSearch University sein, der derzeit umfassendste Online-Kurs für Computer Vision, Deep Learning und OpenCV. Hier erfährst du, wie es geht erfolgreich und selbstbewusst wenden Sie Computer Vision auf Ihre Arbeit, Forschung und Projekte an. Begleiten Sie mich in der Beherrschung der Computer Vision.

    In der PyImageSearch University finden Sie:

    • &prüfen 23 Kurse zu wesentlichen Themen zu Computer Vision, Deep Learning und OpenCV
    • & 23 Abschlusszertifikate prüfen
    • &prüfen 35h 14m On-Demand-Video
    • &prüfen Brandneue Kurse veröffentlicht jeden Monat, um sicherzustellen, dass Sie mit den neuesten Techniken Schritt halten können
    • &prüfen Vorkonfigurierte Jupyter-Notebooks in Google Colab
    • &check Alle Codebeispiele in Ihrem Webbrowser ausführen — funktioniert unter Windows, macOS und Linux (keine Konfiguration der Entwicklungsumgebung erforderlich!)
    • &Zugriff auf . prüfen zentralisierte Code-Repos für alle 400+ Tutorials auf PyImageSearch
    • &prüfen Einfache Ein-Klick-Downloads für Code, Datensätze, vortrainierte Modelle usw.
    • &überprüfen Sie Zugriff auf Mobilgeräten, Laptops, Desktops usw.

    Verdienste von Matplotlib

    Die Idee hinter Matplotlib lässt sich in folgendem Motto zusammenfassen, zitiert von John Hunter, dem Schöpfer und Projektleiter von Matplotlib:

    Matplotlib versucht, einfache Dinge einfach und schwierige Dinge möglich zu machen .

    Wir können mit minimalem Aufwand (manchmal können wir dies mit nur einer Codezeile oder so erreichen) qualitativ hochwertige, publikationsreife Graphen erzeugen, und für ausgefeilte Graphen haben wir eine leistungsstarke Bibliothek zur Verfügung, die unsere Bedürfnisse unterstützt.

    Matplotlib wurde im wissenschaftlichen Bereich der Informatik geboren, wo gnuplot und MATLAB wurden (und werden immer noch) viel benutzt.

    Mit der Einführung von Python in wissenschaftliche Toolboxen könnte ein Beispiel für einen Workflow zur Verarbeitung einiger Daten so aussehen: "Schreiben Sie ein Python-Skript, um Daten zu analysieren, und übergeben Sie die Daten dann an ein gnuplot-Skript, um sie zu zeichnen". Mit Matplotlib können wir jetzt ein einzelnes Skript zum Parsen und Plotten von Daten schreiben, mit viel mehr Flexibilität (das hat gnuplot nicht) und konsistent mit der gleichen Programmiersprache.

    Wir müssen das Plotten nicht nur als letzten Schritt bei der Arbeit mit unseren Daten betrachten, sondern als eine wichtige Möglichkeit, während des Prozesses visuelles Feedback zu erhalten. Hier werden uns die interaktiven Fähigkeiten von Matplotlib retten.

    Matplotlib wurde auf MATLAB modelliert, da die grafische Darstellung von MATLAB sehr gut war. The high degree of compatibility between them made many people move from MATLAB to Matplotlib, as they felt like home while working with Matplotlib.

    But what are the points that built the success of Matplotlib? Let's look at some of them:

    It uses Python: Python is a very interesting language for scientific purposes (it's interpreted, high-level, easy to learn, easily extensible, and has a powerful standard library) and is now used by major institutions such as NASA, JPL, Google, DreamWorks, Disney, and many more.

    It's open source, so no license to pay: This makes it very appealing for professors and students, who often have a low budget.

    It's a real programming language: The MATLAB language (while being Turing-complete) lacks many of the features of a general-purpose language like Python.

    It's much more complete: Python has a lot of external modules that will help us perform all the functions we need to. So it's the perfect tool to acquire data, elaborate the data, and then plot the data.

    It's very customizable and extensible: Matplotlib can fit every use case because it has a lot of graph types, features, and configuration options.

    It's integrated with LaTeX markup: This is really useful when writing scientific papers.

    It's cross-platform and portable: Matplotlib can run on Linux, Windows, Mac OS X, and Sun Solaris (and Python can run on almost every architecture available).

    In short, Python became very common in the scientific field, and this success is reflected even on this book, where we'll find some mathematical formulas. But don't be concerned about that, we will use nothing more complex than high school level equations.


    Python script for calculating the area of a polygon - Geographic Information Systems

    OpenCV is the huge open-source library for computer vision, machine learning, and image processing and now it plays a major role in real-time operation which is very important in today’s systems. By using it, one can process images and videos to identify objects, faces, or even the handwriting of a human. This article focuses on detecting objects.

    Hinweis: For more information, refer to Introduction to OpenCV.

    Object Detection

    Object Detection is a computer technology related to computer vision, image processing, and deep learning that deals with detecting instances of objects in images and videos. We will do object detection in this article using something known as haar cascades.

    Haar Cascades

    • Positive images – These images contain the images which we want our classifier to identify.
    • Negative Images – Images of everything else, which do not contain the object we want to detect.
      Requirements.

    Steps to download the requirements below:

    • Run The following command in the terminal to install opencv.
    • Run the following command to in the terminal install the matplotlib.
    • To download the haar cascade file and image used in the below code as a zip file click here.

    Hinweis: Put the XML file and the PNG image in the same folder as your Python script.


    Schau das Video: Sechseck Fläche: Mathe erklärt von Lars Jung