|
BLOG
|
Auf der Plenary vom Esri DevSummit 2024 wurden spannende Entwicklungen im Bereich der Integration von Geoinformationen in nativen Apps besonders für den Außendienst präsentiert. Die Vorteile von nativen Apps Wir lieben native Apps, da sie einfach zu bedienen sind und ein großartiges Erlebnis bieten. Mit Informationen buchstäblich an unseren Fingerspitzen können wir produktiv bleiben, egal ob wir im Büro oder im Außendienst sind. Native Apps sind für den Offline-Betrieb konzipiert und bieten viele Gerätefunktionen, sodass die Arbeit nicht aufhören muss, wenn die Netzwerkverbindung unterbrochen wird. Und mit vollem Zugriff auf alle Gerätesensoren steht der Standort im Mittelpunkt des Benutzererlebnisses. Erstellung von nativen Mapping-Anwendungen Esri entwickelt viele native Apps und mit ArcGIS Maps SDKs for Native Apps können auch Sie einfach leistungsstarke native Mapping-Anwendungen erstellen. Ob auf einem Smartphone, einem Tablet oder einem Laptop, Sie können die offline-fähige Karte in die richtige App auf das richtige Gerät bringen. Alle nativen SDKs sind implementierungstechnisch mit einem C++ Core optimiert um auf einer Reihe von Endgeräten zu laufen. Sie bieten eine moderne Developer-Experience mit den neuesten Frameworks, Tools und Sprachfunktionen. Mit ArcGIS Maps SDK for .NET, Java, Qt, Swift und Kotlin kann man das bevorzugte Framework auswählen und sofort loslegen. Daten sammeln mit nativen Apps Unter den vielen Arten von Apps, die Sie für den Außendienst erstellen können, bieten die ArcGIS Maps SDKs for Native Apps eine hervorragende Grundlage für die Datenerfassung. Mit flexiblen Vorlagen für die Offline-Arbeit können Projekte im Büro starten und auf ein Gerät übertragen werden oder direkt über das Netzwerk auf das Gerät heruntergeladen und Änderungen synchronisiert, während man parallel weiter arbeitet. Dank einer kompakten und voll funktionsfähiger Mobile Geodatenbase auf dem Gerät haben native Apps nahtlosen Zugriff auf die Geoinformationen und viele der erwarteten Funktionen, wie z.B. Utility Network. Man kann einfach Standorte mit einem hochgenauen GPS-Empfänger erfassen oder interaktive Kartenwerkzeuge mit Snap-Funktion für hochpräzise Erfassung verwenden. Smartforms für eine optimierte Datenerfassung Smartforms bieten ein optimiertes Datenerfassungserlebnis, indem sie sich dynamisch an die Eingaben anpassen. Es wurde demonstriert, wie man mit dem ArcGIS Maps SDK for Kotlin eine App erstellt, die eine Karte mit Windturbinendaten rund um das Gebiet von Palm Springs zeigt. Als Wartungstechniker für Windturbinen wurde eine Inspektion durchgeführt und dabei ein Formular, das bereits einige Formularelemente enthielt, für die Erfassung von Sachdaten verwendet. Die Sachdaten wurden logisch gruppiert und basierend auf den Anmeldedaten des Benutzers ausgefüllt. Anschließend forderte das Formular auf, die nächstgelegene Turbine zu scannen, um einige Informationen zu sammeln. Es wurde der NFC-Sensor des Geräts genutzt, um die Turbine zu scannen. Sobald die Sensorinformationen empfangen wurden, erfolgte das automatische Ausfüllen der Turbinen-ID sowie anderer abhängiger Felder. Integration von Echtzeit-Feeds zur Verbesserung der Zusammenarbeit Es wurde ein großartiges Beispiel dafür gezeigt, wie man benutzerdefinierte Echtzeit-Feeds verwenden kann, um die Zusammenarbeit und das Bewusstsein im Außendienst zu verbessern. Die mobile App erfasst, die Echtzeitinformationen über einen UDP Peer-to-Peer-Feed Protokoll. Es wurde gezeigt, wie einfach es ist, benutzerdefinierte Echtzeit-Feeds in eine mobile App zu integrieren und wie man die Symbologie aktualisieren kann, um sie dem Kontext der Daten anzupassen. Ankündigung eines neuen Maps SDK für Flutter Zum Abschluss der Vorstellung wurde angekündigt, dass in Kürze ein neues ArcGIS Maps SDK for Flutter veröffentlicht wird. Flutter erfreut sich wachsender Beliebtheit für die plattformübergreifende mobile Entwicklung. Es verfügt über eine starke Developer-Community und ist vollgepackt mit Funktionen, die wir liebevoll anbieten werden. Es basiert auf der modernen Programmiersprache Dart und bietet eine Reihe von plattformübergreifenden Widgets, um mobile Apps schnell zu implementieren. Es bietet eine erstklassige Tooling-Umgebung, in der Developer nahtlos Ihre App-Designs erstellen und iterativ verbessern können. Fazit Die Plenary bot einen faszinierenden Einblick in die Zukunft der nativen Apps und die Integration von Geoinformationen. Mit ArcGIS Maps SDKs for Native Apps können Developer offline-fähige innovative Lösungen für den Außendienst schaffen.
... View more
03-13-2024
12:24 PM
|
1
|
0
|
3258
|
|
BLOG
|
Auf der Plenary des ersten Tages vom Esri DevSummit 2024 wurden spannende Entwicklungen im Bereich Digitaler Zwillinge auf Basis von Game Engines vorgestellt. Ein besonderer Fokus lag auf der Integration von Geoinformationen und der Bereitstellung von immersiven Erfahrungen. Geoinformationen in Game Engines Die ArcGIS Maps SDKs for Game Engines ermöglichen es, Geoinformationen in Game Engines zu bringen und in einer Reihe von immersiven Erfahrungen zum Leben zu erwecken. Dazu gehören Augmented-Reality-Apps, bei denen digitale Informationen in die reale Welt überlagert werden, Mixed-Reality-Apps mit Virtual-Tabletop für die kollaborative Planung in der physischen oder virtuellen Umgebung und vollständig immersive Virtual-Reality-Apps, bei denen die digitale Welt vollständig übernimmt. Die Welt der Game Engines entwickelt sich ständig weiter und ArcGIS Maps SDKs for Game Engines machen rasante Fortschritte. Die Veröffentlichungen im letzten Jahr haben viele neue und verbesserte Funktionen hinzugefügt, darunter eine größere Unterstützung für Building Information Model (BIM) Workflows und mehr Kontrolle über die Integration von Geoinformationen und Game Engine Assets. Erstellung von immersiven GIS-Erfahrungen Es wurde demonstriert, wie man mit ArcGIS Maps SDK für Unity reale Geoinformationen mit Game Engine Assets kombiniert, um eine realistische Szene für eine Simulation zu erstellen. Es wurde gezeigt, wie man aus diesem einzelnen Game Engine Projekt mehrere dynamische immersive GIS-Erfahrungen erstellt, die jeweils eine entscheidende Rolle spielen. Augmented Reality (AR) zur Anzeige versteckter Assets Es wurde AR genutzt, um versteckte Assets eines real existierenden Gebäudes anzuzeigen. Es wurde eine einfaches Unity-Projekt erstellt. Das Projekt beinhaltete ein Modell eines kürzlich errichteten Gebäudes. Mit der neuesten Version der SDKs kann man die Inhalte filtern und bestimmte Assets ein- und ausschalten. Dieses einfache Projekt war bereits, auf ein Smartphone exportiert, um eine erste immersive Erfahrung zu schaffen - eine Augmented-Reality-Anwendung in der realen Welt. Mixed Reality (MR) und Virtual Reality (VR) für Zusammenarbeit und verbessertes Training Es wurde Mixed Reality und ein virtueller Tisch für die Zusammenarbeit und Planung genutzt. Es wurde eine vollständige Übersicht über die realistische Simulation der aktuelle Lage präsentiert und die Interaktion mit mehreren Teilnehmenden nachvollziehbar vorgestellt. Dann ging es in vollständiger Immersion in die Virtual Reality Welt. Es wurden die Möglichkeiten für Trainingssimulationen im Zuge von Nachbesprechungen bzw. Fehlverhalten von Akteuren diskutiert. Mit VR für das Training kann die Informationsaufnahme der Akteure verbessert und die Anzahl der Fehler minimiert werden, was entscheidend ist, wenn in einer Notfallsituation jede Sekunde zählt. AR für Notfall-Ersthelfer Weiterhin wurde gezeigt, wie Notfall-Ersthelfer AR nutzen können, um zu sehen, wie sich die Situation vor Ort entwickeln könnte. Sie können Notfallfahrzeuge sehen, die am Einsatzort eintreffen, und eventuelle Zugangsprobleme in der realen Welt erkennen. Mit AR können sie auch in das Gebäude hineinsehen und die interne Gebäudestruktur und -systeme wie die Klimaanlagenkanäle verstehen bzw. mögliche Gefahrenpotentiale direkt identifizieren. Fazit Der erste Tag der Plenary vom Esri DevSummit 2024 bot einen faszinierenden Einblick in die Zukunft von GIS und die Integration von Geoinformationen in Game Engines. Mit den ArcGIS Maps SDKs for Game Engines können Developer immersive Erfahrungen mit ihren realen Geoinformationen erstellen. Es bleibt spannend zu sehen, wie diese neuen Funktionen genutzt werden, um innovative Lösungen und Simulationen für Digitale Zwillinge zu realisieren. Hier findet ihr die Aufzeichnung der Plenary: Esri DevSummit 2024 Landing Page
... View more
03-13-2024
11:41 AM
|
1
|
0
|
691
|
|
BLOG
|
Im Rahmen der Plenary des Esri DevSummit 2024 stellte Sud Menon die Visionen, Architekturprinzipien von ArcGIS vor. ArcGIS ist ein umfassendes Enterprise-System, das raum- und zeitbezogene Analysefähigkeiten in all seiner Vielfalt als Software, SaaS und PaaS bereitstellt. ArcGIS: Ein umfassendes geografisches Enterprise-System ArcGIS umfasst Produkte, Apps, User Types, Geoinformationen und Analysefähigkeiten, die nahtlos zusammenarbeiten, um ein fundiertes Enterprise-System zu bilden. Auf diesem System können branchenspezifische Geschäftsprozess aufgewertet werden. Neu ist das ArcGIS Well Architectured Framework, eine zentrale Anlaufstelle, die alle Muster, Praktiken und architektonischen Richtlinien zusammenfasst, die für den Aufwertung zahlreicher branchenspezifischer Geschäftsprozesse mit ArcGIS und all seinen architektonischen Mustern relevant sind. Leitprinzipien von ArcGIS Die Leitprinzipien von ArcGIS umfassen: Leistungsstarke raum- und zeitbezogene Analysefähigkeiten: ArcGIS liefert leistungsstarke Analysefähigkeiten, die synergistisch zusammenarbeiten. Apps und Experiences: ArcGIS beinhaltet Apps und Experiences, die Geoinformationen zum Leben erwecken. Identität und User Types: ArcGIS unterstützt Identität und User Types, die Zugang zu Apps und Funktionen bieten. Sharing: ArcGIS beinhaltet ein leistungsstarkes Sharing-Modell, das sowohl privates als auch öffentliches Sharing ermöglicht. Offenheit für Developer: ArcGIS ist offen für Developer mit umfangreichen APIs und SDKs, die Zugang zu raum- und zeitbezogenen Analysefähigkeiten ermöglichen. Cloud und On-Premise: ArcGIS läuft in der Cloud sowie in eigenen Rechenzentren und auf zahlreichen Endgeräten. Leistungsstarke Enterprise IT: ArcGIS ist leistungsstark, skalierbar, widerstandsfähig und sicher. Die Integrationsfähigkeit ist eine querschnittliche Eigenschaft von ArcGIS und verringert die technischen Schulden bei der Bereitstellung von Analysefähigkeiten. ArcGIS Well-Architected Framework Integration von AI in ArcGIS Ein zentrales Ziel von ArcGIS ist es, AI in sämtliche Anwendungsfälle zu integrieren. Es gibt zwei Hauptbereiche, in denen AI in ArcGIS integriert wird: Geo-AI und AI-Assistenz. Geo-AI bezieht sich auf die Verwendung von AI zur Extraktion von Geoinformationen aus Sensordaten und zur Durchführung von Geoanalysen auf raum- und zeitbezogenen Informationen. AI-Assistenz bezieht sich auf die Verbesserung der Benutzerfreundlichkeit und die Bereitstellung von natürlichen Sprach-Interfaces. - "Sprechenden Menschen kann geholfen werden." Fazit Die Plenary am ersten Tag des Esri DevSummit 2024 bot einen tiefen Einblick in die Visionen und Technologien, welche die Rahmenbedingungen für die Ingenieurskunst bei der Implementierung von ArcGIS darstellen. Mit dem neuen ArcGIS Well Architectured Framework und der Integration von AI bietet ArcGIS eine leistungsstarke Plattform für die Entwicklung von Enterprise-Systemen mit raum- und zeitbezogenen Analysefähigkeiten. Es bleibt spannend zu sehen, wie Developer diese neuen Funktionen nutzen werden, um innovative Lösungen im Zuge der Digitalisierung zu entwerfen. Hier findet ihr die Aufzeichnung der Plenary: Esri DevSummit 2024 Landing Page
... View more
03-13-2024
10:42 AM
|
1
|
0
|
696
|
|
BLOG
|
Die Plenary am ersten Tag des Esri DevSummit 2024 in Palm Springs bot einen tiefen Einblick auf ArcGIS aus der Developer-Perspektive. Es wurde betont, dass ArcGIS nicht nur als eine Reihe von Produkten, sondern als eine Reihe von Fähigkeiten betrachtet werden sollte, die Developer nutzen können, um ihre Arbeit zu erledigen und Herausforderungen der Digitalisierung zu lösen. Vielfältige Möglichkeiten für Developer Developer haben verschiedene Möglichkeiten, diese Fähigkeiten zu nutzen. Sie können unsere ArcGIS Produkte erweitern und anpassen, Apps auf Basis von ArcGIS Online (SaaS) und ArcGIS Platform (PaaS) oder fachspezifische Lösungen erstellen bzw. bestehende Geschäftsprozesse mit Location Intelligence aufwerten. Qualitätsgesicherte Geoinformationen und Fähigkeiten werden als eine Reihe von Location Services bereitgestellt, die entweder innerhalb Ihrer eigenen Infrastruktur verwaltet werden können oder in der Cloud gehostet und skaliert werden können. ArcGIS: Eine Vielzahl von raum- und zeitbezogenen Analysefähigkeiten Es wurde betont, dass ArcGIS als eine Reihe von raum- und zeitbezogenen Analyesefähigkeiten betrachtet werden sollte. Diese Fähigkeiten können in zahlreichen Bereichen eingesetzt werden, wie z.B. im Außendienst, bei der Analyse und Visualisierung von Echtzeitdaten oder bei der klassischen räumlichen Geoanalyse. Developertools und Ressourcen Es wurde eine umfassende Reihe von Developertools und -ressourcen vorgestellt, darunter Guides, Tutorials, APIs und Best Practices. Diese Ressourcen sollen sicherstellen, dass Developer unabhängig von der verwendeten Fähigkeit oder dem erweiterten ArcGIS Produkt schnell erfolgreich sind. Mapping APIs and Services Neue APIs und Dienste Es wurden neue APIs und Dienste vorgestellt, darunter der Places-Service mit über 50 Millionen POIs weltweit und ein neuer Basemap Styles Service. Außerdem wurde ein neuer Static Basemap Tile Service vorgestellt, der die Flexibilität von Vector-Styled Basemaps mit der Einfachheit von statischen Rasterkacheln kombiniert. Damit kann auch bei leistungsschwachen Endgeräten ein sehr gutes Render-Verhalten gewährleistet werden. Ein weiterer neuer Dienst ist der Elevation Services, der es ermöglicht, Höhenwerte von überall auf der Welt abzurufen. Fazit Die Plenary am ersten Tag des Esri DevSummit 2024 bot einen umfassenden Überblick der Möglichkeiten für Developer, die ArcGIS bietet. Mit einer Vielzahl von Tools, Ressourcen und neuen Location Services können Developer hochwertige, unternehmensgerechte Apps erstellen und jedem zur Verfügung stellen. Es wurde deutlich, dass ArcGIS sich ständig weiterentwickelt, um den neuen Anforderungen der Developer und der Digitalisierung gerecht zu werden. Uns ist bewusst, dass wir die neuesten Technologien möglichst ohne Zeitverzug im Markt in Wert setzen müssen. Hier findet ihr die Aufzeichnung der Plenary: Esri DevSummit 2024 Landing Page
... View more
03-13-2024
09:41 AM
|
1
|
0
|
738
|
|
BLOG
|
Hier ist eine kurze Zusammenfassung der wichtigsten Fakten: Ende des Lebenszyklus ArcGIS Engine nähert sich dem Ende seines Lebenszyklus. Zwei wichtige Daten sind der Verkaufsstopp von Deployment Licenses am 01.10.2024 und dem Ende der Wartung im März 2027. Migrationsmöglichkeiten Es gibt keine direkte Nachfolgeversion von ArcGIS Engine, daher erfordert die Migration eine Neuentwicklung und strategische Neuausrichtung. Migrationsoptionen Es existieren viele Optionen, darunter konfigurierbare ArcGIS Apps, native Anwendungen mit ArcGIS Pro SDK oder ArcGIS Maps SDKs, und dienstebasierte Lösungen mit ArcGIS Online oder ArcGIS Enterprise. Zukunftssicherheit Die Migration bietet die Chance, zu einer modernen Infrastruktur überzugehen und Flexibilität sowie Erweiterbarkeit für zukünftige Anforderungen zu gewährleisten. Mehr Details dazu: ArcGIS Blog: Migration von ArcGIS Engine Wir freuen uns über fachliche Fragen und unterstützen gerne bei der Migration von ArcGIS Engine Altanwendungen.
... View more
03-07-2024
02:41 AM
|
2
|
0
|
715
|
|
BLOG
|
Wir freuen uns, euch mitteilen zu können, dass ein weiteres natives SDK auf dem Weg zu einer Beta-Veröffentlichung ist - ArcGIS Maps SDK for Flutter! 🎉🗺️ Dies ist eine aufregende Nachricht für alle, die an der Entwicklung von Kartenanwendungen arbeiten. Mit dem neuen SDK können wir leistungsstarke, interaktive Kartenanwendungen mit Flutter erstellen, einer immer beliebter werdende Technologie für die plattformübergreifende App-Entwicklung. Wir laden euch alle ein mehr über diese aufregende Entwicklung zu erfahren. Lasst uns die Diskussion beginnen wie wir gemeinsam die Zukunft der Kartenanwendungen gestalten! 🚀 Hier der Blog Post vom Dev Team: Coming up: ArcGIS Maps SDK for Flutter beta release (esri.com) Teilt eure Gedanken und Fragen in den Kommentaren.
... View more
01-23-2024
08:22 AM
|
0
|
0
|
796
|
|
BLOG
|
Wir freuen uns, die neueste Version ArcGIS Maps SDK for Unreal Engine vorstellen zu können. Die Version 1.4 bietet eine Reihe von aufregenden neuen Funktionen, die wir in diesem Beitrag näher erläutern möchten. Building Scene Layer Filtering Mit der Version 1.4 haben wir die Möglichkeit eingeführt, Gebäudeszenenlayer zu filtern. Diese Funktion ermöglicht es Ihnen, verschiedene Aspekte oder Teile eines Gebäudes anzuzeigen oder auszublenden, basierend auf Disziplin, Kategorie oder SQL-Ausdruck. Dies kann besonders nützlich sein, wenn man nur die relevanten Informationen für eine bestimmte Aufgabe anzeigen möchten. Spatial Filtering und Mesh Modification Eine weitere wichtige Neuerung in der Version 1.4 ist das räumliche Filtern und die Mesh-Modifikation. Mit dieser Funktion kann man Polygonbereiche zeichnen und modifizieren, um Szenenlayer und Geländedaten zu filtern oder zu ersetzen. Dies kann sowohl programmatisch als auch über eine neue Benutzeroberfläche im Unreal Engine Editor erfolgen. Und das Beste daran ist, dass diese Funktion nun auch auf mobilen Plattformen verfügbar ist! Virtual Tabletop Zum Schluss möchten wir die Funktion "Virtual Tabletop" hervorheben. Diese Funktion unterstützt die Erstellung von immersiven Anwendungen, die geographische Daten in einer Szene auf einer Oberfläche in einer virtuellen oder physischen Umgebung anzeigen. Dies kann mit XR-Headsets ermöglicht werden und ist besonders beliebt in den Bereichen AEC, Verteidigung und öffentliche Sicherheit. Wir hoffen, dass diese neuen Funktionen Ihnen dabei helfen werden, Ihre Projekte auf das nächste Level zu heben. Wenn Sie mehr über unser ArcGIS Maps SDK for Unreal Engine erfahren möchten, empfehlen wir einen Blick in das Get Started Guide zu werfen. Bis zum nächsten Mal
... View more
12-19-2023
07:52 AM
|
0
|
0
|
832
|
|
BLOG
|
In diesem Blogpost werden wir uns ansehen, wie man ArcGIS API für Python verwendet, um alle Offline-Kartenbereiche und deren zugehörige Elemente in allen Webkarten eines bestimmten ArcGIS Online-Kontos aufzulisten. Einleitung Die ArcGIS API für Python ist eine leistungsstarke Bibliothek, welche ArcGIS Enterprise und ArcGIS Online unterstützt und ein konsistentes Programmiererlebnis für das Skripten und Automatisieren im gesamten ArcGIS-Produktspektrum bietet. Python-Skript Hier ist das Python-Skript, das wir verwenden werden: from arcgis.gis import GIS
from arcgis.mapping import WebMap
gis = GIS(username='<developer>')
webmap_items = gis.content.search(query="type:'Web Map'")
for webmap_item in webmap_items:
webmap = WebMap(webmap_item)
map_area_items = webmap.offline_areas.list()
for map_area_item in map_area_items:
header = f"'{webmap_item.title}' has an offline map area named '{map_area_item.title}' sharing the 'Area2Package' relationship with:"
print(header)
for rel_item in map_area_item.related_items('Area2Package', 'forward'):
print(f'\t{rel_item.title}\n\t\t{gis.url}/home/item.html?id={rel_item.id}\n\t\t{rel_item.type}')
print('\n') 'Bonn WebMap' has an offline map area named 'Bonn WebMap_MapArea' sharing the 'Area2Package' relationship with:
Vector-8795e9d21ed7456c90e332c7a363bfdd
https://<organization>.maps.arcgis.com/home/item.html?id=422affa753fc4a378f9dea691d5f3047
Vector Tile Package Skript Erklärung Dieses Skript durchläuft alle Webkarten und listet für jede Karte alle Offline-Kartenbereiche und deren zugehörige Portalelemente auf. Die Beziehung 'Area2Package' deutet darauf hin, dass der Kartenbereich als Paket für die Offline-Nutzung exportiert wurde. Die zugehörigen Portalelemente wurden als Pakete aus den Kartenbereichen erstellt. Fazit ArcGIS API für Python ermöglicht die Automatisierung komplexer Aufgaben wie das Auflisten von Offline-Kartenbereichen und deren zugehörigen Portalelemente. Mit ein wenig Python können wir diese API nutzen, um unsere Arbeit mit ArcGIS effizienter und effektiver zu gestalten. Ich hoffe, dieser Blogpost war hilfreich! Wenn Ihr Fragen oder Anmerkungen habt, zögert nicht, sie zu stellen. Happy Mapping!
... View more
12-19-2023
05:36 AM
|
1
|
0
|
839
|
|
DOC
|
Introduction Spatial data science offers insights into various domains, but also uses computing resources and emits greenhouse gases. We honestly believe, that if we focus on carbon effective spatial data science, we become part of the climate solution. We are focusing on reducing the negative impacts of spatial data science calculations on our climate by reducing the carbon emissions. We introduce some common practices doing spatial data science in a carbon effective way. If you are interested in the common green software engineering approach. You should have a look at the Green Software Foundation | GSF. Setup your spatial data science environment Our spatial data science environment is based upon Python and pip/conda. So that we are using a lightweight Python module estimating the amount of carbon dioxide produced by the spatial data science compute workflow. If you are using conda you can install CodeCarbon using the condaforge channel. Installing CodeCarbon into a conda environment # author: Jan Tschada
# SPDX-License-Identifer: Apache-2.0
conda install -c codecarbon -c conda-forge codecarbon=2.2 CodeCarbon Motivation CodeCarbon Methodology CodeCarbon Installation Methods The spatial data science workflows represents the most common use cases we experienced during our daily work. ArcGIS Notebooks provide a cloud-native Software-as-a-Service solution optimized for spatial data science. Every notebook starts a dedicated instance running in the cloud. So that we can easily extend this Python environment using the CodeCarbon module. Live Traffic The city of Bonn provides real-time traffic information on the three Rhine bridges and the most important inner-city main roads of Bonn. Every 5 minutes the traffic information is updated. We want to collect the real-time traffic information using a dedicated feature service running in our ArcGIS Online instance. The estimated carbon emissions need to be preprocessed and serialized into a feature service. The emission tracker uses a location API detecting in which cloud region the Python process is running. ArcGIS utility functions for collecting and estimating # author: Jan Tschada
# SPDX-License-Identifer: Apache-2.0
from arcgis.gis import GIS
from arcgis.features import FeatureSet, GeoAccessor
from codecarbon import EmissionsTracker
import logging
import pandas as pd
import requests
import sys
def query_traffic():
url = 'http://stadtplan.bonn.de/geojson?Thema=19584'
response = requests.get(url)
response.raise_for_status()
return response.json()
def prepare_emissions(tracker):
emissions_data = tracker.final_emissions_data
emissions_df = pd.DataFrame.from_records([dict(emissions_data.values)])
emissions_df['timestamp'] = pd.to_datetime(emissions_df['timestamp'])
emissions_sdf = GeoAccessor.from_xy(emissions_df, 'longitude', 'latitude')
emissions_sdf.rename(columns={
'project_name': 'project',
'emissions_rate': 'rate',
'energy_consumed': 'consumed',
'country_name': 'country',
'country_iso_code': 'iso_code',
'cloud_provider': 'provider',
'cloud_region': 'cloud',
'codecarbon_version': 'codecarbon',
'python_version': 'python',
'ram_total_size': 'ram_total',
'tracking_mode': 'tracking'
}, inplace=True)
return emissions_sdf
def prepare_traffic(traffic_featureset):
traffic_sdf = traffic_featureset.sdf[['strecke_id', 'auswertezeit', 'geschwindigkeit', 'verkehrsstatus', 'SHAPE']]
traffic_sdf['auswertezeit'] = pd.to_datetime(traffic_sdf['auswertezeit'])
traffic_sdf['geschwindigkeit'] = pd.to_numeric(traffic_sdf['geschwindigkeit'])
traffic_sdf.rename(columns={
'strecke_id': 'seg_id',
'auswertezeit': 'time',
'geschwindigkeit': 'speed',
'verkehrsstatus': 'traffic'
}, inplace=True)
return traffic_sdf
def publish_emissions(tracker):
emissions_sdf = prepare_emissions(tracker)
return emissions_sdf.spatial.to_featurelayer(title='Carbon Emissions', folder='Stadt Bonn', tags=['Open Data', 'Carbon', 'Digital Twin'])
def publish_traffic(traffic_featureset):
traffic_sdf = prepare_traffic(traffic_featureset)
return traffic_sdf.spatial.to_featurelayer(title='Stadt Bonn - Aktuelle Straßenverkehrslage', folder='Stadt Bonn', tags=['Open Data', 'Traffic', 'Digital Twin'])
def add_emissions(emissions_featurelayer, tracker):
emissions_sdf = prepare_emissions(tracker)
new_features = emissions_sdf.spatial.to_featureset().features
edit_result = emissions_featurelayer.edit_features(adds=new_features)
return edit_result
def add_traffic(traffic_featurelayer, traffic_featureset):
traffic_sdf = prepare_traffic(traffic_featureset)
new_features = traffic_sdf.spatial.to_featureset().features
edit_result = traffic_featurelayer.edit_features(adds=new_features)
return edit_result
def find_emissions(gis):
portal_items = gis.content.search(query='title:Carbon Emissions AND tags:"Open Data"', item_type='Feature Layer')
if 0 < len(portal_items):
first_portal_item = portal_items[0]
if 0 < len(first_portal_item.layers):
return first_portal_item.layers[0]
return None
def find_traffic(gis):
portal_items = gis.content.search(query='title:Stadt Bonn - Aktuelle Straßenverkehrslage AND tags:"Open Data"', item_type='Feature Layer')
if 0 < len(portal_items):
first_portal_item = portal_items[0]
if 0 < len(first_portal_item.layers):
return first_portal_item.layers[0]
return None The emission tracker estimates the carbon emissions. The following snippet represents the live traffic implementation. It validates whether or not a dedicated feature layer was already published. If not a new feature service hosting the carbon emissions and the traffic information is created. Snippet for collecting and estimating # author: Jan Tschada
# SPDX-License-Identifer: Apache-2.0
gis = GIS("home")
root = logging.getLogger()
root.setLevel(logging.INFO)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.INFO)
root.addHandler(handler)
tracker = EmissionsTracker(project_name='Open Data Bonn', output_dir='/arcgis/home/')
tracker.start()
traffic_geojson = query_traffic()
traffic_featureset = FeatureSet.from_geojson(traffic_geojson)
traffic_featurelayer = find_traffic(gis)
if None is traffic_featurelayer:
publish_result = publish_traffic(traffic_featureset)
logging.info(publish_result)
else:
delete_result = traffic_featurelayer.delete_features(where='1=1')
logging.info(delete_result)
add_result = add_traffic(traffic_featurelayer, traffic_featureset)
logging.info(add_result)
emissions = tracker.stop()
emissions_featurelayer = find_emissions(gis)
if None is emissions_featurelayer:
publish_result = publish_emissions(tracker)
logging.info(publish_result)
else:
add_result = add_emissions(emissions_featurelayer, tracker)
logging.info(add_result)
emissions Results The Green Spatial Engineering Dashboard shows the estimated carbon equivalents in kilograms for our spatial data science workflows. The first use case represents the carbon footprint for querying and collecting the real-time traffic information from the city of Bonn every 15 minutes. Links: Green Spatial Engineering Repository
... View more
06-20-2023
02:41 AM
|
0
|
0
|
1478
|
|
BLOG
|
Der einfachste Weg direkten Zugriff auf die Location Services von ArcGIS Platform zu erhalten, ist die Verwendung eines API Keys. Beim Erstellen eines Qt Creator Projektes mit der ArcGIS Maps SDKs for Qt - Vorlage wird ein Platzhalter für den entsprechenden API Key im Quellcode erzeugt. Man muss lediglich sich in das eigene Developer Dashboard bewegen, einen entsprechenden API Key anlegen und kann dann den Zugriff auf die Location Services verwalten. Der API Key wird einfach im Quellcode ersetzt, oder über einen Konfigurationsmechanismus eingelesen - z.B. über eine entsprechende Umgebungsvariable. #include "ArcGISRuntimeEnvironment.h"
#include <QProcessEnvironment>
using namespace Esri::ArcGISRuntime;
///
/// \brief readApiKeyFromEnvironment
/// Reads the API key directly accessing the location services of ArcGIS Platform
/// using the current process environment.
/// The environment must contain a variable named 'arcgisruntime_api_key'.
///
static void readApiKeyFromEnvironment()
{
QString apiKeyName = "arcgisruntime_api_key";
QProcessEnvironment systemEnvironment = QProcessEnvironment::systemEnvironment();
if (systemEnvironment.contains(apiKeyName))
{
QString apiKey = systemEnvironment.value(apiKeyName);
ArcGISRuntimeEnvironment::setApiKey(apiKey);
}
else
{
qWarning() << "Use of Esri location services, including basemaps, requires "
"you to authenticate with an ArcGIS identity or set the API Key property.";
}
} ArcGIS Developers API Keys
... View more
02-06-2023
06:17 AM
|
2
|
0
|
1034
|
|
BLOG
|
Hin- und wieder möchte man wissen, welche Tools und Modelle sich in einer Toolbox befinden. Eine Python Toolbox verhält sich dabei wie ein Python Modul. D.h. man kann z.B. mit inspect die einzelnen Klassen, Funktionen und sämtliche Attribute auflisten. Das geht aber auch einfacher, indem man per __all__ die enthaltenen Tools und Modelle abfragt. import arcpy
def list_tools(toolbox_path: str)->list[str]:
"""
Returns the tool/model names of the specified toolbox.
:toolbox_path: path-like-object representing the full-qualified *.tbx file
"""
toolbox = arcpy.ImportToolbox(toolbox_path)
return toolbox.__all__
list_tools(r"..\ArcGIS\Projects\AIS\AIS.tbx") Was befindet sich in euerer Lieblings-Toolbox?
... View more
02-03-2023
01:02 AM
|
2
|
0
|
3479
|
|
BLOG
|
Wenn man direkt die ArcGIS REST API beim Zugriff auf Feature Services verwendet, bemerkt man dass die Datumswerte von Features als Ganzzahl abgebildet werden. Diese repräsentiert das Unix Timstamp in Millisekunden. Die folgende Funktion erwartet ein FeatureSet als JSON-Objekt und konvertiert die gewünschten Felder in korrekte Datumswerte bzw. in eine ISO-konforme Zeichenkettendarstellung. Ein FeatureSet kann einfach per json.loads(<Esri FeatureSet String>) erzeugt werden. Für den Test haben wir einfach die Ladesäulen in Deutschland - Übersicht (arcgis.com) abgefragt, in der Abfrageansicht einfach (Where: '1=1', Out Fields: Inbetriebnahmedatum, Format: JSON). from datetime import datetime
def convert_timestamps(feature_set: FeatureSet, field_names, use_iso=True):
"""Converts timestamps (UNIX epoch in [ms]) into datetime objects by modifying the feature set directly."""
for feature in feature_set.features:
for attribute_name in feature.attributes:
if attribute_name in field_names:
if use_iso:
feature.attributes[attribute_name] = datetime.utcfromtimestamp(feature.attributes[attribute_name] * 1e-3).isoformat()
else:
feature.attributes[attribute_name] = datetime.utcfromtimestamp(feature.attributes[attribute_name] * 1e-3) Wenn ihr ISO verwendet, was kommt bei euch als Suffix '+00:00' oder 'Z' (steht nicht für 'Zero' sondern für 'Zulu'), oder etwas ganz anderes?
... View more
01-30-2023
01:59 AM
|
1
|
0
|
1124
|
|
BLOG
|
In einer ArcGIS Pro Python-Umgebung kann direkt auf die aktuell verbundene ArcGIS Online bzw. ArcGIS Enterprise Instanz zugegriffen werden. Dafür verwendet man einfach das Schlüsselwort 'home'. Die ArcGIS API for Python verwendet in einer ArcGIS Pro Python-Umgebung arcpy. Wenn man allerdings eine Python-Umgebung ohne arcpy verwendet, wird man mit einem Stacktrace belohnt. from arcgis.gis import GIS
# Uses the current login of the ArcGIS Pro environment
# e.g. ArcGIS Pro authorized ArcGIS identiy, needs arcpy
gis = GIS('home')
gis.users.me In einem Jupyter notebook erscheint mein Profil und bei euch?
... View more
01-27-2023
04:51 AM
|
2
|
1
|
1045
|
|
BLOG
|
You are the ones showing that this community is legit, and we are so thankful for your contributions solving specific problems of our customers and partners. Especially when dealing with opinionated -me included - technically skilled people: Thank you for your patience, your understandings and your goodwill!
... View more
01-10-2023
05:22 AM
|
8
|
0
|
43378
|
|
POST
|
Our developers prefer to use Visual Studio 2019/2022 environments, too. We switched using CMake for our implementation projects as @JamesBallard1 suggested. I know CMake is a different beast - especially when it comes to caching and multiple configurations - but migrating to the new version 200.x being based on Qt6 worked like a charm for our projects. We still see some issues with CMake and caching in the VS environments in more complex scenarios like compiling the Qt Maps SDK using vcpkg e.g. with pybind11 into a core foundational Python module, because our data engineers love to use Maps SDK functionality in their Python environments. So that, we setup a new project or solving issues for existing projects using Qt Creator with CMake and then switch back to Visual Studio. Here is some neat tutorial from Microsoft: CMake projects using VS 2019
... View more
01-05-2023
03:38 AM
|
1
|
0
|
2405
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 05-22-2025 04:30 AM | |
| 3 | 09-18-2024 11:29 AM | |
| 1 | 07-30-2024 07:55 AM | |
| 1 | 03-13-2024 09:41 AM | |
| 1 | 03-13-2024 10:42 AM |
| Online Status |
Offline
|
| Date Last Visited |
12-02-2025
02:29 AM
|