How to make sure inspectors are recording inspection against the correct asset

721
6
Jump to solution
11-09-2023 12:05 PM
DfIRivers
Occasional Contributor

I have a survey that is used to inspects (point) assets that I've developed using Survey123 Connect.  The Survey uses a CSV file that contains the Asset ID and the Long/Lat values for the location... so that when the inspector is on site he/she types in the Asset ID and the Geopoint question uses the Pulldata function with the CSV to present  a map (as confirmation) showing where the asset is located.

The problem I foresee is that the inspector could type an incorrect Asset ID and proceed with the inspection and no-one would be any the wiser that they've recorded the inspection against the wrong asset.

Is there some way I could get the true Long/Lat values from the device location and then compare this to the values for the asset (as derived from the CSV), and if the values exceeded a tolerance then at least a warning message could be presented to the inspector to the effect that they may have entered an incorrect asset ID?

Or is there any alternative method of achieving this?

0 Kudos
2 Solutions

Accepted Solutions
DougBrowning
MVP Esteemed Contributor

I do it this way.  I pass in the lat/long via field maps but same concept should work.

For you I think

pulldata on the geopoint to get lat and long where they are like this pulldata("@geopoint", ${GPS}, "x")

pulldata on the csv to get lat long of where they should be

calc a field using this formula and put a constraint on it - I found this formula no idea how it works but it does in meters.  I use a red warning note instead of a constraint just in case their GPS is not working.

round(acos(sin(${SampledMidLatitude} * pi() div 180)*sin(${DesignLat} * pi() div 180) + cos(${SampledMidLatitude} * pi() div 180)*cos(${DesignLat} * pi() div 180)*cos((${DesignLong} * pi() div 180)-(${SampledMidLongitude} * pi() div 180))) * 6371000,2)

Hope that makes sense.  Works great for us.  Note I guess they could cheat the map by manually moving but they should know.

View solution in original post

0 Kudos
abureaux
MVP Regular Contributor

Both excellent ideas.

I will leave one more here just for consideration: Depending on the assets, you could deploy QR codes and have techs scan the QR code to kick off this process.

View solution in original post

6 Replies
DougBrowning
MVP Esteemed Contributor

I do it this way.  I pass in the lat/long via field maps but same concept should work.

For you I think

pulldata on the geopoint to get lat and long where they are like this pulldata("@geopoint", ${GPS}, "x")

pulldata on the csv to get lat long of where they should be

calc a field using this formula and put a constraint on it - I found this formula no idea how it works but it does in meters.  I use a red warning note instead of a constraint just in case their GPS is not working.

round(acos(sin(${SampledMidLatitude} * pi() div 180)*sin(${DesignLat} * pi() div 180) + cos(${SampledMidLatitude} * pi() div 180)*cos(${DesignLat} * pi() div 180)*cos((${DesignLong} * pi() div 180)-(${SampledMidLongitude} * pi() div 180))) * 6371000,2)

Hope that makes sense.  Works great for us.  Note I guess they could cheat the map by manually moving but they should know.

0 Kudos
marksm_macomb
Occasional Contributor

Here with a potential alternate method...

Does your crew also have access to Field Maps with a map that shows the locations of the assets? If so, you can create a custom URL to the survey123 form that auto-populates the asset ID and xy coordinates directly from the asset's attributes in Field Maps using URL parameters. You can put this custom link in the pop up of the asset so the worker just has to select the asset they are next to in the Field, then click on the survey123 link that it takes them to the survey123 app with the important bits already filled out.

Here are some references if you want to dive deeper into this:

Integrate with other apps—ArcGIS Survey123 | Documentation

Understanding Survey123's custom URL Scheme - Esri Community

DougBrowning
MVP Esteemed Contributor

Agreed this is what we do but we also added the check I posted because we had users forgetting to pan their map and then collecting the same asset id twice.  So good to have both.

I could also see using a pulldata to populate the id for them but would need to be online.

0 Kudos
DfIRivers
Occasional Contributor

Thanks for this suggestion.  We have configured this option too.. but not guaranteed to have Internet access for Field Maps, so doesn't always work.

abureaux
MVP Regular Contributor

Both excellent ideas.

I will leave one more here just for consideration: Depending on the assets, you could deploy QR codes and have techs scan the QR code to kick off this process.

DfIRivers
Occasional Contributor

Hi, could I ask a further question on this topic... Now that we have applied the solution to capture the tablet's GPS coordinates, and we have applied the formula provided by @DougBrowning , we are finding that there can be a significant distance between the asset lat/long and the tablet lat/long.  What I've noticed is that the tablet lat/longs are populated to the survey as soon as the survey is opened.. so our inspectors may be on route to their next inspection, and are opening the survey in readiness before they arrive on site, consequently we may be getting warnings generated unnecessarily.

As our inspection also involves taking a photograph, is there a way to tie the timing of the tablet lat/long computation, in to the point in the survey where the photo is captured.. as this would avoid collecting tablet lat/longs that are on route to the asset?

(Hope this make sense).

0 Kudos