IDEA
|
I have used a combination of the ArcGIS for Python API and ago-assistant.esri.com to clone items from ArcGIS Online to ArcGIS Enterprise or vice versa. However, that process has always been clunky. Not everything will clone, cloned items will sometimes be corrupted, and I have to go into the JSON of items to update item ID or service URL references. For the most part it works, but I would like to see something out of the box from Esri.
... View more
Thursday
|
0
|
0
|
5
|
POST
|
Did you ever find a way to use the profile option for storing and retrieving credentials? We have ArcGIS Notebook Server now but many of our scripts have to use credentials to access services and we use the profiles for that.
... View more
Tuesday
|
0
|
0
|
5
|
POST
|
I would guess the account that ran the Add Join did not have permission to add an index to either the SDE layer or the hosted feature layer. I would recommend adding the indexes manually outside of the Add Join tool. For hosted feature services you can add an index on the item's Setting page. For SDE layers you can add an index from the Catalog pane through a database connection that uses an account that has permission to add an index. Expand the database connection in the Catalog pane, find your layer, right click properties, select the Indexes tab, and add an index on the join field.
... View more
a week ago
|
1
|
0
|
228
|
POST
|
Making sure there is an attribute index on the joining fields on both the SDE and hosted feature layer side should help some. Also, I do not think hosted feature layers on AGO like massive single edit operations. If you look on Esri Community there are posts about doing batch edits using the ArcGIS for Python API.
... View more
a week ago
|
1
|
3
|
267
|
POST
|
We use the SDE schema for our geodatabase ownership (nothing wrong with DBO), but we create a separate account and schema to load GIS data into. We use branch versioning, so we set that up and use ArcGIS Enterprise's sharing functionality to share the service with those that need to edit. If you are not using branch versioning, I would create a group to add editors to, and give that group SELECT, INSERT, UPDATE, and DELETE permissions to your addressing dataset. We have it setup that way for separation of roles, even though most of the time I am the one managing all those roles. It provides better security and helps protect from mistakes. You can do it all under one account and schema which is more convenient to use, but also more convenient to modify and delete things when you do not mean to.
... View more
a week ago
|
0
|
0
|
43
|
IDEA
|
This probably sounds crazy, but I think Esri should make an app, be it a web app or computer app, that allows you to modify or create what I will call solution packages. Keep the current solutions website and functionality but add a download link for each solution. Having an app to open, modify, save, and deploy solution packages would meet the needs of people needing offline support, allow exploring the solution before committing to deploying, and allow organizations to customize solutions before deploying. I think the app should be able to do the following: Work with online or offline environments. Reproject layers to a different coordinate system. Remove components that you do not plan to use or are not supported by your environment. This could be removing an entire item or being able to modify apps to remove parts of the app. Remove components that you do not have licensing for (seems to be becoming more of an issue with new solutions). Substitute solution layers with your existing layers. Create your own custom solutions to share with other organizations or deployments you have.
... View more
2 weeks ago
|
0
|
0
|
108
|
POST
|
@Jennifer_Parmeley this prompted me to finally work on a Python script to sync the v2.0 schema with the v1.0 schema. This may not be the most optimal way to do this, but here is the Python script we are now using. The script takes the v2.0 service and translates the data to match the v1.0 service. Then it compares the content of the v2.0 service to that of the v1.0 service to see if an update is needed. If the data matches the script exits, but if there is a difference then the v1.0 service is truncated and the new data is added. For all of this to work the v1.0 service needs to have supportsApplyEditsWithGlobalIds set to True and Sync cannot be enabled on the service. The GlobalID setting is needed to copy the GlobalIDs from v2.0 to v1.0 otherwise new GlobalID are created. The GlobalIDs are needed for the comparison. Sync must be disabled or the truncate operation will fail. I am running this on ArcGIS Enterprise using ArcGIS Notebook Server Standard, but it should work with ArcGIS Online and/or a standalone Python file running as a scheduled task with some adjustments to the code. from arcgis.gis import GIS
from arcgis.features import GeoAccessor
import pandas as pd
import numpy as np
gis = GIS("home")
# Get the Esri road closures layer using its Item ID
item_esri_closures = gis.content.get('<InsertEsriItemIDHere>')
# Get just the closure lines layer from the Esri road closure item
layer_esri_closures = item_esri_closures.layers[1]
# Convert the feature layer to a spatial Pandas dataframe
sdf_esri = GeoAccessor.from_layer(layer_esri_closures)
# Create a column to store the Waze "type" value and default it to ROAD_CLOSED
sdf_esri['type'] = 'ROAD_CLOSED'
# Create a column to store the Waze "reference" value and default it to organization ID
sdf_esri['reference'] = '<InsertWazeOrganizationIDHere>'
# Replace the Esri "reason" values with the Waze equivalent
sdf_esri['reason'] = sdf_esri['reason'].replace({'Construction':'ROAD_CLOSURE_CONSTRUCTION', 'Event':'ROAD_CLOSURE_EVENT', 'Hazard':'ROAD_CLOSURE_HAZARD'})
# Replace the Esri "direction" values with the Waze equivalent
sdf_esri['direction'] = sdf_esri['direction'].replace({'Both Directions':'BOTH_DIRECTIONS','One Direction':'ONE_DIRECTION'})
# Rename Esri columns to match Waze column names
sdf_esri = sdf_esri.rename(columns={'reason':'subtype', 'closureid':'identifier'})
# Keep only the columns that match the Waze schema
sdf_esri = sdf_esri[['street','subtype','description','direction','altroute','pocname','pocemail',
'pocphone','url','identifier','activeincid','type','reference','globalid',
'created_user','last_edited_user','created_date','starttime','last_edited_date',
'endtime','SHAPE','SHAPE__Length','objectid']]
# Get the Waze road closure service using its item ID
item_waze_closures = gis.content.get('InsertWazeItemIDHere')
# Create a feature layer object of the closure lines layer from the Waze road closure item
layer_waze_closures = item_waze_closures.layers[0]
# Convert the feature layer to a spatial dataframe
sdf_waze = GeoAccessor.from_layer(layer_waze_closures)
# Compare just a subset of the fields from both services
# Apparently the SHAPE and SHAPE__Length are modified slightly when applying the edits
# so they will not match
compare_fields = ['street','subtype','description','direction','altroute','pocname','pocemail',
'pocphone','url','identifier','activeincid','type','reference','globalid',
'created_user','last_edited_user','created_date','starttime','last_edited_date',
'endtime']
sdf_waze_compare = sdf_waze[compare_fields]
sdf_esri_compare = sdf_esri[compare_fields]
# Make sure the null values are the same between the dataframes
sdf_waze_compare = sdf_waze_compare.replace(np.nan,'')
sdf_waze_compare = sdf_waze_compare.replace(np.nan,'')
# Make sure the dataframes are sorted the same way using the GlobalID
sdf_esri_sort = sdf_esri_compare.sort_values(by='globalid', ignore_index=True)
sdf_waze_sort = sdf_waze_compare.sort_values(by='globalid', ignore_index=True)
# Set the index of both dataframes to use the GlobalID
sdf_esri_sort = sdf_esri_sort.set_index('globalid')
sdf_waze_sort = sdf_waze_sort.set_index('globalid')
# Check if the number of rows are the same
equal_indexes = sdf_esri_sort.index.equals(sdf_waze_sort.index)
print('Row Count Equal: ' + str(equal_indexes))
# Check if the number of columns are the same
equal_columns = sdf_esri_sort.columns.equals(sdf_waze_sort.columns)
print('Column Count Equal: ' + str(equal_columns))
# Check if the data in the dataframes already match
exists = sdf_esri_sort.isin(sdf_waze_sort.to_dict(orient='list')).all(axis=1)
equal_values = False
if all(exists):
print('Data Equal: True')
equal_values = True
else:
print('Data Equal: False')
equal_values = False
# A list of the check values
checks = [equal_indexes,equal_columns,equal_values]
if all(checks):
# If all the checks are True then everything is
# exactly the same and nothing needs to be updated
print('Nothing to update')
else:
# If one of the checks is False then update the Waze service
# Convert the translated dataframe of the Esri service to a FeatureSet
featureset_esri = sdf_esri.spatial.to_featureset()
# Remove all existing rows from the Waze feature layer
layer_waze_closures.manager.truncate()
# Add the road closures from the translated Esri dataframe to the Waze service
# The supportsApplyEditsWithGlobalIds must be set to True on the Waze service
# or the edit operation will fail
layer_waze_closures.edit_features(adds=featureset_esri, use_global_ids=True)
print('Updated Waze service')
... View more
2 weeks ago
|
1
|
0
|
129
|
POST
|
I found an archive of the version 1.0 schema of the Road Closure solution in my files and have attached a copy showing how the data schema used to be setup to support Waze Feeds. Waze is expecting a "type" field and a "subtype" field. The "type" field value for road closures is always ROAD_CLOSED, and the subtype field is going to be either ROAD_CLOSED_CONSTRUCTION, ROAD_CLOSED_EVENT, or ROAD_CLOSED_HAZARD. The values are all caps and underscores for spaces. The version 2.0 of the Road Closure solution changed the "type" field to "reason", got rid of the subtype field, and changed the "reason" values to "Construction", "Event", or "Hazard". That is why Waze does not recognize the input anymore. If you want to use Esri and Waze while only editing one feature service, you will need a Python script that extracts, translates, and loads the data from the Esri format to the Waze format.
... View more
3 weeks ago
|
2
|
0
|
170
|
POST
|
Where did the value "Work Area" come from? We have been using version 2.0 of the Road Closure solution and the only types we have are Construction, Event, and Hazard. Esri changed the data schema from version 1.0 to 2.0 and it is no longer compliant with Waze's schema. The only automated way to use Esri's 2.0 solution and have a Waze Feed is to create another feature service with a schema that matches what Waze requires and then create a python script that translates the Esri data to the Waze schema. Then schedule the script to run at a specific interval. I have not done this yet. Honestly, I have been putting it off hoping that Waze would become a partner with Esri's live feed. I still input the road closures into Esri's solution and then log into Waze's Partner Hub to add the same closures there.
... View more
3 weeks ago
|
1
|
1
|
351
|
IDEA
|
I am saying it would be helpful if there was a XLSX download link on the tutorial sections for the completed mappings between the LGIM data schemas and the new UN Foundations schemas. Organizations that did not modify the LGIM schema are good to go, and others have a starting point that gets them most of the way there.
... View more
09-04-2025
06:34 AM
|
0
|
0
|
181
|
IDEA
|
Please release Data Mapping spreadsheets that map the old Local Government Information Model (LGIM) utility schemas to their respective utility networks. I know many organizations have probably tweaked the LGIM schema, but having most of the data mappings done would save small utilities so much time. Then we can focus on data quality issues and adding any customizations that were made. I know there is the new Utility Migration Wizard to turn the LGIM into a utility network as is, but I would like to move our data into the new framework.
... View more
09-03-2025
02:46 PM
|
0
|
3
|
275
|
POST
|
If the missing feature eventually draw, it might be a caching issue. Have you tried clearing layer cache on affected layers? You might also try "Don't cache any data locally". It also would be good to check if your graphics card meets the minimum requirements for ArcGIS Pro 3.5.
... View more
09-03-2025
11:58 AM
|
0
|
0
|
131
|
BLOG
|
I understand that ArcGIS Enterprise 11.5 is supposed to be the version to use to transition to ArcGIS Enterprise 12.0. Does Esri have any Python scripts that can scan our ArcGIS Enterprise 11.5 deployment for content that will no longer be supported in ArcGIS Enterprise 12.0? We have been using ArcGIS Enterprise for many years now and it will be very time consuming to manually review all of our content for unsupported items.
... View more
08-22-2025
09:55 AM
|
2
|
0
|
189
|
IDEA
|
@EmilyGeo thank you for that information. One problem with that is we use ArcGIS Enterprise 11.5 and Timestamp Offset fields are still not supported for hosted feature services. Plus it seems like there are still Esri products that do not fully support the new data fields.
... View more
08-22-2025
09:46 AM
|
0
|
0
|
455
|
Title | Kudos | Posted |
---|---|---|
1 | a week ago | |
1 | a week ago | |
1 | 2 weeks ago | |
2 | 3 weeks ago | |
1 | 3 weeks ago |
Online Status |
Offline
|
Date Last Visited |
Friday
|