IDEA
|
I understand performance is a problem, but would it be possible to cache the selection set? E.g., You open the map and the layer with the spatial query grabs an up-to-date snapshot and caches it (or a portion of it, like Feature Cache in ArcMap) and remains static for the rest of the session or until the user chooses to manually refresh. This wouldn't work for constantly changing data, but it seems like it would work fine if the data only needs to be refreshed daily or weekly, and it's being used as a reference more than for active editing. Maybe that's too big of a caveat to bother explaining or implementing, but I think it would be worthwhile.
... View more
01-28-2019
12:14 PM
|
0
|
1
|
2517
|
POST
|
I was enjoying the new legend patch shape-changing capabilities of Pro 2.3, but I've come across what seems to be a bug. If I choose the circle shape (all other shapes seem fine), it ignores the patch width set in the legend property. Which then causes misalignment with legend entries and text using other patch shapes. Am I missing something or is this in fact a bug? In the example below, all legend items have a patch width of 24 pt.
... View more
01-25-2019
10:56 AM
|
0
|
0
|
365
|
POST
|
I've seen many similar questions but somehow never found an answer that I can understand and apply to my problem. I have a layer with Census tracts. I have a layer with parcels. I need to iterate through each tract, select the parcels falling inside, do some things to the parcels (for the sake of testing, I'm trying to copy the parcels in each tract into a new feature class named with the tract number), then repeat for the next tract. The loop works, insofar as it runs through each tract and creates a new feature class that is named with the tract number. But rather than each feature class containing only the parcels falling inside the respective tract, each resulting feature class includes all parcels falling inside all tracts. I'm clearly missing some important construct in my loop. Please help! with arcpy.da.SearchCursor("tracts", "TRACT_NUMBER") as cursor:
for row in cursor:
arcpy.SelectLayerByLocation_management("parcels","HAVE_THEIR_CENTER_IN","tracts")
arcpy.CopyFeatures_management("parcels", "parcels_"+"{}".format(row[0]))
... View more
11-13-2018
07:31 PM
|
1
|
5
|
7533
|
POST
|
I should know better than to assume anything will work in Pro without qualification. I'm sorry, I'm not sure what to tell you about the traceback from Pro other than: Traceback (most recent call last):
File "<string>", line 7, in <module>
RuntimeError: 'in_table' is not a table or a featureclass Line 7 in the error message is the same line 7 from your original script above.
... View more
11-08-2018
12:01 PM
|
0
|
1
|
1799
|
POST
|
OK, I just ran it in PyScripter and it worked fine. (D'oh, should've tried that before.) I also just tried it from the Python window in ArcMap 10.6 and it worked fine. My folly was trying to run it from the Python window in Pro. Must be a syntax change in Pro? Python 2.7 vs. 3.0? In Pro, I've tried several variations for the in_table variable: tbl = "C:\\Users\\thomasj\\Desktop\\Current\\NearTable1.dbf" tbl = "C:\\Users\\thomasj\\Desktop\\Current\\Current.gdb\\NearTable1" tbl = r"C:\Users\thomasj\Desktop\Current\Current.gdb\NearTable1" tbl = "NearTable1" (dragged and dropped from Contents in Pro) Always resulting in the same "in_table" error. You are awesome; thank you for all your help!
... View more
11-08-2018
09:45 AM
|
0
|
3
|
1799
|
POST
|
Goes to show how little I know! Thanks for clarifying and even offering equivalent options. That helps me understand what's happening. But... no matter which of the 3 options I use for that line, I get the same error: Traceback (most recent call last): File "<string>", line 1, in <module> RuntimeError: 'in_table' is not a table or a featureclass If I remove the comma, that error goes away but then I get the "setSelectionSet" error mentioned above.
... View more
11-08-2018
09:15 AM
|
0
|
5
|
1799
|
POST
|
Joshua, Thank you again for helping me. This should be a slick alternative to running a SQL query. I noticed an accidental (?) comma after tv on line 6, which I fixed. But then I got a different error: Traceback (most recent call last): File "<string>", line 4, in <module> (this is line 9 in your post above) AttributeError: 'Result' object has no attribute 'setSelectionSet' My only thought on this is setSelectionSet can only be run on a layer, not on a table view? I don't know why that would be. I'm sorry my Python skills aren't (yet) strong enough to troubleshoot this. Thanks, Jeff
... View more
11-08-2018
08:22 AM
|
0
|
7
|
1799
|
POST
|
Joshua, I've returned to this issue lately; it's kind of the opposite approach to a project that led to another thread I've started (Show distinct tuples regardless of column order). Xander's script does exactly what I need, but it's quite slow as you've noted. I was trying to use your script, as I understand it's much more efficient, but it doesn't return spatial result. While the graph of max possible features is interesting, I need to show a map of one possible outcome (any outcome is fine) of randomly selected parcels meeting the minimum spacing. Is it possible to output a map-able result from your script? Or, alter the logic used in your script to create an output like Xander's? I continue to look at the data made by the "rel" and "buff" variables in your script, seeing if there's something I can map. Thank you!
... View more
11-05-2018
09:30 AM
|
0
|
1
|
367
|
POST
|
To answer my own question, here's the ArcPy and SQL to eliminate the "a-b" "b-a" pairs: sde = r'sdeconnectionfile.sde'
sde_conn = arcpy.ArcSDESQLExecute(sde)
sql = """SELECT t1.IN_FID, t1.NEAR_FID, t1.NEAR_DIST
FROM sdeowner.NEARTABLE t1
EXCEPT
SELECT t1.IN_FID, t1.NEAR_FID, t1.NEAR_DIST
FROM sdeowner.NEARTABLE t1
INNER JOIN sdeowner.NEARTABLE t2
ON t1.IN_FID = t2.NEAR_FID
AND t1.NEAR_FID = t2.IN_FID
AND t1.IN_FID > t1.NEAR_FID"""
sde_conn.execute(sql) Note that NEARTABLE is the same table every time; I'm inner joining it to itself. Also note that this is on SQL Server; other DBMSs may require different SQL. Now, this results in an ugly list of IN_FIDs, NEAR_FIDs, and NEAR_DISTs in the Python window. All I care about is getting the average of NEAR_DIST, hence why I've gone to all this trouble to eliminate the a-b, b-a pairs which would affect the result. That can be done with this SQL: SELECT AVG(t3.NEAR_DIST)
FROM
(SELECT t1.IN_FID, t1.NEAR_FID, t1.NEAR_DIST
FROM sdeowner.NEARTABLE t1
EXCEPT
SELECT t1.IN_FID, t1.NEAR_FID, t1.NEAR_DIST
FROM sdeowner.NEARTABLE t1
INNER JOIN sdeowner.NEARTABLE t2
ON t1.IN_FID = t2.NEAR_FID
AND t1.NEAR_FID = t2.IN_FID
AND t1.IN_FID > t1.NEAR_FID) t3
... View more
11-02-2018
10:59 AM
|
1
|
9
|
1799
|
POST
|
I just added a corresponding request to ArcGIS ideas: Option to eliminate pairs from Generate Near Table But in the meantime, I'm wondering if anyone can help me figure out how to find duplicate pairs of attribute values from separate columns, regardless of column order, by way of SQL and/or ArcPy. The problem (described in the ArcGIS Idea above) is that the Generate Near Table tool creates pairs of distance values that are identical, as uniquely identified by the pairing of IN_FID and NEAR_FID attributes. That is, the unique distance between FID "a" and FID "b" occurs twice: "a-b" and "b-a" in the IN_FID and NEAR_FID columns, respectively. I only want one value from that pair, otherwise it affects statistics like the count and average of distances. I've found that it is possible to find these pairs with SQL: mysql - Show distinct tuples regardless of column order - Stack Overflow (I stole this question title for my post, obviously ) But of course, you can't easily break out of the WHERE clause in ArcGIS. Maybe this is possible in ArcPy, but I'm not sure how to adapt that SQL to work in ArcPy. If anyone could help me with that, it would be a boon to doing not just this specific SQL query but how to do any advanced SQL query in ArcPy (or other methods?) that's not otherwise possible within ArcGIS. Note: the near tables I've created are in a file GDB, but I do have the option of putting them in SDE if that helps. I do not, however, have the option of accessing SDE outside of ArcGIS, e.g., through SQL Server Management Studio. I'd like to learn how to do advanced SQL queries (that is, SQL involving more than just WHERE on a single layer) in ArcGIS regardless of data source. If it's possible at all. Thank you!
... View more
10-31-2018
12:10 PM
|
0
|
10
|
2291
|
IDEA
|
The Generate Near Table tool will create duplicate pairs (IN_FID-NEAR_FID and NEAR_FID-IN_FID) in the Near Table when using the "Find only closest feature" option. It would be nice if the tool offered the option (e.g., a checkbox) to eliminate pairs - keep one, toss one. Non-duplicated distances are often desirable for statistical purposes. You could use the Delete Identical tool afterward to eliminate duplicate distances, but that is not a good option because there can be legitimate instances of identical distances! Zero is a particularly likely distance of which there may be many legitimate (non-paired) instances. It is possible to use SQL to find duplicate pairs in separate columns regardless of column order (IN_FID and NEAR_FID), but that is pretty advanced, particularly within the SQL limitations of ArcGIS.
... View more
10-31-2018
11:30 AM
|
1
|
0
|
574
|
POST
|
I've learned nothing about what's causing it, unfortunately. You can delete the whole BGLCacheV2 folder and Arc will simply recreate it, so that's a quick and temporary fix. It will get huge again. I'm not sure what to do other than think of it like the Windows pagefile: it's just a huge automated thing that you learn to live with. I'm running 10.6 now, but it's no different than when I was running 10.4.
... View more
03-15-2018
12:39 PM
|
0
|
0
|
10214
|
POST
|
My ArcMap.cache.data file is over 18 GB and I can't figure out what's causing it or how to empty it. The closest thing I could find is clearing the display cache, which I've done and it made no difference. I also found a single GeoNet thread that was a similar issue (mine doesn't involve Citrix), but it was never answered. It's not causing any issues that I know of, beyond simply taking up a significant portion of my SSD. I could, of course, simply delete or move the file and see what happens, but that doesn't answer the question of how it got so big and the proper way to handle it. This is the full file path:C:\Users\<username>\AppData\Local\ESRI\Local Caches\BGLCacheV2\ArcMap.cache.data Thank you for any insight!
... View more
12-12-2017
12:01 PM
|
2
|
7
|
15124
|
IDEA
|
It would be nice to be able to adjust the color saturation of all the symbols in a layer simultaneously, much as can be done with transparency already. Many users have no doubt used Pro's (and ArcMap's) transparency setting as a kludge to fade out a layer's color saturation, but of course it's not quite the same thing and often has undesired side effects (like making things transparent). Adjusting color saturation is a common cartographic technique to reduce the impact of base map (or non-subject) features. You can, of course, adjust each symbol's saturation individually, but what a pain! There's a nice, big blank spot under the transparency slider (Feature Layer > Appearance > Effects) for a saturation slider!
... View more
11-01-2017
12:57 PM
|
5
|
0
|
1551
|
POST
|
Wow, thank you, Xander! I tried it on a sample section of my data and it does exactly what I need! I'm nowhere close to proficient enough with Python to create a script like that. And thank you to everyone on this thread for responding so quickly!
... View more
05-15-2017
10:32 AM
|
0
|
1
|
1658
|
Title | Kudos | Posted |
---|---|---|
2 | 3 weeks ago | |
1 | 11-20-2019 07:41 AM | |
1 | 06-20-2024 07:43 AM | |
1 | 07-13-2022 09:50 AM | |
1 | 12-11-2023 06:12 AM |
Online Status |
Offline
|
Date Last Visited |
2 weeks ago
|