Mehr

ApplySymbologyFromLayer funktioniert in ArcMap, aber nicht in Python-Skript


Das Werkzeug ApplySymbologyFromLayer_management() scheint mir also nicht zu gefallen, zumindest wenn ich versuche, es in einem Skript zu verwenden. Ich habe eine Field_Boundary2.lyr-Datei mit einer "hohlen" Füllfarbe und einem schwarzen Umriss für eine Polygongrenze. Wenn ich die Symbologie dieses Layers in ArcMap in einen anderen Layer importiere, sieht es so aus:

Aber wenn ich versuche, es mit arcpy.ApplySymbologyFromLayer() in einem Skript zu verwenden, bekomme ich Folgendes:

Hier ist der Code:

df = arcpy.mapping.ListDataFrames(mxd,"dfElevation")[0] fc1 = arcpy.mapping.Layer(fcGrid) arcpy.ApplySymbologyFromLayer_management(fc1, arcpy.mapping.Layer(symbologyTemplatePath + "Elevation.lyr")) arcpy. mapping.AddLayer(df,fc1,"BOTTOM") fc2 = arcpy.mapping.Layer(fcBound) arcpy.ApplySymbologyFromLayer_management(fc1, arcpy.mapping.Layer(symbologyTemplatePath + "Field_Boundary2.lyr")) arcpy.mapping.AddLayer(df ,fc2,"OBEN")

Aus dem obigen Bild können Sie sehen, dass die Symbologie "Elevation.lyr" korrekt importiert wird, nicht jedoch die "Field_Boundary2.lyr". Irgendeine Idee, warum dies passieren könnte?


In Zeile 6 ändernfc1zufc2.


Drei Möglichkeiten, Ihre Daten für Voxel Layer vorzubereiten

ArcGIS Pro 2.6 verfügt über eine neue Voxel-Funktionalität, mit der Sie 3D-Datenraster mit Milliarden von Voxel-Würfeln visualisieren und gleichzeitig Datenfilterung, für die 3D-Datenvisualisierung angepasste Symbologiesteuerung, Zeitanimationen und andere interaktive Erkundungsfunktionen nutzen können. Von der Visualisierung von Modalitäten des Klimawandels, marinen Ökosystemen, geologischen Phänomenen bis hin zu Zeitreihen der digitalen Kluft, Umwelt- und soziale Gerechtigkeitsmetriken – dieses Visualisierungsformat kann dabei helfen, wichtige Informationen zu vermitteln, vorausgesetzt, die Daten stimmen.

Voxel Layer verwendet einen bestimmten Typ von NetCDF-Daten als Eingabe. Das NetCDF-Format bietet viel Flexibilität in Bezug auf die Datenspeicherung. Diese Flexibilität macht es aber auch zum sprichwörtlichen „wilden Wilden Westen“ der Datenformate. Die Daten müssen den Voxel-Layer-Datenanforderungen entsprechen, um sie korrekt als Voxel-Volumen darzustellen.

Dieser Blog demonstriert die Verwendung von Python, um NetCDF-Dateien zu bearbeiten und sie für die Voxel-Visualisierung kompatibel zu machen. Die meisten dieser Funktionen sind auch im Raster-Objekt in ArcGIS Pro verfügbar. In ArcGIS Pro sind zusätzliche Werkzeuge für das multidimensionale Datenmanagement und die Analyse verfügbar.

Wir verwenden die Jupyter Notebook-Umgebung in ArcGIS Pro für die drei in diesem Blog beschriebenen Arten von Datenoperationen. Öffnen Sie ArcGIS Pro, und öffnen Sie eine neue lokale Szene. Wählen Sie auf der Registerkarte Analyse in der Gruppe Geoverarbeitung die Option Python aus. Ein neues Python-Notebook wird geöffnet.

Wir sind nun bereit, uns die drei Szenarien anzusehen.

Kombinieren einer Zeitreihe von netCDF-Dateien zu einer einzigen netCDF

NetCDF-Daten werden oft in separaten Dateien geliefert, die sich über verschiedene Zeit- oder Höhenstempel erstrecken, und oft möchten Sie diese Daten möglicherweise als Voxel-Schicht mit allen individuellen Zeit- oder Höheninformationen in derselben Datei visualisieren. Als Beispiel haben diese Niederschlagsdaten, die vom NOAA Physical Science Laboratory Server heruntergeladen wurden, netCDF-Dateien für verschiedene Jahre, die separat heruntergeladen werden können.

Wie können wir also von unzusammenhängenden netCDF-Dateien zu einer einzelnen netCDF-Datei wechseln?

Erstellen Sie einen Ordner mit allen zu kombinierenden Daten. Laden Sie die Daten von der oben aufgeführten PSL-Website in diesen Ordner herunter. Ich hatte einen Ordner mit dem Namen „Precision“ mit den oben genannten stündlichen Niederschlagsdaten. Wie im Screenshot wurden die Daten in diesem Format benannt – „precip.hour.yyyy.nc“, yyyy ist das Jahr der Beobachtungsaufzeichnung.

Nun zum Code. Importieren Sie zunächst die Bibliotheken xarray und netCDF4.

(Drücken Sie Umschalt + Eingabetaste, um den Code in der Zelle auszuführen und eine neue Zelle zu öffnen)

Zuerst müssen wir den Namen der Zeitdimension bestätigen. Wir können dies tun, indem wir eine einzelne Datei einzeln importieren und ihre Abmessungen überprüfen.

Im Ergebnisfenster sehen wir, dass die Zeitdimension "Zeit" heißt. Nicht alle netCDF-Variablen haben so offensichtlich zuordenbare Namen, daher ist es immer gut, den Namen der Dimension zu überprüfen.

Wir brauchen jetzt das Skript, um jede netCDF-Datei in meinem Ordner zu öffnen, die mit 'precip.hour' beginnt, wobei das * bedeutet, dass alles, was dort kommt, ein egal ist. Wir möchten die Daten kombinieren, indem wir die Zeitkoordinatendimension verwenden, die die Beziehung der Daten und der Reihenfolge zueinander definiert. Diese unterschiedlichen Niederschlagsdaten werden in die Combine-Methode eingegeben, insbesondere indem angegeben wird, dass wir nach der Koordinatendimension – ‚time‘ kombinieren möchten (combine = ‚by_coords‘ bzw. concat_dim = ‚time‘). xarray bietet mehr Optionen zum Verketten von Daten mit komplexeren Anforderungen wie dem Zusammenführen entlang zweier Dimensionen. Weitere Informationen finden Sie hier

ds_combined = xarray.open_mfdataset('precip.hour.*.nc',combine = 'by_coords', concat_dim="time")

Diese Daten können wir nun in ein kombiniertes netCDF exportieren,

Und jetzt können wir diese Daten als Voxel oder Raumzeitwürfel darstellen.

Neuordnung der Abmessungen in einer netCDF-Datei

Die CF-Konformität von NetCDF-Daten schränkt die Reihenfolge der Dimensionen nicht ein, sodass Daten, mit denen Sie die Voxel-Schicht visualisieren müssen, möglicherweise nicht basierend auf den Anforderungen der Schicht sortiert werden. In dieser Situation erhalten Sie beim Laden von netCDF-Daten im Dialogfeld Voxel-Layer hinzufügen möglicherweise diese Warnung

Warnung : Die Reihenfolge der Dimensionen für die Variable ‘<Variablenname> ‘ wird nicht unterstützt. oder Reihenfolge wird erwartet (mit z oder t optional). Variable wird ignoriert.

Diese Warnung gilt auch für auf Breiten- und Längengraden basierende Dimensionen, bei denen die akzeptierte Reihenfolge der Dimensionen entweder oder .

Wenn Sie zum Beispiel hier die relativen Feuchtigkeitsdaten nehmen, die auf den relativen Feuchtigkeitsdaten aus NCEP/NCAR Reanalysis 1-Daten für die relative Feuchtigkeit auf mehreren Ebenen basieren, Tagesdurchschnitte für 2003.

Wenn wir versuchen, diese Daten über den Dialog Mehrdimensionales Voxel hinzufügen hinzuzufügen, werden keine Variablen im Dialog angezeigt und wir erhalten die gleiche Warnung wie oben.

Wir müssen die Daten in die Dimensionen transponieren, die die Voxelschicht akzeptiert. Sie können dasselbe oben geöffnete Jupyter Notebook verwenden. Öffnen Sie die Datei mit xarray.

Zuerst überprüfen wir die Koordinatenbemaßungsnamen, indem wir den Datensatznamen eingeben.

Jetzt wenden wir eine mathematische Array-Transponierungsoperation auf die Daten an, die entweder sortiert werden als oder .

Wir können diese Daten in eine neu geordnete netcdf exportieren rhum_ordered.2003.nc

Wir können nun diese Daten hinzufügen, um sie als Voxel zu visualisieren.

Drei Möglichkeiten, die Richtung der Höhenachse zu korrigieren

NetCDF-Daten können entlang einer bestimmten Dimension falsch ausgerichtet sein – x,y,z oder t. In diesem Fall möchten wir nur die Daten entlang dieser Achse umkehren (oder die Umkehrung rückgängig machen), während die Struktur entlang der anderen Achsen beibehalten wird. Die Höhendimension ist am anfälligsten dafür, auf diese umgekehrte Weise gespeichert zu werden, aber auch häufig möchten wir die Zeitdimension umkehren, so dass das Raumzeit-Würfelvoxel den ältesten Zeitstempel als oberste Ebene hat.

Es gibt vier Fälle, in denen die Daten wie in der Abbildung gezeigt ausgerichtet werden können. Folglich gibt es 24 Permutationen, in denen wir die Ausrichtungsrichtung korrigieren möchten.
Die Daten können sich auf der gegenüberliegenden Seite des Bodens befinden und müssen gespiegelt (Position (1) zu Position (4) oben) oder versetzt werden (Position (1) zu Position (3)). Alternativ müssen die Daten möglicherweise in der Richtung umgekehrt werden, während sie denselben geografischen Bereich wie zuvor einnehmen (Position (Position (1) zu Position (2)).

(Kurzer Tipp: Wenn Sie nicht die netCDF-Daten selbst und nur die Visualisierung manipulieren möchten, könnte das Voxelvolumen durch Zeichnungsmanipulation invertiert werden. Dazu können Sie im Feld „Vertikale Überhöhung“ in der Gruppe Höhe des Menübands Darstellung einen negativen Wert einstellen. Verwenden Sie dann das Offset-Feld, um das Volumen über/unter der Erdoberfläche zu positionieren.)

Schauen wir uns die Kohlenmonoxid-Reanalysedaten des Copernicus Atmosphere Monitoring Service (CAMS) als Voxel-Volumen an, das in der obigen Abbildung verwendet wurde. Die Legende zeigt, dass die obere Atmosphäre höhere Kohlenmonoxidwerte aufweist, die sich in Bodennähe reduzieren. Ein Atmosphärenexperte würde schnell verstehen, dass das Voxelvolumen zwar geografisch korrekt platziert ist, die Daten jedoch invertiert sind.

Wir müssen die Daten von Position (1) in Position (2) transformieren, wie in Tabelle 1 gezeigt.

Wir können dasselbe Jupyter-Notebook verwenden, das oben in der ArcGIS Pro-Benutzeroberfläche geöffnet wurde, die erforderlichen Bibliotheken und die Daten importieren, mit denen wir arbeiten werden.

Wir finden dann den Namen der Höhenbemaßung heraus, indem wir den Datensatznamen eingeben

Das Höhenmaß wird als „Ebene“ bezeichnet. Weitere Attribute zum Höhenmaß erfahren Sie durch Anklicken

Die Ebenendimension ist von 1 bis 60 geordnet, mit einem Langnamenattribut von „model_level_number“.

Von hier aus sind es drei Schritte, um die netCDF-Daten zu invertieren

      Kehren Sie die Datenrichtung um

    Schließlich exportieren wir den Datensatz in eine neue netCDF

    Eine Kombination der obigen Skripte kann verwendet werden, um jede in Tabelle 1 beschriebene Permutation auszuführen.

    Zusammenfassend können Sie Python verwenden, um Ihre Daten in ein Voxel-kompatibles Format umzuwandeln, indem Sie einzelne Dateien mit Zeitstempel zu einer einzigen Datenquelle kombinieren, die Datendimensionen ändern oder die Höhenorientierung korrigieren. Es gibt Permutationen der oben genannten Techniken, die auf Ihre Daten angewendet werden können, und hoffentlich bietet sich die Voxel-Visualisierung an, um neue kritische Perspektiven auf Ihre Informationen zu entdecken.


    IPhone Fotos zu Esri File Geodatabase über arcPy Python Script

    Hier ist ein grobes Skript (aber es funktioniert), das EXIF-Informationen von bereits heruntergeladenen Fotos (mit einem iPhone getestet) liest und eine File-Geodatabase erstellt, die den mit dem Foto gespeicherten Breiten- und Längengrad verwendet.

    Sie müssen Ihr GPS während der Aufnahme aktiviert haben. Die Bilder werden in die File-Geodatabase verschoben und ein fest codierter Pfad wird gespeichert. Irgendwann möchte ich das gerne als relativen Pfad berechnen und die Fotos dort lassen, wo sie sind. Der Vorteil, sie in die Geodatabase zu verschieben, bedeutet, dass sie nicht verloren gehen, aber Sie duplizieren die Fotos und erhöhen den Speicherbedarf.

    Die Einstellungen zum Ausführen des Skripts zum Akzeptieren von Argumenten oder zum Ausführen mit einem hartcodierten Pfad befinden sich weiter unten. Achten Sie darauf, die Pfade so zu ändern, wie Sie es möchten.

    Klicken Sie weiter, um zum Skript zu gelangen:

    Ich kam zu diesem Skript im Utah GIS Portal und der ursprüngliche Autor war Kevin Bell. Ich habe es auf Version 10 aktualisiert. Kevins Notizen und eine Wunschliste sind auch im Skript enthalten, wenn jemand helfen möchte, das anzugehen und es besser zu machen.


    Zumindest können wir Model Builder jetzt nach Python exportieren export

    Ich schätze, ich bin in der Minderheit, aber ich mag ArcGIS Pro. Ich benutze es seit ungefähr 4 Jahren. Es war gewöhnungsbedürftig, aber nach einem Monat oder so schien es, als hätte ich es ewig benutzt.

    Es geht in die richtige Richtung. Mit 2,5 haben sie mehrere Schritte nach vorne gemacht.

    Meine Beschwerde ist, dass es mehr oder weniger als "beta"Produkt mit Benutzern veröffentlicht wurde, die als "tester" für das Produkt bezahlen müssen. Außer, dass wir für das Produkt bezahlen UND wir Zeit für die Fehlerbehebung aufwenden. Darüber hinaus sind die Hardwareanforderungen, um die Verbesserungen in sinnvollen Maßnahmen wirklich zu "fühlen", für viele Organisationen ein ziemlicher Schritt (und möglicherweise sehr kostspielig).

    Allerdings arbeiten sie mit jeder Version weitere Probleme aus und fügen Funktionen hinzu, die ursprünglich in ArcMap enthalten waren (dieser Export von Model Builder nach Python ist ein klassisches Beispiel). Dies führt zusammen mit einer optimierten und moderneren Ribbon-Oberfläche zu immer schnelleren Arbeitsabläufen. Jedes Release macht das Produkt besser.

    Sobald sie mit Anmerkungen und Grafiken Parität mit ArcMap erreicht haben (und diese Erfahrung mit der "Produktveredelung" verbessert haben), haben sie die ArcMap-Erfahrung zumindest für meine Verwendung offiziell übertroffen.

    2.5 ist wahrscheinlich der größte Schritt nach vorne. Es spiegelt auch die größte Anzahl von von Benutzern angeforderten "Verbesserungen" wider. "Verbesserungen", in Anführungszeichen, um darauf hinzuweisen, dass einige davon wirklich nur Versuche waren, ArcMap mit den "Verbesserungen" der schnelleren Benutzeroberfläche von Pro in Einklang zu bringen - sobald sich die Benutzer an diese Benutzeroberfläche gewöhnt haben. Workflows, die seit Jahren in ArcMap ausgeführt werden, sind in Pro nicht immer intuitiv. Es kann Wochen, Monate oder vielleicht sogar ein Jahr dauern, bis Unternehmen wirklich das Gefühl haben, dass die Pro-Erfahrung ihnen zugute kommt.

    ABER, wenn sie es tun, ist es ein Schritt nach vorne.

    Ich habe eine Lektion gelernt. Das heißt, wenn ESRI ein neues Flaggschiff herausbringt, WAIT.

    Warten Sie mindestens ein ganzes Jahr und eine Reihe von Veröffentlichungen, bevor Sie den Wechsel vornehmen.

    Pro ist im Moment für viele Benutzer überlegen, ich würde sogar sagen, die Mehrheit der Benutzer, aber es ist immer noch eine erschütternde Migration und es gibt immer noch ein paar Dinge, die ArcMap besser macht oder einfach macht, die Pro nicht macht. noch.


    Online-Kurse zur Anwendung von Python in GIS

    Ich studiere für meinen MSc in GIS und habe ein Modul auf Basis von Python abgeschlossen. Aber nicht, da es direkt auf die Verwendung mit GIS zutrifft. Was für eine verrückte Vorstellung, das wäre huh gewesen.

    Gibt es gute YouTube-Kanäle oder besser noch Online-Kurse, die diese beiden Disziplinen gut kombinieren?

    Alle mögliche Ideen würden sehr geschätzt.

    Konzentrieren Sie sich auf die Verwendung von Python mit Esri/ArcGIS oder Open Source? Ich habe Youtube-Tutorials zu beiden, aber mehr zur Verwendung mit Esri.

    Viel Glück! Lassen Sie es mich wissen, wenn Sie Fragen haben.

    Huhu! Du postest dies als Geschenk am Montagmorgen! Vielen Dank.

    Ich habe deinen Nutzernamen von deinem YouTube-Kanal erkannt! Ihre Videos haben mir in letzter Zeit sehr geholfen (insbesondere beim Konvertieren meiner Skripte in ArcToolboxes/Script Tools). Schätzen Sie wirklich die Zeit und Mühe, die Sie in sie gesteckt haben.

    Fantastisch, danke dafür. Ich habe gerade den Namen gesehen, ich habe deinen Kanal kürzlich abonniert. Sobald das aktuelle College abgeschlossen ist und mein Sommer frei ist, ist es mein Ziel, mich selbst darin einzutauchen. Ich freue mich darauf, alle Ihre Inhalte zu sehen!

    Kommentieren für spätere Referenz, danke!

    Nehmen Sie an einigen ESRI MOOC-Kursen teil.

    Michael Miller hat einige Udemy-Kurse zur Anwendung von Python auf QGIS

    Aber nicht, da es direkt auf die Verwendung mit GIS zutrifft. Was für eine verrückte Vorstellung, das wäre huh gewesen.

    Ich sage den Leuten hier immer wieder, dass sie zuerst Python lernen. Es gibt viel zu viel zu lernen, um es in einem Kurs zu kombinieren. Wenn sie Ihnen Python gut genug beigebracht haben, sollte die Anwendung von Gis extrem einfach sein, da es buchstäblich nur ein weiteres Paket für Python ist. Das scheint nicht der Fall zu sein, daher würde ich vorschlagen, jetzt mehr Zeit in das Erlernen der Python-Grundlagen zu investieren, damit Sie später keine großen Probleme haben.

    Ich habe wiederholt gesehen, wie Leute die Grundlagen übersprungen haben und einfach kombiniert lernen. Meistens schreiben diese Leute schlecht optimierte Skripte und kämpfen mit Dingen wie Klassen, Vererbung, Komposition, Dekoratoren, Verständnis, Verwendung anderer Pakete und allgemeiner Codestruktur.


    ApplySymbologyFromLayer funktioniert in ArcMap, aber nicht in Python-Skript - Geographic Information Systems

    Harmonische Analyse von Zeitreihen (HANTS)

    Dieses Repository ist eine Python-Implementierung der Harmonic ANalysis of Time Series (HANTS), die auf Geodaten angewendet wird. Das Python-Modul kann verwendet werden, um den HANTS-Algorithmus für eine Sammlung von zeitvariablen Rasterdaten an jedem Pixel auszuführen.

    Der Hauptzweck dieser Python-Implementierung von HANTS besteht darin, die Lücken in den Zeitreihen zu schließen, die beispielsweise durch Wolken verursacht werden. Abbildung 1 zeigt ein Beispiel für die Proba-V-Zeitreihe von NDVI in Vietnam von August 2015 bis Juli 2016. Die ursprüngliche Zeitreihe (blau) wird durch den HANTS-Algorithmus (rot) angepasst und Werte deutlich unterhalb der Kurve (z. B. Werte nahe Null im Oktober 2015) können als Ausreißer identifiziert und durch die HANTS ersetzt werden.

    Abbildung 1: NDVI-Werte der Proba-V-Mission (blau) und HANTS-Kurvenwerte (rot) für einen Punkt im Südosten Vietnams (Längengrad: 108,87, Breitengrad 11,47) zwischen August 2015 und Juli 2016. Die ursprünglichen Proba-V-Werte die deutlich unterhalb der HANTS-Kurve liegen, können als Ausreißer identifiziert werden (z. B. Oktober - Dezember 2015) und eine Schätzung des NDVI für diese Daten kann aus der HANTS-Kurve gewonnen werden.

    Es gibt zwei Softwareoptionen, um HANTS auf Python auszuführen:

    Die beiden Optionen sind gleichwertig, der einzige Unterschied besteht darin, dass die zugrunde liegende Bibliothek die Geodaten verarbeitet.


    Einige unserer Kunden

    Wächst schnell!

    Wir möchten unsere Präsenz in Südafrika ausbauen!

    Als Business Development Manager werden Sie:

    • Geschäft in Südafrika ausbauen
    • lokale Talente rekrutieren (Vertrieb, Agenten, Trainer, Berater)
    • lokale Trainer und Berater rekrutieren

    Wir bieten:

    • Künstliche Intelligenz und Big Data-Systeme zur Unterstützung Ihres lokalen Betriebs
    • Hightech-Automatisierung
    • laufend aktualisierter Kurskatalog und Inhalt
    • viel spaß im internationalen team

    Wenn Sie daran interessiert sind, ein hochtechnologisches, qualitativ hochwertiges Schulungs- und Beratungsunternehmen zu führen.


    ApplySymbologyFromLayer funktioniert in ArcMap, aber nicht in Python-Skript - Geographic Information Systems

    Hintergrund

    Die Abteilung für Regierungsforschung (DGR) der UNM hat ein spezielles Gravitationsmodell zur Messung des geografischen Zugangs zu Gesundheitseinrichtungen und -anbietern in New Mexico entwickelt. Diese Arbeit wurde für die New Mexico Health Policy Commission (NM HPC) von 1988 bis 2002 durchgeführt. Die Ergebnisse dieser Vorarbeiten wurden nur auf der ehemaligen Webseite der DGR und auch in einer limitierten Publikation der NM HPC veröffentlicht ( HPC Quick Facts 2003 - Farbauszug). Es wurde auch eine spezielle Posterpräsentation vorbereitet, die den Posterwettbewerb der ESRI SWUG Conference 2002 in Taos, New Mexico (jetzt Esri Southwest User Conference) gewann.

    Das Gravitationsmodell war sehr innovativ und potenziell nützlich an vielen anderen Orten außerhalb von New Mexico, wo eine höhere Auflösung, genauere und zuverlässigere Messung der geografischen Zugänglichkeit zur Gesundheitsversorgung politischen Entscheidungen zugute kommen würde. Diese Forschung wird die Entwicklung dieses Gravitationsmodells (siehe Story Map) fortsetzen und es auch mit Ergebnissen vergleichen, die aus kürzlich entwickelten Techniken anderer Forscher gewonnen wurden. Das ursprüngliche Gravitationsmodell wurde mit (SAS) und ArcGIS von ESRI entwickelt. Diese Aktualisierungen werden mit ArcGIS ModelBuilder, Python-Skripten, R und jetzt mit ArcGIS Pro durchgeführt.

    Hinweis: Die meisten Bemühungen konzentrierten sich bisher auf die technische Entwicklung, das Erlernen und die Anwendung verschiedener Computerprogrammierungs- und Statistiksoftware-Einrichtungen. Die resultierenden Modelle und Skripte werden schließlich anderen Forschern zur Verwendung und Modifikation zur Verfügung gestellt. Hoffentlich werden diese technischen Entwicklungen den Einsatz dieser sich verbessernden GIS-Technologie deutlich demonstrieren und staatliche Behörden ermutigen, Datenqualitäts- und Datenaustauschprobleme zu lösen. Esri hat auch Regierungsbehörden dazu ermutigt, an ihrem Open Data-Programm teilzunehmen, was hoffentlich dazu führen kann, dass in Zukunft mehr New Mexico-Daten für die öffentliche Nutzung verfügbar werden.

    Erste Aktualisierungen (2012 bis 2015)

    Ich habe vor kurzem Fortschritte bei der Entwicklung einer ArcGIS ModelBuilder-Version dieses Gravitationsmodells unter Verwendung von Postleitzahlen und älteren Anbieterdaten (zuvor verfügbar) gemacht. Im Moment ist eine Karte (PDF) der vorläufigen Ergebnisse von Population per Primary Care Physician sowie eine (PDF) mit dem Design und den Komponenten, die für ArcGIS ModelBuilder verwendet werden, unten verfügbar. Vor kurzem habe ich mit der Entwicklung eines Python-Skript-Tools begonnen und es gibt eine Dokumentation mit Screenshots unten, die im Laufe dieses Prozesses aktualisiert wird (siehe auch die Präsentation der Klasse). Derzeit funktioniert das Python-Skripttool gut, außer dass ich Probleme habe, die Symbologie mit benutzerdefinierten Eingaben für die Klassenumbrüche vollständig zu automatisieren. Der letzte Schritt ist vorerst ein manueller Prozess, bei dem die Symbologie von der standardmäßigen natürlichen Bruchklassifizierung geändert werden kann. Ich hoffe, dieses Problem in Zukunft mit dem technischen Support von ESRI lösen zu können.

    Die Genauigkeit der Ergebnisse muss noch überprüft werden, indem sie mit denen verglichen werden, die mit dem vorhandenen SAS-Makro, das bei der DGR entwickelt wurde, erhalten wurden. Ich habe jedoch keinen Zugriff mehr auf eine Windows-Version von SAS, wie ich es viele Jahre lang als UNM-Mitarbeiter hatte. An der UNM gibt es keine Studentenversion von SAS für die Installation auf PCs wie an vielen anderen Universitäten wie PSU, BU, Texas A&M und Stanford. Die Windows-Version ist nur für Studenten in einigen Computer-Pods und für Abteilungszwecke verfügbar, die mit einem UNM-Konto erworben wurden. Es gibt eine Linux-Version, aber Speicherplatzkontingente schränken den Nutzen ein. SAS hat kürzlich eine neue University Edition veröffentlicht, die einen Vergleich ermöglicht, aber es fehlt die SAS Bridge, die mit der Windows-Version funktioniert, die sehr hilfreich wäre. Ich hoffe immer noch, die SAS Bridge in Kombination mit ArcGIS ModelBuilder und Python-Skripten (Add-Ins) verwenden zu können. Ich bin mir noch nicht sicher, was sich als effizienter erweisen wird. Ich beabsichtige immer noch, die ArcGIS ModelBuilder- und Python-Skripte irgendwann in der Zukunft zur Verfügung zu stellen, sobald sie ordnungsgemäß dokumentiert und für andere gepackt wurden.

    Ich plane noch einige weitere Entwicklungen, die andere Volkszählungsgebiete und geografische Einheiten als Postleitzahlen verwenden, wie die New Mexico Small Areas, die vom New Mexico Department of Health entwickelt wurden (siehe Story Map - erste Version). Hoffentlich können in Zukunft geokodierte Anbieter- und Betriebsdaten gewonnen werden, die einen Vergleich der Ergebnisse mit anderen etablierten Techniken wie IDW, Kernel Density und der zweistufigen Floating-Einzugsgebietsmethode (2SFCA) ermöglichen. Auch das Abrufen aktueller Daten von Anbietern und Einrichtungen für die Grenzgebiete der an New Mexico angrenzenden Staaten (Arizona, Colorado und Texas) würde zuverlässigere Ergebnisse liefern, da viele Patienten die Staatsgrenze überschreiten und einige auch zur Pflege nach Mexiko gehen. Das Grenz-/Kantenproblem ist ein sehr häufiges methodisches Problem, das beim richtigen Entwurf von Anwendungen zur räumlichen Analyse angegangen werden sollte. Wenn außerdem eine gute Straßennetzdatenbank in New Mexico für die Verwendung in ArcGIS Network Analyst entwickelt wurde, können anstelle der euklidischen Entfernungen die tatsächliche Fahrstrecke und die Fahrzeit auf den Straßen verwendet werden. Es wäre interessant, die Ergebnisse zu vergleichen und zu sehen, ob sich angesichts des Aufwands, der mit der Erstellung eines guten Straßennetzdatensatzes für das Land verbunden ist, wesentliche Verbesserungen zeigen. Dieser Aufwand ist jedoch für viele andere netzwerkbasierte Anwendungen, die nicht nur für das Gesundheitswesen erforderlich sind, dringend erforderlich.

    Angesichts einiger kleinerer Probleme, die noch mit ArcGIS (hauptsächlich Automatisierung der Symbologie) gelöst werden müssen, habe ich begonnen, QGIS und Python für das Schwerkraftmodell im Gesundheitswesen zu erkunden. Derzeit wird eine allgemeine Python-Version des Gravitationsmodells entwickelt, die die Verwendung sowohl von Postleitzahlen, Volkszählungsgebieten als auch von New Mexico (NMDOH) Small Areas für alle Arten von Gesundheitsdienstleistern und -einrichtungen ermöglicht. Ich hoffe, Versionen zu haben, die sowohl in ArcGIS als auch in QGIS funktionieren. Ich werde die Ergebnisse veröffentlichen, wenn ich in Zukunft mit diesem Open-Source-GIS vertrauter werde.

    Ich habe auch eine überarbeitete Version des SAS-Gravitationsmodells unter Verwendung von Volkszählungsgebieten und der New Mexico (NMDOH) Small Areas mit Bevölkerungsschätzungen von 2002 und Daten von Hausärzten von 2002 getestet (siehe Small Area Map und Census Tract Map). Hinweis: Eine räumliche Verknüpfung wurde verwendet, um die Arztdaten der Postleitzahl den Zählbezirken und dem kleinen NMDOH-Gebiet zuzuordnen. In Zukunft würden geokodierte Arztstandorte genauer sein. Angesichts der vom Gravitationsmodell durchgeführten Interpolation denke ich, dass die Ergebnisse jedoch nicht sehr unterschiedlich sein würden. Einige dieser Ergebnisse werden im Laufe der Entwicklung in ArcGIS Online in verschiedenen GIS-Formaten (interaktive Webkarten, Kartenpakete, Kartenservices, Karten-Layer und Shapefiles) verfügbar sein. Mir wurde kürzlich ein Organisationskonto zur Verfügung gestellt, als ich meine Home-Use-Lizenz für ArcGIS verlängerte, die ich noch nie zuvor hatte. Danke esri!

    Ich habe ein Python-Skript (GDAL/OGR) vorbereitet, das ein Shapefile liest, das Gravitationsmodell berechnet und ein neues Shapefile mit Originaldaten und -ergebnissen schreibt. Ich habe dieses Python-Skript größtenteils in ein QGIS-Verarbeitungsskript umgewandelt, um mehr Benutzerinteraktion und schließlich eine automatisierte Anzeige der Ergebnisse zu ermöglichen (siehe Screenshot der derzeit funktionierenden Benutzeroberfläche und Dokumentation). Ich kann auch die Option in Betracht ziehen, einen QGIS-Grafikmodellierer vorzubereiten, sobald das QGIS-Verarbeitungsskript abgeschlossen ist. Ich habe auch mit der Entwicklung eines QGIS-Plugins (siehe Dokumentation) basierend auf diesen Skripten begonnen, das der Öffentlichkeit zur Verfügung gestellt wird (siehe das QGIS-Plugin-Repository). Das freigegebene Plugin wird generisch sein (könnte an anderen Orten als New Mexico verwendet werden). Vorerst ist nur ein Screenshot der Ergebnisse von QGIS verfügbar, bis das Plugin fertiggestellt ist. Darüber hinaus sind für die Zukunft weitere Entwicklungen mit Ubuntu-Linux und anderer Open-Source-Geodatensoftware geplant. Hinweis: Obwohl QGIS-Entwicklungen unter Verwendung von Ubuntu-Linux vorbereitet werden, funktionieren sie auch auf den Windows- und Mac-Versionen (siehe Screenshot der Windows-Bearbeitungsskript-Benutzeroberfläche). Links unten mit diesen Entwicklungen werden in Kürze veröffentlicht!.

    Da ich nun über funktionierenden Python-Code QGIS(PyQGIS) für das DGR-Gravitationsmodell verfüge, habe ich auch ein hauptsächlich Python-Skript (siehe Dokumentation) mit ArcGIS(ArcPy) entwickelt und mit der Entwicklung einer R-Funktion begonnen. Meine frühere Entwicklung einer ArcGIS ModelBuilder-Anwendung und eines von ModelBuilder abgeleiteten Python-Skriptwerkzeugs erwies sich als zu umständlich und langsam, obwohl es gut funktionierte. Da sowohl ArcGIS (R-ArcGIS) als auch QGIS (externe Anwendung) verbesserte Schnittstellen für R entwickelt haben, ist jetzt ein guter Zeitpunkt, diese weit verbreitete Open-Source-Statistiksoftware weiterzuentwickeln.

    Neuentwicklungen (Laufend seit 2015)

    • Ich habe damit begonnen, die Infogroup-Daten zu untersuchen, die kürzlich vom NM Department of Information Technology erhalten und von der NM Community Data Collaborative als Quelle für aktuellere Gesundheitsdaten zur Verwendung mit dem DGR-Schwerkraftmodell bereitgestellt wurden. Die vorläufigen Ergebnisse (siehe ArcGIS Online Web Map) mit unbearbeiteten Daten sind vielversprechend. Ich werde sowohl UNMs GPS als auch Esri Demographics als Quelle für Bevölkerungsdatenschätzungen im Volkszählungsgebiet und auch auf Blockgruppenebenen der Geographie verwenden. Zwischen diesen beiden Schätzungen gibt es einige Unterschiede auf Ebene der Volkszählungsbezirke (siehe ArcGIS Online Web Map Viewer – Bevölkerungsschätzungen für NM 2015 Volkszählungsbezirke) und nur Esri bietet Schätzungen für Blockgruppen. Ich werde auch SAS verwenden, um die Daten für die spätere Verwendung aufzubereiten und Datenqualitätsprobleme zu lösen. Weitere Arbeiten sind erforderlich, um diese Daten mit staatlichen Zulassungsdatenbanken und anderen Quellen wie den US News Doctors Listings zu vergleichen. Dies hilft dabei, aktive Anbieter und Workloads zu überprüfen und mehrere Dateneinträge und doppelte Datensätze zu entfernen. Das Gravitationsmodell wird nützlicher, wenn sich die Qualität der Daten allmählich verbessert.
    • Da Esri die Integration von ArcGIS mit Open-Source-Statistikpaketen weiter verbessert (siehe Tech Session des Developer Summit 2016), entwickle ich ein aktualisiertes Python-Skript unter Verwendung des Spatial Statistics Data Object. Ich habe auch damit begonnen, die R-ArcGIS Bridge sowohl für den Zugriff auf ArcGIS aus R Studio als auch für die Entwicklung eines R Script Tools in ArcGIS Pro zu verwenden (siehe ArcGIS Blog und 2016 Developer Summit Tech Session). Ein R-Skript, das einen Geodatenrahmen verwendet, wurde im Rahmen einer kürzlich abgeschlossenen Klasse fertiggestellt (Geog 580L - Spatial Statistics - Frühjahr 2017). Die Ergebnisse des DGR-Schwerkraftmodells wurden auch mit ausgewählten sozioökonomischen Faktoren unter Verwendung der geographisch gewichteten Regression (GWR) verglichen. Eine PowerPoint-Präsentation, die diese explorativen Ergebnisse beschreibt, ist verfügbar.
    • Basierend auf früheren Entwicklungen habe ich begonnen, eine R-Funktion für das DGR-Gravitationsmodell vorzubereiten. Ich beabsichtige auch, eine R-Skriptversion des (2SFCA) Gravitationsmodells vorzubereiten und die Ergebnisse mit dem früheren von DGR entwickelten Gravitationsmodell zu vergleichen. Diese Entwicklungen sollten in Zukunft nach weiteren Entwicklungen und Tests verfügbar sein.
    • Ich baue meine Bemühungen in diesem Bereich weiter aus und weitere Entwicklungen sind geplant. Der Hauptzweck und das Forschungsziel besteht darin, verschiedene geografische Zugangs- und Gravitationsmodelle (DGR, 2SFCA und E2SFCA) auf detaillierteren geographischen Ebenen als in den Bezirken von New Mexico (nach Zählbezirk und möglicherweise Postleitzahl) zu vergleichen. Obwohl es hilfreich wäre, wenn irgendwann aktuelle, von UNM Health Sciences gepflegte Anbieterdaten verfügbar wären, können die Tests durch andere aktuell verfügbare und weniger genaue Datenquellen ersetzt werden. Es gibt derzeit verfügbare Bevölkerungsschätzungen von Esri und auch UNM Geospatial and Population Studies (GPS). Im Rahmen dieser Arbeit beabsichtige ich, sowohl aggregierte (nach Zählbezirk) als auch geokodierte Anbieterdaten zu verwenden. Außerdem werden sowohl euklidische als auch Straßennetzmessungen (Entfernungen und Fahrzeiten) ausgewertet. Zusätzliche Forschung könnte durchgeführt werden, um verschiedene sozioökonomische Faktoren (Census ACS und Esri's Tapestry-Lifestyle-Daten) und ausgewählte Gesundheitsindikatoren (NM DOH - IBIS) zu analysieren, um die Beziehungen zu verschiedenen geographischen Erreichbarkeitsmodellergebnissen unter Verwendung verschiedener räumlicher Regressionsmethoden zu bewerten. Für diese Arbeit werden sowohl R als auch Python in Kombination mit ArcGIS Pro verwendet, und die jüngsten technischen Entwicklungen von Esri sollten sich als hilfreich erweisen. Die Ergebnisse werden hier veröffentlicht, sobald Fortschritte erzielt werden.
    • Vorher: (für Geog 591 – Probleme – Herbst 2017) konzentrierte sich auf die Entwicklung von ArcGIS Pro Python-Skriptwerkzeugen für die verschiedenen geografischen Zugangs- und Gravitationsmodelle (DGR, 2SFCA und E2SFCA) mit zusätzlichen Python-Bibliotheken (Pandas, SciPy, NumPy und GeoPandas). Ich lerne Anaconda, Jupyter Notebooks und PyCharm. Für statistische Vergleiche werden sowohl euklidische Distanzen (Numpy Arrays) als auch straßenbasierte Distanzen (ArcGIS Pro OD Cost Matrix) verwendet. Es wurde ein Testfall erstellt, der nur die 33 Bezirke von New Mexico und einen ausgewählten besiedelten Ort (Kreissitz oder andere Stadt) verwendet. Bei diesem Entwicklungstest wurden zuverlässigere Arztdaten aus dem Jahr 2015 verwendet, die von UNM Health Sciences erstellt wurden, und Bevölkerungsschätzungen von UNMs GPS auf Bezirksebene. Diese Ergebnisse sind vielversprechend (siehe Euklidische Entfernungskarte, Straßenentfernungskarte, Webkarte oder Webkartenanwendung). Schwerkraftmodellmessungen der potenziellen geografischen Erreichbarkeit, die die Auswirkungen politischer (Kreis) oder anderer Datenerfassungsgrenzen (Zählbezirke, Postleitzahlen usw.) beseitigen, schaffen ein vollständigeres und realistischeres Bild, da sich Patienten frei über Grenzen bewegen, um Gesundheitsdienstleistungen in Anspruch zu nehmen. Die traditionellen bezirksbasierten (Dienstleistungsstandard)-Methoden bieten nur einen Teil der Erreichbarkeit. Die bezirksbasierten Testfallergebnisse können mit dem ArcGIS Inverse Distancw Weighted Tool (siehe IDW - Road Distance Map) weiter modifiziert werden, um Bezirksgrenzen zu ignorieren, aber diese glattere statistische Oberfläche sollte mit größerer Vorsicht interpretiert werden.

    Ich habe mit dem Origin Destination Cost Matrix Tool eine OD-Kostenmatrix für alle Volkszählungsgebiete von New Mexico abgeleitet. Das DGR-Schwerkraftmodell kann jetzt mit straßenbasierten Entfernungen angewendet werden. Vorerst werde ich die Daten von Hausärzten aus dem Jahr 2002 verwenden, die zuvor während der früheren Arbeit der DGR für die New Mexico Health Policy Commission (NM HPC) von 1988 bis 2002 verfügbar waren. Obwohl diese frühere Arbeit auf Postleitzahlen basierte, wurde kürzlich Anpassungen (Spatial Join) wurden durchgeführt (siehe Story Map), um Volkszählungsgebiete und 2002 Bevölkerungsschätzungen von UNM GPS zu verwenden. These results are very informative (see 2002 Gravity Model - Road Distance Map). The census tract test case results can be further modified to disregard county boundaries using the ArcGIS Inverse Distancw Weighted Tool (see IDW - Road Distance Map), but this smoother statistical surface should be interpreted with more caution. A Web Map and Web Map Application). are also available with these results. If the recent physician data for census tracts (499) or ZIP Codes (426) are eventually made available, the DGR gravity model results can provide a higher resolution and more useful picture of geographic accessibility.

    Begun to focus on the primary research goal, to statistically compare various geographic access and gravity models (DGR, 2SFCA, and E2SFCA) at various levels of geography including those with higher resolution than New Mexico counties (by census tract, ZIP Code, and perhaps census block group). Also to compare the results for each model using both Euclidean and road based distances. Preliminary results have been informative and somewhat suprising. There are pronounced differences ( measured using both relative difference and correlation coefficent) between the results when comparing Euclidean and road distances for the DGR gravity model at the county (r = 0.8088695) and census tract (r = 0.6584075) levels of geography (see 2015 County Relative Difference Map or 2002 Census Tract Relative Difference Map or Web Map or Web Map Application). Obviously accessibility depends on where you are located with respect to the network of roads. Assumming equal accessibility as measured by Euclidean distance (isotrophic surface) is not very realistic. The geography of New Mexico supports this, although I did not think the differences woud be as large as they are in some places.

    I have started using the Two-Step Floating Catchment Area (2SFCA) methods with the ArcGIS Desktop (ArcPy) script tools provided by Dr. Fahui Wang ( Wang, 2017). A Web Map showing results for the generalized 2SFCA method has been prepared using the 2002 primary care physician data that was previously available during the earlier work performed by DGR for the New Mexico Health Policy Commission (NM HPC) from 1988 through 2002. This class provided an excellent review and more in-depth background for various Python modules including Python - GeoPandas. I have re-programmed the generalized two-step floating catchment area methods using both SAS and Python3 - GeoPandas within Jupyter Notebook (see class PowerPoint Presentation). However, I did not make as much progress as I would have liked on the statistical comparison portion of my research project and more work will continue this summer and during the fall semester.

    lspear/images/New-icon.png" /> Recently: (Summer 2018 and for Geog 591 - Problems - Fall 2018) Continuing the focus on the primary research goal to statistically compare various geographic access and gravity models (1SHGM, 2SFCA, and E2SFCA). Some minor modifications of the previously developed Python3 - GeoPandas code are necessary and still need to be completed to allow for a better comparision to the DGR-1SHGM method that follows the specifications set out by the New Mexico State Legislature (Senate Joint Memorial 36, 1996) that suggests maximum travel time of 45 minutes or about 35 miles of distance (rule based, three-zone hybrid approach). Also more work needs to be done to combine the various methods (1SHGM, 2SFCA and E2SFCA) with a better user interface and flow of control using the PyCharm IDE. This modified code is currently being prepared plus a detailed statistical comparison of these results using the SAS University Edition and the R-ArcGIS Bridge will be available as progress is made. In addition, the spatial access ratio (SPAR), a recently developed method used to reduce uncertainty in model results has been employed by other researchers (see recent publication by a UNM research group). I plan to compare the SPAR with both the one-step and two-step model results as part of future analyses. I am also working on developing a version using the new ArcGIS API for Python and have been able to perform the calculations using the SpatialDataFrame but have not been able to directly display the results (see GeoNet Question). I have also started to develop another version using both NumPy and Pandas in ArcGIS Pro with FeatureClassToNumPyArray (see Python: Working with Feature Data) but there is not yet a direct way to go back to a feature class from a Pandas data frame (see GeoNet Question). Eventually, there will be a Story Map with a discussion and results.

    Exploratory Data Analysis : Some very preliminary results and data visualizations are now available that have been prepared using the SAS University Edition. These results (see summary statistics PDF) suggest that there is a significant difference in the results obtained from the 2SFCA methods compared with the 1SHGM method. However, these results based on a standard ANOVA should be interpreted with caution as several of the basic ANOVA assumptions are not met, primarily the independence of the data that are spatially autocorrelated and also not normally distributed plus non-common variances. More work is currently underway to research and apply more appropriate statistical methods. These additional statistical methods within R will be used to compare results from various models (one-step vs. two-step with various distance decay functions) and will be available as progress is made (see R Results). In addition, both absolute and relative differences will be calculated to investigate how results vary at each census tract location (see Preliminary Results (1SHGM and 2SFCA) Web Mapping Application - Note: a more efficient version is being prepared using the ArcGIS API for JavaScript).

    Hybrid-Zonal Model Results with Various Distance Decay Functions : The boxplot (below) shows the distribution of Physicians per Population (PHYS_PER_POP) from the various models (Acc Methods - Accessibility Methods), all using a hybrid-zonal approach with various distance decay functions (1SED - 1SHGM with DGR type power distance decay 2SEE - 2SFCA with exponential distance decay 2SEG - 2SFCA with gaussian distance decay 2SEP - 2SFCA with power distance decay). Note: the means and medians are close for the 2SFCA and only slightly different than the 1SHGM. It may be that the ANOVA results (can reject the null hypothesis that the means of the different methods are the same p Power Based Distance Decay Results : This boxplot (below) and histograms and boxplot PDF. shows the distribution of Physicians per Population (PHYS_PER_POP) from various models (Acc Methods - Accessibility Methods), using a hybrid-zonal approach with power based distance decay functions and also the distribution using the county based service area approach (COSVAR). This visual comparison indicates that the one-step methods (1SED and 1SEP) tend to produce more similar results to the widely used county based service area method (COSVAR) than a reasonably comparable two-step method (2SEP). An interactive web map has been prepared showing these results and the relative difference between the one-step and two-step methods at each census tract. There are also some special web mapping applications (see 1SEP and 2SEP, 1SED and 2SEP, and 1SED and 1SEP) that are more useful for comparing these results side-by-side. Note: The county based service area method (COSVAR) is only a population-to-physician ratio, it's the service capacity standard or "rational service area" used by the U.S. Department of Health and Human Services (DHHS) for defining physician shortage areas.

    Recently: (for Geog 591 - Problems - Spring 2019 and Summer 2019) I have started working on completing a more in-depth statistical analysis and review of the one-step and two-step models. These more detailed results will eventually be presented using Esri's ArcGIS Online Story Map facility. I am also evaluating several ways to develop improved scripts using Python3 - GeoPandas and the PyCharm IDE. A QGIS(PyQGIS) script, plugin, and standalone application will eventually be developed providing GeoPandas is compatible with the new QGIS 3.x versions. Given recent developments in the ArcGIS API for Python and the new Spatially Enabled DataFrame (SEDF) this may now provide an efficient web based development environment. The SEDF can now be used within ArcGIS Pro (ArcPy) and I will also explore developing a jupyter notebook and script here using a special Conda environment. Eventually these Python scripts (see draft documentation) will calculate selected models, compares results using both exploratory and statistical data analysis methods, plus hopefully include a spatial version of ANOVA. Hinweis: please see "All models are wrong but some are useful".

    I spent more time than expected this summer viewing selected technical sessions from the recent Esri Developer Summit and becoming familiar with the ArcGIS API for Python and the new Spatially Enabled DataFrame (SEDF). Replacing GeoPandas with the SEDF was easy and the calculations of a test 2SEE model were successful. However, the map visualization of results within Jupyter Notebook was more problematic. Using an ArcGIS Online WebMap with the Jupyter Notebook Mapping Widget (arcgis.widgets.MapView) was the best alternative as it allows for a map legend to also be displayed (see below). But I have had problems after adding a results layer directly to the webmap. I can't display the polygon symnology without saving it to ArcGIS Online for rendering with smart mapping and then loading it again in another jupyter notebook cell to display. I hope to learn more about the proper way to do this and resolve my problems shortly. Recently: (for Geog 591 - Problems - Fall 2019) I am still working on completing a more in-depth statistical analysis and review of the one-step and two-step models. These more detailed results will eventually be presented using Esri's ArcGIS Online StoryMap facility. I hope to make more progress evaluating several ways to develop improved scripts using Python3 - GeoPandas and the PyCharm IDE. A QGIS(PyQGIS) script, plugin, and standalone application will be developed providing GeoPandas is compatible with the new QGIS 3.x versions. However, I think ArcGIS Pro is currently the most suitable GIS environment for development given the new ArcGIS API for Python and the Spatially Enabled DataFrame (SEDF). I will also be using the Spyder IDE for developing a geoprocessing script tool. I will continue more research to see if a spatial version of ANOVA can be included with the exploratory and statistical data analysis methods used in these scripts to compare results and allow the user to make a more informed decision of which model to use. I have been making good progress developing a geoprocessing script tool for both the 1SHGM and G2SFCA models (exponential, Gaussian, powers including DGR's variation) using ArcGIS Pro and the API for Python that also includes diagnostics such as summary statistics, histogram, and a boxplot (see preliminary test versions below). Although the model results and maps (natural breaks) are similar in many census tracts, there are noticeable differences in the physician per population values for other census tracts that influence the statistical comparisons (see scatter plot below). Additional statistical comparisons of results plus technical documentation for these geoprocessing tools are currently being prepared and will be available soon.

    The additional statistical analyses of results has clearly shown that significant differences are apparent in the comparisons of the one-step (1SHGM) and two-step (G2SFCA) models. A series of scatterplots were prepared and correlation coefficients were calculated that support the results obtained from the previous histograms and T-Tests. The table (see below) summarizes these results. The most similar results when comparing the one-step and two-step models was for those that used a power based distance decay method (1SEP and 2SEP). The one-step (1SEP) model also seemed to produce the most realistic results with a mean value close to the statewide mean (0.6225) and a more even numerical distribution of census tracts below (244) and at or above (255) the national proviter-to-population benchmark (0.79). However, there was not a very even geographical distribution (see map below) as most of the census tracts below the benchmark seem to be in the larger rural census tracts with some exceptions in the southern and southeastern urban areas close to New Mexico's borders with Arizona, Texas and Mexico. Additional research using spatial statistical regression models is planned that will evaluate how results from these geographic access models are related to various measures of health inequality and health disparities.






    Currently: (Independent Research 2020 - 2021) I am continuing work to develop both a QGIS and ArcGIS Pro geoprocessing scripts for the one-step and two-step models. I will also be using both Conda Python and R enviornments with Jupyter Notebooks and the new ArcGIS Pro Notebooks with both the R-ArcGIS Bridge and the SAS-ArcGIS Bridge (see Spatial Data Science ArcGIS Blog and Spatial Data Science in ArcGIS, YouTube). More data analysis and data visualization methods plus statistical comparisons including a spatial ANOVA will be performed if possible. I am also conducting further spatial statistical analyses using methods such as geographically weighted regression. (GWR). These spatial methods will be useful to see how results from the geographic access models are related to various measures of health inequality (health disparities). For instance, several methods to classify rural or urban census tracts (See Rural Definitions for Health Policy and Rural-Urban New Mexico, Healthcare Access) have been developed. Plus the CDC has a well developed Social Vulnerability Index for census tracts. These classifications and other socio-economic and demographic attributes used to identify Health Professional Shortage Areas (HPSAs) and Medically Underserviced Areas (MUAs) will be evaluated as components of several spatial statistical models (see Esri Spatial Statistics Resources). The results from these analyses (including better graphics) are currently being prepared as StoryMap. I am also currently learning more about Geographic Artificial Intelligence ( GeoAI) and hope to expand this research to use some of these methods in the future ( see AI-ML Class Project, YouTube).

    Previous Results (ArcGIS Online Web Map)

    Web Maps and Mapping Applications:


    What tasks do you use Python for in your GIS work?

    I'm trying to incorporate python in my day to day GIS job. What have you made scripts for that made your day easier? It could be geoprocessing tasks or even folder structure tasks.

    Basically I'm trying to get ideas on what I can practice writing at home to impress the ol' boss man.

    Primarily automation, I have various parameters for model runs stored in CSVs that i can just run using a Python API. It saves me from having to manually input parameters each run and the script will just work its way through all of them until its done. All I need to do is change the name/directory of whatever csv I want to run.

    I've also used it to automate raster operations, for instance when you might be using raster calculator to produce maps multiple times with a single method (although changing some of the inputs each time) along with other processes. Writing a single Python script usually reduces the tedium of such tasks.

    I've also used it to run a bunch of SQL scripts one after another, produce plots, vector maths and converting quickly between file formats (especially GeoJSON).


    ApplySymbologyFromLayer works in ArcMap but not in python script - Geographic Information Systems

    Today s fast evolving power systems require engineers to perform thorough studies for the purpose of evaluating the operation of their networks under different conditions. Although informative, some of these studies could be repetitive and time-consuming. Automation relieves engineers from any redundant and laborious procedures, and provides them the information and results required in an effortless manner.

    Aiming to ease the effort required in performing several simulations by hand and to extend the customization of the CYME applications, Python scripting has been integrated into the CYME power system analysis software.

    Python scripting comes with a Site Package, a Console, a Toolbox and a built-in script editor. It can be used in a stand-alone mode or in a mode directly embedded into the CYME software.

    • The Python Site Package contains all the modules and functions required to access network properties, manipulate equipments and devices, perform various analyses and more importantly, obtain meaningful results.
    • The Console allows the users to carry out commands directly in the CYME application to allow command testing, variable value inspection and quickly retrieve information. A command manager keeps track of the history of commands.
    • The Toolbox allows the users to add and execute scripts. Variables defined in the scripts can be accessed through the Toolbox without having the scripts being modified.
    • The built-in script editor that is simple to use and includes features such as syntax highlighting, color-coding and code-completion.

    With Python scripting, users can easily perform batch analysis, automate routine studies, create new algorithms, quickly retrieve information and create charts through a simple mouse-click on a script. Take advantage of all the possibilities offered by the CYME Scripting Tool and appreciate the increase in productivity brought by the creativity of your scripts.

    Easy Scripting with Python

    Python is a scripting language that is open-source and cross-platform.

    Unlike other programming languages, Python does not have difficult syntax and offers code completion. Its high readability combined with the CYME function names make Python easy to learn for beginners while staying powerful for experts.

    Not only does it take care of exception handling, the CYME Scripting Tool with Python has also been robustly designed to provide you with the latest data model so that you can always be up to date.

    Python scripting takes advantage of all the power accessible through regular expressions, along with an advanced filtering mode that comes to hand when accessing data collection.

    Python suit your needs and style

    The Python Console and Toolbox allow an embedded Python usage within the CYME software for the rapid execution of several commands and scripts.

    The user can write scripts using the built-in script editor, and can as well write scripts in any text editor and execute them in a stand-alone way outside of the CYME application environment, via your favorite Python IDE (IDLE, Komodo IDE, Eclipse, PythonWin, PyCharm, etc.)

    Whether scripts and commands are run in the embedded or non-embedded way, the possibilities to extend the capabilities of the CYME software are unlimited.

    The Site Package developed offers many modules designed to be powerful and easy-to-use: network modeling, database access, equipment, report and error management. These modules are constantly evolving to better suit the growth of the application.

    Besides quickly retrieving information through several command lines or to run routine analysis through the use of scripts, the users can also create their own algorithms and write their own analysis. For example, you can create your own Load Growth analysis to modify the loads in a complex way that cannot be easily achieved with the default Load Growth analysis. Likewise, your commands can be inserted to apply modifications to the network. Charts and reports are easily customizable to display the results according to your preferences.

    Several device controls and customization tools now offer embedded scripting functionalities. Scripts can now be used to define the control for capacitors, regulators, BESSbattery energy storage systems and centralized capacitor control systems. They can also be used to create custom keywords and filters.

    Python s power and user-friendliness make it the ideal tool for writing any large application to suit your needs and simplify your work.

    Combined with your creativity, Python scripting can extend the already-robust capabilities of the CYME software beyond imagination.


    Schau das Video: From ArcMap ModelBuilder to Python Script - a Brief Demo (Oktober 2021).