I was faced with the same problem - wanting to terrace my sloping back yard to make it more usable. I needed to know where to make the terrace divisions to avoid having to remove or add soil from the site, and to know how many blocks to buy. Here's what I did:
- Collect topography in spherical coordinates relative to compass readings and gravitational level using as many origins as needed to survey the area of interest.
- In excel, convert to Cartesian coordinates
- Translate multiple data sets to a common reference frame
- Sort the data from lowest to highest Z
- Plot the data in multiple series according to desired contour line resolution
- Use trend lines to fill in the contour lines, or draw by hand.
Cost was zero as I already had the laser tape, phone and tripod. A laser tape costs between $50 and $150 depending on distance and fancy features. Mine was $100.
Accuracy: Looks like about 6" based on data noise. But I honestly didn't work very hard at being careful since I didn't want to take a lot of time if the process had some unforeseen hang up looming. I didn't even cinch down the laser and phone tight to the Masonite. They were pretty loose. The laser origin was not centered at the center of rotation of the tripod which contributes to error.
Didn't always hit the ground with the laser due to long grass, and leaves and some bushes. As far as the Android accuracy, not sure, but it would be easy to do some tests to find out as all we care about really is local relative accuracy. That is, if my phone is off by 10 degrees, I don't care as long as one degree difference in orientation reads as one degree reading difference.
Time: About 2 hours to collect 200 data points from three locations.
Area covered was about 60 feet wide by 20 feet deep with a z variation of about 8 feet.
Collect the data. I used a cheap camera tripod that had tilt and pan, a Bosch laser tape, and my Android smart phone with a compass level app installed. I used a piece of Masonite to make a platform to attach to the tripod, and secured the phone and laser tape to the Masonite with zip ties. Pan and tilt away, recording compass heading and tilt from the phone and distance from the laser tape in an excel spread sheet. I included a fairly small (aka unambiguous) reference point in the data set that I could see from the next location I was moving my tripod to. Repeat several times to go around the yard. (You don't need to use the same original reference point, just need a reference point between adjacent data collection positions.)
In excel, convert the data from spherical coordinates, which is what you have when you collect pan or compass angle, pitch angle, and distance from the collection point, to Cartesian coordinates or (x,y,z). (Simple formulas available on line for the conversion.)
Translate to a common reference frame. Each time I moved my tripod, I would collect a new data set that had its own origin and of course I only want one. Conveniently compass headings and tilt are absolute, that is, they don't change when I move the tripod. That means all my data sets share common pan and tilt reference frames, so my data only has to be translated, no matrix multiplication required! All I had to do take the difference in x,y, and z between data sets, for my unambiguous reference point, and add that difference to all coordinates in the secondary set to translate it to the primary data set. Do this translation as many times as needed to move the last data set to the next to the last, then to the next, etc. and finally to the primary set. Now all the data is in one common reference frame. (This can be done in one step that is the sum of all the translations.)
Use the Sort function to rearrange the data by z values, smallest to largest.
Use the scatter plot chart to plot the x,y data in a series of plots based on z ranges. For example group all data with z between 0 and 1 foot, 1 to 2, etc and plot them all on the same graph. Each plot represents an isocontour (there's a better word for that, right?).
Use the trend line function to draw contour lines through the data sets. I used the 6th degree polygon function to draw the line which might not be agile enough for a lot of data sets.
I did a little research into other methods for creating topographical maps of my yard. The classic method is to use a theodolite, poles, a tape and plumb bobs. The theodolite is just a telescope that registers tilt and pan (pitch and yaw if you like) very accurately. Now days, people use totaling stations which measure pitch and yaw, and distance all at once, which are spherical coordinates, from which you get 3D coordinates after a little arithmetic. That’s exactly what I’m doing with my laser tape and phone. I’ve added a photo of the set up.
I think the best accuracy you can expect with this flimsy setup in on the order of a few inches. The problems are mainly two.
- Compass errors.
- Alignments and rigidity.
The laser tape is pretty good, fractions of an inch, and the pitch measurement is pretty good, .1 deg or so. The compass is pretty bad. The sensor in the phone drifts pretty fast and is easily perturbed by any ferrous metal or electronics, thus the roughly 12” separation between the phone and the laser tape. Unfortunately, the separation made my setup pretty flimsy.
But, it does give me a usable picture of my back yard.
This data was collected in the dark, raining, and the phone was right next to the laser tape. It could be greatly improved by using the phone only for pitch, and adding a better compass, and a more ridged platform and by doing some cursory alignments between the laser and pitch axis of the tripod.
I ran several more accuracy tests by picking some points around my yard and inside my house where I could calculate point positions and separation distances with my set up, then compare with direct laser tape measurements.
With phone, laser tape and camera tripod, with a stiffer mount for the laser and phone, and with the laser aligned with the pitch axis on the tripod, it looks like you could get about +/-8” in the horizontal plane, and +/-1” vertically at 20’.
Swap out the phone compass for a protractor and the errors reduced to +/-1” in 3D. I used a carpenter’s sight level as my protractor that reads in degrees.
Broke down and bought a used theodolite ($260) and the errors reduced to about +/-3/8” in 3D. And this I would attribute to the fact I was holding the laser tape by hand over the theodolite, trying to position the back of the tape at the center of rotation of the viewer, and point at the spot I was looking at through the viewer.
If you were to ask me how to create a topo map of your yard, I’d suggest the laser tape, smart phone, and carpenter’s level, one that allows you to pitch and yaw and read angles. Transit levels are giving way to the laser levels so you can get them on ebay for under $100.