Camping With OpenDataKit

This trip was two-fold. One was to test some experiments with XLSForms in the field, the other was to collect and edit data on parts of rural Colorado I hadn’t gotten to yet. I’ve spent years ground-truthing and improving the accuracy of OpenStreetMap data all over the western US, but focus on my state of Colorado. You can go a bit crazy trying to collect data for everything in the field for a week, so this trip was focused on amenities in small hamlets, and good camping. :-) In the west there is much public land, and you can often camp wherever you want Most of these distributed camping spots aren’t in any map, many have been used for decades. And they are free. In my local fire district there are many of these, and my fire department has to find them in the event of a medical emergency. Adding these campsites helps other rural fire departments, since none of these are on any map.

I’ve done many of these types of trips in the past. Since the primary goal is data collection, you drive a lot trying to get to as many locations as possible. For example, I would be driving down a dirt track in the forest, but stop at every spur road to update conditions. Often there’s long gaps with no spur roads at all. Mapping highways and paths is a whole different article though. This usually has me in very remote areas a long way from anywhere. So camping is the best option, and often I find truly amazing camping locations. The small hamlets were the ones I drove through between areas. How I select the areas to map is also a different document.

I collect data during the day, and then try to process it in the evening while obscure details are still fresh in my head. Usually this is just a matter of checking the raw data for the day, making minor changes to the XLSForms, etc… The conversion software I use I’ve been developing for HOT. Sometimes I am also making data extracts for the next day’s mapping plan.

The other field test was updating amenities. Throughout the west, there are many small hamlets that act as the local supply hub for their region. Many of these contain only a few businesses. A gas station, a restaurant, a convenience store with groceries. Many of these have changed hands or gone out of business during the pandemic, Course most weren’t in OSM anyway. These supply hubs are useful for both recreational users, as well as emergency responders who are from out of the area. That’s very common for large wildland fires. But where the data is already in OSM, this was a chance to try editing existing OSM data with ODK Collect, which is relatively new functionality.

I had been experimenting with two XLSForms, one for camping, and one for structures. The one for structures is experimenting with a different data flow by changing the survey questions. Most XLSForms are very data centric, and knowing what the best value is can be confusing, This XLSForm is instead aimed at the functionality of the structure, not it’s value. Most XLSForms are focused on the data, not the mapper. Rather than ask  survey question about what type of amenity a building is, the first question is more like “Can you get food here ?” From there you can then get a short menu of cafe, restaurant, bakery, etc… Each top level OSM tag like cafe, has it’s own sub questions oriented towards that type of amenity. These sub questions use conditionals in the XLSForm so are only displayed when relevant. There are also some questions used by all amenities, for example, the name, if it has one.

Testing this in the field was interesting, as there is still a bit of confusion sometimes. That survey question that looked great back in the office, a week later in the field leads you to wonder what were you thinking… You also can discover that you forgot a value for a tag in your choices sheet. While I am primarily focused on amenities, I did forget a way to tag historical buildings as a data item, and I also forgot to be able to tag an ice cream shop.

For gas stations, I also forgot to be able to add a tag for fuel type, namely is diesel available. Many fire trucks, big RVs, and delivery trucks are diesel only, and many rural gas stations only carry gasoline. A small but potentially important detail. My XForms all do have a text field called “for things you forgot”, so diesel goes in there for now. It can be complicated to change XLSForms in the field, and I have an entire other document on how to do that.

The camping one is similar in that it heavily uses conditionals for all the survey questions. Also choice-filter, and better support for editing the OSM data using the XForm. That XForm attempts to edit every tag in the existing OSM data file. The external data file is extracted from either a Postgres database using ogr2ogr, or Overpass, and included as part of the XForm. Any existing OSM tag value is used to set the default value in the XForm, so users can just continue seeing that data item is already in OSM, or change it if needed. Much like using some conditionals for which survey questions get displayed, these also need to be triggered from the value in the OSM data.

The Results

The primary result, I collected a lot of accurate data on adding campsites, and updating amenities in rural Colorado. One issue that came up was ODK Collect was great for adding data, it can’t delete it. In the rare cases the amenity was in OSM, but the business was closed, all I could do was add a text comment to myself to delete it later. Many of the restaurants in the hamlets I went through had gone out of business during the pandemic.

For adding campsites, I’ve used versions of this XLSForm for years, so it’s pretty good for my use already. This time though I added a GeoJson file of camping from OSM data. I didn’t get a chance to test that heavily, as none of the campsites I was at existed in OSM. So for adding data, I’m used to the data flow of this XForm. Since this was all primitive camping, there weren’t any campground amenities. The few remote free campgrounds I added all the individual campsites too.

For amenities, that was similar. Very few amenities were in OSM, so this also turned into more data collection than data editing. But that’s all good too, to add this to OSM. Most of these hamlets you can map very quickly. Trying out the more functional style survey questions vs the data driven ones was interesting. Even on an XForm I designed at first I still had issues figuring out what amenity type was in what category. Restaurants, cafes, etc… are in one category, public libraries in another. But it did require less knowledge of OSM tagging, and since I was mostly collecting lots of the same amenities types (restaurants, cafes, convenience stores, gas stations, libraries) I got the hang of it. Whether it works better than the more data driven way would be up to others trying it out.