Go Fly A Kite
“Go fly a kite” is very nearly a perfect metaphor for “fuck off and do nothing” and we have Mary Poppins (1964) to thank. A stuffy English patrician, a banker literally named George Banks, gets fired from his job only to realize that his regimented aristocratic life is an absurd farce and he makes amends by vowing to take long walks in the countryside, spend time with his family and… go fly kites. Life is absurd. All absurdities being equal, choose the fun ones.
Flying a kite consumes so much attention and so little brain. It is a simple joy holding tight to a struggling thing fighting for altitude; it is so wonderful and strange as to be impossible to take one’s self seriously doing it so it almost seems like blasphemy to make such a carefree past-time into a productive effort capable of doing useful work. Putting a camera onto a rainbow kite and trying to do photogrammetry for mapping projects while fretting about payloads and data storage almost feels like bringing your laptop to the beach.
My interest in kite aerial photography (KAP) began when I met Dr. Michelle Tobias at FOSS4G in 2019. Dr. Tobias has been doing KAP since 2011 and she’s produced tons of great content that has proven invaluable in my own experiments. Here’s her discussing her KAP journey on Youtube and sharing her photoprocessing workflow. Most of my journey is simply uncovering the research done before me and I think I’ve added very little to the field. My only contributions have been, per my M.O., to pursue KAP as cheaply as possible with the intention that almost anyone anywhere could follow my example.
New Jersey has a complicated relationship with coastal development as sea level rise, storm surge and erosion threaten seaside communities. Drone surveys have been able to track dune movement as sand is blown across the landscape or alternatively held in place by delicate beach vegetation. Being able to fly regular drone surveys to track these changes has been invaluable to high stakes development policy decision making. Can we create workflows that will work for for people on much more limited budgets with kites and simple cameras and free software? I’m still trying to figure that out (and many others are doing so in a more rigorous way) but based on my own experience I’m inclined to say ‘yes!’
Kites are cheap and ubiquitous and most cultures on earth have some relationship with kites as tools and toys. Now that billions of people have a camera in their back pockets, the camera/smartphone combination has the potential to be a democratizing force when paired with free and opensource software. I’ve fascinated with the idea that KAP could become the ubiquitous bicycle of remote sensing.
What kites are good at:
They’re cheap. You’d be hard pressed to pay more than $200 on a nice kite/string/reel system and you can make them fairly easily as well.
They can fly nearly anywhere with a light breeze and in stronger winds they can lift huge cargoes that can stay aloft for days.
They don’t run out of batteries or fly off when they lose GPS signal.
They’re easy to build, mod and fix.
They’re portable and you can take them lots of places drones can’t go: in high winds, restricted airspaces near airports and parks.
Where drones are banned, kites are often welcome and colorful additions to the sky without the annoying buzz that has become synonymous with surveillance.
You don’t need a license to fly and most anyone can do it. It is marvelously accessible.
You’ll have a hell of a lot of fun with it.
What kites are not good at:
You can only fly when there’s wind. I mean. Duh. But also wind can be fickle or turbulent. Too much wind can break your kite (I broke a fiberglass spreader bar in what I think were 35mph winds. I know, it was dumb). Not enough and you won’t be able to hit the altitude you want. If it’s coming from the wrong direction the kite won’t fly over the object you’re trying to survey. Field work is hard enough to schedule without having to also work around the wind. I’ve been tempted to get a 9 foot delta kite for light wind and a sturdy box kite for strong wind but how many kites do I need to buy before I just get a drone?
Kites are difficult to steer and it’s hard to get the shots you really want. With surveying, you probably just want to walk around in a lawnmower pattern with the camera pointed straight down but photographers who want an artfully aimed oblique shot have greater struggles. There are rigs that allow operators to use a remote control to aim and shoot photos with servos and micro-controllers but they are often expensive and unwieldy to the point where, again, one might as well just use a drone.
You’ll probably get a lot of shots with the kite string in them.
Where a drone can rise vertically up through a gap in the tree canopy and then fly over obstructions while maintaining visual contact with the pilot, kites require a direct line of sight to be perfectly clear which makes urban and forested environments difficult to survey.
Trees, powerlines, fences and low lying obstructions are all serious hazards to equipment and personal safety. It seems silly to say but kites are fully capable of being dangerous. I’ve given myself some nasty rope burns on the kite string when I’ve been foolish enough to fly without gloves. Wind is energy. Large kites are capable of harnessing a great deal of it. Any high energy system is capable of damaging your body.
People have been doing KAP for a long time. Incredible photos taken of San Francisco just weeks after the 1906 earthquake made its photographer rich and famous in part because of their novelty but even at the turn of that century Europeans had been experimenting with flying cameras for decades. Me? I’ve been experimenting since last May after two and a half months of shelter in place. I have no illusions of vast expertise but I have played around with this long enough and with a particular perspective that I think I can contribute somewhat meaningfully to the discussion of how KAP can be used to make maps on a budget.
My kite is a medium sized Delta Conyne (or DC for short) made by Into the Wind. For about $75 it came with 300 feet of sturdy dacron line and a hoop reel. In a light breeze it is motionless ~80 degrees overhead and it’s only when the wind gets up to 25 mph or so that it starts to shudder and pull menacingly. It could probably use a tail to keep it more stable or drag it down to fly at lower angles but I’ve done well without one.
I started taking pictures with my old Nexus 6P phone that had an irreparably busted mobile network chip and was no longer good for much except as an e-reader and camera. When that fell out of the sky and broke I upgraded to a GoPro Hero 3+ silver and I use a Hero 4 now. Anything with timelapse, video or intervalometer will work fine.
There’s usually a steady breeze by the water so I’ll walk out to a nice open area and find a place without too much pedestrian traffic or overhead obstacles like streetlamps and power lines. I’ll assemble the kite and clip the string to the bridle and launch with one hand. Sometimes I run a bit to get the kite up into more stable wind. I’ve gotten pretty good at watching the tops of trees to see how much running I’ll have to do to get into the good air. Sometimes I’ve had to fly in the windy gap between trees until I’m up and over the canopy at which point I have enough wind to walk around.
Once the kite is up and stable and pulling a bit, I make a simple loop in the middle of the string. This is a slip knot so I can hook the loop with a tuna clip and the pull of the kite tightens the knot securely until I unclip the camera from the string and the knot comes out with a gentle tug.
I bought the floatline tuna clips off Ebay so I could clip my camera onto a loop instead of relying on my knot-tying skills. They’re quick and sturdy and give me some peace of mind when launching the camera. When I inevitably upgrade my camera I’ll make a picavet camera platform attached with two clips.
With the camera line securely clipped to the kite string, I turn the camera on and set it to take photos every 10 seconds and let out the line. Now I just fly the kite. I might let out all the line to see how high I can go. I might wander a bit as if I was walking a flying dog. I might sit on a park bench and read a magazine. I relax until I get bored, I run out of batteries or in one memorable instance, I get kicked out of a park for “flying a drone.” It’s lovely.
When I get home, I download the photos and the work starts.
Taking pictures is easy. Taking pictures that are useful is much harder. I typically delete about 10% of all of my photos after visually spot checking them. On turbulent days, the camera might spin and cause motion blurring. If it’s too dark I might get poor exposures. That’s fine. You don’t need many good photos for this to work.
Most panoramas that smart phone users make are taken from a single point while the camera is rotated. This makes a cylinder or a bubble pano that looks cool and can even be viewed in VR but it’s not super useful for mapping.
If you’re trying to replace a drone, you’re probably most interested in taking images straight above a target in an orthographic projection. Long oblique shots like the kind you get from cheap satellite images don’t have much utility if you’re doing pavement assessments, rooftop solar suitability studies or landscape architecture. To make the camera point directly down, simply attach it to a broom handle or dowel and hang it from a single anchor on the string. The dowel will act like a stabilizer and keep the camera 90 degrees to the ground for the most part.
For obvious reasons, the closer to the ground you fly, the higher the resolution. I find that with a 12MP camera, I can only improve on Google Maps satellite imagery when I’m less than about 200 feet off the ground. Much higher and I’m only producing wider extents at lower quality. At least they’re more current!
When I used a GoPro Hero 3+, I ran into an interesting issue: the timer function of the camera only worked on the Wide Angle setting and unlike the Narrow setting, all the Wide shots looked a bit fish-eye. Most newer cameras will save lens information with the photo metadata and the software can read it and correct the image but the older GoPro models have to be manually de-fisheyed with GML Undistorter or Darktable which could bulk-correct hundreds of photos in under a minute. Now that I have a newer camera, this is no longer a concern.
The program I use to process the images is called Image Composite Editor made by Microsoft. It’s free and pretty easy to use with either video or still images. You can use ICE to stitch together any images you collect into a single, continuous orthomosaic that you can georeference in QGIS or ArcGISPro and use as a basemap. This is probably the easiest product you can create with KAP. If you want extra credit, you can open the images in the excellent opensource Photoshop analog GIMP and clip out the strings or any defects and then run them through ICE which will plug up the gaps.
I’ve also used Hugin as a pano stitcher. I don’t have strong opinions about it.
Making 3D Meshes
Making 3D meshes is a little more complicated. Like your eyes, a computer can take two images of an object from slightly different angles and reconstruct 3D shapes. A computer can calculate the angles between the camera shots by identifying landmark features that are common between multiple photos, then using a ton of trigonometry, the computer can draw tiny triangles that connect the camera to those landmarks and determine the relative distance and angles between them. That’s what Google Maps does to provide the reconstruction of buildings and terrain when you turn on 3D mode. Unless you have an object in the foreground of known size, all you’ll get is a dimensionless cloud of landmark points and a proportional cloud of inferred camera positions but we can address that later. To make a good mesh you’ll need to:
- Get as many photos of the region in question. You can scan rolling hills with a kite flown at constant height just by walking around the area. The more photo overlap, the better the quality of the resulting model so consider how this will inform your coverage strategy. Since any object that moves is going to appear differently between your photos, reducing the amount of people or waving vegetation is going to be important. With decent resolution and a simple subject, you should be able to get a pretty good model with less than 40 images. If the objective is to scan a building or more complicated shape, you’ll need more photographs from around the sides and inside crevices, overhangs and concavities.
- Click and drag the photos into a program called Meshroom which will turn your photos into a textured mesh. It really is as simple as clicking “run” and there aren’t many settings to fiddle with. Having a good graphics card and hefty RAM is essential because this is a processor heavy project. The more savvy technicians might set up an S3 account to run the processing through a cloud server.
- The completed mesh will have some noise and ragged edges. To clean up errors and artifacts, trim the mesh in Meshlab which is also a good platform for exporting the model into different file types like .obj or .stl depending on where your model is going to end up. Just get rid of the errors and export your final mesh. You might even want to show off your new mesh by posting it to Sketchfab which is a cool resource to see what other folks have done with these techniques. Here’s a simple beach from the Shetland Islands done with KAP.
Alternatives to Meshroom:
Maps Made Easy will allow you create small 3D maps for free but the photos have to be geotagged because the software wants to place the mesh on the Earth’s surface and not merely a dimensionless model. I have an Olympus TG-6 point and shoot camera that also has a GPS logger capability and I might try to use that for mapping one day when I’m confident enough in my system to lift that camera off the ground safely.
Open Drone Map is a little more complicated because you’ll need to create a virtual machine with Docker. If you want to spend money, you can have a remote server do all your photo processing. If you want to do it all locally, you can do that too if you don’t mind it taking a bit longer. ODM is an interesting, fully opensource project that uses the same SfM algorithms developed by Mapillary, now owned by Facebook.
Your mesh can be exported to fulfill a couple of different purposes:
For higher quality rendering in an artistic model or graphic, say a proposal or a flashy public image, import your mesh into Blender and adjust the colors and shadows with a shader. This is potentially really time consuming but the results have the potential to be superb. I might write something more about this later as I’m trying to get better at representing water on some of my marine maps. Right now I’m working on a map that combines sonar bathymetry data to a building and terrain mesh scraped from Google Maps.
Digital Elevation Model
If your objective is to create a DEM from your mesh, you’ll need to bring it into a program that can make the conversion from mesh to raster, although these days QGIS and ArcGISPro can ingest meshes as well. For rasterizing ungeoreferenced meshes I use Cloud Compare which is a free LiDAR processing package. One of the cool things about meshes is that they can be treated in much the same way as point clouds. Once you load the mesh, you can edit or classify the points, trim away errors and run statistics on it like terrain ruggosity. Cloud Compare is incredibly powerful in its own right but I mostly use it to export the mesh as a height map raster that I can then open in QGIS’ georeferencer tool.
If you planned ahead, you can leave Ground Control Points (GCPs) on your survey area as you take pictures. This could be as simple as a trashcan lid that you’ve taken GPS coordinates of so that when it comes time to georeference your imagery you can just click on the center and type in the coordinates. A phone GPS unit isn’t very reliable and has about a 10m error but with a small handheld GNSS antenna and an app that lets you average a series of values for a couple minutes, you can get that number down to 20cm for just a couple hundred bucks. Since I’ve been trying to apply photogrammetry techniques to underwater subjects, I haven’t paid much attention to GPS because the radio waves that make GPS signals work can’t penetrate water but one of these days I’ll borrow the office BadElf unit.
Things I want to Try
Infrared cameras. Also pretty expensive but now that it’s too dark after work to do much flying an IR camera would keep me busy until spring.
Adding RTK to surveying is a big deal but it’s also extraordinarily expensive on the order of a few thousand dollars. I don’t even fly cameras with GPS on them because I georeference the imagery manually later but if I had a better GPS antenna I might be tempted to make a kite more like a drone.
While I’m studying for my HAM radio certification, it occurred to me that kites might make an excellent aerial antenna. Could be interesting. I could even use a packet transmitter to beam my images to the ground in real time which means I wouldn’t have to worry about filling up memory cards.
I’m currently working on mapping projects underwater by making 3D models of reef structures in Monterey Bay to replicate some of the efforts being done in much warmer, clearer waters. Visibility is limited so we cant do the kind of deep reef scanning being done in the tropics but on smaller scales we can do similar and fascinating stuff. Maybe my next step is trawling a camera across the bottom with a downrigger to create higher resolution benthic characteristic studies. It’ll be like flying a kite underwater. Hanging out on a boat is probably the only way to relax even harder.
An interesting Peruvian archaeology expedition uses KAP to provide consistent aerial imagery to the dig site.