Mehr

Migration von ArcGIS zu gdal

Migration von ArcGIS zu gdal


Ich möchte eine Tabelle mit äquivalenten oder nahe genug gdal-basierten Funktionen erstellen, um ArcGIS-Funktionen (insbesondere in Spatial Analyst) zu ersetzen. Sind mit gdal Funktionen verfügbar, um die folgenden ArcGIS-Funktionen auszuführen:

  1. Nachschlagen
  2. Zonale Statistiken
  3. Fokusstatistik
  4. Knabbern
  5. Durch die Raster-Mehrwertsteuer iterieren
  6. Kombinieren
  7. Mosaik

Der Schlüssel besteht darin, eine genaue Berechnung solcher Funktionen zu haben, damit ArcGIS-basierter Code relativ problemlos auf einen auf gdal basierenden Code geändert werden kann.


Zusätzlich zu Michas Liste, hier ist, wie du das kannst knabbern mit Gras

1) maskiere dein Bild mit r.mapcalc

2) Interpolieren Sie mit dem resultierenden Bild zum nächsten Nachbarn mit r.surf.nnbathy

Zum kombinieren, ich würde r.cross verwenden, aber Sie können es auch mit r.mapcalc mit diesem Algorithmus tun do

Zum Mosaik-, würde ich gdalbuildvrt verwenden: Es ist oft nicht notwendig, eine neue Datei zu erstellen, und Sie können sie nach Bedarf übersetzen.

Wie von @webrian erwähnt, kann r.reclass verwendet werden für Nachschlagen.

Mehrwertsteuern sind Tabellen, daher können Sie Tabellenbearbeitungstools verwenden, um sie zu aktualisieren (siehe z. B. diesen Beitrag).


Hier sind einige Optionen

  1. Nachschlagen: (nicht sicher)
  2. Zonenstatistik: Das GRASS-Modul r.statistics
  3. Schwerpunkte: GRASS r.Nachbarn
  4. Knabbern: (weiß nicht)
  5. Iterieren durch Mehrwertsteuer: Ich denke, dass das Konzept einer Mehrwertsteuer spezifisch für Arc* ist, aber r.describe könnte nahe kommen.
  6. Kombinieren: Verwenden Sie einfach GRASS r.mapcalc
  7. Mosaik: GRASS - r.patch oder gdal_merge

Kodierung von EPSG:3857 (WebMercator) in GeoTIFF und ArcGIS-Interoperabilität

Dieses Ticket hat eine starke Verbindung zu #3962, konzentriert sich jedoch auf die Codierung in GeoTIFF.

Die Art und Weise, wie GDAL derzeit EPSG:3857 in GeoTIFF kodiert, führt dazu, dass solche GeoTIFFs beim Öffnen in ArcGIS erheblich falsch platziert werden. Im Grunde, weil ArcGIS es als Mercator_1SP mit ellipsoider Definition von WGS84 anstelle der Kugelformel interpretieren muss.

GDAL schreibt derzeit die folgenden Schlüssel:

ArcGIS erstellt EPSG:3857 GeoTIFF mit den folgenden Schlüsseln:

(Wagenrückgabe in ESRI PE-String zur Anzeige hinzugefügt)

Seit r27594 (GDAL 2.0dev), das eine gewisse Unterstützung für die "Mercator_Auxiliary_Sphere"-Projektion bietet, die im ESRI-PE-String im exportToProj4()-Code zu finden ist, kann GDAL korrekt als Raster neu projizieren, meldet das ESRI-PE jedoch als WKT. Aber die Verwendung einer solchen Formulierung als Allzweckausgabe von GDAL ist wahrscheinlich nicht wünschenswert und würde von anderen Paketen (wie älterem GDAL und sogar GDAL 2.0) wahrscheinlich nicht korrekt sein.

Es wurden mehrere Versuche unternommen, einen Zwischenweg zum Schreiben von ProjectedCSTypeGeoKey=3857 zu finden, während er von ArcGIS korrekt registriert wurde, und es wurden 2 mögliche Kandidaten gefunden. Sie bestehen im Wesentlichen darin, ProjectedCSTypeGeoKey=3857 zu verwenden, aber die GCS-bezogenen Geoschlüssel zu überschreiben, um das Sphäroid anstelle des Ellipsoids zu verwenden. Was ist seit WebMercator eine Art Hack? bezieht sich auf das ellipsoide WGS84, jedoch mit Kugelformel.

oder Formulierung 2 (das gleiche ohne GeographicTypeGeoKey?):

Der Unterschied besteht darin, dass in Formulierung 2 ArcGIS das Datum als WGS_1984 beschriftet, aber immer noch eine sphärische Definition verwendet. Wenn Sie eine dieser Formulierungen verwenden, gibt ArcGIS eine Warnung aus, dass das geöffnete Raster ein anderes GCS hat als der Datenrahmen, in den es importiert wird (auch wenn der Datenrahmen ein WGS84-Datum und Formulierung 2 verwendet).

Beide werden ab GDAL 1.9 wie folgt gelesen:

Beachten Sie das ungerade Datum namens "unkwown", aber innerhalb eines "WGS 84" GEOGCS mit dem EPSG-Code 4326e und vor allem das als Sphäroid definierte Ellipsoid. Beim Importieren der einen oder anderen dieser Formulierungen könnten wir uns vorstellen, den GTiff-Treiber zu hacken, um traditionelleres WKT zurückzugeben - im Wesentlichen die kugelförmige Überschreibung beim Lesen in diesem sehr speziellen Fall zu ignorieren.


Zusammenfassung der von ESRI . verwendeten Shapefile-Komponenten

Shapefiles sind ein einfaches, nicht-topologisches Format zum Speichern der geometrischen Position und Attributinformationen von geografischen Merkmalen. Das Shapefile-Format definiert die Geometrie und Attribute von geografisch referenzierten Features in drei oder mehr Dateien mit bestimmten Dateierweiterungen, die im selben Projektarbeitsbereich gespeichert werden sollen. Als Faustregel gilt, dass Sie beim Kopieren, Verschieben oder Umbenennen einer .shp mit allen ähnlich benannten Dateien dasselbe tun müssen, da Sie sonst Datenverlust riskieren. Die anderen Dateien, auf die Sie möglicherweise stoßen, sind:

  • .shp - die Datei, die die Feature-Geometrie speichert.
  • .shx - die Datei, die den Index der Feature-Geometrie speichert.
  • .dbf - die dBASE-Datei, die die Attributinformationen von Features speichert.
  • .sbn und .sbx - die Dateien, die den räumlichen Index der Features speichern.
  • .fbn und .fbx - die Dateien, die den räumlichen Index der Features für schreibgeschützte Shapefiles speichern.
  • .ain und .aih - die Dateien, die den Attributindex der aktiven Felder in einer Tabelle oder der Attributtabelle eines Themas speichern.
  • .atx — Für jeden Shapefile oder dBASE-Attributindex, der in ArcCatalog erstellt wird, wird eine .atx-Datei erstellt. ArcView 3.x (AV3)-Attributindizes für Shapefiles und dBASE-Dateien werden von ArcGIS nicht verwendet. Für Shapefiles und dBASE-Dateien wurde ein neues Attributindexierungsmodell entwickelt.
  • .ixs — Geokodierungsindex für Shapefiles mit Schreib-/Lesezugriff.
  • .mxs — Geokodierungsindex für Read-Write-Shapefiles (ODB-Format).
  • .prj - die Datei, die die Koordinatensysteminformationen speichert. Diese Datei kann mit dem AV3-Projektionsdienstprogramm erstellt werden und wird von diesem verwendet. Es wird nicht von AV 3.0 oder ArcInfo 8 und älter verwendet (und einige Teile von ArcInfo v9 verwenden es immer noch nicht). Die .prj-Datei ist eine späte Ergänzung der Shapefile-Definition und ist im Original-Whitepaper nicht enthalten.
  • .xml - Metadaten für ArcInfo 8.0, um Shapefiles im Internet zu verwenden.

Ausführliche Informationen und Code zur Verwendung von Shapefiles durch gdal und verwandte Projekte finden Sie unter ​ Shapelib


Auswirkungen der GDAL-Stallaufzucht auf sp Arbeitsabläufe

Die folgenden Beispiele stellen das Verhalten von PROJ4/GDAL2 (ähnlich PROJ5/GDAL2 und PROJ4/GDAL1) und PROJ6+/GDAL3+ gegenüber. Insbesondere hat sich das Verhalten der Funktion exportToProj4() in der Klasse OGRSpatialReference von GDAL geändert:

Warnung Von der Verwendung dieser Funktion wird abgeraten. Sein Verhalten in GDAL >= 3 / PROJ >= 6 unterscheidet sich deutlich von früheren Versionen. Insbesondere wird +datum nur WGS84, NAD27 und NAD83 kodieren, und +towgs84/+nadgrids-Begriffe fehlen die meiste Zeit. PROJ-Strings zum Codieren von CRS sollten als Legacy-Lösung betrachtet werden. Die Verwendung einer AUTHORITY:CODE- oder WKT-Darstellung wird empfohlen.

Diese Funktion wird sowohl für Raster- als auch für Vektordaten verwendet, die über GDAL gelesen werden, um den PROJ 4-String bereitzustellen, der verwendet wird, um das Koordinatenreferenzsystem von anzugeben sp "Räumliche" Objekte mit der Klasse "CRS" (S4, neuer Stil). Solche Klassen können nicht geändert werden, ohne dass es Benutzern unmöglich wird, serialisierte Objekte zu laden, wie z sp RDS-Objekte von GADM zB für Norwegen.

Meine Gabel von sp (https://github.com/rsbivand/sp) ist derzeit 1.3-3 oder höher und enthält zusätzlichen Code, der bedingt die Entwicklungsversion von version verwendet rgdal im R-Forge-Repository bei 1.5-1 oder höher. Die mit PROJ4/GDAL2 gekennzeichneten auskommentierten Blöcke wurden auf einer Windows-Plattform mit sp 1.3-2 und rgdal 1.4-7, unter Verwendung von PROJ4/GDAL2. Die anderen auskommentierten Blöcke waren sp Gabel und rgdal Entwicklungsversion, Revision 886. Die unkommentierte Ausgabe ist das, was die Paketerstellungsplattform dort abgelegt hat.

Die Klassendefinition "CRS" bleibt in Zukunft unverändert, um die Abwärtskompatibilität aufrechtzuerhalten.

Die eingeführten Änderungen wirken sich auf CRS() aus, wenn rgdal ist verfügbar, wenn rgdal nicht verfügbar ist, enthält das "CRS"-Objekt nur eine leicht überprüfte Zeichenfolge im PROJ-Stil. Da einige Begriffe in PROJ6/GDAL3 veraltet oder nicht mehr unterstützt werden, müssen wir vorsichtig sein. exportToProj4() von GDAL verwendet die Funktion PROJ proj_as_proj_string() in seiner neuen API, um den PROJ-String zurückzugeben. Veraltete oder nicht mehr gültige Begriffe können weggelassen werden. Im Fall von PROJ6+/GDAL3+ ruft CRS() rgdal::checkCRSArgs_ng() auf, eine neue Generationsfunktion, die die Legacy-Funktion rgdal::checkCRSArgs() ersetzt.

Es übergibt den eingegebenen PROJ-Stil-String an rgdal::showSRID() , einen Viele-zu-Viele-Konverter. Es kann Zeichenfolgen im PROJ-Stil, WKT-Zeichenfolgen, Urnen-Zeichenfolgen und EPSG-Zeichenfolgen annehmen und in WKT (viele Typen) und PROJ konvertieren. Die Konvertierung von PROJ in PROJ entspricht dem Verhalten von PROJ4/GDAL2, wobei importFromProj4() und Freunde verwendet werden, um ein SRS-Objekt in GDAL zu instanziieren, und exportToProj4() und exportToWkt(), um Zeichenfolgen auszugeben. Wenn in der Ausgabezeichenfolge ein durch die Eingabe implizierter Spezifikationsbegriff zu fehlen scheint, wird eine Warnung ausgegeben, da die Warnungen derzeit zu vorsichtig sind.

In rgdal::checkCRSArgs_ng() kann rgdal::showSRID() mehrmals aufgerufen werden. Wenn das übergebene "CRS"-Objekt nur eine Zeichenfolge im Nicht-NA-PROJ-Stil hat, wird diese wie in diesem Fall zum Auffüllen des SRS-Objekts verwendet. Neben der Ausgabe eines geprüften PROJ-Strings wird auch ein WKT2-String zurückgegeben (WKT2_2018), und dieser String wird als comment() dem „CRS“-Objekt zugewiesen. Diese Darstellung ist weitaus robuster als die Zeichenfolge im PROJ-Stil und gibt Berechtigungen und ID-Werte für die Tabellensuche an. (WKT-Kommentar-Strings werden hier zeilenübergreifend gemeldet, da manche das Scrollen nach rechts unschön finden, das eigentliche Format ist nur eine Zeichenfolge in einer Zeile).

Für PROJ4/GDAL2 (und ähnliche) Fälle, wenn rgdal verfügbar ist, ruft CRS() rgdal::checkCRSArgs() auf, ruft RGDAL_checkCRSArgs() auf, eine kompilierte Funktion, die pj_init_plus() in PROJ aufruft, um die Gültigkeit des Strings zu überprüfen und möglicherweise Begriffe zu erweitern. Wenn dies gelingt, wird pj_get_def() verwendet, um den PROJ-String zurückzugeben. Beide Funktionen sind Teil der veralteten PROJ-API, auf die in PROJ 6 noch zugegriffen werden kann, die jedoch bald eingestellt wird.

Hier werden eine Reihe weiterer Beispiele gegeben, darunter der Fall eines von drei +datum=-Werten, die in GDAL3/PROJ6 noch anerkannt sind: WGS84 , NAD27 und NAD83 .

Wir wissen, dass +datum , +towgs84 , +nadgrids und +init zerbrechlich sind, also versuchen wir es mit einem:

Der Kommentar hier enthält die +towgs84-Parameter (drei davon), während der PROJ-String sieben ergibt.

Der +init-Wert wird weiterhin akzeptiert, aber in der Ausgabe nicht wiederholt:

Eine frühe Warnung vor Schwierigkeiten mit verworfenen +datum-Werten kam mit dem GB-Datum:

Hier enthält der Kommentar alle Informationen, die für die Durchführung von Koordinatenoperationen erforderlich wären, aber der PROJ-String ist für GDAL3/PROJ6 defekt, was die beste Standardgenauigkeit ergibt.

In PROJ4/GDAL2 liefern die Werte +datum und +towgs84 eine viel bessere Transformationsgenauigkeit aus dem PROJ-String.

Von sp 1.3-3 (mein Fork) nimmt CRS() ein drittes Argument zu den beiden Vorgängern, projargs= und doCheckCRSArgs=TRUE : SRS_string=NULL . Dies kann jeden String annehmen, den rgdal::showSRID() verarbeiten kann. Die Warnung folgt der Verwendung von exportToProj4() :

Wir können auch einen detaillierteren PROJ-String verwenden, aber ohne Verbesserung der Ausgabe-PROJ-Darstellung ist der Kommentar in Ordnung:

rgdal::showSRID() ist sehr vielseitig, sodass wir auch einen mehrzeiligen WKT-String anzeigen können:

Bisher erstellte "CRS"-Objekte bei der Erstellung aus sp, und aus dem Lesen von Rastern und Vektoren in rgdal, sind mit WKT-Kommentaren versehen. Diese werden verwendet, um SRS-Objekte beim Schreiben von Raster- und Vektorobjekten zu instanziieren. Was bleibt, ist, die kompilierte transform()-Funktion und die spTransform()-Methoden so zu konvertieren, dass die WKT-Kommentare, falls verfügbar, anstelle des PROJ-Strings im "CRS"-Objekt in jedem "Spatial"-Objekt verwendet werden.


Wechsel von Maptitude zu ArcGiS zur Neuverteilung.

Ich bin neu bei GiS und kenne mich nur mit dem Umverteilungsprozess aus. Ich bin Grafik- und Webdesigner der Landesregierung und unser GiS-Mitarbeiter ist gegangen - ich muss die Teile abholen. Mir bleiben alle Dateien des vorherigen Mitarbeiters übrig - Shapefiles usw. Ich möchte ArcGiS verwenden, da Karten und Optionen von höherer Qualität verfügbar sind.

Hat sich schon mal jemand mit so einer Umstellung beschäftigt? Irgendwelche Vorschläge/Tipps? Ich beabsichtige, Unterricht/Training in GiS zu belegen, aber gestern haben Leute, die Karten verlangen.

Hier ist eine Liste von kostenlosen Web-Schulungsseminaren, die von ESRI angeboten werden. Denken Sie daran, dies sind nur die kostenlosen.

Das ist ein echter Rat. Wenn Sie für den Staat arbeiten, haben Sie wahrscheinlich auch Ausbildungspunkte. Machen Sie die Person ausfindig, die Ihre Lizenzvereinbarung mit ESRI verwaltet.

Vielen Dank - ich habe mir diese Liste bereits überlegt und denke, ich muss selbst herausfinden, wo meine Mängel liegen. Ich mache viel technische Arbeit, Webdesign, Programmieren - daher sind mir visuell basierte technische Programme und Datenbanken nicht fremd.

Wie andere bereits erwähnt haben, kann ich, da dies eine Jobanfrage der Regierung ist, Schulungen / Seminare / Zertifizierungen / usw. problemlos bezahlt bekommen. Und ich plane auch.

Würden Sie die Bezirke basierend auf einer Art Beschreibung bearbeiten oder einfach nur Karten aus vorhandenen Daten erstellen? - nur neugierig, wie die Umverteilung erfolgt.

Die Umverteilung erfolgt alle 10 Jahre auf Grundlage der aktualisierten Volkszählungsdaten. Im vergangenen Jahr wurden in Maptitude neue Karten für das Repräsentantenhaus, den Senat und den Kongressbezirk erstellt. Ich habe diese Shapefiles und andere zugehörige Datenbanken. Ich muss sie nur in diese neue Software migrieren.

Warum nicht QGIS verwenden, es ist kostenlos. Was Sie tun möchten, ist nicht sehr komplex.

Ich habe den QGIS Circle Jerk in diesem Subreddit ernsthaft satt. Ich liebe QGIS, aber es ist nicht das richtige Werkzeug für jeden Job, nur weil es kostenlos ist. OP arbeitet für die Landesregierung, die wahrscheinlich eine ELA mit ESRI hat. Diese kommen mit Ausbildungsguthaben. BENUTZE SIE. Sie können nächste Woche in einen Online-Kurs einsteigen.

Ja QGIS ist kostenlos. Aber welchen Vorteil hätte das OP? OP zahlt nicht aus eigener Tasche für die gesamte Software/Schulung/Unterstützung, die ESRI bereitstellt. Sie haben dafür bereits bezahlt und höchstwahrscheinlich abteilungsweit auf ArcGIS standardisiert. OP könnte in einer Woche in Betrieb sein und Karten erstellen. Warum würden Sie angesichts all dessen lachen und sich für QGIS entscheiden? Aber warten Sie, es gibt Screenshots auf Flickr und zufällige Blog-Tutorials, die Sie auf Ihrer Reise begleiten. Gib mir eine Pause.


Freitag, 18. Juli 2014

Woche #9. Arbeiten mit Funktionen und gnminfo-Python-Tests

Es wurden mehrere Methoden zu gnm hinzugefügt: CreateFeature(), SetFeature(), DeleteFeature(), die die erforderlichen Aktionen für die Konnektivität ausführen und dann die entsprechenden GDALDataset-Methoden aufrufen.

Diese Woche bin ich auch endlich mit Python in GDAL zurechtgekommen. Für heute gibt es also einen funktionierenden Python-Test, der das Dienstprogramm gnminfo testet und in der Befehlszeile wie folgt verwendet werden kann (dies wurde unter Windows getestet):

D:GitHubgdalautotestutilities>c:python27python.exe test_gnminfo.py
TEST: test_gnminfo_1 . Erfolg
TEST: test_gnminfo_2 . Erfolg
TEST: test_gnminfo_3 . Erfolg
TEST: test_gnminfo_4 . Erfolg
TEST: test_gnminfo_5 . Erfolg

Testskript: test_gnminfo
Erfolgreich: 5
Fehlgeschlagen: 0 (0 Blow-Ausnahmen)
Übersprungen: 0
Erwarteter Fehler: 0
Dauer: 0,47 s

libgdal gefunden, gegen das wir laufen: D:GitHubgdal-buildingdal20.dll

, wobei test #1 einfach ist --help test, test #2 erstellt eine Konnektivität in autotest/tmp, test #3 ruft Informationen darüber ab, test #4 importiert einige Layer aus autotest/gnm/data und test #5 löscht die Konnektivität .


Der Mut zur Flucht

Eingeladene Keynote für das WISE Inspirations Network an der Stanford University, 24. Mai 2017, 16:30-18:30 Uhr. Gedanken und Reflexionen zu einem Thema, das viele Akademiker heute schon im Kopf haben: Zeit und Mut zur Kommunikation außerhalb der Wissenschaft, außerhalb des „Elfenbeinturms“ zu finden. In Dawns Fall bedeutete das Außerhalb des Elfenbeinturms, sich mit unterschiedlichen Zielgruppen über ihre Wissenschaft zu befassen, aber auch der Wissenschaft insgesamt zu „entkommen“, um ein neues Leben und eine neue Kultur in der Industrie zu erleben. Sie erzählte einige Geschichten über das Engagement vor und nach dieser „großen Flucht“ – nicht nur die Erfolge, sondern auch einige der harten Lektionen, einige der Entscheidungen, die auf dem Weg zu treffen waren, was wie geplant lief und was nicht, wer? am meisten geholfen hat und wie, was bei einem oder zwei großen Misserfolgen passiert ist und warum es eine so wertvolle Erfahrung war, womit sie immer noch zu kämpfen hat und was das inspirierendste, lohnendste und einfach nur spaßigste war. Was folgte, war eine sehr interaktive und temperamentvolle Sitzung! Notizen werden in SlideShare abgeschnitten, sodass vollständige Notizen unter http:/˽usk.geo.orst.edu/Pickup˾sri/stanford-WINS-djw.pdf verfügbar sind. Webseite für die Veranstaltung: https://vpge.stanford.edu˾vents/wise-inspirations-network-stanford-wins

Sei der Erste, dem das gefällt

ELU – Ökologische Landeinheiten
Das Projekt Ecological Land Units (ELU) ist eine Zusammenarbeit zwischen Esri und Dr. Roger Sayre von der USGS. Es wurde im vergangenen Dezember beim ACES 2014: A Community on Ecosystem Services Meeting in Washington, DC offiziell vorgestellt. Für die ELU haben wir im Wesentlichen eine massive biophysikalische Schichtung des Planeten mit einer feinsten, aber versuchten räumlichen Auflösung (250 m) durchgeführt, um eine erste Karte unterschiedlicher physischer Umgebungen und der damit verbundenen Landbedeckung zu erstellen. Darüber hinaus bieten wir ein grundsätzlich klassifikationsneutrales und datengetriebenes Konzept zur Abgrenzung ökologisch sinnvoller Regionen. Unsere Absicht ist es, wissenschaftliche Unterstützung für Planung und Management (auch als wichtige Variable für GIS-Geodesign-Modelle und -Apps) bereitzustellen und das Verständnis der Auswirkungen des Klimawandels und anderer Störungen auf Ökosysteme und damit für die Bewertung von Ökosystemleistungen zu ermöglichen. Damit erfüllen wir auch eine der Hauptempfehlungen des PCAST-Berichts des Weißen Hauses zu nachhaltigem Umweltkapital.