Mehr

Python Geospatial Development Error

Python Geospatial Development Error


Ich arbeite gerade einige Beispiele im Python Geospatial Development Buch von Erik Westra durch.

Auf Seite 439 über das Einrichten eines Kachelkartenservers gibt er den folgenden Code zum Berechnen eines Begrenzungsrahmens basierend auf einer mittleren Position und einer Zoomstufe an:

TILE_WIDTH = 256 TILE_HEIGHT = 256 x_extent = _unitsPerPixel(zoomLevel) * TILE_WIDTH y_extent = _unitsPerPixel(zoomLevel) * TILE_HEIGHT min_long = x * x_extent - 180.0 min_lat = y * y_extent= ): 0.703125/math.pow(2, zoomLevel) zurückgeben

Nirgendwo gibt er an, was diexundjaEinheiten werden erwartet. Ich habe lat lange Koordinaten angenommen (wie Karte), aber dann funktionieren die obigen Berechnungen nicht.

Nehmen wir zum Beispiel an, ich habex = 50,0undy=-2,09und eine Zoomstufe von 5.

Für die min_lat habe ich dann ungefähr:

min_lat = -2,09 * 5,63 - 90,0

Was wird weniger als -90 geben, das Limit unserer Karte... ?!?

Jedes Mal, wenn Sie eine negative Lat/Long-Koordinate passieren, fällt diese herunter…

Welche x/y-Koordinaten werden hier erwartet?


Die Werte fürxundjain diesem Fall sind es wahrscheinlich nur Indizes für eine X-Y-Z-Tilemap. Die Indizes eines TMS-Dienstes sind einheitenlos, sie zählen einfach die Anzahl der Kacheln von der oberen linken Ecke.

In Ihrem Beispiel ist die_EinheitenPerPixel-Funktion gibt die Skalierung der Pixel für die angegebene Zoomstufe zurück. Der Wert ist die Breite und Höhe eines Pixels in den Einheiten der Projektion (die hier als lat/lon erscheinen). Bei Multiplikation mitTILE_WIDTH, erhalten Sie den Maßstab einer Kachel in den Einheiten des Koordinatensystems, in dem Sie arbeiten.

Damit ist der Wertx * x_Ausdehnung - 180(woxist der Kachelindex) gibt Ihnen einen Long-Wert abzüglich des "Offsets" von -180 Grad. Der Versatz ist notwendig, da Sie von links nach rechts zählen. Also wenn der IndexxNull ist, befinden Sie sich am linken Rand der Karte und diemin_longWert ist -180. Daher sollten weder x noch y einen negativen Wert annehmen.

Tile Map Servers werden normalerweise für die Verwendung im Web erstellt, wo die Bibliothek (wie OpenLayers oder Leaflet) nur mit dem xyz-Kachelindex und ohne räumliche Abfragen nach einer Kachel fragt. Weitere Informationen dazu finden Sie unter

http://en.wikipedia.org/wiki/Tiled_web_map

Hier ist eine schöne Visualisierung, wie Kachelindizes für Google Maps funktionieren (beachten Sie, dass es auch andere Definitionen gibt)

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/


1.1.1 Die Notwendigkeit einer GIS-Automatisierung

Ein Geoinformationssystem (GIS) kann Geodatensätze manipulieren und analysieren, um geografische Probleme zu lösen. GIS-Analysten führen alle Arten von Operationen an Daten durch, um sie für die Lösung eines fokussierten Problems nützlich zu machen. Dazu gehören Clipping, Reprojizieren, Puffern, Zusammenführen, Mosaikieren, Extrahieren von Teilmengen der Daten und Hunderte anderer Operationen. In der in diesem Kurs verwendeten ArcGIS-Software werden diese Operationen als Geoverarbeitung und sie werden ausgeführt mit Werkzeuge.

Eine erfolgreiche GIS-Analyse erfordert die Auswahl der am besten geeigneten Tools für die Verarbeitung Ihrer Daten. ArcGIS verwendet eine Toolbox-Metapher, um seine Werkzeugsuite zu organisieren. Sie wählen die benötigten Werkzeuge aus und führen sie in der richtigen Reihenfolge aus, um Ihr fertiges Produkt herzustellen.

Angenommen, Sie sind für die Auswahl von Websites für ein Kettenrestaurant verantwortlich. Sie können ein Werkzeug verwenden, um Flurstücke entlang einer Hauptverkehrsstraße auszuwählen, ein anderes Werkzeug, um Flurstücke auszuwählen, die nicht kleiner als 0,25 Acres sind, und andere Werkzeuge für andere Auswahlkriterien. Wäre dieser Auswahlprozess auf einen kleinen Bereich beschränkt, wäre es wahrscheinlich sinnvoll, die Arbeit manuell durchzuführen.

Nehmen wir jedoch an, Sie sind für die Durchführung derselben Analyse für mehrere Gebiete im ganzen Land verantwortlich. Da in diesem Szenario die gleiche Abfolge von Tools für mehrere Bereiche ausgeführt werden muss, eignet es sich gut für die Automatisierung. Die Automatisierung von Aufgaben wie diesen hat mehrere große Vorteile:

  • Automatisierung macht Arbeit Einfacher. Sobald Sie einen Prozess automatisiert haben, müssen Sie sich nicht mehr so ​​viel Mühe geben, um sich daran zu erinnern, welche Tools Sie verwenden oder in welcher Reihenfolge sie ausgeführt werden sollten.
  • Automatisierung macht Arbeit Schneller. Ein Computer kann Werkzeuge viel schneller nacheinander öffnen und ausführen, als Sie dieselbe Aufgabe durch Zeigen und Klicken ausführen können.
  • Automatisierung macht Arbeit genauer. Jedes Mal, wenn Sie eine manuelle Aufgabe auf einem Computer ausführen, besteht die Möglichkeit eines Fehlers. Die Chance vervielfacht sich mit der Anzahl und Komplexität der Schritte in Ihrer Analyse sowie der Ermüdung durch das mehrmalige Wiederholen der Aufgabe. Im Gegensatz dazu kann man sich darauf verlassen, dass ein Computer, sobald eine automatisierte Aufgabe konfiguriert ist, jedes Mal die gleiche Schrittfolge für eine potenziell endlose Anzahl von Zyklen durchführt.

Die ArcGIS-Plattform bietet Benutzern mehrere Möglichkeiten, ihre Geoverarbeitungsaufgaben zu automatisieren. Diese Optionen unterscheiden sich in dem Umfang der erforderlichen Fähigkeiten, um die automatisierte Lösung zu erstellen, und in der Bandbreite der Szenarien, die jeweils behandelt werden können. Der folgende Text geht kurz auf diese Automatisierungsoptionen ein, um von den geringsten Programmierkenntnissen bis zu den meisten zu erfordern.

Die erste Möglichkeit besteht darin, ein Modell mit ModelBuilder zu erstellen. ModelBuilder ist ein interaktives Programm, das es dem Benutzer ermöglicht, Werkzeuge miteinander zu „verketten“, indem die Ausgabe eines Werkzeugs als Eingabe in einem anderen verwendet wird. Die vielleicht attraktivste Funktion von ModelBuilder besteht darin, dass Benutzer ziemlich komplexe GIS-Workflows ohne Programmieraufwand automatisieren können. Sie werden zu Beginn dieses Kurses lernen, wie Sie ModelBuilder verwenden.

Einige Automatisierungsaufgaben erfordern eine größere Flexibilität, als sie von ModelBuilder geboten wird, und für diese Szenarien wird empfohlen, kurze Computerprogramme oder Skripts zu schreiben. Der Großteil dieses Kurses beschäftigt sich mit dem Schreiben von Drehbüchern.

Ein Skript führt normalerweise eine sequentielle Prozedur von Schritten aus. Innerhalb eines Skripts können Sie GIS-Werkzeuge einzeln ausführen oder miteinander verketten. Sie können bedingte Logik in Ihr Skript einfügen, um Fälle zu behandeln, in denen verschiedene Tools abhängig von der Ausgabe der vorherigen Operation ausgeführt werden sollen. Sie können auch Iterationen oder Schleifen in ein Skript einschließen, um eine einzelne Aktion so oft wie nötig zu wiederholen, um eine Aufgabe auszuführen.

Es gibt spezielle Skriptsprachen zum Schreiben von Skripten, darunter Python, JScript und Perl. Diese Sprachen haben oft eine einfachere Syntax und sind leichter zu erlernen als andere Sprachen wie C, Java oder Visual Basic.

Obwohl ArcGIS verschiedene Skriptsprachen für die Arbeit mit seinen Werkzeugen unterstützt, betont Esri Python in seiner Dokumentation und schließt Python in die ArcGIS Desktop- und Pro-Installationen ein. In diesem Kurs werden wir aus diesem Grund ausschließlich mit Python arbeiten, sowie der Tatsache, dass Python für viele andere Datei- und Datenbearbeitungsaufgaben außerhalb von ArcGIS verwendet werden kann. Sie lernen die Grundlagen der Sprache Python, das Schreiben eines Skripts und das Bearbeiten und Analysieren von GIS-Daten mithilfe von Skripten. Schließlich wenden Sie Ihr neues Python-Wissen in einem Abschlussprojekt an, in dem Sie ein Skript Ihrer Wahl schreiben, das Sie möglicherweise direkt auf Ihre Arbeit anwenden können.

Eine kürzlich entwickelte Automatisierungsoption, die auf der ArcGIS-Plattform verfügbar ist, ist die ArcGIS-API (Application Programming Interface) für Python. Dies ist eine Umgebung, in der Python-Skripterstellung besser in die cloud- und serverbasierten Technologien von Esri (ArcGIS Online, Portal for ArcGIS, ArcGIS Enterprise) integriert ist. Code, der für die Interaktion mit der Python-API geschrieben wurde, wird häufig in einer "Notebook"-Umgebung wie Jupyter Notebook geschrieben. In einer Notebook-Umgebung kann Code schrittweise ausgeführt werden, wobei Zwischenergebnisse zwischen den Python-Anweisungen angezeigt werden. Die Verwendung der Python-API in einer Jupyter-Notebook-Umgebung ist ein Thema in unserer Advanced Python-Klasse GEOG 489.

Für Geoverarbeitungsaufgaben, die Unterstützung für die Benutzerinteraktion mit der Karte oder anderen UI-Elementen erfordern, bietet das ArcGIS Pro SDK (Software Development Kit) die Möglichkeit, der Pro-Benutzeroberfläche benutzerdefinierte Werkzeuge hinzuzufügen. Das Pro SDK erfordert die Programmierung im .NET-Framework mit einer .NET-Sprache wie Visual Basic .NET oder C#. Die Arbeit mit dem Objektmodell dieses SDK bietet eine größere Flexibilität in Bezug auf das, was erstellt werden kann, verglichen mit dem Schreiben von Python-Skripten um ihr Geoverarbeitungs-Framework. Der Kompromiss ist eine höhere Komplexität der Codierung.

Schließlich können Entwickler, die ihre eigenen benutzerdefinierten GIS-Anwendungen erstellen möchten, die sich in der Regel auf die Bereitstellung einer viel engeren Funktionalität als das universelle ArcGIS Pro konzentrieren, mit den ArcGIS Runtime SDKs Apps entwickeln. Die Runtime-SDKs ermöglichen das Erstellen von Apps für Windows-, Mac- oder Linux-Desktop-Computer sowie für iOS- und Android-Mobilgeräte, was wiederum einen höheren Aufwand erfordert als Ihr typisches Python-Geoverarbeitungsskript.

Diese erste Lektion führt Sie in die Konzepte sowohl der Modellerstellung als auch der Skripterstellung ein. Wir machen uns zunächst damit vertraut, wie Werkzeuge in ArcGIS ausgeführt werden und wie Sie diese Werkzeuge in der ModelBuilder-Benutzeroberfläche verwenden können. Anschließend behandeln wir einige der Grundlagen von Python und sehen, wie die Tools in Skripten ausgeführt werden können.


Python-Georaumentwicklung

Dieses Buch richtet sich an erfahrene Python-Entwickler, die sich mit raumbezogenen Konzepten vertraut machen, raumbezogene Daten erhalten und damit arbeiten, räumliche Probleme lösen und anspruchsvolle kartenbasierte Anwendungen mit Python erstellen möchten.

  • Greifen Sie in Ihren Python-Programmen auf Geodaten zu, manipulieren Sie sie und zeigen Sie sie an
  • Beherrschen Sie die wichtigsten georäumlichen Konzepte von Standort, Entfernung, Einheiten, Projektionen und Datumsangaben
  • Geodaten im Vektor- und Rasterformat lesen und schreiben
  • Führen Sie komplexe, reale Geoberechnungen mit Python . durch
  • Geodaten in einer Datenbank speichern und darauf zugreifen
  • Verwenden Sie Punkte, Linien und Polygone in Ihren Python-Programmen
  • Konvertieren Sie Geodaten mit Python-basierten Tools in attraktive Karten
  • Erstellen Sie komplette webbasierte Mapping-Anwendungen mit Python

Die Geoentwicklung verknüpft Ihre Daten mit Orten auf der Erdoberfläche. Das Schreiben von Geodatenprogrammen umfasst Aufgaben wie das Gruppieren von Daten nach Standort, das Speichern und Analysieren großer Mengen an Geodaten, das Durchführen komplexer Geodatenberechnungen und das Zeichnen farbenfroher interaktiver Karten. Um dies gut zu machen, benötigen Sie geeignete Werkzeuge und Techniken sowie ein gründliches Verständnis von raumbezogenen Konzepten wie Kartenprojektionen, Datumsangaben und Koordinatensystemen.

Dieses Buch bietet einen Überblick über die wichtigsten raumbezogenen Konzepte, Datenquellen und Toolkits. Es beginnt damit, dass Ihnen gezeigt wird, wie Sie mit Python räumliche Daten speichern und darauf zugreifen, wie Sie eine Reihe räumlicher Berechnungen durchführen und wie Sie räumliche Daten in einer Datenbank speichern. Darüber hinaus zeigt Ihnen das Buch, wie Sie Ihre eigene rutschige Kartenschnittstelle innerhalb einer Webanwendung erstellen, und endet mit der detaillierten Konstruktion eines Geodateneditors unter Verwendung des GeoDjango-Frameworks.

Am Ende dieses Buchs werden Sie in der Lage sein, Python sicher zu verwenden, um Ihre eigenen Geodatenanwendungen zu schreiben, die von schnellen, einmaligen Dienstprogrammen bis hin zu anspruchsvollen webbasierten Anwendungen mit Karten und anderen Geodaten reichen.

Dieses Buch ist ein umfassender Kurs in Geoinformatik. Die Konzepte, die Sie kennen müssen, werden praxisnah mit Beispielcode vorgestellt, der Ihnen hilft, reale Probleme sofort zu lösen. Größere Programme werden Schritt für Schritt aufgebaut, während Sie durch den Prozess der Erstellung Ihrer eigenen anspruchsvollen Kartenanwendungen geführt werden.


  • Erstellen Sie eine interaktive Karte
  • Fügen Sie der Karte lokale Datensätze (z. B. GeoJSON, JSON, Shapefile) entweder über Code oder GUI hinzu
  • Pandas DataFrames und GeoPandas GeoDataFrames zur Karte hinzufügen
  • Verwenden Sie ein Widget zum schnellen Anzeigen von gefilterten Ergebnissen eines pd.DataFrame
  • Filtern Sie alle Nicht-TileLayer in der Karte nach einem eindeutigen Wert in einem Feld/einer Spalte
  • Verarbeiten Sie SafeGraph-Daten und entpacken Sie json-Spalten in einen vorhandenen oder einen neuen DataFrame

Dieses Paket wurde mit Cookiecutter und der Projektvorlage giswqs/pypackage erstellt.


Kostenloser Download von Python für die GIS-Programmierung

Python ist für alle gängigen Betriebssysteme verfügbar: Windows, Linux/Unix, OS/2, Mac, Amiga, unter anderem. Es gibt sogar Versionen, die auf .NET, der Java Virtual Machine und auf Mobiltelefonen der Nokia Series 60 laufen. Sie werden erfreut sein zu wissen, dass derselbe Quellcode in allen Implementierungen unverändert ausgeführt wird.

Ihr Lieblingssystem ist hier nicht aufgeführt? Es kann Python immer noch unterstützen, wenn es einen C-Compiler dafür gibt. Fragen Sie nach news:comp.lang.python - oder versuchen Sie einfach, Python selbst zu kompilieren. Python ist freundlich. und leicht zu erlernen

Die Python-Newsgroup gilt als eine der freundlichsten überhaupt. Die begeisterte Entwickler- und Benutzergemeinschaft unterhält ein Wiki, veranstaltet internationale und lokale Konferenzen, führt Entwicklungssprints durch und trägt zu Online-Code-Repositorys bei.

Python wird auch mit einer vollständigen Dokumentation geliefert, sowohl in die Sprache integriert als auch als separate Webseiten. Online-Tutorials richten sich sowohl an den erfahrenen Programmierer als auch an den Neuling. Alle sind darauf ausgelegt, Sie schnell produktiv zu machen. Die Verfügbarkeit erstklassiger Bücher rundet das Lernpaket ab. Python ist offen

Die Python-Implementierung steht unter einer Open-Source-Lizenz, die sie frei verwendbar und vertreibbar macht, sogar für den kommerziellen Gebrauch. Die Python-Lizenz wird von der Python Software Foundation verwaltet.

Michael R. Meuser
Datenrecherche & GIS Spezialist

MapCruzin.com ist ein unabhängiges Unternehmen, das sich auf GIS-Projektentwicklung und Datenforschung spezialisiert hat. Wir haben 1996 die ersten interaktiven Karten für toxische chemische Anlagen in den USA im Internet erstellt und sind seitdem online. Erfahren Sie mehr über uns und unsere Dienstleistungen.

Haben Sie ein Projekt im Sinn? Wenn Sie Daten, GIS-Projekte oder benutzerdefinierte Shapefiles benötigen kontaktiere Mike.

Finden: Karten, Shapefiles, GIS-Software und mehr

MapCruzin-Blog für Updates, Fragen und Antworten
Blog-Updates


Karriere- und Gehaltsinformationen

Deine Karriere

Das Saskatchewan Polytechnic hat eine hervorragende Erfolgsbilanz, wenn es darum geht, Absolventen in Jobs zu bringen: 80% der GIS-Absolventen arbeiten innerhalb von sechs Monaten nach ihrem Abschluss in ihrem Bereich. Sie arbeiten als GIS-Kartierungstechniker, GIS-Spezialisten, Kartographen, GPS-Operatoren, Datenanalysten oder Fernerkundungsanalytiker. Mit Ihrer speziellen Ausbildung in der Anwendung von GIS auf das Ressourcenmanagement können Sie Jobmöglichkeiten bei einer Vielzahl potenzieller Arbeitgeber erkunden, darunter auf Rohstoffen basierende Industrien, Industrien der First Nations, Beratungsunternehmen, Umweltbehörden, Regierungsbehörden und Kommunalbehörden.


Python Geospatial Development Error - Geografische Informationssysteme

In Entwicklung

Dieses Repository bietet einen Weg, um jemanden ohne GIS-Erfahrung zu einem kompetenten GIS-Entwickler zu führen. Die Abschnitte sind nach Fähigkeitsniveau geordnet und sollen der Reihe nach durchlaufen werden. Dies wurde stark von der Open Source Society University inspiriert.

Die Ressourcen stammen meist aus hocheffektiven und kostenlosen Kursen sowie Blogbeiträgen und Tutorials. Es gibt eine Mischung aus proprietären (ESRI) und Open-Source-Materialien.

Bitte zögern Sie nicht, beizutragen und alle Fehler, die ich unweigerlich mache, zu korrigieren.

Wenn Sie einen Einführungskurs in den GIS-Kurs gemacht oder GIS am Arbeitsplatz länger als ein paar Monate verwendet haben, überspringen Sie diesen Abschnitt. Sehen wir uns andernfalls einige Materialien an, um sicherzustellen, dass wir ein grundlegendes Verständnis davon haben, was GIS ist, was gängige GIS-Aufgaben sind und welche GIS-Tools es gibt.

Wählen Sie eine der folgenden Desktop-Softwares aus und führen Sie den zugehörigen Kurs durch, um sich auf den neuesten Stand zu bringen. Dies dauert ungefähr 40 Stunden und gibt Ihnen eine großartige Grundlage in GIS.

ArcMap und ArcPro sind proprietäre Desktop-Software zur Durchführung von GIS-Analysen, die von ESRI vertrieben werden. Diese sind die am weitesten verbreiteten in der Branche und das Erlernen ist die sicherste Methode, um in die Branche einzutauchen. ArcPro kennenlernen wird mit einer kostenlosen einjährigen ArcPro-Lizenz geliefert und ist das Geld wert, wenn Sie ernsthaft in das Feld einsteigen möchten. Wenn Sie an einer Hochschule eine Einführung in den GIS-Kurs nehmen, werden Sie wahrscheinlich dieses Buch als Großteil Ihrer Kursarbeit durcharbeiten.

Die am häufigsten verwendete Open-Source-Desktop-Software. Es kann kostenlos heruntergeladen werden und verfügt über eine breite Palette von Plugins, mit denen Sie fast alles mit GIS machen können.

Kurse (Wählen Sie einen) Schwierigkeit GIS-Software
Coursera GIS-Spezialisierung Einfach ArcPro
ArcPro kennenlernen ($40) Einfach ArcPro
Offizielles QGIS-Tutorial Einfach QGIS

Lernen Sie die Grundlagen der Programmierung. Wie viel Spaß Sie an einem dieser Kurse haben, kann ein guter Indikator für Ihren Erfolg beim Programmieren sein.

Kurse (wählen Sie einen) Schwierigkeit Sprachen
Einführung in die Informatik und Programmierung mit Python Mittel Python
CS50: Einführung in die Informatik Schwer C, PHP, JavaScript, SQL, CSS und HTML

Datenanalyse mit Python

Erfahren Sie, wie Sie beliebte Datenanalysebibliotheken in Python wie Numpy und Pandas verwenden. Ich liste hier einige kostenpflichtige Optionen auf, da sie von sehr hoher Qualität und interaktiv sind.

Ressource (Wählen Sie eine) Schwierigkeit
Geo-Python Mittel
Python Data Science-Handbuch Mittel
Python für die Datenanalyse ($28) Mittel
Datenquest (23 $ - 50 $ / Monat) Mittel
Datencamp ($25 - $30 / Monat) Mittel
Brandon Rhoades Pandas-Tutorial Mittel

GIS-Programmierung mit Python

Erfahren Sie, wie Sie mit Python Skripte schreiben, um GIS-Analysen durchzuführen und sich wiederholende Aufgaben zu automatisieren.

Kurse (wählen Sie einen) Schwierigkeit GIS-Software
GEOG 485: GIS-Programmierung und Softwareentwicklung Mittel ArcGIS / ArcPy
GIS-Prozesse automatisieren Mittel GDAL, OGR, GeoPandas, Shapely, QGIS

Empfohlene Zusatzkurse

Erfahren Sie, wie Sie Daten abfragen, Tabellen und Ansichten erstellen und Datenanalysen mit Datenbanken durchführen.

Kurse (Wählen Sie einen) Schwierigkeit Datenbankmodul
SQL-Zoo Mittel SQL Server, Oracle, MySQL, DB2 und PostgreSQL
Stanford - Einführung in Datenbanken Schwer Unbekannt
CS145: Datenmanagement und Datensysteme Schwer Google BigQuery

Erfahren Sie, wie Sie GIS-Daten speichern und in einer Datenbank bearbeiten.

Kurse (Wählen Sie einen) Schwierigkeit Datenbankmodul
GEOG 868 - Verwaltung räumlicher Datenbanken Mittel PostgreSQL / PostGIS
Offiziell - Einführung in PostGIS Mittel PostgreSQL / PostGIS
CS145: Datenmanagement und Datensysteme Schwer Google BigQuery

Erfahren Sie, wie Sie Projekte mithilfe der Versionskontrolle verwalten.

Ressource (Wählen Sie eine aus) Schwierigkeit Software
Git-Dokumentation Mittel Git
Offizielle Git-Ressourcen Mittel Git
Git-Tutorial von Atlassian Mittel Git

Erfahren Sie, wie Sie Daten extrahieren, transformieren und laden.

Kurse Schwierigkeit Gelehrte Fähigkeit
Dataquest Data Engineer Pfad ($24,50 - $50 / Monat) Schwer Datenbankoptimierung, ETL, Aufgabenverwaltung
FME-Workbench-Tutorials Mittel FME, räumliche ETL

Grundlagen der Webentwicklung

Lernen Sie die Grundlagen der Webentwicklung. Dies ist sehr wichtig, bevor Sie versuchen, in das Web-GIS einzusteigen.

Kurse (Wählen Sie einen) Schwierigkeit Sprachen
CS50: Webprogrammierung mit Python und JavaScript Mittel Python, HTML, CSS, Javascript, SQL
Colt Steeles Web Developer Bootcamp (10 $, Coupon suchen) Mittel Node.js, HTML, CSS, Javascript, NoSQL
Das Odin-Projekt Mittel Ruby, HTML, CSS, Javascript

Empfohlener Zusatzkurs

Erfahren Sie, wie Sie Ihren Webanwendungen Karten hinzufügen.

Kurse (beide machen) Schwierigkeit Sprachen / Frameworks
GEOG 863 - Entwicklung von Webanwendungen für Geoinformatiker Einfach HTML, CSS, Javascript, ArcGIS Javascript-API
GEOG 585: Offenes Web-Mapping Mittel QGIS, GDAL, OGR, GeoServer, TileMill, Broschüre

Empfohlener Zusatzkurs

Erfahren Sie, wie Sie mithilfe von Front-End-Bibliotheken moderne Webanwendungen erstellen.

Kurse (Wählen Sie einen) Schwierigkeit Framework / Bibliothek
Tyler Mcginnis: Kostenloses Online React BootCamp Mittel Reagieren
Maximilian Schwarzmüller: Angular 7 (ehemals Angular 2) - The Complete Guide ($10, Coupon suchen) Schwer Eckig
Maximilian Schwarzmüller: Vue JS 2 - The Complete Guide ($10, Coupon suchen) Einfach Vue

Frontend-Entwicklung ist ein so breites Thema, dass ich nur auf den brillanten Frontend-Abschnitt der Web Developer Roadmap 2018 verlinke. Sie haben die meisten dieser Fähigkeiten bereits erworben, aber wenn Sie sich mit Paketmanagern, Build-Tools, Zustandsverwaltung, CSS-Präprozessoren und Frontend-Tests vertraut machen, sind Sie an einem großartigen Ort für die Frontend-Entwicklung.

Erfahren Sie, wie Sie einem Client mit einem Back-End-Server Daten bereitstellen. Fast alle Stellenausschreibungen für die Backend-GIS-Entwicklung, die ich gesehen habe, erfordern .Net Core (C#). Ich habe einige GIS-Projekte mit Flask, Django (Python) und Java gesehen, aber C# scheint hier definitiv die dominierende Kraft zu sein.

Backend-Entwicklung ist ein so breites Thema, dass ich nur auf den brillanten Backend-Abschnitt der Web Developer Roadmap 2018 verlinke.


PyGRASS-Dokumentation¶

Python ist eine Programmiersprache, die leistungsfähiger ist als Shell-Scripting, aber einfacher und fehlerverzeihender als C. PyGRASS ist ein objektorientiertes Python Application Programming Interface (API) für GRASS GIS. PyGRASS bietet Schnittstellen zu GRASS Modulen und Funktionalitäten sowie zu Vektor- und Rasterdaten. Für Einzelheiten siehe Zambelli et al. (2013) in den Referenzen unten. PyGRASS verbessert die Integration zwischen GRASS GIS und Python und macht die Verwendung von Python unter GRASS konsistenter mit der Sprache selbst. Darüber hinaus vereinfacht es die GRASS-Skripterstellung und -Programmierung und ist für den Benutzer natürlicher.

Hintergrund: 2006 haben GRASS GIS-Entwickler damit begonnen, Python für die neue GUI zu übernehmen. Aus diesem Grund wurde Python immer wichtiger und die Entwickler stellten alle Shell-Skripte von GRASS GIS 6 auf Python für GRASS GIS 7 um.

Arbeiten mit PyGRASS Sie benötigen eine aktuelle Version von GRASS GIS 7. Die einzige Aktion, bevor Sie mit der Arbeit beginnen PyGRASS ist das Starten von GRASS GIS 7 und vom Konsolenstart Python oder python (der zweite ist der empfohlene Weg).

Lesen Sie mehr über die Arbeit mit PyGRASS in dieser Dokumentation.


1 Antwort 1

Ein Code-Snippet, das hier in einer Frage enthalten ist, sollte nicht nur ein Kopieren/Einfügen aus einem größeren Skript sein, an dem Sie arbeiten, und es sollte nicht das gesamte größere Skript sein. Es sollte etwas Prägnantes sein, das ein potenzieller Beantworter kopieren / einfügen kann und bereit (oder zumindest fast bereit) ist, einen Test durchzuführen.

Hier sind einige Vorschläge, wie ein Code-Snippet für eine ArcPy-Frage aussehen sollte.

Beginnen Sie damit, Ihren Code beiseite zu legen und stattdessen an einem neuen leeren Testskript zu arbeiten. Dies könnte test.py heißen, es könnte an einem einfachen Ort (ohne Leerzeichen im Pfadnamen) wie C: emp und einfachen Feature-Class- und Shapefile-Namen wie C: emp estGDB estFC und C: platziert werden. temp est.shp könnte verwendet werden. Dadurch kann die Möglichkeit ausgeschlossen werden, dass ein langer Pfadname ein Problem verursacht.

Im Idealfall sollte es am Ende nicht mehr als etwa ein Dutzend Zeilen umfassen. Das ist nicht immer möglich aber es sollte das ziel sein.

Verwenden Sie Kopieren/Einfügen, um kleine Teile Ihres Originalskripts einzufügen, bis es ausgeführt werden kann, um denselben Fehler zu sehen, oder kopieren Sie große Teile hinein und bereiten Sie sich darauf vor, das meiste davon aus dem Testskript zu entfernen. Das Ziel dieses Testskripts ist lediglich, Ihren Fehler zu reproduzieren, damit Sie danach fragen können. Der Rest Ihres ursprünglichen Skripts ist für Sie wichtig, aber selten für jemanden, der versucht, Ihre Frage zu beantworten.

Schließen Sie keine try/except-Anweisungen ein. Diese werden verwendet, damit Sie Fehler in Ihrem echten Code abfangen und behandeln können, aber wenn Sie versuchen herauszufinden, warum ein Ausschnitt daraus nicht funktioniert, können sie die Fehlermeldungen maskieren, die Python Ihnen sonst anzeigen würde.

Es sollte keine Funktionen enthalten es sei denn, sie sind für Ihre Frage unbedingt erforderlich. Wenn ein Teil Ihres Codes Folgendes enthält:

und wenn das für Ihre Frage erforderlich ist, vereinfachen Sie es vielleicht wie folgt:

Wenn es sich um ein Python-Skript-Tool handelt, ändern Sie Folgendes, anstatt uns raten zu lassen, was Sie möglicherweise in einen Tool-Parameter eingegeben haben, wenn Sie Ihr Problem sehen:

Stellen Sie vor dem Posten Ihres Code-Snippets sicher, dass Sie genau das Code-Snippet ausgeführt haben, das Sie veröffentlichen möchten, und zeigen Sie dann nicht nur den Code, sondern auch die vollständige Fehlermeldung (Skriptname und Zeilennummer sind von unschätzbarem Wert) und jede andere Ausgabe an B. von print- oder arcpy.AddMessage-Anweisungen.

Im Idealfall kopiert ein potenzieller Beantworter Ihr Code-Snippet einfach, fügt es in ein Skript ein, führt es aus, sieht dieselbe Fehlermeldung und andere Ausgabe wie Sie und denkt dann:

Ich sehe das gleiche Problem und bin sehr daran interessiert, herauszufinden, was los ist. Ich bin so froh, dass ich nicht um ein Dutzend Klarstellungen bitten musste, bevor ich an diesen Punkt kam (was ich nicht getan hätte, weil ich zu der Frage eines anderen übergegangen wäre).

Manchmal kann der Kodierungsstil einer Person für einen potenziellen Antwortenden abschreckend sein, der sich entscheidet, ob er seine Zeit investieren möchte, um eine Frage zu verstehen, bevor er versucht, sie zu beantworten.

Eine Möglichkeit, die Lesbarkeit von Python/ArcPy-Code zu verbessern, besteht darin, sich an PEP 8 – Style Guide for Python Code zu halten.

Eine Strenge von PEP 8 wurde von einigen Benutzern angestrebt, ist aber nicht erforderlich.


Andere¶

AdventGX (mit Sitz in College Station, TX, USA) bietet Installations-, Schulungs- und Implementierungsunterstützung für QGIS.

arx it (mit Sitz in Genf, Schweiz und Lyon/Paris in Frankreich) verfügt über 20 Jahre Erfahrung im Bereich Geoinformatik. arx iT ist spezialisiert auf Geographische Informationssysteme (GIS) und Geolokalisierungssysteme. Unser Leistungsspektrum deckt alle Geomatik- / Geodaten-Anforderungen ab: GIS-Beratung und -Expertise, Geodaten-Engineering, Integration kundenspezifischer Lösungen, Schulung, GIS-Outsourcing und Third Party Application Maintenance. Unsere Dienstleistungen sind dank unserer ISO 9001 Qualitätszertifizierung Teil eines echten Qualitätsansatzes.

Astun Technology (mit Sitz in Surrey, Großbritannien) wurde 2005 gegründet, um lokalen und zentralen Regierungen Open-Source- und webbasierte GIS-Dienste bereitzustellen. Da heute alle Unternehmen die technischen und finanziellen Vorteile der Verwendung von Cloud-Lösungen zur Erstellung, Verwaltung und Bereitstellung ihrer wichtigen GEO-Services erkennen, wächst die Nachfrage nach Astuns Wissen und Erfahrung bei der Bereitstellung vollständig verwalteter AWS-basierter GIS-Cloud-Lösungen weiter. Weitere Informationen finden Sie unter https://astuntechnology.com/

Bird's Eye View GIS (mit Sitz in Albuquerque, New Mexico, USA) bietet kommerzielle GIS-Dienste sowie Unterstützung und Schulung in QGIS, GRASS GIS und anderen FOSS GIS-Anwendungen.

Champs Libres Coopérative ist ein belgisches Unternehmen, das im Bereich Geomatik und Open-Source-Softwareentwicklung tätig ist. Wir organisieren regelmäßig QGIS-Schulungen in unserem Büro oder bei unseren Kunden vor Ort. Wir bieten auch Unterstützung bei der Nutzung von QGIS und/oder bei der Entwicklung von QGIS Plugins.

Clear Mapping Co (mit Sitz in Penryn, Cornwall, Großbritannien) ist ein preisgekröntes internationales Beratungsunternehmen für kartografisches Design. Wir erstellen schöne Karten, um die Effizienz am Arbeitsplatz mit einem integrativen und nachhaltigen Designfokus zu verbessern. Unsere maßgeschneiderten GIS-Schulungen in QGIS und anderer GIS-Software bieten die Möglichkeit, den Umgang mit Geodaten effizienter zu gestalten und übersichtliche Karten zu erstellen.

exeGesIS SDM Ltd hat seinen Sitz in South Wales in Großbritannien. Wir bieten Unterstützung und Schulungen auf verschiedenen Ebenen, ob öffentlich oder privat, sowie maßgeschneiderte Workshops und Mentoring. Wir können Sie beim Übergang von alternativen GIS-Lösungen zu QGIS sowie bei der Entwicklung von Plug-Ins unterstützen, um Ihre Geschäftsanforderungen zu erfüllen.

FOSS Academy (mit Sitz in Bonn, Deutschland) Die FOSS Academy ist ein Schulungsinstitut und bietet verschiedene Kurse an, von Anfängerkursen bis hin zu fortgeschrittenen Python-Programmierkursen für QGIS sowie kostenlose Online-Webinare zu QGIS-bezogenen Themen. Das Institut wird von der WhereGroup betrieben.

GeoICON (mit Sitz in Singapur und in Südostasien tätig) arbeitet seit über 10 Jahren mit Regierungsorganisationen und bietet eine vollständige Palette von Dienstleistungen rund um QGIS, einschließlich Schulung und kommerzieller Unterstützung.

Geospatial Training Solutions (Dr. Nick Bearman) mit Sitz in Cornwall, Großbritannien, bietet maßgeschneiderte GIS-Schulungskurse für Forscher, Fachleute und Studenten. Ich verwende QGIS in einem Großteil meiner Beratungstätigkeit und unterrichte eine Vielzahl von Fachexperten im Verständnis und der Arbeit mit Geodaten. Ich kann Ihrer Forschungsgruppe oder Organisation zeigen, wie Sie mehr aus Ihren Geodaten herausholen und bessere Karten für Ihre Publikationen erstellen oder Geodaten verwenden können, um Ihr Endergebnis zu verbessern.

Gispo Ltd (mit Sitz in Finnland). Wir führen unsere Kunden zum Erfolg bei der Bereitstellung pragmatischer Lösungen für strategische Entscheidungen durch den Einsatz von Open-Source-Geodatensoftware. Wir bieten QGIS, GeoServer, PostGIS, GDAL/OGR und MapProxy Support und Schulungen für unsere Kunden an. Wir glauben fest daran, dass Offenheit gewinnt.

gis3w (mit Sitz in Italien) bietet geografische und ökologische Analysedienste sowie Unterstützung und Unterstützung bei qgis.

GKG Kassel, Deutschland (Dr.-Ing. Claas Leiner) bietet Schulungen, Dienstleistungen und Support rund um die kostenlosen Geoinformationssysteme QGIS, GRASS, SAGA und PostGIS sowie Geodatenmanagement, -analyse und -kartografie an.

Geolis (mit Sitz in Luzern, Schweiz) bietet kommerzielle GIS-Beratung, Support und Schulungen in QGIS an.

Das Institute For Mapping Technology (mit Sitz in Austin, TX, USA) bietet Support und Schulungen für QGIS und PostGIS.

Karttakeskus (mit Sitz in Finnland) bietet kommerziellen Support und Schulungen für QGIS und offene Geodaten.

Mierune Inc. (mit Sitz in Japan) bietet kommerzielle Beratung, Schulung, Support und Anpassung von QGIS- und FOSS4G-Software. Wir organisieren auch praktische Workshops mit diesen Tools. Bitte kontaktieren Sie uns bei Fragen zur Systementwicklung, Visualisierung oder Analyse von Positionsdaten.

nGNUity.net- FOSS-Befürworter auf den Philippinen bietet seit 2007 kommerzielle GIS-Dienste, Schulungen und Beratung für QGIS, Unterstützung bei der Visualisierung von Geodaten für lokale Regierungen, gemeinnützige Organisationen, Forschungseinrichtungen und Gemeindegruppen. Bietet verschiedene mobile Datenerfassungs- und Kartierungsdienste unter Verwendung von den Open Data Kit / KoBo Toolbox Software-Stack.

North River Geographic Systems, Inc. ist ein in den USA ansässiges Beratungsunternehmen für Geodaten. Wir bieten Support für QGIS, PostGIS und eine ganze Reihe von FOSS4G-Software. NRGS bietet auch projektbasierte Unterstützung für Ihr Unternehmen, einschließlich Datenunterstützung, Kartografie und Analyse.

OpenGeoLabs s.r.o (mit Sitz in Prag, Tschechische Republik) bietet Schulungen (unter Verwendung der Marke GISMentors), technischen Support und kundenspezifische Entwicklung für Open-Source-Software für Geodaten.

Soluciones en Tecnologías de Información Geográfica (SOLTIG) (mit Sitz in Costa Rica) bietet Schulung, Support, Beratung und Programmierung für QGIS und andere FOSS-Anwendungen.

SunGIS (mit Sitz in Valmiera, Lettland) bietet kommerziellen Support, Beratung, Datenverarbeitung und kundenspezifische Programmierung für QGIS, GRASS GIS und FOSS GIS-basierte SDI-Lösungen.

Le Groupe SYGIF Inc. (mit Sitz in Rimouski, Quebec, Kanada) ist auf die Entwicklung von Informationstechnologien (GIS) für integriertes Landmanagement spezialisiert. Das Unternehmen entwickelt und unterstützt komplementäre Tools für QGIS und MapServer und ist auch als Entwickler und Wiederverkäufer seiner Produkte von ESRI anerkannt.

TAXUS IT (mit Sitz in Warszawa, Polen) bietet kommerzielle GIS-Dienste sowie Support und Schulungen in QGIS und GRASS.

Terraplan (Schallstadt/Freiburg, Deutschland) bietet Schulungen und GIS-Beratung für QGIS an. Der Fokus liegt auf der Beratung von Kommunen von der Einführung von QGIS bis hin zur vollständigen Ablösung anderer kommerzieller GIS-Lösungen.

Terrestris (Bonn, Deutschland) bietet kommerzielle Dienstleistungen und Schulungen für QGIS an.

thinkWhere (Stirling, Schottland) thinkWhere ist ein unabhängiges GIS-Beratungsunternehmen in Großbritannien. Wir bieten eine breite Palette innovativer GIS-Produkte und -Dienste an, darunter „Location Center“ (ein gehostetes Cloud-basiertes GIS, das auf Open-Source-Technologien basiert). Als QGIS-Site verwendet unser Team von Geodatenexperten QGIS täglich und bietet Kunden QGIS-Support. Wir führen auch regelmäßige QGIS- und PostGIS-Schulungen durch.

WhereGroup (Bonn, Deutschland) WhereGroup bietet das gesamte Spektrum an Dienstleistungen rund um QGIS einschließlich kundenspezifischer Programmierung, kommerziellem Support und Schulungen.

WIGeoGIS WIGeoGIS (mit Sitz in München, Deutschland und Wien, Österreich) bietet eine breite Palette von QGIS-Plugins, die speziell für Geomarketing und räumliche Geschäftsanalysen zusammen mit Marktdaten entwickelt wurden. Folgende Funktionalitäten werden durch die Plugins abgedeckt: Batch-Geokodierung und Adresssuche, Berechnung von Reisezeitisochronen und Distanzmatrizen, Huff-Gravity-Models und Territory-Planning. In addition to the plugins WIGeoGIS also offers webgis, commercial training, market data and support for QGIS.


Schau das Video: Python Geospatial Development Stack