|
IDEA
|
ArcGIS Pro 3.3.1 I create feature layers on underlying FCs/tables using tools like Make Query Table. There are some crucial details about the feature layer/query table that I want to communicate to the user via a description in the Contents feature layer: This Query Table has a SQL expression: TABLE_B.BINARY=1. The SQL expression behaves similar to a definition query, but with some differences: The SQL expression is hidden in ArcGIS Pro. It cannot be viewed or edited. The SQL expression acts as a pre-filter when the layer is used in a join which solves the following issue: Definition query on join table will effectively result in an inner join The Query Table also omits the OBJECTID column. Purpose: to force a one-to-first join in older versions of Pro that don't have the option to choose the join type in the Add Join tool. Choose if join will be one-to-first or 1:Many A related post that has information about join types: https://community.esri.com/t5/arcgis-pro-ideas/indicate-what-caused-type-of-join-to-be-used-1-1/idi-p/1473916/highlight/true More information about Query Tables can be found here: https://community.esri.com/t5/arcgis-pro-ideas/consistent-visible-sql-expressions-and-query/idi-p/1366707 I'm not aware of a way to store a description in the Contents feature layer. Metadata does not seem to be supported for feature layers. Right-click feature layer > Edit Metadata: Could a description field be added to the layer properties > General tab? And could the description be displayed in a tooltip when the user hovers over the layer in the Contents pane? Related: Query Table — Warning in layer properties that a SQL expression exists
... View more
08-21-2024
08:46 PM
|
0
|
1
|
3493
|
|
POST
|
@JonathanNeal “My goals with Add Join are to keep it consistent/documented until the legacy of quirks is controllable with parameters that the users can adjust for themselves to suite.” Makes sense. For example, we have discussed Join — Control what related record gets used as a “controllable parameter” that would be very helpful.
... View more
08-21-2024
06:14 PM
|
0
|
0
|
2048
|
|
POST
|
@RobertAnderson3 Would there be a benefit in sharing your backup strategy here so that others can see it? Backing up the data in case something goes wrong...
... View more
08-21-2024
12:34 PM
|
0
|
1
|
2655
|
|
IDEA
|
@JustinH mentions a challenge in this post: 1:M Join to pull feature with specific attribute information. My understanding is that the requirements are: “Using an AGOL Feature Service that our organization is hosting...” Using the join table, sort within the A1 groupings so that the row where B1=1 is at the top of each grouping. Perform a join using the input table and the join table, creating a one-to-first join. The one-to-first join will automatically use the related row with the lowest OBJECTID, that explains why we did the sort in the step above. Where there is an input table row but no matching join table row, replace the nulls with zeros in B1. That'd be easy in a database view when using a geodatabase that has fully functioning SQL, such as a mobile or enterprise geodatabase: --Oracle SQL - database view (or query layer)
select
t2.a2,
t1.a1,
case when t1.b1 is not null then t1.b1 else 0 end as b1
from
table_2 t2
left join
(select a1, b1, row_number() over (partition by a1 order by b1 desc) as rn from table_1) t1
on t2.a2=t1.a1
where
(t1.rn = 1 or t1.rn is null) But it'd take a few different steps and multiple static outputs to do it with AGOL or FGDB data. It seems like it's more awkward than it needs to be, so I'm wondering if Pro could be enhanced so that the workflow could be done using a single tool (or two tools at the most). Edit - I suppose this could be considered a partial duplicate of this idea: Join — Control what related record gets used
... View more
08-21-2024
12:26 PM
|
3
|
1
|
1053
|
|
IDEA
|
@SSWoodward I edited the question so that it's generic to both AGOL and geodatabase layers. Would Geoprocessing be a more suitable label?
... View more
08-21-2024
11:52 AM
|
0
|
0
|
2136
|
|
IDEA
|
Using an AGOL or enterprise geodatabase layer: Allow GIS administrators to perform field calculations in Pro without invoking editor tracking. This question from @RobertAnderson3 explains it well: Is there a way to do a Bulk Attribute Update and avoid updating the LastEdited Editor Tracking Information? @Marisa_Kordecki said: [Temporarily disabling editor tracking]...is not my ideal solution as the inspectors make edits to the data anytime over their work day and work week, meaning that turning it off would stop tracking of anything they happened to edit during that same time. And here is a related enterprise geodatabase question from @EstherSmith_Dev : ApplyEdits without firing immediate attribute rules and editor tracking, is it possible? With enterprise geodatabases, as a last resort, we could likely use a SQL UPDATE query via a SQL client instead of a Field Calculation—if the data isn't versioned; the SQL UPDATE query wouldn't invoke editor tracking. But that doesn't help us with AGOL data or versioned enterprise geodatabase data. Or with file geodatabases.
... View more
08-21-2024
11:13 AM
|
8
|
9
|
2163
|
|
POST
|
Are you able to temporarily disable editor tracking to perform your field calculation?
... View more
08-21-2024
10:46 AM
|
0
|
4
|
2679
|
|
POST
|
@JustinH Can you review this video where I use the Sort tool and confirm if it is what you want (or not)? The resulting join could be exported to a static feature class. And then you could replace any nulls (nulls exist when there isn't a match) with zeros using the Field Calculator. The sample data didn't produce any nulls, but it sounds like your real data would produce nulls that you'd want to change to zeros.
... View more
08-21-2024
10:30 AM
|
0
|
2
|
2901
|
|
POST
|
I suppose you could do something like this: Using the join that has produced NULL instead of zero when there is a point without a matching polygon, Export to a static feature class. This step may not be needed, depending on what technique you use; the data might already be in a static output feature class. Then use the field calculator to replace the nulls with zeros.
... View more
08-21-2024
09:24 AM
|
0
|
0
|
3490
|
|
POST
|
I don't have experience with AGOL. But I'll ask a couple of uneducated questions anyway: Could you temporarily disable editor tracking while batch populating the field? Or could you store this information in a related table that does not have editor tracking enabled? For anyone who's using an enterprise geodatabase, not ArcGIS Online, this related question might be of interest: ApplyEdits without firing immediate attribute rules and editor tracking, is it possible?
... View more
08-21-2024
07:48 AM
|
1
|
1
|
2713
|
|
POST
|
What kind of geodatabase is it? For example, Oracle 18c 10.7.1 enterprise geodatabase. Could you store this data in a separate table? And not enable editor tracking or attribute rules on the table?
... View more
08-21-2024
07:44 AM
|
0
|
0
|
1957
|
|
IDEA
|
1:M Join to Pull feature with Specific Attribute information Sort within groupings, join, and fill gaps using a single tool
... View more
08-20-2024
05:49 PM
|
0
|
0
|
1115
|
|
POST
|
If I remember correctly, the Summary Statistics tool might be useful with this type of approach too.
... View more
08-20-2024
05:39 PM
|
0
|
0
|
2964
|
|
POST
|
The Add Join tool is one of the few geoprocessing tools that ignores selections. So, I don't think a selection would work in conjunction with Add Join. But maybe the Join Field tool would honor a selection. I haven't checked. That tool creates a static output feature class, so I try not to use it. In comparison, Add Join creates a dynamic join, so I prefer it instead. Edit: Selections on the input or join tables are ignored in the Add Join tool. The Join Field tool supports selections. To only join with a selected subset, create a selection layer and use it as input to the Add Join tool. Join layer properties are copied when you create a selection layer. https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/add-join.htm One might expect a definition query would work (on the polygon layer). WHERE BINARY = 1. But there is a gotcha. The definition query gets applied to the entire join/the entire attribute table, including both the input table and the join table. See Add Join — Indicate that a definition query on join table will effectively result in an inner join. So, if there are points that don't have matching polygons, then those points would be excluded due to the definition query, which may not be wanted. We can try hiding/embedding the SQL expression using Make Query Table. The SQL expression behaves like a pre-filter, applied before the join is performed, which is what we want, unlike definition queries. https://community.esri.com/t5/arcgis-pro-ideas/consistent-visible-sql-expressions-and-query/idc-p/1366709/highlight/true#M27874 But we have to be careful not to forget about that SQL expression because it isn't visible or modifiable anywhere. I find it helps to describe the SQL expression in the layer's name. Are there points that don't have matching polygons? If yes, in those cases, would it be ok if the joined polygon binary value were displayed as NULL, not zero? Or is displaying a value of zero a must-have in that scenario? Side note: I came across an issue when testing definition queries: Esri Support Case #03704340 - ArcGIS Pro 3.3.1 - Join with definition query excludes row unexpectedly
... View more
08-20-2024
05:37 PM
|
0
|
0
|
3558
|
|
POST
|
Edited. Questions: What kind of geodabase? For example, Oracle 18c 10.7.1 enterprise geodatabase. What version of ArcGIS Pro? Can you mock up the result you want in an Excel screenshot? If you create a join from the point layer to the polygon layer (via Add Join), what kind of join is it? One-to-one or one-to-many? Can you check to see what the Join section in the layer properties says? Did Pro force a one-to-one join, despite the data being one-to-many? Indicate what caused type of join to be used (1:1 vs 1:M) Choose if join will be one-to-first or 1:Many Does the joined data need to be editable, or can you use a read-only mechanism like a database view (file GDB, mobile GDB, or enterprise GDB) or a query layer (enterprise GDB only)? Options: Full-blown SQL Query: Database view or query layer Or, you could use the Sort geoprocessing tool to sort the polygon layer by the common ID and also sort descending on the binary field (so that the BINARY=1 rows are first in each grouping). That would produce a static output (a separate feature class). Then you could do the join from your points layer to the new sorted polygon layer. If the join is one-to-one/one-to-first, then the join will use the first/lowest ObjectID from each ID grouping. https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/sort.htm Related: Join — Control what related record gets used As you might have noticed, joins and tabular analysis are quite buggy in Pro. Is ArcGIS Pro the right tool for tabular/join-based geodatabase analysis?
... View more
08-20-2024
05:23 PM
|
0
|
4
|
2973
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 03-20-2026 02:12 PM | |
| 1 | 03-19-2026 11:42 AM | |
| 1 | 06-03-2026 04:02 AM | |
| 1 | 03-18-2026 07:08 PM | |
| 2 | a month ago |