Select to view content in your preferred language

What tools within ArcGIS Pro would help me in my capstone project?

458
3
06-23-2022 10:09 AM
MR2022
by
New Contributor

Hi everyone! I am currently working on obtaining my Masters in GIS. I am having some trouble trying to figure out what tools I could use within ArcGIS Pro for my Capstone Project. 

My project is trying to see how efficient remote planning tree work for the utility lines is. I currently have data on the utility poles (where they are located) as well as the utility lines. I am physically planning tree work that is near these lines using high resolution imagery. I want to show how productive each day is on the actual map. For example in the field (not remotely) planners are required to plan 100 trees a day. Lets say I planed 200 trees remotely in one day and then 150 the next day. Is there anything that could help represent that on the actual map? The main requirement of the project is to use GIS. I am currently using ArcGIS Pro to plan the trees and show them in relation to the utility lines. I would like to use GIS more to show the results but not fully sure how to do it.

Any help would be greatly appreciated!

0 Kudos
3 Replies
by Anonymous User
Not applicable

Sounds like a fun project. You could create a Survey 123 and have them plot it on the map, then update a dashboard.

0 Kudos
MR2022
by
New Contributor

I will need to double check, but I am not sure is Survey 123 will be helpful for the project since I am the one planning the work remotely (I do not have actual field data) and I will be comparing my productivity with sample times from other areas in the US. I feel like there is a way within Pro I could represent the productivity  day by day for my planning. 

0 Kudos
JohannesLindner
MVP Frequent Contributor

Very basic:

If you don't have one already, create a feature class for the trees (probably points) with a text field. When you planned the tree, fill out the text field with the current date (you could also use a date field, but working with date fields becomes tiresome later on [time zones, different sql formattings etc.]).

Symbolize the trees by unique values:

JohannesLindner_6-1656060916227.png

 

Kinda basic:

Use Summarize Attributes to create a table containing the dates and a tree count for each date:

JohannesLindner_7-1656061001620.png

 

 

In your layout, insert a table frame, point it to the summary table, show the date and count fields:

JohannesLindner_8-1656061061719.png

 

Advanced:

Automate the process with Attribute Rules.

Create a table with a text field and an integer field (this will mimic the summary table).

Create a Calculation Attribute Rule on your tree fc (add GlobalIDs first):

// Calculation Attribute rule on tree fc
// field: empty
// triggers: update (I'm assuming you don't insert or delete tree features)
// Exclude from application evaluation: checked

// determine if the planning date changed
// it changed if it was previously empty or if we previously edited the tree on another day
var current_date = Text(Today(), "Y-MM-DD")
var original_date = $originalfeature.TextField
var date_changed = (original_date == null) || (original_date != current_date)

// if the date didn't change, we don't need to do anything.
if(!date_changed) { return }

// load the summary table
var summary_table = FeatureSetByName($datastore, "TestTable")

// create empty arrays that will hold edits to be made to the summary table
var adds = []
var updates = []
 
// if the date changed, we have to increase the cuurent date's count in the summary table.
// if the current date isn't there yet, we have to create it
var sql = "TextField = @current_date"
var summary_current_date = First(Filter(summary_table, sql))
if(summary_current_date == null) { // nothing found -> insert row
    var new_row = {"attributes": {"TextField": current_date, "IntegerField": 1}}
    Push(adds, new_row)
} else { // row found, increase count
    var updated_row = {"objectID": summary_current_date.OBJECTID, "attributes": {"IntegerField": summary_current_date.IntegerField + 1}}
    Push(updates, updated_row)
}

// return current_date to the tree feature's date field and tell ArcGIS to update the summary table
return {
    "result": {"attributes": {"TextField": current_date}},
    "edit": [{
        "className": "TestTable",
        "adds": adds,
        "updates": updates
    }]
}

Now, when you update a tree feature, the entry in the summary table with today's date will be inserted or its count increased. If you point your table frame to the new summary table, the changes will be reflected there:

JohannesLindner_10-1656061557459.png

You will probably still have to refresh the symbology after each day...

 

Also, charts!:

JohannesLindner_11-1656062425314.png

 

JohannesLindner_12-1656062498973.pngJohannesLindner_13-1656062609564.png

 


Have a great day!
Johannes
0 Kudos