Hello All.
We are working on a survey design where people will be going out into the field and taking photographs (two at each site) for 25 sites that are in sequential order (e.g., the field workers will start at point one and walk along a creek until site 25). The initial survey that we created contained a repeat for each of the sites that was accessed via a select_one question that contains all of the site names. It was a bit onerous for the field workers to have to return to this question after collecting photographs at a site once they got to the next site. One important facet of the project is that each time people are in the field, they will be collecting photographs at all of the points.
What we were wondering is if there is a more logical way to do this, or if anyone has worked on a similar project. One thought would be to create a separate page for each site, but that might be too clunky. Having all of the sites on one page that people would have to scroll down would also be a bit cluttered.
Another facet of this project is that the photographs are the most important part of the data that is being collected. So, setting this up so that downloading the photographs is also key to the survey.
Thanks for any ideas.
Have you considered using url parameters Launch the field app—ArcGIS Survey123 | Documentation?
A couple of ways you could implement this:
- Field Maps Points/Polygons that represent the sites. User clicks on site "Launch Survey123 Form" > launches survey with attributes pre-populated
- QR codes at the site locations. User scans > launches survey with attributes pre-populated
Hi Clay
Thanks for the response and your suggestions.
We have used Field Maps to Survey123 on other projects and the field workers (mostly older volunteers) did not like having to download more than one application on their phones, even though we had it set up so Survey123 would open and close automatically, returning them to Field Maps when the survey was submitted and/or saved to the Inbox.
For QR codes, the sites are all located in wilderness areas, so we cannot put anything onto the landscape.
you could also do a print out of QR codes - I bet you could fit 21 on a single page.
Another alternative that is a bit more involved. Given a set-up like this:
You could pre-populate the site points and use the Inbox functionality to allow them to load all sites before going out. Workflow:
Perquisites:
Result would be a 21 records, each with a series of related records.
Prepare to edit existing survey data—ArcGIS Survey123 | Documentation
Oh and potentially the simplest method, utilizing the geospatial aspect:
- hide any site metadata questions
- add geopoint question to photos repeat
- update site_id via post process via arcgis pro, web-editor or notebook
I have notebooks that automate this sort of thing, but it could be a quick manual process too.
What about 1 form per site. Then they can pick the site name outside the repeat once. Add a calc to push the site into each repeat for the photos.
There are a number of solutions that would work here. Many of which folks have already suggested.
If you are using Survey123 Connect to design your survey, are comfortable with Survey123 JavaScript functions, and your sites are far enough apart for the user's GPS to clearly distinguish one location from another, then I would suggest a variation on @ClayDonaldsonSWCA's use of the geospatial aspect, which would calculate your Site ID in real-time.
You can use a custom JavaScript function to populate the site ID in your survey form based on where the person filling out the survey is standing. The script would use the geopoint question's location to identify the closest site from a feature class that contained the site locations and site IDs.
This has worked well for us in similar situations, where we are trying to keep things as simple as possible for the data collectors, who are typically not GIS folks.
Typically we hide the GeoPoint question in the survey, so that the user has a nice, clean, simple form. If we foresee the use case where a user might need to enter data while standing elsewhere, however, then we do present the GeoPoint question, so that they can move their position close to the desired site, so that the correct site ID is calculated.
An example of such a script is provided by @IsmaelChivite on github, getNearsestRecord. It returns the whole record for the nearest site, however, you can modify it to return just your Site ID attribute, so that it can populate your survey question with that value.
Check out the One Question, Multiple Photos section and the One Survey, Multiple Photos section of the Photos tricks of the trade here.
One way I would do this is create a repeat with a select one question inside the repeat (rather than outside) for the site ID along with 2 image questions limited to 1 submission each. That will let you get 2 photos in 1 repeat and associate the site ID with those photos in the table making them easier to parse out later on. I would do this if there were certain criteria for each photo like "view to the north" and "overview of waterbody". Alternately if it is just generic "photo 1" and "photo 2" use a multiline appearance on a single photo question instead of using 2 photo questions.
If it is always 25 sites being visited and always in 1 go, I would set your repeat_count to 25, so the 25 repeats are already created and make sure the questions in the repeat are required so they can't just submit a form with empty repeats.