|
POST
|
A search cursor only accesses the data and does not apply any edits. @TonyAlmeida would be correct under the conditions of using either DeleteCursor or UpdateCursor. If you are looking to get all unique values first and then delete any that are duplicates, then you would need to set your script to look like the following. Feature = 'filepath of table or featurelass'
Searching = arcpy.da.SearchCursor( Feature, ['CommonIdField'] )
Updating = arcpy.da.UpdateCursor( Feature, ['CommonIdField'] )
Deleting = arcpy.da.DeleteCursor( Feature, ['CommonIdField'] )
# List comprehension of valid ids
ValidIDs = [ row[0] for row in Searching ]
# Delete rows based on matching ids in the list above
edit = arcpy.da.Editor(os.path.dirname(Feature ))
with edit as e:
with Deleting as cursor:
for row in cursor:
r = row[0]
if ValidIDs.count(r) >=2:
cursor.deleteRow(row)
ValidIDs.remove(r) This should at least help guide you in the right direction. @TonyAlmeida or @HaydenWelch please correct me if the above script is incorrect. I have used this structure in previous scripts but it has been almost a year since I last used python.
... View more
07-23-2025
11:19 AM
|
3
|
1
|
1305
|
|
POST
|
I think that is a great idea. Let me know if you are open to making it a joint blog or allowing some input from others to add to it. I often use the comprehension to create dictionaries while simultaneously having another dictionary to field map different schemas on the fly. That significantly reduces the amount of effort when it comes to migrating data or running specific analyses.
... View more
07-23-2025
07:50 AM
|
1
|
1
|
1854
|
|
POST
|
I agree with both @TonyAlmeida and@HaydenWelch. Using the 'with' statement is general best practice when it comes to using any cursor. Like @HaydenWelch said, the 'with' statement ensures the object deletes after the cursor finishes executing. The other thing you can include are break conditions to stop the execution earlier or pass conditions to skip over rows.
... View more
07-23-2025
05:14 AM
|
3
|
7
|
1867
|
|
POST
|
Here are my take on things that may add some value along with other posts. USE GIS AS A WORKFLOW NOT AS DATA STORAGE GIS is kind of the Swiss army knife when it comes to data collection, integrating data, and it can turn challenges into insightful or seamless workflows. Find areas where they are needing streamlined workflows or ways of collecting and displaying data that are otherwise difficult to get. Often the simplest workflows have the greatest impact to those who don't realize what they're missing out on. Utilize the various applications to showcase how they can work in conjunction with one another to demonstrate the flow of information and how it can provide accessible information. Showcase GIS capabilities that can help answer tough business questions. EMPOWER OTHERS TO LEAD AS EXAMPLES Rather than trying to get buy-in from major/leading individuals, instead work with smaller groups/departments and teach them how to use the applications effectively. It is easier to sell a process than a concept. REACH OUT TO OTHERS IN THE INDUSTRY Many do not understand how large the GIS industry actually is and what it all encompasses. There are many facets that, if implemented properly, can make the most arduous tasks seam simple. Find those in other fields, industries, or agencies that regularly use GIS and ask for small demonstrations to showcase what is all possible which can really help catch the attention of many stakeholders. AUTOMATE WHERE POSSIBLE The upkeep and maintenance of data is often the challenge, especially when organizations are small or just starting to implement GIS. If data maintenance is a concern, it often helps to learn skills such as SQL, Python, or lately Arcade to showcase how the data can be maintained using fewer resources. TEACH OTHER USERS The more people that you can get to work with GIS the better. Start by teaching others within your organization how to use the simple things. When they start to have more desire to work with it, the easier it will be to get others on board.
... View more
07-22-2025
02:46 PM
|
4
|
1
|
2174
|
|
POST
|
Hi @Andrew-Bowne, Just for clarification purposes. Are wanting a group filter in an application, a map, or some other interactable source? Without knowing which application you are referring to it is difficult to determine whether the capability exists or not.
... View more
07-22-2025
12:39 PM
|
0
|
1
|
884
|
|
POST
|
Hi @AndrewRudin1, I have ran into this issue several times even though we are on 10.9.1 but I would recommend checking each of the following: Check the compatibility version of your enterprise with the rule version. The rules will show you the lowest compatible version of enterprise it will work with, and if the rule is set for a higher version than your enterprise then that might be the issue. Another issue is there could be a potential bug where the syntax checks out and the edits can be applied in pro, but once it is turned into a service, then the issues arise. Check the server logs in the server manager to see what the error is. If you get the message "script error at line 0" then that is a possible sign that there is a bug. Check if "Exclude from application evaluation" is checked if it is accessing $originalfeature or some other feature or table.
... View more
07-22-2025
12:31 PM
|
0
|
0
|
1627
|
|
POST
|
Hi @aolson, You may need to modify the arcade expression to reset for every month, otherwise it seems it does the bi-weekly for the entire year.
... View more
07-22-2025
10:10 AM
|
0
|
0
|
1434
|
|
IDEA
|
Hi @Ed_, Just to get a better understanding of the idea, are you specifying to create a collapsable filter group that can be added to the header?
... View more
07-22-2025
10:05 AM
|
0
|
0
|
405
|
|
IDEA
|
Another workaround for something like this, which I am currently using, is to create a separate set of data in the data expression, such as a table, and using that table to filter the map and other widgets. You can set the table to show the ranges based on the data or custom data with one field to use as labels and the other as values.
... View more
07-22-2025
10:00 AM
|
0
|
0
|
627
|
|
IDEA
|
I have figured out a workaround to this by simply setting the values to look for the first record that matches the filter criteria set and then set all records that get updated to the attributes of the first returned record. This nullifies the cyclical update issue as I have come to find out.
... View more
07-22-2025
09:51 AM
|
0
|
0
|
570
|
|
POST
|
Simple enough. I am guessing that the parcel intersects multiple zoning layers and rather than getting the zone with the greatest area of intersect it returns the first record of whichever zone intersects. Here is one option that will work for your given situation. var other_layer = FeatureSetByName($map, "Zoning Layer", ["Zoning"])
var IntF = Intersects($Feature, other_layer)
var MI = Max( IntF, 'shapeareafield' )
var F = First(Filter(IntF,'shapeareafield = @M' ))
iif( TypeOf( F == 'Feature', F["Zoning"], $feature.Zoning )
/*
Option 2
var other_layer = FeatureSetByName($map, "Zoning Layer", ["Zoning"])
var F = First(Intersects(Centroid($Feature), other_layer))
iif( TypeOf( F == 'Feature', F["Zoning"], $feature.Zoning )
*/ Another would be to use the 'Centroid' function to turn your polygon to a point and get the intersecting value that way.
... View more
07-22-2025
06:56 AM
|
1
|
2
|
906
|
|
POST
|
That makes it a lot easier to understand and work with. So there are a couple of ways to go about this but it is a bit in depth: Using Cards - This method is a bit more complicated but it is easier to manipulate. Add the column from the layout section. This will automatically organize your data into equally distributed and scrollable format. You can modify the cards to include any kind of button within the card or if you simply want buttons within the cards that can be done as well. *Note: You can duplicate each card by clicking on the duplicate in the upper left hand corner of the card. Add the section widget to the layout and add whatever maps/widgets/etc. you need to that section. *Sections are where views are situated if you were not aware of that. Clicking on the + adds additional views or the duplicate button to duplicate the same section once you have it built out. In your situation you can add cards within each view and have a query widget within each card. Ideally you want to build the initial layout of any section/card/etc. before duplicating. Once each view is created, adjust each view to whatever specifications. Adjust the different query widgets, map layers, etc. Set each card to navigate to the different views using and selecting the desired view. It should look and behave similar to the image below. Using Lists - List are automatically updated with information from a map which is easier but also more confined. Similar to the previous setup, rather than having a query of layers you can have a list showing information for the preset views. Within each view, replace the query widget with the list widget and connect to the view data. Update the text within each list item to connect to the view data do display different information. Each list item is set to automatically sort and filter data in the map. The only downside is each list item is constrained to one dataset at a time unlike the query widget. Using Buttons Add the column layout followed by the button widget to the layout Add the section next to the column pane in the window Add the map next to the section pane in the window Within each section add another column layout followed by the query widget, duplicating as needed. Configure each query to specific layers. These should get you some idea and perhaps close to your desired result but play around with it and see which one works best for both you and your end users. Ideally the easier to navigate the better.
... View more
07-22-2025
06:42 AM
|
0
|
1
|
1288
|
|
POST
|
Does this Spotfire Project have the ability to read APIs or is it strictly upload a dataset. Most people don't realize that feature services are technically called rest APIs which can be shared to different applications that, if they can be natively read, would basically work in that manner. Another thing is have you thought about creating a data view that has export capabilities so that she can download it whenever she needs to rather than running something constant. If you enable the feature service to allow others to export and then create a view of the data, then she can export it whenever needed. It can also be set to have limited sharing capabilities also.
... View more
07-21-2025
03:43 PM
|
0
|
0
|
920
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 2 weeks ago | |
| 1 | 02-10-2026 06:09 AM | |
| 1 | 03-04-2026 01:08 PM | |
| 1 | 02-24-2026 12:59 PM | |
| 3 | 03-03-2026 10:33 AM |
| Online Status |
Offline
|
| Date Last Visited |
Wednesday
|