|
POST
|
ArcGIS Pro 2.6.8; Oracle 18c 10.7.1 EGDB: For a FC/table that has values that don't match its domains: Is there a way to select all rows in the attribute table that have invalid coded-value domain values — using ArcPy? For each row, for each field, if the field has a domain, and if the value doesn’t match the domain, then select the row. Hopefully, the script could be dynamic, rather than needing to hardcode a list of fields with domains in the script. Edit (this edit was added after JohannesLindner kindly provided a script): The table has a subtype. (I'm not great with ArcPy yet. So I thought I'd ask, in case anyone has a sample script they can share to get me started.) I'm aware ArcGIS Pro has "Select Only Invalid Objects" functionality in the attribute pane (not to be confused with the attribute window): https://pro.arcgis.com/en/pro-app/latest/help/editing/edit-feature-attributes.htm#ESRI_SECTION1_8F13A8C397F349C9BF97D3DF2353E69F https://community.esri.com/t5/arcgis-pro-ideas/prevent-non-domain-values-from-being-used-across/idc-p/1186044/highlight/true#M20037 But that functionality doesn't work for non-spatial tables in ArcGIS Pro 2.6.8 (it only works on FCs)...that functionality was added alter in Pro 2.8. Regardless, I'm wondering if ArcPy might be a better choice, when it comes to validating an entire table.
... View more
06-24-2022
08:27 AM
|
1
|
7
|
4610
|
|
POST
|
Oracle 18c 10.7.1 EGDB: In an SQL query, is there a way to select rows that have: Invalid subtype code values (or invalid subtype domain values) Or invalid coded-value domain values (non-subtype)
... View more
06-24-2022
07:40 AM
|
0
|
3
|
1751
|
|
IDEA
|
Thanks Kory. And @Scott_Harris, regarding this link: https://pro.arcgis.com/en/pro-app/latest/help/editing/edit-feature-attributes.htm#ESRI_SECTION1_8F13A8C397F349C9BF97D3DF2353E69F Find and correct invalid values To find and correct invalid attribute values, right-click the layer in the selection view and click Select Only Invalid Objects Select Only Invalid Objects. This command is available with layers for which a data rule exists including attribute rules and other geodatabase behaviors such as attribute domains. That looks helpful. Thanks. For my notes, that functionality doesn't seem to be available in ArcGIS Pro 2.6.8: https://pro.arcgis.com/en/pro-app/2.6/help/editing/edit-feature-attributes.htm
... View more
06-24-2022
07:34 AM
|
0
|
0
|
3168
|
|
POST
|
I want to create a field that would flag a row if its values don’t match its domains. Is there a way to populate such a field using an Arcade calculation attribute rule? For each field, if the field has a domain, and if the value doesn’t match the domain, then set DOMAIN_VALUES_VALID to ‘INVALID’. Hopefully, the script could be dynamic, rather than needing to hardcode a list of fields with domains in the script. I’m aware that it’s possible to prevent invalid rows in the first place using a constraint attribute rule. That’s a valid option. But I also want to experiment with a flag too. Thanks. Edit: Unfortunately, I forgot to mention that the table has subtypes (with domains).
... View more
06-24-2022
05:12 AM
|
0
|
1
|
1453
|
|
IDEA
|
I want to set up a scheduled task on a server that emails me in this scenario: There are rows in a table that have values that don’t match the table’s domains/subtype. Could a geoprocessing tool be added to ArcGIS Pro that lets me easily identify the invalid rows? Thanks.
... View more
06-24-2022
04:52 AM
|
1
|
3
|
1038
|
|
POST
|
Feel free to comment or upvote: Idea: Install ODBC/SQLite driver by default in Pro to allow viewing/editing complex Mobile GDB relational data in MS Access
... View more
06-23-2022
08:20 PM
|
1
|
0
|
6329
|
|
IDEA
|
Idea: Could the Roads and Highways documentation be improved by providing a recipe for converting a polyline feature class with fields for route identifiers, from measures and to measures into routes in an LRS Network? Background info can be found in @GraemeBrowning's post: Creating LRS Dataset from existing line/route feature class
... View more
06-23-2022
08:18 PM
|
2
|
0
|
1266
|
|
POST
|
This doesn't address your question, but if you're ever looking for a sample script for editing M-values using Arcade, then these might help: Arcade Code Review: Set polyline M-values to cumulative length of line Set Ms to Index And here's an ArcPy script: Set M-values to cumulative length of line (via ArcPy) For context, here's how we use linear referencing in my organization (ArcMap 10.7.1): We don't have Roads & Highways. We simply created a new FC using the Create Routes GP tool. The M-values were set to the cumulative length of the line (which is what we want going forward — we don't ever calibrate routes or anything like that). Then we use an Arcade attribute rule to set the M-values to the cumulative length of the line whenever a route is created or the geometry of an existing route is edited. Alternatively, we've considered using a database trigger using the logic in this post: https://community.oracle.com/tech/developers/discussion/4496676/code-review-update-polyline-vertices-with-cumulative-length-of-line. We edit our routes in ArcMap using the normal editing tools, just like we would for a non-M-enabled FC. Cheers and good luck. (This somewhat-related post might be of interest: GP tool to batch-replace geometries from one FC to another (via related IDs)
... View more
06-23-2022
07:51 PM
|
1
|
0
|
4553
|
|
IDEA
|
Could an OOTB GP tool be added to Pro that would batch-create constraint attribute rules to enforce domains (including subtype domains)? In the GP tool parameters window, we’d select/deselect fields/tables from a checkbox list. The tool would automatically create constraint attribute rules to enforce domains, avoiding the need to create them manually ourselves. Otherwise it would be too much work to set up the attribute rules manually for dozens of tables, each having multiple fields with domains/subtypes. (Not to mention, there'd be a greater chance of making a mistake when doing it manually for so many tables/fields.) Could a GP tool be added that would help with that? Related: Prevent non-domain values from being used (across the board, including GP tools)
... View more
06-23-2022
06:24 PM
|
0
|
0
|
533
|
|
IDEA
|
Scenario: We have a coded value domain on a field. A user overrides the domain by using the field calculator or some other method. Now, there are invalid values in that field. Idea: Give us an optional setting in the table properties to "hard enforce" domains. (The setting could be disabled by default to avoid causing confusion in existing workflows.) All ArcGIS functionality/applications would be designed to honor the domain and prevent invalid values from being entered. I’m aware similar functionality can be achieved via customization using attribute rules or database triggers. But we shouldn't need to write custom code to enforce a pick list. Most enterprise systems have hard domains built in as a way of enforcing basic data integrity. For example, in IBM Maximo, the entire system honors domains by default — including back-end Python scripts. As a result, data integrity is rock solid, making data analysis easy. Could that same functionality be added to ArcGIS across the board, including GP tools?
... View more
06-23-2022
11:53 AM
|
5
|
7
|
3276
|
|
IDEA
|
I tested a different workaround, and it technically worked as intended. But it was far to slow to use: 1. Create a query layer with a NULL_FLAG field: select objectid, last_edited_date, case when last_edited_date is not null then 1 else 0 end as null_flag --Source: https://modern-sql.com/concept/null#order-by from events 2. Join from the table to the query layer via the OBJECTID. 3. Do an advanced sort using the fields from the query layer: - NULL_FLAG descending. - LAST_EDITED_DATE descending. Now, the latest dates are at the top and the nulls are at the bottom. Which is what I wanted. But like I said, it's far too slow to use. It takes roughly a minute to do the sorting, whereas sorting was instantaneous without the workaround (and sorting was instantaneous when the query was tested in the DB too). So, something about joining and sorting on the query layer is going awry. Esri Case #03092490 - Attribute table join (and sort) between two EGDB tables [performance issues] Related: Join from FC to mobile GDB database view results in buggy attribute table behavior Perform join at the database level, not the application level, when the datasets are in the same workspace Virtual Attributes (ad hoc) BUG-000160320: Slow performance in Pro when interacting with the attribute table of data which participates in a join.
... View more
06-22-2022
07:29 PM
|
0
|
0
|
8447
|
|
IDEA
|
@StevenDel_Favero said this in Migrating from Personal GDB to Mobile GDB: The main advantage of the Personal GDB was the ability to query and edit the data in Microsoft Access. This is not an inherent ability for Mobile Geodatabases and ArcGIS is not at all adequate for working with complex relational data. The ability to open a SQLite database in MS Access requires a third party ODBC driver. As a government employee, I do not have the luxury of installing such a driver on my machine, let alone having this driver installed on the Remote Desktop server where my agency does all of its work. Getting approval to have something like this installed may never be possible or will take a very long time (I am starting to petition for it). Is it possible to have this ODBC Driver installed along with ArcGIS Pro in future releases? Otherwise a Mobile Geodatabase does not have much value and is not a valid alternative to a Personal GDB. Not being able to use a Personal GDB in ArcGIS Pro is therefore a serious impediment to my workflow and Esri has still not provided an alternative for me. Could Esri consider installing an ODBC/SQLite driver by default along with Pro to allow viewing/editing complex Mobile GDB relational data in MS Access? That would let us move forward with switching from PGDBs to mobile geodatabases.
... View more
06-22-2022
06:27 PM
|
1
|
0
|
1340
|
|
IDEA
|
It would be helpful if we could use the ORDER BY clause in definition queries. Like this: That would be useful for scenarios where we want to control sorting in ways that can't be done in the attribute table UI, but can be done in the DB, such as making nulls come last in a column: https://community.esri.com/t5/arcgis-pro-ideas/sorting-a-field-in-the-attribute-table-specify-how/idi-p/1184709/jump-to/first-unread-message. There are other scenarios too. If it's not possible to do it right in the definition query SQL expression builder textbox, then it could be done in its own ORDER BY expression builder textbox. Using the ORDER BY clause in other enterprise systems, such as IBM Maximo, has been really handy. It would be great if we could do it in ArcGIS Pro too.
... View more
06-22-2022
06:01 PM
|
8
|
2
|
2846
|
|
IDEA
|
For cases like the following: A slow ST_GEOMETRY query layer that constructs geometries or does spatial operations. A slow linear referencing route event layer. Or, a layer is slow due to a connection to an external database. Could some optional settings be added to a layer's properties to boost performance? Control how often ArcGIS Pro re-queries the underlying data. For example, only re-query the db once every 5 minutes (and only if the map is actively being used). When the layer is used/refreshed in the map, ArcGIS would utilize the data that's cached in RAM, rather than re-querying the DB each time. Similarly, could we use a setting to tell ArcGIS Pro to re-query ahead of time, so that the data is pre-queried for the next time we use/refresh the layer in the map? Kind of like what Google Chrome does? Or only re-query if the underlying data has changed. Similar to Oracle’s result cache mechanism: Making Oracle queries faster: Cache query results using an SQL hint. I wonder if that kind of thing might be useful for cases where a dynamic layer is slow or doesn't need to be real-time (to avoid unnecessary database hits). It would be a lot more convenient to control that sort of thing in the application, instead of setting things up in the back-end via materialized views, triggers, scheduled tasks, etc.. And the user could toggle it on or off as needed, depending on the use case. Whereas if it's done in the back-end, the user doesn't have any control over how the data behaves in their map...in terms of currency, caching, etc..
... View more
06-22-2022
02:12 AM
|
2
|
1
|
2194
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 03-19-2026 11:42 AM | |
| 1 | 06-03-2026 04:02 AM | |
| 1 | 03-18-2026 07:08 PM | |
| 2 | 2 weeks ago | |
| 4 | 2 weeks ago |