POST
|
I added fields to a Feature Layer and now there are problems with adding Features to this. So I would like to ask, how can I solve this issue? This is my actual workflow: I have a Feature Service with a Feature Layer and I want to join this with the structure and data into another Feature Service which has already some Feature Layers. An empty feature 1. I get the necessary information for the new Feature Layer form the existing one (fields, geometry type and name). This information is stored in a dictionary with the correct key as they are required in the layer description. The "Shape_length", "Shape_area" and "FID" fields are removed. dictLayer = {}
dictLayer["fields"] = existingLayer.properties["fields"]
dictLayer["geometryType"] = existingLayer.properties["geometryType"]
dictLayer["name"] = existingLayer.properties["name"] 2. The dictionary is appended to a list and a dictionary is built out of this. This dictionary is used to update the layer's definition. This works very well and the layer with the fields occures in ArcGIS Online. layersList = []
layersList.append(dictLayer)
dictUpdate = {"layers" : layersList }
newFeatureLayerCollection.manager.add_to_definition(dictUpdate) 3. The features that should be added to the layer are converted into a FeatureSet. Now there are many Features that should be added to the Feature Layer in one list. This meets the requirements of the "edit_features()" method. So this method is called with the Feature Set as parameter layerEdit.edit_features(adds = fset) When this function is executed this error message occures: The given key was not present in the dictionary. ---------------------------------------------------------------------------RuntimeError Traceback (most recent call last)<ipython-input-35-f124a193606a> in <module>()----> 1 layerEdit.edit_features(adds = fset)~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis\features\layer.py in edit_features(self, adds, updates, deletes, gdb_version, use_global_ids, rollback_on_failure) 943 print("Parameters not valid for edit_features") 944 return None--> 945 return self._con.post(path=edit_url, postdata=params, token=self._token) 946 947 # ----------------------------------------------------------------------~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis\_impl\connection.py in post(self, path, postdata, files, ssl, compress, is_retry, use_ordered_dict, add_token, verify_cert, token, try_json, out_folder, file_name, force_bytes, add_headers) 1151 verify_cert=verify_cert, is_retry=True) 1152 -> 1153 self._handle_json_error(resp_json['error'], errorcode) 1154 return None 1155 except AttributeError:~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis\_impl\connection.py in _handle_json_error(self, error, errorcode) 1171 1172 errormessage = errormessage + "\n(Error Code: " + str(errorcode) +")"-> 1173 raise RuntimeError(errormessage) 1174 1175 class _StrictURLopener(request.FancyURLopener):RuntimeError: The given key was not present in the dictionary. (Error Code: 500) It seams to me as there is a problem with the geometry. Because i get a query result with all Features and attributes but there is no information about Shape_Area and Shape_Length. When I swith to the "Data" tab in ArcGIS Online there is a number of Features but no entry in the Table view. This is the URL to the Service of this example: https://services1.arcgis.com/wdMHWK8xfn32LjIy/arcgis/rest/services/CombineLayers/FeatureServer What is the reason for this problem? rsingh-esristaff
... View more
01-26-2018
03:34 AM
|
0
|
0
|
2439
|
POST
|
I have different Spatial Dataframes which I want to combine in one Feature Service. As the Dataframes have different geometry types and attributes I need one Feature Service with different Layers. First I created an empty Feature Service and tried to update the layer's section of the service definition. The following workflow did not work and there was no change in the service definition. newService = gis.content.create_service("CombineLayers_New", service_type='featureService')
newFeatureLayerCollection = features.FeatureLayerCollection.fromitem(newService)
dictLayer = {}
dictLayer["geometryType"] = "esriGeometryPoint"
dictLayer["name"] = "AuGeoPoints"
dictLayer["id"] = 0
layersList = []
layersList.append(dictLayer)
dictUpdate = {"layers" : layersList }
newFeatureLayerCollection.manager.update_definition(dictUpdate) How can I publish a Feature Service and add more than one Feature Layer? rsingh-esristaff
... View more
01-23-2018
08:59 AM
|
0
|
0
|
609
|
POST
|
I create a Spatial Dataframe with a line geometry in it. This should be published as a Feature Layer on ArcGIS Online but a error occures. 1. Create a line geometry and add it to a list. line = {
"paths" : [[[-97.06138,32.837],[-97.06133,32.836],[-97.06124,32.834],[-97.06127,32.832]],
[[-97.06326,32.759],[-97.06298,32.755]]],
"spatialReference" : {"wkid" : 4326}
}
polyline = geometry.Polyline(line)
listGeometries = []
listGeometries.append(polyline) 2. Create a pandas dataframe with additional information. d = {'col1':["abc"], 'col2':[123]}
df = pd.DataFrame(d) 3. Create a Spatial Dataframe and a Feature Layer from this. spatialDataFrame = fs.SpatialDataFrame(data=df, geometry=listGeometries)
spatialDataFrameLayer = spatialDataFrame.to_featurelayer("LineFeatureLayer") This error message occures. ---------------------------------------------------------------------------KeyError Traceback (most recent call last)<ipython-input-69-74d83f9ecb21> in <module>()----> 1 spatialDataFrameLayer = spatialDataFrame.to_featurelayer("MarienplatzProjected") 2 #spatialDataFrameLayer = spatialDataFrame.to_featureset()~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis
\features\_data\geodataset\geodataframe.py in to_featurelayer(self, title, gis, tags) 899 raise ValueError("GIS object must be provided") 900 content = gis.content--> 901 return content.import_data(self, title=title, tags=tags) 902 #---------------------------------------------------------------------- 903 def set_geometry(self, col, drop=False, inplace=False, sr=None):~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis
\gis\__init__.py in import_data(self, df, address_fields, **kwargs) 2332 uuid4().hex[:5]) 2333 ds = df.to_featureclass(out_location=temp_dir,-> 2334 out_name=name) 2335 zip_shp = zipws(path=temp_dir, outfile=temp_zip, keep=False) 2336 item = self.add( ~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis
\features\_data\geodataset\geodataframe.py in to_featureclass(self, out_location, out_name,
overwrite, skip_invalid) 616 out_location=out_location, 617 out_name=out_name,--> 618 overwrite=overwrite, skip_invalid=skip_invalid) 619 #---------------------------------------------------------------------- 620 def to_hdf(self, path_or_buf, key, **kwargs):~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis\
features\_data\geodataset\io\fileops.py in to_featureclass(df, out_name, out_location, overwrite, out_sr, skip_invalid) 382 return _pyshp_to_shapefile(df=df, 383 out_path=out_location,--> 384 out_name=out_name) 385 else: 386 raise Exception("Cannot Export the data without ArcPy or PyShp modules. "+ \ ~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis
\features\_data\geodataset\io\fileops.py in _pyshp_to_shapefile(df, out_path, out_name) 90 shpfile.poly(geom['rings']) 91 elif geom.type == "Polyline":---> 92 shpfile.line(geom['path']) 93 elif geom.type == "Point": 94 shpfile.point(x=geom.x, y=geom.y)KeyError: 'path' It seams, as the "paths" key in the first code snippet is the problem, because a "path" key is required. But if the "paths" is changed to "path" the line geometrie is nod valid anymore. How can I publish valid line geometries as a Feature Layer? rsingh-esristaff
... View more
01-23-2018
06:11 AM
|
0
|
1
|
1311
|
POST
|
The following steps explain my workflow to create a Feature Layer from a Spatial Dataframe. Also the coordinates should be projected in another coordinate system. 1. Create a point located in Munich with WGS 84 coordinates and add it to a list. dictSpatialReference = {}
dictPoint = {}
x = 11.575442
y = 48.137141
wkid = 4326
dictSpatialReference["wkid"] = wkid
dictPoint["x"] = x
dictPoint["y"] = y
dictPoint["spatialReference"] = dictSpatialReference
pt = geometry.Point(dictPoint)
listGeometries = []
listGeometries.append(pt) 2. Create a pandas dataframe with aditional information. d = {'name':["Marienplatz"], 'city':["Munich"]}
df = pd.DataFrame(d) Next a Spatial Dataframe is created and a Feature Layer is published. The coordinates should be transformed in the DHDN_3_Degree_Gauss_Zone_4 coordinate system (WKID: 31468) that is a projected coordinate system for Germany. To achieve this, two different ways are implemented. 1. Project the geometries, create a Spatial Dataframe and publish a Feature Layer. listGeometriesProjected = geometry.project(listGeometries, 4326, 31468)
spatialDataFrame = fs.SpatialDataFrame(data=df, geometry=listGeometriesProjected)
spatialDataFrameLayer = spatialDataFrame.to_featurelayer("MarienplatzProjected") The coordinates are projected correctly and the Spatial Dataframe is created. The result of the "to_featurelayer()" method is this error message.
Exception Traceback (most recent call last)<ipython-input-61-74d83f9ecb21> in <module>()----> 1 spatialDataFrameLayer = spatialDataFrame.to_featurelayer("MarienplatzProjected") 2 #spatialDataFrameLayer = spatialDataFrame.to_featureset()~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis
\features\_data\geodataset\geodataframe.py in to_featurelayer(self, title, gis, tags) 899 raise ValueError("GIS object must be provided") 900 content = gis.content--> 901 return content.import_data(self, title=title, tags=tags) 902 #---------------------------------------------------------------------- 903 def set_geometry(self, col, drop=False, inplace=False, sr=None):~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis\gis
\__init__.py in import_data(self, df, address_fields, **kwargs) 2345 if target_sr is not None: 2346 publish_parameters['targetSR'] = { 'wkid' : target_sr }-> 2347 return item.publish(publish_parameters=publish_parameters) 2348 return 2349 elif isinstance(df, pd.DataFrame):~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis\gis
\__init__.py in publish(self, publish_parameters, address_fields, output_type, overwrite, file_type) 5426 except: pass 5427 else:-> 5428 serviceitem_id = self._check_publish_status(ret, folder) 5429 return Item(self._gis, serviceitem_id) 5430 ~\AppData\Local\Continuum\Anaconda3\envs\arcgis\lib\site-packages\arcgis-1.3.0-py3.5.egg\arcgis\gis
\__init__.py in _check_publish_status(self, ret, folder) 5660 #print(str(job_response)) 5661 if job_response.get("status") in ("esriJobFailed","failed"):-> 5662 raise Exception("Job failed.") 5663 elif job_response.get("status") == "esriJobCancelled": 5664 raise Exception("Job cancelled.")Exception: Job failed. 2. Create a Spatial Dataframe with the WGS84 coordinates and use the "reproject()" method. spatialDataFrame = fs.SpatialDataFrame(data=df, geometry=listGeometries)
spatialDataFrameProjected = spatialDataFrame.reproject(31468, transformation=None, inplace=False) Using the reproject method does not change anything and the coordinates and spatial reference system are still WGS84. How can I project a Spatial Dataframe and publish the data with the chosen coordinate system as a Feature Layer? rsingh-esristaff
... View more
01-23-2018
05:53 AM
|
0
|
0
|
1834
|
BLOG
|
Das Beschaffen von Geodaten ist bei vielen Projekten eine zeitaufwendige Arbeit. Dies müssen nicht in jedem Fall hochgenaue Daten sein. Für manche Fragestellungen sind auch Input von Open Streetmap ausreichend. Sei es für Studentenprojekte, sich einen Überblick über eine Thematik zu verschaffen oder eine Zielgruppe mit Informationen zu versorgen. Es besteht die Möglichkeit diese Daten herunterzuladen, in ArcMap oder ArcGIS Pro zu importieren, die gewünschten Daten zu filtern und dann beispielsweise als Dienst zu veröffentlichen. Dieser Weg ist sehr zeitintensiv und daher bedarf es einer Lösung, um die Datenquelle Open Streetmap mit der ArcGIS Plattform direkt zu verbinden, ohne den Umweg über ein Desktopprodukt nehmen zu müssen. Zur Umsetzung dieser Idee bietet sich die ArcGIS API for Python an, da diese neben diversen Analysetools auch einen vielseitigen Zugriff auf ArcGIS Online und ArcGIS for Portal anbietet. So wurden basierend auf dieser Technologie verschiedene Python Skripte erstellt und auf GitHub veröffentlicht. Ziel dieses Projekt ist es, dass Daten innerhalb eines festzulegenden Bereichs automatisch als Feature Service veröffentlicht werden. Die Umsetzung erfolgte in zwei Python Skripten, die auch separat genutzt werden können. Bevor der Prozess mit den Daten erfolgen kann, muss der Nutzer jedoch zwei Konfigurationsdateien anpassen. Eine dieser Dateien legt die Konfiguration für die zu veröffentlichenden OSM Daten mittels eines JSON Files fest. Um das Skript starten zu können müssen verschiedene Parameter, wie sie in der Tabelle beschrieben sind, festgelegt werden. Neben einer Liste von Kategorien, die in OSM als Paar von Key und Value dargestellt werden, können auch weitere Attribute von den Datensätzen übernommen werden. Zudem müssen eine Bounding Box, sowie die gewünschten Geometrien angegeben werden. Basierend auf diesem Input, wird ein Pythonskript ausgeführt, welches die gewünschten Daten mittels Requests an die Overpass und OSM API abruft. response = api.Get('node[' + category + '](' + minLat + ',' + minLon + ','
+ maxLat + ',' + maxLon + ')', responseformat="json")
elements = response["elements"]
for element in elements:
dictElement = {}
tags = [element["tags"]]
tags = tags[0]
for key_att in attributes:
val_att = attributes[key_att]
if val_att in tags:
dictElement[key_att] = tags[val_att]
id = element["id"]
#id = float(id)
dictElement["id"] = id
dictElement["lon"] = element["lon"]
dictElement["lat"] = element["lat"]
if "user" in attributes or "timestamp" in attributes:
try:
node = oApi.NodeGet(element["id"])
if "user" in attributes:
if "user" in node.keys():
dictElement["user_"] = node["user"]
if "timestamp" in attributes:
if "timestamp" in node.keys():
dictElement["timestamp"] = node["timestamp"]
except:
print("Node for this element not available")
dictElement["attribute"] = key_cat + "-" + val_cat
dictData.append(dictElement) Diese Daten werden nun in einem Dictionary strukturiert, in einen pandas Dataframe umgewandelt und zur weiteren Verwendung zurückgegeben.In einem zweiten JSON File werden die Konfigurationen für ArcGIS Online oder ArcGIS for Portal festgelegt. Wenn die benötigten Daten vorhanden sind, werden diese auf Korrektheit überprüft. Dies bedeutet, dass eine Verbindung mittels der Login Informationen hergestellt wird. Dies ist nötig, um sicherzustellen, dass die Feature Service ID korrekt ist, wenn dieser überschrieben werden soll. Wenn der Input vollständig und korrekt ist, wird ein weiteres Pythonskript gestartet. Beim Updaten eines Feature Services wird dieser geleert, der Dataframe in Blöcke zerteilt und zu jeweils 100 Features in den Features Service hinzugefügt. listAddFeatures = []
i = 0
dataAvailable = True
dataUploaded = False
dataQuery = fc_dataAdd.query()
while dataAvailable:
modulo_i = i % 100
if modulo_i == 0 and i != 0 and not dataUploaded:
layer.edit_features(adds = listAddFeatures)
listAddFeatures.clear()
dataUploaded = True
print(str(i)+" Features of "+str(len(dataQuery))+" added.")
else:
try:
listAddFeatures.append(dataQuery.features[i])
i = i + 1
dataUploaded = False
except:
dataAvailable = False
layer.edit_features(adds = listAddFeatures)
print("All "+str(len(dataQuery))+" Features added.") Beim Erstellen eines neuen Feature Services fallen vor dem Upload der Daten weitere Arbeitsschritte an, denn es muss ein leerer Feature Service mit den benötigten Felder angelegt werden. Hierfür erstellt man einen neuen Dataframe, welcher nur die Titelzeile des Übergebenen enthält. Nun wird durch alle vorhandenen Felder iteriert und die Felder mit dem Datentyp „int64“ in eine neue Liste hinzugefügt. newField = {
"name" : intFieldName,
"type" : "esriFieldTypeInteger",
"alias" : intFieldName,
"sqlType" : "sqlTypeBigInt",
"nullable" : True,
"editable" : True,
"visible" : True
}
token_URL = "{}/sharing/generateToken".format(portal)
token_params = {'username' : user,
'password' : password,
'client' : 'referer',
'referer': portal,
'expiration': 60,
'f' : 'json'
}
r = requests.post(token_URL,token_params)
token_obj = r.json()
token = token_obj['token']
expires = token_obj['expires']
tokenExpires = datetime.datetime.fromtimestamp(int(expires)/1000)
featureLayerAdminUrl = layerURL.replace("/rest/", "/rest/admin/")
params = {"f":"json", "token":token}
params["addToDefinition"] = json.dumps({"fields":[newField]})
layerUpdateUrl = "{}/addToDefinition".format(featureLayerAdminUrl)
layerResult = requests.post(layerUpdateUrl, params)
Dieser Schritt ist wichtig, denn beim Veröffentlichen eines Feature Services mittels der ArcGIS API for Python werden Integer Felder nur als „int32“ angelegt und bei höheren Werten treten Fehler auf. Nun wird ein Feature Service erstellt und die „int64“ Felder mittels eines Requests an die Portal API hinzugefügt, denn auf diesem Weg können höhere Integerwerte gespeichert werden. for field in listBigInt:
del dataframe_total_title[field]
fc = gis.content.import_data(dataframe_total_title)
item_properties_input = {
"title": title,
"tags" : tags,
"description": description,
"text": json.dumps({"featureCollection": {"layers": [dict(fc.layer)]}}),
"type": "Feature Collection",
}
item = gis.content.add(item_properties_input)
new_item = item.publish() Nun ist der Service mit allen benötigten Attributen angelegt und die Features können in Blöcken, wie beim Update, hinzugefügt werden. Ergebnis ist ein GitHub Repository, welches die verschiedenen Skripten enthält. Diese können somit in dem aktuellen Status oder auch einzeln verwendet werden. Zudem ist es möglich die Abläufe an die eigenen Bedürfnisse anzupassen. So könnte man das Skript auch um Methoden erweitern, um die Daten nicht als Feature Service, sondern als Shape File oder Geodatabase zu speichern. Mit diesem Tool ist es gelungen eine Brücke zwischen der reichhaltigen Open Streetmap Datenbasis und der mächtigen ArcGIS Plattform zu schlagen.
... View more
12-14-2017
04:51 AM
|
2
|
0
|
1000
|
POST
|
This video gives some impressions of the Esri Developer Summit Europe 2017 in Berlin.devsummit-2017# devsummit2017 geodev germany geodev
... View more
11-08-2017
09:39 PM
|
2
|
0
|
1590
|
BLOG
|
Die Technologie der Augmented Reality hält seit langem Einzug in unser tägliches Leben. Als Anfang kann man das Einblenden von verschiedenen Zusatzinformationen in Sportübertragungen nennen. Beispiele hierfür sind die Torentfernung von Freistößen im Fußball oder die Sprungweite des führenden Sportlers beim Skispringen. Hierbei handelt es sich lediglich um die visuelle Darstellung einer Information und die interaktive Komponente fehlt komplett. Mit der Entwicklung von Smartphones mit großer Rechenkapazität und der wachsenden Leistung des GPS und der mobilen Datennetze können auch immer mehr Augmented Reality Anwendungen genutzt werden. Diese Neuentwicklungen bieten dem User oftmals Möglichkeiten interaktiv in die erweiterte Realität einzugreifen. Der letzte große Augmented Realy Hype wurde mit dem Spiel Pokémon Go im Jahr 2016 ausgelöst, stellt aber neben dem Zweck der Unterhaltung keinen Mehrwert für das alltägliche Leben dar. Um allen ArcGIS Nutzern die Möglichkeit zu bieten ihre Daten in einer Augmented Realty betrachten zu können wurde von Esri Labs die AuGeo App, welche als Download in iTunes und dem Google Play Store zur Verfügung steht, entwickelt. Diese Anwendung ermöglicht es eigens gehostete Feature Services mit Punkt Geometrie in einer erweiterten Realität anzuzeigen, wie man es an folgendem Beispiel mit mehreren Berggipfeln sehen kann. Die Punktfeatures werdem zum realen Kamerabild ergänzt und am entsprechenden Ort angezeigt. Zudem wird die Entfernung zum aktuellen Standpunkt berechnet und weitere Attribute und Medien können angezeigt werden. Der erste Schritt um eigene Daten in der App nutzen zu können ist es eine Layer View auf den Feature Service zu erzeugen. Hierfür wird die ArcGIS Online Oberfläche genutzt. Wan wählt den gewünschten Feature Service und wechselt in den Visualization Tab. In dieser Ansicht können Filter, Symbologien und Pop-Ups definiert werden, welche dann für die Darstellung in der AuGeo App übernommen werden. Wenn alle gewünschten Einstellungen getroffen wurden, ist die aktuelle Ansicht als neuer Layer zu speichern. Bei diesem Schritt ist zu beachten, dass der Tag „horizon“ angegeben werden muss, damit die Features in der AuGeo App zur Darstellung ausgewählt werden können. Wenn diese Einstellungen getroffen wurden kann der neue Layer gespeichert und in der App genutzt werden. Wenn die App auf dem Device installiert ist kann man diese direkt öffnen und benutzen. Zuerst klickt man auf und wählt im erscheinenden Menü “Data Source“ und „Sign in to get more data sources“. Nun öffnet sich das bekannte ArcGIS Online Login Fenster. Sobald man sich nun in seinen ArcGIS Online Account eingeloggt hat sind alle verfügbaren Layer sichtbar und können zum Download ausgewählt werden, damit sie auch offline genutzt werden können. Nun sieht man die Features, in diesem Beispiel Gebäude der Universität Augsburg, in der echten Welt positioniert. Auf der Leiste am rechten Bildschirmrand lässt sich das Zoom einstellen. Dadurch werden Punkte in der Ferne detaillierter, aber das Sichtfenster schränkt sich ein, wie man im 2D Kartenausschnitt links unten sehen kann. Dieser Kartenausschnitt stellt zusätzlich einen Kompass dar und alle Features die in diesem Kartenausschnitt liegen werden visualisiert. Ein Berühren der 2D Darstellung maximiert den Kartenausschnitt auf die komplette Displaygröße und es kann zwischen verschiedenen Basemaps gewählt werden. Bei weiterem Betrachten des Menüs sind weitere Möglichkeiten zur Individualisierung hervorzuheben. Man hat die Möglichkeit einen Grenzwert für die maximale Entfernung der anzuzeigenden Daten festzulegen. Bei den Gebäuden eines Campus ist eine geringere Distanz sinnvoll, wohingegen die Darstellung von Berggipfeln einer wesentlich größeren Distanz bedarf. Wählt man die Möglichkeit „Settings“ öffnet sich eine neue Ansicht, welche fünf Tabs enthält. Der Tab “Display” enthält Einstellungsmöglichkeiten für die Maximale Distanz der darzustellenden Features und verschiedene Visualisierungen der Übersichtskarte, wie man in diesem Vergleich sehen kann. In den weiteren Tabs können Informationen wie Höhe über dem Boden, in Pop-ups enthaltene Informationen oder das genutzte Kameramodell festgelegt werden. Neben der Möglichkeit der Ready to Use App steht auch ein AuGeo Template für das AppStudio for ArcGIS zur Verfügung. Hier kann das Template im Qt Creator individualisiert werden. Neben der visuellen Anpassung an ein eigenes Branding können auch Funktionen erweitert, angepasst und neu eingefügt werden. Abschließend kann man diese App als sehr positiv bewerten, denn es erweitert die ArcGIS Produktfamilie um eine weitere Facette, macht die Arbeit mit den eigenen GIS Daten noch interessanter und kann diverse Arbeiten und Fragestellungen erleichtern. Neben den hier genannten Beispielen kann man auch auf Anwendungsfälle hinweisen, bei denen die angezeigten Features in der Realität nicht sofort sichtbar sind. Ein Beispiel hierfür sind Hydranten, die unter Schnee und Kies verborgen sind oder Vermessungsmarken, die im Laufe der Zeit auch von Erde und Kies überdeckt werden. Wie man sieht geht das Potential von Augmented Reality weit über Unterhaltung hinaus und kann in Kombination mit Geodaten viele Bereiche der Lebens- und Arbeitswelt erleichtern.
... View more
10-13-2017
05:01 AM
|
5
|
0
|
1280
|
POST
|
Mapping forests and single tree species using high resolution imagery is a common practice in the field of forest management. The question arises if medium resolution and freely available data - like Sentinel-2 - can compete with costly commercial data. This talk will provide an overview of the workflow and steps that were performed to achieve high accuracy data, especially by classifying tree types for a detailed level of complexity.
... View more
10-11-2017
03:52 AM
|
0
|
0
|
1811
|
POST
|
Munich Re is one of the largest Reinsurance companies of the world. Natural catastrophes - like the Hurricanes Harvey and Irma that just happened in the North Atlantic - cause huge insured losses up to several billion US$. For a fast loss estimation, it is crucial to get reliable footprint information for these events. This talk provides an overview of the fully automated process chain from downloading NOAA storm track data to providing footprint information as geodata and map services, mainly implemented in ArcPy.
... View more
10-10-2017
05:53 AM
|
0
|
0
|
1317
|
POST
|
In the globalized world of the 21st century, political risks emerge as serious obstacles not only for governmental and political institutions, but also for economic and social actors. We present a tool-based approach of how these political risks can be monitored and assessed - thereby helping decision-makers to cope in a complex and uncertain risk environment.
... View more
10-09-2017
10:07 AM
|
0
|
0
|
1320
|
POST
|
Spatial analytics are how we understand our world—mapping where things are, how they relate, what it all means, and what actions to take. Spatial analytics is the heart and soul of ArcGIS. Within the ArcGIS Plattform everyone can perform those analyses across different clients anytime, anywhere and on any device. This talk will give a short overview of different types of analysis capabilities in different client applications. A particular focus will be placed on the desktop application ArcGIS Pro and the web technology ArcGIS Online.
... View more
10-01-2017
04:14 PM
|
0
|
0
|
1521
|
BLOG
|
Anfang 2017 wurde vom Zentrum Digitalisierung Bayern der Wettbewerb “Mobility Innovation Competition @ Campus”(MICC) ausgeschrieben. Dieser Wettbewerb richtete sich an Studenten bayerischer Hochschulen und Universitäten. Im Rahmen der Teilnahme sollten sie sich mit der zukünftigen Mobilität als Thematik auseinandersetzen und eine Produktidee entwickeln, die im Rahmen eines Startups umgesetzt werden könnten. Die Competition war in drei Stufen aufgebaut. Zuerst musste ein Proposal eingereicht werden, welches die Projektidee, gewählte Methoden und einen Businessplan beschreibt. Aus den Teams, welche ein Proposal eingereicht hatten, wurden circa zwanzig zu einer Veranstaltung Ende April nach Nürnberg eingeladen. Auf dieser hatte jedes Team drei Minuten Zeit zum pitchen der eigenen Idee. Insgesamt 15 Teams wurden am Ende für die Projektphase zugelassen. Danach hatten sie drei Monate Zeit um erste Teile der Ideen umzusetzen. Auf einer Abschlussveranstaltung im Juli in München wurden die Projekte präsentiert und die Sieger prämiert. Linus Lambrecht und ich, Simon Geigenberger, studieren beide im Master Geoinformatik an der Universität Augsburg. Wir wurden auf die Ausschreibung aufmerksam gemacht und waren sofort dazu entschlossen teilzunehmen. Bei der Suche nach einem passenden Thema stießen wir schnell auf das Problem der hohen Feinstaubwerte in deutschen Innenstädten und waren uns einig, dass ein Fahrverbot von Fahrzeugen mit Brennstoffmotoren keine adäquate Lösung darstellt, sondern dass es eine Möglichkeit geben muss dynamisch und nach Bedarf Maßnahmen ergreifen zu können. Unsere Idee war es, eine Plattform namens „Clean Routing“ zu entwickeln. Diese richtet sich speziell an Großstädte mit Feinstaubproblemen. Drei Bausteine stellen die zentralen Elemente dar. Primärer und wichtigster Bestandteil ist eine Anwendung für die Stadtverwaltungen, welche eine Vorhersage für Feinstaubwerte darstellt. Die Vorhersagewerte werden unter Berücksichtigung der Wetterdaten mit Hilfe eines Modells berechnet, welches in einem Python Skript implementiert wurde. Diese Berechnung wird dauerhaft durch ein Maschinelles Lernverfahren optimiert. Das aktuelle Modell liefert für Städte, welche sich in unseren Breiten befinden eine Genauigkeit von über 90 Prozent. Die Datensätze, welche zum Trainieren des Modells verwendet wurden, sind aus den Frühlingsmonaten dieses Jahres. Da es noch keine Daten aus Wintermonaten gibt, kann das Modell erst nach dem Winter für diese Monate angepasst werden. Dies ist nötig, weil sich die Feinstaubwerte bei kalten Temperaturen und Schneefall anders entwickeln als in den restlichen Jahreszeiten. Wenn eine Überschreitung des, von der EU festgelegten, Wert für einen Feinstaubalarm vorhergesagt wird, dann hat die Stadt nun früh genug die Möglichkeit Maßnahmen zu ergreifen um den Schwellwert nicht zu übertreffen. Maßnahmen wären beispielsweise, dass gefährdete Gebiete umfahren werden sollen. Es soll eine weitere Anwendung für Privatpersonen entstehen. Diese App berechnet basierend auf den Feinstaubwerten alternative Routen, die gefährdete Gebiete umfährt oder direkt auf Verkehrsmittel auf dem ÖPNV umsteigt. Da man die Privatperson nicht mit Verboten dazu zwingen will den Öffentlichen Nahverkehr zu nutzen, kann ihm dies mit verschiedenen Angeboten schmackhaft gemacht werden. Diese Angebote wiederum müssen von Seiten der Stadtverwaltung gewählt werden und eine anziehende Wirkung auf die Privatpersonen haben. Beispiele hierfür sind reduzierte Preise für ÖPNV Tickets oder die Möglichkeit einen Park + Ride Parkplatz zu reservieren. Des Weiteren besteht für den Nutzer die Möglichkeit seine Fahrten zu planen und in diese Planung bereits die vorhergesagten Feinstaubwerte und daraus resultierende Überschreitungen von Grenzwerten miteinzubeziehen. Dieser Planungsservice kann auch in einer dritten Anwendung für Unternehmen, wie Handwerksbetriebe oder Speditionen, integriert werden. Diese Unternehmen wissen bereits im Vorhinein ihre Routen und können diese so in den Arbeitsplan einpassen, dass Gebiete in den Zeiten vermieden werden, wenn sich ein Feinstaubalarm anbahnt. Bei den Maßnahmen der Stadt handelt es sich um keine strikten Verbote, sondern lediglich um Vorschläge und Richtlinien. Daher ist es notwendig, dass es neben den bereits genannten Angebote für Privatpersonen weitere Anreize gibt, welche die Verkehrsteilnehmer dazu bewegen das alternative Routing wahrzunehmen. Originale Route mit Simulierten Feinstaubwerten Alternative Route (grün) und Route mit ÖPNV (blau) Bisher wurden die technischen Bausteine für die Vorhersage der Feinstaubwerten und das multimodale Routing implementiert. Somit fehlt noch die Einbindung der verschiedenen Komponenten in eine Benutzeroberfläche um mit den verschiedenen Anwendungen in eine Testphase zu gehen. Da es sich um Skripte, zentrale Datenhaltung und darauf basierenden Anwendungen mit Routingoption handelt bietet sich ArcGIS Online hervorragend als Plattform an, um die Bestandteile zusammenzuführen und technisch Umzusetzen. Ob und wie wir das Produkt weitergestalten ist noch offen, da wir uns beide im Endspurt unseres Studiums befinden. Dennoch ist die Problematik der hohen Feinstaubwerten in deutschen Innenstädten noch zu lösen. Wir sehen unser Produkt als eine optimale Lösung für diese Thematik, da keine Verkehrsteilnehmer benachteiligt werden und dennoch die Zahl der Fahrzeuge mit Brennstoffantrieb in Städten reduziert werden könnte. Leider konnten wir uns mit dem Projekt nicht in den preisgekrönten Rängen positionieren. Trotzdem blicken wir positiv auf die Teilnahme am Wettbewerb zurück. Diese war eine sehr interessante Erfahrung, denn es wurden sehr viele Disziplinen gefordert und es konnte alles im Studium erlernte zusammengeführt werden. Es war sehr spannend und lehrreich für uns aus einer Idee den Weg zu einem Produkt und den dazugehörigen Businessplan zu entwickeln. Bei weiteren Fragen zu unserem Projekt stehen wir gerne zur Verfügung: Simon Geigenberger: simon@geigenberger.info Linus Lambrecht: linus.lambrecht@gmx.de
... View more
08-31-2017
05:24 AM
|
3
|
0
|
908
|
POST
|
I am acutally working on a 3D demo using the JavaScript API 4.0 Beta and a problem with the "animateTo" function appeared. The demo shows the live position off all local trains in Munich and is based on the "LA Bus" demo from Esri Inc.. If you click on a train listed in the left menue, the "animateTo" function is called: this.sceneView.animateTo({ target: this.selectionGraphic.geometry, center: this.selectionGraphic.geometry, zoom: this.sceneView.zoom, heading: this.sceneView.camera.heading, tilt:this.sceneView.camera.tilt }); With every click the zoom level increases and the graphic, that should be in the center moves to the top of the window when the zoom level increases. With a very high zoom level the graphic is outside the extent of the SceneView. The movement of the graphic can only be observed, when the camera is sloped. If the view is orthogonally from the top the graphic is always in the center. I am really sorry, but i cannot publish the demo here, because of the train data, but i hope the problem can be retraced. Thank you, Simon
... View more
02-18-2016
08:09 AM
|
0
|
1
|
1788
|
Title | Kudos | Posted |
---|---|---|
5 | 10-13-2017 05:01 AM | |
2 | 12-14-2017 04:51 AM | |
2 | 11-08-2017 09:39 PM | |
3 | 08-31-2017 05:24 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:25 AM
|