tag:blogger.com,1999:blog-78857714796262284722024-02-07T09:08:51.141-08:00MarkaeologyMarkhttp://www.blogger.com/profile/03811635822004008238noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-7885771479626228472.post-22951612202265656362013-10-16T06:02:00.000-07:002013-10-16T13:17:52.306-07:00Drone Mapping the Pyramids of Zuleta<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmqIjN_fdN-2mH9mYKTAx4z97MNWbvjlxntQcSZTeaXMjdYJsb75QRK8Txmkky0pWupFVbyF7VPf4bchNt8jiLAWXuOJ3v2SP7OvmdHv50hli33cchWgrbQoX0z1pcrE2gA3UsWY3mQGJQ/s1600/Zuleta_Slope_Model_20131013.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="80" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmqIjN_fdN-2mH9mYKTAx4z97MNWbvjlxntQcSZTeaXMjdYJsb75QRK8Txmkky0pWupFVbyF7VPf4bchNt8jiLAWXuOJ3v2SP7OvmdHv50hli33cchWgrbQoX0z1pcrE2gA3UsWY3mQGJQ/s400/Zuleta_Slope_Model_20131013.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Drone derived slope model of portion of Zuleta.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: left;">
The Pyramids of Zuleta are one of the hidden treasures of the Andes.<span style="mso-spacerun: yes;"> </span>Built around 1,000
years ago, by the native Caranqui people, these earthen mounds and platform
pyramids dominate the landscape near Hacienda Zuleta.<span style="mso-spacerun: yes;"> </span>Unlike much of our planet, high resolution
aerial imagery and digital elevation models are unavailable for this part of
the world.<span style="mso-spacerun: yes;"> </span>This is due to the fog that
often blankets the area and the agrarian nature of the region. As a part of a team of archaeologists who visited the site in the August 2013, we aimed
to change that.<o:p></o:p></div>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIECG0wS2Lu6GDoQjY6WovA0KUzJGanHTrqImWb_xF-FHNzjzxMj5gFZW2DLTl3xhvqlLOS-yy1gRIhTnBBchNpzGPnZZopFO7LwsCeO4UXSarDKbgieIeRLquRC_Zggu3Rl1YY1xv5PC-/s1600/Zuleta_Landsat_to_3D_2.gif" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIECG0wS2Lu6GDoQjY6WovA0KUzJGanHTrqImWb_xF-FHNzjzxMj5gFZW2DLTl3xhvqlLOS-yy1gRIhTnBBchNpzGPnZZopFO7LwsCeO4UXSarDKbgieIeRLquRC_Zggu3Rl1YY1xv5PC-/s400/Zuleta_Landsat_to_3D_2.gif" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Comparison of Landsat Imagery (best public data available) vs. UAV </td></tr>
</tbody></table>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
Using a small, hand-launched, Unmanned Aerial Vehicle (UAV aka drone)
equipped with a downward facing camera and a sophisticated autopilot system, we
documented the site as it has never been seen—from extremely
low altitude and at high resolution.<span style="mso-spacerun: yes;">
</span>This was a challenging task as most of the pyramids are located in the
bottom of steep constricted canyon inhabited by Andean Condors.<span style="mso-spacerun: yes;"> </span>To make things more challenging there were
high winds, clouds, and quirks of the micro-climates within the canyon to
contend with. In spite of that, we were able to fly nine missions and collect
hundreds of photographs in just a couple of days.</div>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsK9QAuvFpOJhBvx1n7YOSu6j3hCALMTdq5eheoK9_7x7HSnd2VPyclGX737xeJrEIh1_HhxrSViGI9iiabl0Ix9ea8MiTZNN1Fp1235sti0MxUhj2rhXfCrWXDcsoOneC-mvpOkPO8KgE/s1600/Piloting_w_mound_in_background.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsK9QAuvFpOJhBvx1n7YOSu6j3hCALMTdq5eheoK9_7x7HSnd2VPyclGX737xeJrEIh1_HhxrSViGI9iiabl0Ix9ea8MiTZNN1Fp1235sti0MxUhj2rhXfCrWXDcsoOneC-mvpOkPO8KgE/s320/Piloting_w_mound_in_background.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Programming the UAV while in flight.</td></tr>
</tbody></table>
The UAV flies in a defined pattern and as it collects
photographs. The onboard autopilot insures that each image has 60% or more
overlap with adjacent images.<span style="mso-spacerun: yes;"> </span>These
overlapping images allow for the data to processed into 3D and digital terrain
models (DTMs) using photogrammetric and cutting edge Structure from Motion
technologies.<span style="mso-spacerun: yes;"> All of the data are GIS ready. </span>While basic processing
allowed us to see the mapped data in the field, it was necessary to
further develop it using a high-end processing farm in Maryland, once we were back in
the States.<o:p></o:p></div>
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVZit5PgbmTKWyir8E466DYwemePia0wfeAjH1NIaF412V3fa5mYm2FZwYQiTjxVJlyz8wMSViK6R0IVYXdOry_wrT5c9WEgtVc-iUtC6yVsQL3hEvyprz-aFX5c-IGosNb9l7gVEyxvRe/s1600/Radiane_down2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVZit5PgbmTKWyir8E466DYwemePia0wfeAjH1NIaF412V3fa5mYm2FZwYQiTjxVJlyz8wMSViK6R0IVYXdOry_wrT5c9WEgtVc-iUtC6yVsQL3hEvyprz-aFX5c-IGosNb9l7gVEyxvRe/s1600/Radiane_down2.png" width="299" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Radiance scaled enhancement of UAV data.</td></tr>
</tbody></table>
This approach has already led to the discovery of many more
mounds that are not obvious to the naked eye but stand out in the data.<span style="mso-spacerun: yes;"> </span>Furthermore, it is the first time the
detailed spatial relationship between each of the earthen structures can be
explored with precision.<span style="mso-spacerun: yes;"> </span>This data will be
used to track the condition of the mounds over time and has created a digital
snapshot of their current state for future generations to ponder. This was
accomplished with only a few days of fieldwork and under harsh conditions.<span style="mso-spacerun: yes;"> </span>To create a map of similar accuracy using
traditional survey approaches would have taken weeks and lacked the aerial
imagery this approach provides.<span style="mso-spacerun: yes;"> </span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4SS3qGCJ2-SBuCWe70uaEF2vwJM2eJuDPYfOIh7Ksl2Ps6-6Z3mmrL4Y1EZ3DFp6i0YrDfDVDdXhPCLHaBXoIPiYHhNZgNXGFpkCghr6nMMj60CilzZDNXNildN0iZQ2JsMt_prM-S4st/s1600/Zuleta_Morph1.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="80" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4SS3qGCJ2-SBuCWe70uaEF2vwJM2eJuDPYfOIh7Ksl2Ps6-6Z3mmrL4Y1EZ3DFp6i0YrDfDVDdXhPCLHaBXoIPiYHhNZgNXGFpkCghr6nMMj60CilzZDNXNildN0iZQ2JsMt_prM-S4st/s320/Zuleta_Morph1.gif" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pyramids deep within the canyon.</td></tr>
</tbody></table>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
Our team has conducted similar mapping missions in
Australia, Belize, Belgium, Fiji, France, Germany, The Republic of Kiribati,
Peru, and South Africa. We look forward to continuing these sorts of projects
elsewhere and helping to preserve and understand our past.<br />
<o:p></o:p><br /></div>
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXq_P_ZipNSouRW_1ujhmYLx5bHberoakCfkzhlsnXcjX-uo8zXmJ2LiOCCwfgSr8pOUD9lcbEb0UtUmkHBygw3HJYcWDqvE3uT8OWXIccE3FHp2TqOwl4gSpAGdX57OTkmCqoTLQ5MCbd/s1600/Launching.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXq_P_ZipNSouRW_1ujhmYLx5bHberoakCfkzhlsnXcjX-uo8zXmJ2LiOCCwfgSr8pOUD9lcbEb0UtUmkHBygw3HJYcWDqvE3uT8OWXIccE3FHp2TqOwl4gSpAGdX57OTkmCqoTLQ5MCbd/s320/Launching.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Hand launching the drone.</td></tr>
</tbody></table>
The archaeological mapping and processing team included <a href="http://www.aga-llc.net/AGA/Welcome.html" target="_blank">Chet Walker</a> and <a href="http://www.palentier.com/" target="_blank">Mark Willis</a>.<span style="mso-spacerun: yes;"> </span>The rest of the
archaeological team was made up of Steve Athens and David O. Brown. Athens and Brown are
experts on the archaeology of the Andes and have worked for decades in the
region.<span style="mso-spacerun: yes;"> </span>We would like to thank Fernando Polanco Plaza, the general manager of <a href="http://zuleta.com/" target="_blank">Hacienda Zuelta</a>,<a href="http://www.blogger.com/null" name="GoBack"></a> for his hospitality and
dedication to preserving the rich heritage of Ecuador.</div>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/EC6blCp-UNc?feature=player_embedded' frameborder='0'></iframe></div>
<br /></div>
</div>
Markhttp://www.blogger.com/profile/03811635822004008238noreply@blogger.com11tag:blogger.com,1999:blog-7885771479626228472.post-3421837081208115412011-11-08T07:50:00.000-08:002011-11-08T07:56:19.933-08:00Determining Rock Art Deterioration Through Time:<b style="background-color: transparent;"><span style="font-size: large;">Automatic Change Detection with SfM</span></b><br />
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqXEA-QlktbL3nRBZ58T4ymMg8jBsk28CJ_aRYeoVWlHIpT0DfU7wcNnNEjOBYJ879E06_K7EUNt3c_WMkTz7WYhHnurGCzbNjv-AwIoAFQZCvTSrZJgcdxXYhrtpRCuUzHKRWH7ukPd7e/s462/41CX2_Short_GIF.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqXEA-QlktbL3nRBZ58T4ymMg8jBsk28CJ_aRYeoVWlHIpT0DfU7wcNnNEjOBYJ879E06_K7EUNt3c_WMkTz7WYhHnurGCzbNjv-AwIoAFQZCvTSrZJgcdxXYhrtpRCuUzHKRWH7ukPd7e/s462/41CX2_Short_GIF.gif" width="320" /></a></div>
<br />
Structure from Motion (SfM) is a very useful tool for creating 3D models from unreferenced images. Since SfM can create highly detailed models from historic film and digital photographs, it is particularly helpful in examining changes in an object over time. In this short post I'll show how data collected at a pictograph site in 2003 can be compared with more recent data to pinpoint areas of deterioration in a systematic way.<br />
<br />
The pictograph we'll be looking at is located at 41CX2 and is part of a prehistoric site on the eastern edge of the Pecos River in West Texas. I like to use data collected from this site because there are no issues with making it publically available. I also go back to it because there are both older digital photographs of the site and much older historic photographs archived at the Texas Archaeological Research Laboratory (TARL). This provides a nice test bed of data to take advantage of.<br />
<br />
In order to compare a set of historic photographs with modern ones, aligning the two image sets to each other is critical. This can be difficult because photographs contain all sorts of lens distortions and it is hard to reproduce the exact angle of a historic photograph with a modern camera. It may sound like a simple task to overlay one image on another in Photoshop but getting an exact alignment between two photographs taken at different times, is almost impossible. SfM can aid in the alignment process. By analyzing the structure of the object in the photographs, SfM can remove virtually all distortion when a 3D model is created. <span style="background-color: transparent;">Therefore, if you create one 3D model from historic photographs and another 3D model from more recent images, the two can almost perfectly aligned to each other. The easiest way to accomplish the alignment is by assigning the same coordinate system to each model and then converting those to a Digital Elevation Model (DEM).</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKHXqQKMo2sdLjXK-i20ib0Lw5JuO88pKOvKB9zfheD4xtCZE29U7J5TxQEQg_PA0u1qWtwSIwopP8kJqHlnsuB0Mmu0ucy1dsPI1B88C9s90J74gGtxypqTy-aCPw6lw96zMUvcyBLEeW/s1600/41CX2_Orthophotos.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKHXqQKMo2sdLjXK-i20ib0Lw5JuO88pKOvKB9zfheD4xtCZE29U7J5TxQEQg_PA0u1qWtwSIwopP8kJqHlnsuB0Mmu0ucy1dsPI1B88C9s90J74gGtxypqTy-aCPw6lw96zMUvcyBLEeW/s400/41CX2_Orthophotos.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">2003 and 2011 SfM models aligned.</td></tr>
</tbody></table>
<br />
In this example, I have assigned the same arbitrary coordinate system to each model with the X and Y axis approximately in alignment with the natural surface of the rock. In other words, the Z, or elevation value, is greater the closer it is to the viewer and vice versa. With both models now in the same space and orientation, the Z values of the vertices can be sampled to create a DEM. It is important to note the word "sample" here because each cell of the DEM is composed of a value derived from the average value of the vertices that fall within that cell. If cell sizes are not the same or have a different origin point, the DEM values can vary slightly for what appears to be the same location. In our example the 2003 3D model covers a slightly larger area than that collected in 2011. Due to this difference in area, the DEM cells are slightly offset. To help reduce this minor alignment problem, the 2003 model could be clipped to the same size as the 2011 data but for this project I left the models in their original state.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTkQJ11SvOlXITPe7UQh4P2rtRDtC0A-wRJqJ7fKPA2PCB8g6PeXMIY6BoHCLqvnUFGamTxuf2wPuYRH1OsKqnzDW6ebE1sFTVPDbK8d6FlQndaebe2cJgHI9eqLrqDoaYZypZXlz4fe_0/s1600/41CX2_2003_DEM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTkQJ11SvOlXITPe7UQh4P2rtRDtC0A-wRJqJ7fKPA2PCB8g6PeXMIY6BoHCLqvnUFGamTxuf2wPuYRH1OsKqnzDW6ebE1sFTVPDbK8d6FlQndaebe2cJgHI9eqLrqDoaYZypZXlz4fe_0/s320/41CX2_2003_DEM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">2003 DEM</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzHuKzNZP-U69ioMTxK31Tm_-zS4WgMViBPOFyoawjicVpDlkmZ4Fdws7cJ2byLsm9I2ajhfF4ybLQFBuprrnWT4hJ6aXSQfr1DVrvdaUaTYV0A3cUJwxVxivH68MmM2i6gVP3UPhHiG4i/s1600/41CX2_2011_DEM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzHuKzNZP-U69ioMTxK31Tm_-zS4WgMViBPOFyoawjicVpDlkmZ4Fdws7cJ2byLsm9I2ajhfF4ybLQFBuprrnWT4hJ6aXSQfr1DVrvdaUaTYV0A3cUJwxVxivH68MmM2i6gVP3UPhHiG4i/s320/41CX2_2011_DEM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">2011 DEM</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSyarOl92aXYA07pw5Q1A1KkG2v2zhL_Hhht8ut5kBxBOLVskOpd1LU8chqKBSkCQrukJawxL6wLj2f9f5e9n8QU-EN3YQqJhyBnxyZdjrPglvnwTjNeuFrs1i-qq_1OrhguCUxaXjRe9/s1600/41CX2_Differences_DEM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSyarOl92aXYA07pw5Q1A1KkG2v2zhL_Hhht8ut5kBxBOLVskOpd1LU8chqKBSkCQrukJawxL6wLj2f9f5e9n8QU-EN3YQqJhyBnxyZdjrPglvnwTjNeuFrs1i-qq_1OrhguCUxaXjRe9/s320/41CX2_Differences_DEM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The result of subtracting the 2011 DEM from the 2003 DEM.<br />
Areas of red have had the greatest change.</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Having created the DEMs for the 2003 and 2011 models, each DEM was loaded into ArcGIS. To compare the changes between the DEMs over time, the 2011 data was subtracted from the 2003 data. This was done with the Spatial Analyst's Raster Calculator tool. The resulting DEM highlights those areas of significant change in red and the more stable areas in blue. As mentioned previously, the DEM cell values do not match exactly so there is minor variation visible across the model. When the difference DEM is transposed against the pictograph images, areas of deterioration are obvious. While it is certainly possible to visually compare the photographs from different time periods and see that damage is taking place, this process allows for a systematic and quantifiable means of assessing that change.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmA83gBcOe-VmipC1nGHd6GHWtaSSA8rD7bbKwWgVPKAbn-qylSi5my6H33KlcFqcjlqi-Re0Rsfs5g6uPtsRWr7Y-r0UTWsoPNDVR9fvFNsRoQUdLjCnnyhPiNKOPtD3abckYwSOW9Ix9/s1600/41CX2_2003_Differences_and_Imagery.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmA83gBcOe-VmipC1nGHd6GHWtaSSA8rD7bbKwWgVPKAbn-qylSi5my6H33KlcFqcjlqi-Re0Rsfs5g6uPtsRWr7Y-r0UTWsoPNDVR9fvFNsRoQUdLjCnnyhPiNKOPtD3abckYwSOW9Ix9/s320/41CX2_2003_Differences_and_Imagery.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">2003 image imposed over differences map. </td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2GRPTbVjeQ14CfTLrHjDJNr4afOul9b4POE5c2xsjQnwyTCvdKAoHtVjFvNvL0o_wmwahnj7r5ZGs74Uz6kduBBh_DNA6w_HquFvLbx_tqeFiRwmxbDeFzDVUR4n25C3WkQC3ZtHPqvHh/s1600/41CX2_2011_Differences_and_Imagery.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2GRPTbVjeQ14CfTLrHjDJNr4afOul9b4POE5c2xsjQnwyTCvdKAoHtVjFvNvL0o_wmwahnj7r5ZGs74Uz6kduBBh_DNA6w_HquFvLbx_tqeFiRwmxbDeFzDVUR4n25C3WkQC3ZtHPqvHh/s320/41CX2_2011_Differences_and_Imagery.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">2011 image imposed over differences map. </td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwXf3zePUvAnR5fJYFDU_39_YssQVDWi4B-dqsGkiwYWL40wf7vZF6RIkKN9vyROJ-1S8iek8r27JSgWfGYBAP6TKFARNZkrDWZKB8F7zEJisQe7zHvXJgBGvLWIoqNcZPNYzT2wai3iFR/s1600/41CX2_2003_Differences_and_Imagery_Close-up.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwXf3zePUvAnR5fJYFDU_39_YssQVDWi4B-dqsGkiwYWL40wf7vZF6RIkKN9vyROJ-1S8iek8r27JSgWfGYBAP6TKFARNZkrDWZKB8F7zEJisQe7zHvXJgBGvLWIoqNcZPNYzT2wai3iFR/s320/41CX2_2003_Differences_and_Imagery_Close-up.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Closeup of 2003 imagery and differences map.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzOjbJuFfZP5p7rjg4hzyIbjsxfaXUCTLByzXmy7tNI2ImFdm1Bl0bBvjeX_5gPxZXAU94i1yfphcS8PinoN8wJEFo5H09qbFQrwT4SAOnT89hKBCyq0g7uThpF-sS94pX46p4qHGH2V3L/s432/41CX2_close-up_wo_text.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzOjbJuFfZP5p7rjg4hzyIbjsxfaXUCTLByzXmy7tNI2ImFdm1Bl0bBvjeX_5gPxZXAU94i1yfphcS8PinoN8wJEFo5H09qbFQrwT4SAOnT89hKBCyq0g7uThpF-sS94pX46p4qHGH2V3L/s432/41CX2_close-up_wo_text.gif" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Animation showing change from 2003 to 2011.</td></tr>
</tbody></table>
<br />
The implications for using this technique are exciting. Since SfM can work with historic film photographs, many older photographs of rock art panels can be analyzed and historic 3D models created. Furthermore, the process need not focus on pictographs; historic aerials can be converted to DEMs and geomorphological changes examined or the process could be applied to underwater photography to examine the morphological changes of coral reefs, etc. There are many possibilities.<br />
<div>
<br /></div>Markhttp://www.blogger.com/profile/03811635822004008238noreply@blogger.com9tag:blogger.com,1999:blog-7885771479626228472.post-15243073392553371432011-11-02T07:17:00.000-07:002011-11-12T18:44:32.799-08:003D Prehistoric Pictograph Printing<span class="Apple-style-span" style="font-size: large;"><b>A tutorial on hard copy printing of virtual models using 3DS Max and Shapeways</b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFWxJg5PkMq1ME9BD9YE9cIsnSAprtOf1b9t6HPlwpo3NRGi7FxCYhMlmHaIchqgzSamzl7L3KN1UdnoCjJHCCBE1ZRs7L3NUBz-8GerWG3LTLhLHNffbyoJ1cyqov_jDYsX1beJkOK3Xz/s1600/Kirsten_holding_model2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFWxJg5PkMq1ME9BD9YE9cIsnSAprtOf1b9t6HPlwpo3NRGi7FxCYhMlmHaIchqgzSamzl7L3KN1UdnoCjJHCCBE1ZRs7L3NUBz-8GerWG3LTLhLHNffbyoJ1cyqov_jDYsX1beJkOK3Xz/s320/Kirsten_holding_model2.jpg" width="254" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">3D hard copy printout of pictograph.</td></tr>
</tbody></table>
<br />
There are now several rapid prototyping/3D printing services available for creating hard copy models of virtual creations. Here, I walk through the steps for preparing a Structure from Motion (SfM) model for color/textured printing using the services provided by <a href="http://shapeways.com/">Shapeways.com</a> and 3D Studio Max 2009. Shapeways is an economical online service that accepts the upload of 3D files and then sends you a hard copy of that model you can hold in your hands.<br />
<br />
<br />
Other than it just being plainly awesome, why create virtual models of rock art or other archaeological phenomena? Here are some reasons to consider:<br />
<br />
<ul>
<li>Virtual models are easy to share with other researchers via the Internet. This may broaden interaction and scientific inquiry.</li>
<li>Public access to 3D models allows for remote or extremely delicate objects to be explored and enjoyed.</li>
<li>People love to touch archaeology. Holding a replica can fulfill some of this desire without damage to the real thing.</li>
<li>Elements that are not obvious in 2D may stand out in 3D, giving new insight about the object.</li>
<li>3D models create a virtual snapshot of an object in time that can be compared with future models to consider impacts and changes to the real object over time.</li>
<li>The 3D model can be modified so that certain aspects of it can be exaggerated. A good example would be the stretching a petroglyph model along its depth axis, making ridges taller and grooves deeper. Thus helping to show faint detail on the original.</li>
<li>Using emerging Structure from Motion (SfM) and photogrammetry techniques, highly accurate and detailed models can be created from historic photographs. This can allow for unique 3D views of lost elements or destroyed sites to be examined in new ways.</li>
</ul>
<br />
<b><i><span class="Apple-style-span" style="font-size: large;">Creating a "water tight" 3D model in 3DS Max**</span></i></b><br />
<i>**Please note, I am not an expert with 3D Studio Max. If anyone has a better way of doing anything described in this tutorial, please let me know.</i><br />
<i><br /></i><br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ygJCRszQXVs?feature=player_embedded' frameborder='0'></iframe></div>
<div style="text-align: center;">
<span class="Apple-style-span" style="font-size: 13px;">Follow along with this tutorial on Youtube..</span></div>
<span class="Apple-style-span" style="font-size: 13px;"><br /></span><br />
I start with the 3D model in Alias Wavefront OBJ format. The 3D was made from a series of photographs of a small prehistoric pictograph found in a rockshelter above the Pecos River in West Texas. The file consists of about 102,000 polygons and a texture in JPG format. 500,000 polygons is the largest number of polygons that Shapeways can currently handle. I purposefully created the model to have a little less than a half million polygons because additional structure will be added to the model.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi86Tm0diQPbTAF2jK_X5njsiHRx7YyvVT4cBtskzCJEhelSK1kij_375sg57xxfe-p9qboFQlY6B_QbFJH4wSfNkbbuJJzuKIzY86GLrKwTmRxOPeybuKdUhvH689vzDwUTk9oszzNLhF_/s1600/1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi86Tm0diQPbTAF2jK_X5njsiHRx7YyvVT4cBtskzCJEhelSK1kij_375sg57xxfe-p9qboFQlY6B_QbFJH4wSfNkbbuJJzuKIzY86GLrKwTmRxOPeybuKdUhvH689vzDwUTk9oszzNLhF_/s320/1.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The imported Alias Wavefront OBJ File in 3DS Max.</td></tr>
</tbody></table>
<br />
The first step is to import the OBJ file using Max's import command (File>Import). This particular 3D model is very flat and has no volume. Its shape is analogous to a slightly crumpled and twisted piece of paper. In order for the model to be printed, it must have volume and depth. It also has to be "watertight", lacking any holes or open faces. To give the model volume in Max, it is extruded by selecting it and then clicking the (Modify>Element) command and then selecting the entire model, and extruding it. In this example, it extruded it by a value of 0.004.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggpg1UcB7UUb_6jtMmtV0WL6aNUSVIHM8jugEntd2gPKLDskKt-4WRnoWnMsvBihQM6UInS12t_3ugtd3Yw_7nR-r75FInDukLckwmfKTCvTHNWqJHamUkSFfx1SV-Z2mFHPG-csaHVjwi/s1600/2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggpg1UcB7UUb_6jtMmtV0WL6aNUSVIHM8jugEntd2gPKLDskKt-4WRnoWnMsvBihQM6UInS12t_3ugtd3Yw_7nR-r75FInDukLckwmfKTCvTHNWqJHamUkSFfx1SV-Z2mFHPG-csaHVjwi/s320/2.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Extruding the edges of the model.</td></tr>
</tbody></table>
<br />
There are a few things to consider when the model is extruded. The model needs to be thick enough to be strong when printed but the thicker it is, the more it will cost to print. The hard copy price is calculated by volume and the material the object is printed from. The internal geometry of the model must be considered, too. With only the exterior edges of the model being extruded, enough of a buffer between the "bottom" of the model and extruded edge must be present or the model will be fragile or have holes.<br />
Once the extrusion is just right, the model is converted to a mesh (right-click selected mesh>covert to editable mesh) and then a "Cap Holes" modifier is added (Modify>Cap Holes). This closes the "bottom" of the model and gives it volume. It is important at this stage to examine the model carefully and make sure nothing strange is going on with the geometry. To check this, I look at the model in wireframe mode and also render it (F10) from several vantage points. Certain faces may need to be adjusted (Modify>polygons>faces). The Cap Holes modifier is automatic and sometimes does not work very well. Be sure to check the model statistics to insure the model is still below 500,000 polygons. If it is not, the model needs to be decimated.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHaYU5t2x-D_xAfRrTKvHxMQl4gHxpOkRPUbLWJPMCQL-LqTCtZ4GRdVEAKdld2Fq0GmOUqC_G1-Fpok10uyR2EkwXGUY0PrYnqoCxEDZvkZyJ82JeXaDRy5z0so8XOye3I6-DEU1A7n7v/s1600/3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHaYU5t2x-D_xAfRrTKvHxMQl4gHxpOkRPUbLWJPMCQL-LqTCtZ4GRdVEAKdld2Fq0GmOUqC_G1-Fpok10uyR2EkwXGUY0PrYnqoCxEDZvkZyJ82JeXaDRy5z0so8XOye3I6-DEU1A7n7v/s320/3.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Converting the model to a mesh.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4CMk0LGdpxuWG-mIQ7n7nq0d7Rn2H3xtpOGtLWMtaoQxbcgjfLKDvtf1CYLOAvh8VS88jkb_9sIeth14NEH97nXg2MsPEU_6fF793ZhV45g9dv1hjkF4L4JsoNqVsJryDnhPCB966LqKP/s1600/4.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4CMk0LGdpxuWG-mIQ7n7nq0d7Rn2H3xtpOGtLWMtaoQxbcgjfLKDvtf1CYLOAvh8VS88jkb_9sIeth14NEH97nXg2MsPEU_6fF793ZhV45g9dv1hjkF4L4JsoNqVsJryDnhPCB966LqKP/s320/4.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Adding the "Cap Holes" modifier.</td></tr>
</tbody></table>
<br />
Once satisfied the model will be strong, but thin enough to print affordably, the model is selected and exported as an STL file. The STL is then opened in netfabb Studio and tested. Netfabb is a free utility and details of its use are described in this tutorial. I use netfabb not only to identify problems, but actually fix the issues in Max. I do it this way because texture location is lost when the file is exported to STL. Luckily, most of the time, netfabb does not find any issues with the model.<br />
<br />
To print the model in color a JPG, or similar texture map, is required. The resolution which Shapeways can print at is very limited in regards to the texture map. The maximum is 2048 x 2048 pixels; so, I resize the texture map in Photoshop and then apply that map in Max to and review it for proper alignment.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE0w1YMqDO7UpEDSXP5wjt91wdSiDROxH_0tb3a4nHhTC51m7oUj0UwCdS9g2aLW9VuEz2mAw3Wh5R_ytvLle5LIOqI5XAYd1JtZBOmqYNV2P7koo9BT4UZ2vzro9inTzOyRG3umVmB63Q/s1600/5.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE0w1YMqDO7UpEDSXP5wjt91wdSiDROxH_0tb3a4nHhTC51m7oUj0UwCdS9g2aLW9VuEz2mAw3Wh5R_ytvLle5LIOqI5XAYd1JtZBOmqYNV2P7koo9BT4UZ2vzro9inTzOyRG3umVmB63Q/s320/5.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Applying the texture to the model.</td></tr>
</tbody></table>
<br />
Next, the 3D model needs to be scaled to the size it will be printed at. This can be a little tricky and can take some trial and error. I have found that scaling a model to about four meters in Max produces a hard copy printout about 15 cm in size.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO1CIZJzrVBjccuWnllnCjMzSui0t3ytL5v-7pIr_hg4TNp12jXuuccjF2_UaCBHnYKKDXpAvtqiIJL31DyussPBeoazUaVZEkVVcx-AkzmTETUx98Z6-in4T4Vf2NKqMRUlLlI_0c8cI8/s1600/6.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO1CIZJzrVBjccuWnllnCjMzSui0t3ytL5v-7pIr_hg4TNp12jXuuccjF2_UaCBHnYKKDXpAvtqiIJL31DyussPBeoazUaVZEkVVcx-AkzmTETUx98Z6-in4T4Vf2NKqMRUlLlI_0c8cI8/s320/6.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Scaling the model up to "4 meters" in size.</td></tr>
</tbody></table>
<br />
Models that are to be printed with textures must be exported to VRML 2.0 (aka VRML97) format. In order to do this go to (File>Export>VRML). Check only "Indentation" in the Generate options section, leave Polygon Type as Triangles, set the Digits of Precision to 6, turn off the Bitmap URL Prefix radio button, and then click Ok. This will create a VRML formatted file with the suffix WRL. Next, compress the newly created VRML file along with texture map into a zip file. Make sure the zip file is less than 65 megabytes in size (it should be considerably smaller than that).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYjxWNcs1xn-2THMRLSJQzWuFzrEtrt48c0esI2o_dnjOi9sV5IDU8Zog7WqScGSqaajfaIvyhv3fRapN-zQDchCuCyz73-QUrSEWP_AE9t2x1S7zmDRP2LbMTQaUNvyqA4n89xATbonBJ/s1600/8.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYjxWNcs1xn-2THMRLSJQzWuFzrEtrt48c0esI2o_dnjOi9sV5IDU8Zog7WqScGSqaajfaIvyhv3fRapN-zQDchCuCyz73-QUrSEWP_AE9t2x1S7zmDRP2LbMTQaUNvyqA4n89xATbonBJ/s320/8.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Exporting the textured 3D model to VRML97 format.</td></tr>
</tbody></table>
<br />
Upload the file to your <a href="http://www.shapeways.com/">Shapeways</a> account. Set the upload units to millimeters and start the file transfer. An email should arrive from <a href="http://www.shapeways.com/">Shapeways</a> saying that the file has arrived and later, another email describing if the model was viable or if there was a problem.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEildIvt7Mkjnonhqjcvr78JnhSAaPWM56uDlh4x3raJIRtqg31Qm9ieFOCQz0u4XwjIr1vn-raf3qnfgCepjMuY6dnAihAZ2RINiKsZgdz4aqZTK1jXZysBpbu0B1Bv61OoUoeKUBrhn2-Z/s1600/12.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEildIvt7Mkjnonhqjcvr78JnhSAaPWM56uDlh4x3raJIRtqg31Qm9ieFOCQz0u4XwjIr1vn-raf3qnfgCepjMuY6dnAihAZ2RINiKsZgdz4aqZTK1jXZysBpbu0B1Bv61OoUoeKUBrhn2-Z/s320/12.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Uploading to Shapeways.</td></tr>
</tbody></table>
<br />
With a successful upload to Shapeways website, the size of the model can be checked and the cost of printing from different materials assessed. Keep in mind that only the "full color sandstone" option works with textured models. If the costs are too high or the model too small, recreate it at a different scale and re-upload. Once the model is the right size and price, place the order and it should arrive within a couple of weeks.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghoIqyCnQONrF0sDX96RIzaPYoj21quRvTd7K1Wepbu8Ew6YVDmWLsQUfMPndJzJGMeYkpFShIem33fDIj4gmwf3IQ8tYTzFBgfQ-WH7ymFOFXO9aPz3MgLhhxEa1S1sWHntVSjnlj0z2A/s1600/13.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghoIqyCnQONrF0sDX96RIzaPYoj21quRvTd7K1Wepbu8Ew6YVDmWLsQUfMPndJzJGMeYkpFShIem33fDIj4gmwf3IQ8tYTzFBgfQ-WH7ymFOFXO9aPz3MgLhhxEa1S1sWHntVSjnlj0z2A/s320/13.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Picking the material to print the model in.</td></tr>
</tbody></table>
<br />
My model measures 10.2 w x 3.7 d x 14.3 h cm in size and cost $128.89, including shipping. The model appeared on my door step six days after it was uploaded. 3D printing is still in its infancy, especially for color, and the final model is not quite a perfect recreation. The baking/fusing process used made the colors slightly darker on the model than the original. The model also has contour-like shapes comprising its surface. This effect is caused by the laser that built up of the surface of the model, one layer at a time. Additionally, some of the rock edges are not as crisp as the real thing. Problems such as these are likely to go away as 3D printing evolves. All in all, the model gives a fairly accurate reproduction of the original surface of the rock and the pictograph's association with that surface.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGnliIeWpuOTNpC_HPzeRxgxMnqhxAZc79w-Vwh3joBh_BxghycLLg_ueHGVC7UFqXu5ByEGGnXc5BbzoJAHcbzqshpnto_hlKM7Gxot1MOGbJBy7WsMEWMR8a8q5Ym_e2WLDPpt8yGw9G/s1600/printout_on_sheet.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGnliIeWpuOTNpC_HPzeRxgxMnqhxAZc79w-Vwh3joBh_BxghycLLg_ueHGVC7UFqXu5ByEGGnXc5BbzoJAHcbzqshpnto_hlKM7Gxot1MOGbJBy7WsMEWMR8a8q5Ym_e2WLDPpt8yGw9G/s320/printout_on_sheet.jpg" width="243" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">3D printout.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5N-GPyg70Ak2weuaGWEn6bDoRUsi1L-zBVuSofZ5OyD8f99K-GesouBhmR2GWPXxqQizIpCWiT60qTuFCfkPs__SMxkICTQGAUb4v4XSg_yXknhueDrTQXylgi5gkDdtxMTFMNhzTH-sL/s1600/IMG_3787.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5N-GPyg70Ak2weuaGWEn6bDoRUsi1L-zBVuSofZ5OyD8f99K-GesouBhmR2GWPXxqQizIpCWiT60qTuFCfkPs__SMxkICTQGAUb4v4XSg_yXknhueDrTQXylgi5gkDdtxMTFMNhzTH-sL/s320/IMG_3787.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Closeup photo of contour-like stair-stepping on the model's surface.</td></tr>
</tbody></table>
<br />
One thing I had not noticed when I visited the pictograph in person, was the slight protrusion of rock between the legs of the anthropomorph. Looking at the virtual model and hard copy, it becomes obvious that this element of the natural rock helped inform the artist's placement of the pictograph. Under closer examination, the rock directly above the protrusion appears to have been chipped away or modified in some other way. Does the protrusion represent genitalia? Could the chipped rock at the abdomen signify a pregnancy or mutilation? Having the 3D model to examine raises new questions that were not obvious to ask before its creation.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/NOhat5jguIY?feature=player_embedded' frameborder='0'></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<em>3D animation of pictograph at 41CX2.</em></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKRm3n75GYiURIfYMlLOE-nSzLRtylJq0QDK3CHZgIyru6ZZusTXLgOAmFXVOHwxX2QE5WRV0vPpUz9UtruYDgPFK8kbdkciXcjXR2Jb5sf5K9rqIvwE01TOihgcDJ2pmiws7Fg4LS4n1b/s1600/bump_combined.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKRm3n75GYiURIfYMlLOE-nSzLRtylJq0QDK3CHZgIyru6ZZusTXLgOAmFXVOHwxX2QE5WRV0vPpUz9UtruYDgPFK8kbdkciXcjXR2Jb5sf5K9rqIvwE01TOihgcDJ2pmiws7Fg4LS4n1b/s320/bump_combined.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The natural surface of the rock appears to have been an element <br />
incorporated into the positioning of this pictograph.</td></tr>
</tbody></table>
<br />
<i>I hope this tutorial was helpful and provided some insight into the usefulness of virtual recreations of rock art and other objects.</i>Markhttp://www.blogger.com/profile/03811635822004008238noreply@blogger.com2612 Louisiana Ave, Sheffield, TX 79781, USA30.687821171135376 -101.8226623535156230.660508171135376 -101.86214435351563 30.715134171135375 -101.78318035351562tag:blogger.com,1999:blog-7885771479626228472.post-65684187069632348552011-09-20T06:53:00.000-07:002011-10-16T16:28:10.149-07:00Virtual Polynomial Texture Mapping, Structure from Motion, and Pole Aerial Photography at the Guadalupe Village Site (LA 143472)<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVNYM7wjYOAzxBFgXqP1xUPk94drx9Tzfn2ye5wZIya308Sdttz9Afwkt0SG79dLm0LY7gVJ7Tg6sZF9b1nUnZpdz1ctyFZy5EN5Q-CjpHhH-4qNf9kxci1rhisoSynDB-zOdAjMVmZpjt/s1600/BW_of_Ring_Midden.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVNYM7wjYOAzxBFgXqP1xUPk94drx9Tzfn2ye5wZIya308Sdttz9Afwkt0SG79dLm0LY7gVJ7Tg6sZF9b1nUnZpdz1ctyFZy5EN5Q-CjpHhH-4qNf9kxci1rhisoSynDB-zOdAjMVmZpjt/s320/BW_of_Ring_Midden.jpg" width="307" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">3D rendering of Feature 59.</td></tr>
</tbody></table>
<span style="font-family: Calibri; font-size: large;"><b><i>Introduction</i></b></span><br />
<span style="font-family: Calibri;"><span style="font-family: 'Times New Roman';"> </span>Here are initial results of a mapping exercise using a combination of inexpensive and innovative technologies. As part of a larger project, the mapping techniques were tested on a <a href="http://www.texasbeyondhistory.net/bowie/middenwhat.html">prehistoric burned rock midden</a> (Feature 59). The feature, sometimes referred to as a ring midden by local archaeologists, measures about 18 meters in diameter and is more than one meter tall. It is just one out of more than a hundred burned rock features found at the Guadalupe Village Site in southern New Mexico.</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDD_ts-HhKi6X2g8UPQODhl8DGgWgxb3DXrY1s-d1XvoJayAG9r9TwlKLiPcklYKdG52R5zCFIxfybJy204AQrGs67vj_seOznCBzqWU-Sem3eO1qvo6LwEjoAP25-KpH9_gBPmeZ7HNRt/s1600/Feature_59_with_dense_vegetation_20100822.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDD_ts-HhKi6X2g8UPQODhl8DGgWgxb3DXrY1s-d1XvoJayAG9r9TwlKLiPcklYKdG52R5zCFIxfybJy204AQrGs67vj_seOznCBzqWU-Sem3eO1qvo6LwEjoAP25-KpH9_gBPmeZ7HNRt/s320/Feature_59_with_dense_vegetation_20100822.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Feature 59 in August 2010 after a very wet spring.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEildgzwH0vv40hIxL8nnqLKetF1ugRjdKLANypQVSxCFf8zJVnWkbKMm4q2S-eGe2ibOZbjBfPMDxW9XavAtBgJEOajcXNKLpokPuW37dmrZc09rC62wgu40LIwCBtFmZN2GDBDFhwtJrVD/s1600/After_the_fire.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEildgzwH0vv40hIxL8nnqLKetF1ugRjdKLANypQVSxCFf8zJVnWkbKMm4q2S-eGe2ibOZbjBfPMDxW9XavAtBgJEOajcXNKLpokPuW37dmrZc09rC62wgu40LIwCBtFmZN2GDBDFhwtJrVD/s320/After_the_fire.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Feature 59 in July 2011 after wildfires hit the area.</td></tr>
</tbody></table>
<span style="font-family: Calibri;"><span style="font-family: 'Times New Roman';"> </span></span><br />
<span style="font-family: Calibri;"></span><br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">We first aerially mapped the site in the summer of 2010 but had mixed results due to usually dense vegetation that had grown over it, following an uncommonly wet spring season. Wildfires burned much of that brush off in 2011 at which time my colleagues and I were invited back to the site for another go at it.</span></div>
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;"><span style="font-family: 'Times New Roman';"> </span>The focus of the main project was to document the site with Kite Aerial Photography (KAP) and Blimp Aerial Photography (BAP), though the data highlighted here were collected from a handheld pole. A makeshift Pole Aerial Photography (PAP) rig was cobbled together from a painter's telescoping pole, a modified paint roller, a "Tupperware" container, few zip-ties, and electrical tape. The rig allowed for a Canon A540 digital camera to be pointed straight down while suspended more than five meters above the ground. The camera was programmed to automatically take photographs every several seconds using the <a href="http://chdk.wikia.com/wiki/CHDK">Canon Hackers Development Kit (CHDK)</a> while running an intervalometer script.</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxPSqY5dcmhCbgitBHkERZTutHvgk2YMXz54YUM-fU3hnSgxFgT46a9Su6Oxm4UJs6Kzf93bgpkFnJTko60AVNSudGOPxyaHVIhxDPgv59u0a6eE0hqED3LsKBM-vTDDXGKApfGunvVkI0/s1600/Mark_and_his_pole.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxPSqY5dcmhCbgitBHkERZTutHvgk2YMXz54YUM-fU3hnSgxFgT46a9Su6Oxm4UJs6Kzf93bgpkFnJTko60AVNSudGOPxyaHVIhxDPgv59u0a6eE0hqED3LsKBM-vTDDXGKApfGunvVkI0/s320/Mark_and_his_pole.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Conducting PAP at Feature 59.</td></tr>
</tbody></table>
<span style="font-family: Calibri;"><span style="font-family: 'Times New Roman';"> </span>After clearing some of the burnt plants away from the feature, the PAP rig was slowly walked across the it in a series of transects. The objective was to take a number of overlapping photographs across the entire surface of the feature. 184 photos were collected in this fashion and, after setup, took less than an hour to complete.</span><br />
<br />
<span style="font-family: Calibri;"></span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHAu2jQXD9JJZhzehRK85vj3oYaXjoQjyxrdWbo26N-N8RbOYc4MsTaydinXZXrlaj5o7L9BzEs9FymYC2Q0gxO5V3VTJANC9F324MsoBaoZVJrEMflqQBaRjx1gHEIgLY0JRy5wXizhZn/s1600/Over_lapping_for_blog.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHAu2jQXD9JJZhzehRK85vj3oYaXjoQjyxrdWbo26N-N8RbOYc4MsTaydinXZXrlaj5o7L9BzEs9FymYC2Q0gxO5V3VTJANC9F324MsoBaoZVJrEMflqQBaRjx1gHEIgLY0JRy5wXizhZn/s320/Over_lapping_for_blog.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Example of overlapping images collected during PAP.</td></tr>
</tbody></table>
<span style="font-family: Calibri;">
Once back from the field, the number of photographs was culled by removing blurry and off-subject images. As a result, 158 photographs were processed using <a href="http://en.wikipedia.org/wiki/Structure_from_motion">Structure from Motion (SfM)</a> techniques and a textured high resolution 3D model was created.<br />
<span style="font-family: 'Times New Roman';"> </span><br />
Recently, I tested <a href="http://www.hpl.hp.com/research/ptm/">Polynomial Texture Mapping (PTM)</a>, a type of <a href="http://www.c-h-i.org/technology/ptm/ptm.html">Reflection Transformation Imaging (RTI),</a> to enhance petroglyphs in West Texas. I wondered if the same process could be applied, in a virtual sense, to the 3D model of the feature. To over-simplify it a bit, the PTM process involves taking a series of photographs (normally under dark conditions), while an off-camera flash is moved around the subject matter from set distances and angles. The images are then imported into a piece of software that allows the object to be examined as a polynomial representation of all the photographs combined. PTM often reveals details that are not visible to the naked eye and can even brings out structural elements not visible with laser scanning. Using this technique we are able to look at the form of the Feature 59 in a new way.</span><br />
<span style="font-family: Calibri;"><br /></span><br />
<span class="Apple-style-span" style="font-family: Calibri; font-size: large;"><b><i>Creating the VPTM Model</i></b></span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCrMQ5PnXKbfpZfvYYsqxAWFUFeGRJwttC_QAIWjHw082L33rmEB59XZWSFFgY0covyMPr6QiC3707RUKeIzhZQX9p6mIxmP7m9RVmNC3RXbCRQqIM70NEnUo42GBgtmhPj989_6vsx5vK/s1600/3dsMax_PTM.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCrMQ5PnXKbfpZfvYYsqxAWFUFeGRJwttC_QAIWjHw082L33rmEB59XZWSFFgY0covyMPr6QiC3707RUKeIzhZQX9p6mIxmP7m9RVmNC3RXbCRQqIM70NEnUo42GBgtmhPj989_6vsx5vK/s320/3dsMax_PTM.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Virtual lighting and camera setup in 3dsMax.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPvO66nc1QiJhKG694tk0kzFzdmbmOJV_uSNYv-DQwD23oM6J1q2cIHft3nn_A_FHjyG9Zdu3WzwZ8Amskc_dwrw1IATaN0MWzIwtVGKC4t9Lx_2uCTEO2cb3Cn27Y9Ba9kyg1ZC9vDsvw/s1600/PTM_Renderings.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="46" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPvO66nc1QiJhKG694tk0kzFzdmbmOJV_uSNYv-DQwD23oM6J1q2cIHft3nn_A_FHjyG9Zdu3WzwZ8Amskc_dwrw1IATaN0MWzIwtVGKC4t9Lx_2uCTEO2cb3Cn27Y9Ba9kyg1ZC9vDsvw/s320/PTM_Renderings.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Virtual PTM renderings.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwY1qaF34MzIBjxFib6KApa7uMsS_dgV8ZOdMGhdNu5VTPEIKLhyphenhyphen801pLX_afRJevVLjkDpVO9nRM_gzVIIOp8KenyoFGFmmPUBBdUbpjGpdhgpFcvUGnO2SNTSXbmawtRIqLv97M3ItRV/s1600/Virtual_Sphere.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwY1qaF34MzIBjxFib6KApa7uMsS_dgV8ZOdMGhdNu5VTPEIKLhyphenhyphen801pLX_afRJevVLjkDpVO9nRM_gzVIIOp8KenyoFGFmmPUBBdUbpjGpdhgpFcvUGnO2SNTSXbmawtRIqLv97M3ItRV/s320/Virtual_Sphere.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">PTM of 3D model in PTMviewer software.</td></tr>
</tbody></table>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">To create the PTM model, a set of virtual lights were positioned around the 3D model in 3D Studio Max. A total of 144 lights were stationed in dome-like fashion around the feature. A virtual glossy sphere was also created and placed next to feature. The sphere is used by the PTM building software as a reference for the location of each light source. Using this virtual photography studio, 144 images were rendered, one for each of the lighting locations. Finally, those images were fed into the PTMbuilder application through a java interface called <a href="http://www.hpl.hp.com/research/ptm/HighlightBasedPtms/index.html">LPTracker</a> and a PTM file was created.</span><span style="font-family: Calibri;"></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8OjDQwqbsnl59vXic4Z5AFPbos3hkfrkcKafGKVd1gV4EVRWxbUzJjVhmoM90YmzHG72hAXNHuMOXai2D5LQyAfHOzeg_MLOmrwY4EnVtMoP7PD1aWxssCiAVpGpsV_I7MXsxd6GTz6I_/s1600/PTM_w_features_labeled.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8OjDQwqbsnl59vXic4Z5AFPbos3hkfrkcKafGKVd1gV4EVRWxbUzJjVhmoM90YmzHG72hAXNHuMOXai2D5LQyAfHOzeg_MLOmrwY4EnVtMoP7PD1aWxssCiAVpGpsV_I7MXsxd6GTz6I_/s320/PTM_w_features_labeled.jpg" width="301" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">PTM rendering with possible sub-features highlighted.</td></tr>
</tbody></table>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">The Virtual PTM (VPTM) reveals many aspects of the feature that are not visible in the textured model. It suggests that sub-features may have been excavated into the main feature or, at least that burned rock was removed from it at several places. Some of the possible sub-features are obvious when standing in front of the actual feature but, not all.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/DT6WRvdK-bw?feature=player_embedded' frameborder='0'></iframe></div>
<span class="Apple-style-span" style="font-family: Calibri;">Generating a PTM is this fashion is particularly innovative because it would be almost impossible to do with the real life feature. Two cranes, one for the camera and another to move around a giant light, would have been needed to create a PTM of Feature 59 using the traditional approach. The use of VPTM on objects that do not allow for the systematic photography that a normal PTM requires, may reveal aspects that are impossible to see otherwise. Using VTPM with aerial photography is just one possibility. For example, the same process could be used on hard to reach rock art sites or within submerged caves.</span><br />
<span class="Apple-style-span" style="font-family: Calibri;"><br /></span><br />
<span class="Apple-style-span" style="font-family: Calibri;">Creating a VPTM from a 3D model has some pitfalls in that the VPTM can only be as good as the 3D model it is generated from. Any distortions in the 3D model that are an artifact of the SfM process could appear as prehistoric anomalies in the rendering. Researchers should consider this when making and evaluating similar models.</span><br />
<br />
<span style="font-family: Calibri;">The feature documented here, used equipment that cost well under $250 (most of that for the camera). The PTM generating software is free. While the other software used is more expensive, free open source solutions capable of the same results are available. Considering the minor amount of time needed to collect the data, the low cost of the process, and the high quality results, other archaeologists should consider applying these techniques to sites anywhere they work.</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuEhJUbxg7BJO9Y8nnB_IoPPBetXQbP5u99se_jlNN25S-a_nK3D_AbAbycGEOxw_HlLuhfg43v9_pNhPX12L0vs90oZw9QRME3wsq8YrMYZ_4TLAcUa3KkaSqyicu04tr7sCRsux2EZnY/s1600/Guadalupe_Village_DEM_20110725.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="317" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuEhJUbxg7BJO9Y8nnB_IoPPBetXQbP5u99se_jlNN25S-a_nK3D_AbAbycGEOxw_HlLuhfg43v9_pNhPX12L0vs90oZw9QRME3wsq8YrMYZ_4TLAcUa3KkaSqyicu04tr7sCRsux2EZnY/s320/Guadalupe_Village_DEM_20110725.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Digital Elevation Model (DEM) of feature with 5 cm contours. Note that west is up.</td></tr>
</tbody></table>
<span style="font-family: Calibri; font-size: large;"><i><b>Acknowledgments</b></i></span><br />
<span style="font-family: Calibri;"><em>The initial work at the Guadalupe Village Site (LA 143472) was funded by a small Permian Basin MOA Grant through the Bureau of Land Management office in Carlsbad, New Mexico. The second visit to the site (which yielded this data) was done entirely pro bono. Archaeologists Juan Arias, Bruce Boeke, Tim Graves, Jeremy Iliff, and Myles Miller III made the project possible.</em></span></div>
<span style="font-family: Calibri;"><em></em></span>Markhttp://www.blogger.com/profile/03811635822004008238noreply@blogger.com8tag:blogger.com,1999:blog-7885771479626228472.post-30035504803690467852010-12-30T07:28:00.000-08:002010-12-30T08:04:07.709-08:00How to create a Digital Elevation Model from Photosynth point clouds<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEMGWlqm2o3XwrM6ANmfh8FdYaTwvGfx-3cjy53fxB9x64GhP7EGejrMDfDVtkZ_NTqC5cUcxZn3pHMtz725ryrmQEKbn4RzxYu4-Oq6zCZLnO7It6kX-GFMlDalTqerY6Bo0IrBgakcBZ/s1600/Splash.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="249" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEMGWlqm2o3XwrM6ANmfh8FdYaTwvGfx-3cjy53fxB9x64GhP7EGejrMDfDVtkZ_NTqC5cUcxZn3pHMtz725ryrmQEKbn4RzxYu4-Oq6zCZLnO7It6kX-GFMlDalTqerY6Bo0IrBgakcBZ/s320/Splash.jpg" width="320" /></a></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Recent developments in the Open Source community have made it easier to create 3D models from point cloud data derived from Structure from Motion (SfM) technologies such as Photosynth and Bundler.<span style="mso-spacerun: yes;"> </span>This article outlines the steps I use to create Digital Elevation Models (DEM) from data acquired from kite, blimp, and UAV aerial photography.</span></div><div class="separator" style="clear: both; text-align: center;"></div><div class="MsoNormal" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0in 0in 10pt;"><span style="font-family: Calibri;">In order to standardize this tutorial, I've created a set of data that you can follow along with using a Windows based computer.<span style="mso-spacerun: yes;"> </span>All of the concepts described here should also work in a Linux environment with little modification. Useable examples of all the files created during this tutorial are available for download at <a href="http://www.palentier.com/DEM_Tutorial">www.palentier.com/DEM_Tutorial</a> . </span></div><div class="MsoNormal" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The point cloud used in this tutorial was created by me and is located on the Photosynth website at <a href="http://www.photosynth.net/view.aspx?cid=14d8887c-7475-42d5-b810-c6642eace2c5">http://www.photosynth.net/view.aspx?cid=14d8887c-7475-42d5-b810-c6642eace2c5</a> .<span style="mso-spacerun: yes;"> </span>The photographs that make up the synth were acquired from Kite Aerial Photography (KAP) and are of archaeological excavations at a pre-Inka tola site near the village of Palmitopamba in Ecuador.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">I have attempted to use as many free and open source applications as possible but the final steps are completed in the commercial ArcGIS software. ArcGIS is the most widely used GIS program in the world and most users will probably be familiar with it.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The software needed for this tutorial are:</span></div><ul><li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.photosynth.net/">Photosynth</a> (which requires Silverlight)</span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://synthexport.codeplex.com/">Photosynth Exporter</a></span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://meshlab.sourceforge.net/">Meshlab</a></span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.microsoftstore.com/">Excel</a> or <a href="http://www.openoffice.org/">Open Office</a></span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Notepad (built into Windows)</span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span lang="FR" style="mso-ansi-language: FR;"><span style="font-family: Calibri;"><a href="http://www.menci.com/zscan/index.php?option=com_content&task=view&id=45&Itemid=26">ScanView</a></span></span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span lang="FR" style="mso-ansi-language: FR;"><span style="font-family: Calibri;"><a href="http://sourceforge.net/projects/javagraticule3d/">Java Graticule 3D (JAG3D)</a></span></span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.esri.com/">ArcGIS</a> with Spatial or 3D Analyst</span></div></li>
</ul><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 1</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Place Ground Control Points (GCPs) around your subject matter in an evenly spaced pattern.<span style="mso-spacerun: yes;"> </span>(I tend to use cheap paper plates as targets but if a point cloud is going to be processed in SfM software, it is best if the GCPs contrast starkly with the background).<span style="mso-spacerun: yes;"> </span>The more GCPs that are placed the better.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2THxpWGmA6Ij4H14u9kwK3Zl3DQ1Dn3ObhX53voehC70klM0uAUcluNDpHcnCO1R-ZFCkcYJVelDzGJ05bBR8l4wM37OivA3sYoCa019kIZxRLGREzisvoP5L2PhwRC4uPcZRVBktI2RD/s1600/Step01_GCP.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2THxpWGmA6Ij4H14u9kwK3Zl3DQ1Dn3ObhX53voehC70klM0uAUcluNDpHcnCO1R-ZFCkcYJVelDzGJ05bBR8l4wM37OivA3sYoCa019kIZxRLGREzisvoP5L2PhwRC4uPcZRVBktI2RD/s1600/Step01_GCP.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Two examples of GCPs. The one on the left is a retroreflective target <br />
and the one on the right is a paper plate with a rock on it.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 2</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Take aerial photographs of the project area.<span style="mso-spacerun: yes;"> </span>The photographs need to be taken high enough from the ground to view the GCPs, but low enough that resolution is not lost.<span style="mso-spacerun: yes;"> </span>The higher you fly, the lower the resolution of the ground.<span style="mso-spacerun: yes;"> </span>The lower you fly the more photographs and GCPs are needed.<span style="mso-spacerun: yes;"> </span>It is a balancing act.<span style="mso-spacerun: yes;"> </span>It is normally best to take photographs from various heights to insure proper coverage.<span style="mso-spacerun: yes;"> </span>I normally take three to four thousand photographs - and review the images periodically during the process.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM1ZjWEWMDZR9HlbgWa6gV91qaoeyrv8TX51-f1WgaWHuv1WXbP7jywX7FbcFeoz9D1l9ZmzAc60QoQNhLVJIMsWG2Y7_NKV9ritk-vORmm0BU249Ce95NraK95-gcDrc9U_cN4bGsvAR0/s1600/Step02a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM1ZjWEWMDZR9HlbgWa6gV91qaoeyrv8TX51-f1WgaWHuv1WXbP7jywX7FbcFeoz9D1l9ZmzAc60QoQNhLVJIMsWG2Y7_NKV9ritk-vORmm0BU249Ce95NraK95-gcDrc9U_cN4bGsvAR0/s320/Step02a.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Taking aerial photographs of the site with a KAP rig.</td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiACTTAICABYs2OqsqBNrvMePKu4yozEx289uBiupXmaW8aFkopPx-JIYTmEoZ2XZlPWy0xduWjDd7RAo8swX_srjgdBOYiINUuLfQn6ozELaIohQVYoTylTRofTjylBNRkhqb2ZmJvNaL3/s1600/Step02b_take_aerial_photos.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiACTTAICABYs2OqsqBNrvMePKu4yozEx289uBiupXmaW8aFkopPx-JIYTmEoZ2XZlPWy0xduWjDd7RAo8swX_srjgdBOYiINUuLfQn6ozELaIohQVYoTylTRofTjylBNRkhqb2ZmJvNaL3/s320/Step02b_take_aerial_photos.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A few of the aerial photographs taken from the kite.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 3</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Record the location of each GCP.<span style="mso-spacerun: yes;"> </span>Ideally, this is done with a Total Data Station (TDS).<span style="mso-spacerun: yes;"> </span>A TDS will record highly accurate X, Y, and Z coordinates for each GCP. An alternative method is to use a GPS with a barometric altimeter.<span style="mso-spacerun: yes;"> </span>I have tested an inexpensive Garmin Map 60Cx with this process and it works reasonably well, but the accuracy suffers.<span style="mso-spacerun: yes;"> </span>Whichever method is used, save the coordinates to text file with the name "RealWorldGCPs.txt".</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuSTr7HlAHXKjf27K3VpfPYM_QxcFdv-gz27_gap_xCYMMciDMwY5MuhqOMgJQaxMIIvM6T5X8IqfYJ-RCliXuiVuBn0nzxvEwmoq0uoqe1cA8Pep19Wi5W-cOFjE-wKcycH62whTyn4OO/s1600/Step03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="133" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuSTr7HlAHXKjf27K3VpfPYM_QxcFdv-gz27_gap_xCYMMciDMwY5MuhqOMgJQaxMIIvM6T5X8IqfYJ-RCliXuiVuBn0nzxvEwmoq0uoqe1cA8Pep19Wi5W-cOFjE-wKcycH62whTyn4OO/s200/Step03.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Recording the locations of the GCPs with the TDS.</td></tr>
</tbody></table><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><em>Note: This method has only been tested with metric coordinates (ie. UTM) but it should work also work with data in decimal degrees.</em></span></div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 4</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The next task is to cull the images.<span style="mso-spacerun: yes;"> </span>Removing blurry and off-subject photographs is especially important when the photos come from blimp aerial photography (BAP) or kite aerial photography (KAP). Try to have 400 to 600 highly overlapping ‘in focus’ photographs of your subject matter.<span style="mso-spacerun: yes;"> </span>Do not edit the photographs. Editing the photographs can cause problems in the next step.</span></div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 5</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Process the photographs with Photosynth or Bundler.<span style="mso-spacerun: yes;"> </span>This involves uploading your images to Photosynth or through the stand alone Bundler SfM application.<span style="mso-spacerun: yes;"> </span></span></div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 6</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Review the point cloud data.<span style="mso-spacerun: yes;"> </span>The creation of the point clouds often hits a snag and produces bad data.<span style="mso-spacerun: yes;"> </span>To view the point cloud in Photosynth, press the "P" on your keyboard a couple of times while viewing the synth.<span style="mso-spacerun: yes;"> </span>This will step through showing photographs and point clouds.<span style="mso-spacerun: yes;"> </span>If your project has a low synth value or has a large amount of points in places they should not be, reprocessing of the data is needed.<span style="mso-spacerun: yes;"> </span>Try adding or removing photographs to improve the model.<span style="mso-spacerun: yes;"> </span>This involves re-uploading and reprocessing your images. Ideally, the project will be “100% Synthy” on Photosynth’s “Synthy” scale but 100% “synthiness” is not mandatory to get good results.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU5_9b5iqu2eL17S25hXtJLO27momQ9zOJ6f6vLifo1b6a0NQFkZjsOHNsCEEnDFSLMqazm-sgI9mjjRg1qvhqh5foWq8ey35tKGLTbgdz_E7Y7A4o0jkmtxxagsjQ4ElnXUtM3R__9-DE/s1600/Step06.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU5_9b5iqu2eL17S25hXtJLO27momQ9zOJ6f6vLifo1b6a0NQFkZjsOHNsCEEnDFSLMqazm-sgI9mjjRg1qvhqh5foWq8ey35tKGLTbgdz_E7Y7A4o0jkmtxxagsjQ4ElnXUtM3R__9-DE/s320/Step06.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The point cloud as viewed in Photosynth.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 7</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Extract the point cloud. If using Photosynth, the free <a href="http://synthexport.codeplex.com/">Photosynth Exporter</a> application can extract the data.<span style="mso-spacerun: yes;"> </span>In Photosynth Exporter, select "From URL" and then paste the synth URL into the open field.<span style="mso-spacerun: yes;"> </span>To follow along with my data use the URL " <a href="http://www.photosynth.net/view.aspx?cid=14d8887c-7475-42d5-b810-c6642eace2c5">http://www.photosynth.net/view.aspx?cid=14d8887c-7475-42d5-b810-c6642eace2c5</a> ". Make sure PLY (ASCII) (not binary) is selected.<span style="mso-spacerun: yes;"> </span>A new dialog box will open, from "Select point clouds to export" choose the default option of "0*" and then click "Ok". Name it "Tola_5_0.ply". If denser point clouds are needed, use Photosynth’s Tool Kit.<span style="mso-spacerun: yes;"> </span>Either process will produce a PLY model of the point cloud. </span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8sDIgfA1CJ1-4ZE9cAUYmrJZsSrJppNVjvgUShP1ZK9VyMTsdAF6LMMYi3RypqRzL44iADhUPpJOCTuuAqz4lGLw8vENJNrHypbhZdS2i14sObSo8cLAkL5Wh7PMaqQlZ1-HiUMtymzeQ/s1600/Step07.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="166" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8sDIgfA1CJ1-4ZE9cAUYmrJZsSrJppNVjvgUShP1ZK9VyMTsdAF6LMMYi3RypqRzL44iADhUPpJOCTuuAqz4lGLw8vENJNrHypbhZdS2i14sObSo8cLAkL5Wh7PMaqQlZ1-HiUMtymzeQ/s320/Step07.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Download the point cloud with Photosynth Exporter.</td></tr>
</tbody></table><div class="MsoNormal" style="margin: 0in 0in 10pt;"><br />
</div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 8</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Open the file "Tola_5_0.ply" and edit the point cloud using the free and open source <a href="http://meshlab.sourceforge.net/">Meshlab</a> software.<span style="mso-spacerun: yes;"> </span>It is likely that some stray points or noise exist in the point cloud and need to be removed.<span style="mso-spacerun: yes;"> </span>Use Meshlab's "Select Vertexes" and "Delete the current set of selected vertices" tools to accomplish this.<span style="mso-spacerun: yes;"> </span></span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSc-JjstqHKojeE-Q18J5lNb8bJGMNPTCrYwXGk1RAMmpbQK8Oa9lf8uQWRDx0VSDc4cnYjeyBohfHaz7A9v-5kAGrJ6KoTLaMz3NXRDVDeCUS8w-iMV0DXB3Gi_hLibfuP6nPOD5dDs4y/s1600/Step08.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="207" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSc-JjstqHKojeE-Q18J5lNb8bJGMNPTCrYwXGk1RAMmpbQK8Oa9lf8uQWRDx0VSDc4cnYjeyBohfHaz7A9v-5kAGrJ6KoTLaMz3NXRDVDeCUS8w-iMV0DXB3Gi_hLibfuP6nPOD5dDs4y/s320/Step08.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Editing the point cloud in Meshlab.</td></tr>
</tbody></table><div class="MsoNormal" style="margin: 0in 0in 10pt;"><br />
</div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 9</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Save the edited point cloud with the name "Tola_5_0_edited.ply" again - make sure it is an ASCII (not binary) formatted PLY.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0fixbs-hR3Mz1ONDN17I-twvxDjj4Z5ZmWB9xcPzaJTrVMhluxFKOvgfRJzQ3syDx1cLv_4tcL9pBwNH0o6guB39oxp_FTKSMWHtrGmo0IIUwv1bcNcj8E_cPAQozd6XjsizOTMqU7DyT/s1600/Step09.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0fixbs-hR3Mz1ONDN17I-twvxDjj4Z5ZmWB9xcPzaJTrVMhluxFKOvgfRJzQ3syDx1cLv_4tcL9pBwNH0o6guB39oxp_FTKSMWHtrGmo0IIUwv1bcNcj8E_cPAQozd6XjsizOTMqU7DyT/s320/Step09.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Saving the edited point cloud as an ASCII file in Meshlab.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 10</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Open the newly edited point cloud file "Tola_5_0_edited.ply" in a text editor like Notepad and delete the header.<span style="mso-spacerun: yes;"> </span></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The part you want to delete will look similar to this:</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>plyformat ascii 1.0comment VCGLIB generatedelement vertex 134399property float xproperty float yproperty float zproperty uchar redproperty uchar greenproperty uchar blueproperty uchar alphaelement face 0property list uchar int vertex_indicesend_header</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">This will leave only the set of X, Y, and Z attributes.<span style="mso-spacerun: yes;"> </span>Save the file with the name "pointcloud_edited.XYZ". This file will be used later in the tutorial.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihgSsyXEopc0pJcEpCk6pEoFs8FzJDoYdwV2pAQykFi0au4C7X-CiKOJqzx6tcJ0Y1BLSy9d36Irs8u0UDYxocfm0wJjRm5kTUET6fhE3rIPGEFUe1cKhi9x_zui2lVf_dJPfGqaHeI0h_/s1600/Step10a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="285" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihgSsyXEopc0pJcEpCk6pEoFs8FzJDoYdwV2pAQykFi0au4C7X-CiKOJqzx6tcJ0Y1BLSy9d36Irs8u0UDYxocfm0wJjRm5kTUET6fhE3rIPGEFUe1cKhi9x_zui2lVf_dJPfGqaHeI0h_/s320/Step10a.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Removing the header from <span style="font-family: Calibri;">Tola_5_0_edited.ply.</span></td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWpefQ4nUhz9X3FKupagm6-S0rbrc3Tn_tD3sda-F4CxI34lVs2PO2I5fTB37XNQ3M17w2frWSKAvbD1YAmrJAUngn3mKjy1yjQK4qgDAcwn-j9INMl1r4o-WrgBHdoHsaKlS06cHIOwDR/s1600/Step10b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="185" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWpefQ4nUhz9X3FKupagm6-S0rbrc3Tn_tD3sda-F4CxI34lVs2PO2I5fTB37XNQ3M17w2frWSKAvbD1YAmrJAUngn3mKjy1yjQK4qgDAcwn-j9INMl1r4o-WrgBHdoHsaKlS06cHIOwDR/s320/Step10b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The edited file ready to save as <span style="font-family: Calibri;">pointcloud_edited.XYZ.</span></td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 11</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Next open "Tola_5_0.ply"<span style="mso-spacerun: yes;"> </span>from Step 8 (Not "Tola_5_0_edited.ply") in Notepad and delete the header. </span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The part you want to delete will look similar to this:</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>ply</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>format ascii 1.0</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>element vertex 137808</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>property float x</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>property float y</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>property float z</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>property uchar red</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>property uchar green</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>property uchar blue</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><strong>end_header</strong></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">This will leave only the set of X, Y, and Z attributes.<span style="mso-spacerun: yes;"> </span>Save the file with the name "pointcloud_UNedited.XYZ". This file will be used later in the tutorial.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI70RBfIjQ1aPfAi3oUmU7bEXZ6xGw5bDCnMEjS_GmK-kRXzw7RmQFD7mLz_jGTYZACKSqo4yE0AJdEESapZrl2o7AcucZN8Y2O-evB_IFKn_Gkuj34QGRuy6ilEOVAIdLfO2jTOjbzQS6/s1600/Step11a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="185" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI70RBfIjQ1aPfAi3oUmU7bEXZ6xGw5bDCnMEjS_GmK-kRXzw7RmQFD7mLz_jGTYZACKSqo4yE0AJdEESapZrl2o7AcucZN8Y2O-evB_IFKn_Gkuj34QGRuy6ilEOVAIdLfO2jTOjbzQS6/s320/Step11a.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Removing the header from <span style="font-family: Calibri;">Tola_5_0.ply.</span></td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqxmySKGcmGQS5JfYG-4his3OxP6sSK99B3TJoVCGvP76r2wLunFHHk8qaMU6q5Jxcjy1HedQVrmd2locvKXliiKo7RYLUHpz1zRcFn-DFt7fS2p6uPkGnOPwwqVmPPAfD3HzHhEectkgq/s1600/Step11b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="185" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqxmySKGcmGQS5JfYG-4his3OxP6sSK99B3TJoVCGvP76r2wLunFHHk8qaMU6q5Jxcjy1HedQVrmd2locvKXliiKo7RYLUHpz1zRcFn-DFt7fS2p6uPkGnOPwwqVmPPAfD3HzHhEectkgq/s320/Step11b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The file ready to be saved as <span style="font-family: Calibri;">pointcloud_UNedited.XYZ.</span></td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 12</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><em><span style="font-family: Calibri;">The next several steps were developed by Nathan Craig and are also outlined on <a href="http://www.personal.psu.edu/nmc15/blogs/anthspace/2010/02/structure-from-motion-point-clouds-to-real-world-coordinates.html">his blog</a>.<span style="mso-spacerun: yes;"> </span>They are recreated here with his permission. Note that my method does not maintain the point cloud vertex color as it is not needed/used in DEM creation.</span></em></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.menci.com/zscan/index.php?option=com_content&task=view&id=45&Itemid=26">ScanView</a> is a free program to view and mark points within a point cloud.<span style="mso-spacerun: yes;"> </span>You can use the import command to open the "pointcloud_UNedited.XYZ" <span style="mso-spacerun: yes;"> </span>file saved in Step 11.<span style="mso-spacerun: yes;"> </span>Use Scanview to locate the GCPs in the point cloud. Often it will be impossible to relocate all the GCPs in more sparse point clouds.<span style="mso-spacerun: yes;"> </span>Focus on finding four or more widely distributed GCPs, if possible.<span style="mso-spacerun: yes;"> </span>As GCPs are located, use the measure tool to record the location of each by pressing SHIFT and Left Clicking.<span style="mso-spacerun: yes;"> </span>It is useful to write down which Scanview point cloud GCP number corresponds to the physical GCP numbers created in Step 3.<span style="mso-spacerun: yes;"> </span>In other words, the GCP that was placed in the field may be GCP 12 but it corresponds to point cloud location 3 as recorded in Scanview.<span style="mso-spacerun: yes;"> </span>I find it useful to have a printout of the GCPs real locations on a Google Earth background for reference and to use field notes.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgIy4dEr26yk_4Ue_p1ROvSQ5cH-yPKYdFOyxflO1M2oQ4Lbnwd6McZFGj57lThv9GN2RgyTeRxEMJiCrHfaVaRnk6xGICfqxNk-wFfIvgdjXvUwWm-91C4DHwCDqLk0gwSxSEhLb_gpaZ/s1600/Step12a_Measure_Tool.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgIy4dEr26yk_4Ue_p1ROvSQ5cH-yPKYdFOyxflO1M2oQ4Lbnwd6McZFGj57lThv9GN2RgyTeRxEMJiCrHfaVaRnk6xGICfqxNk-wFfIvgdjXvUwWm-91C4DHwCDqLk0gwSxSEhLb_gpaZ/s320/Step12a_Measure_Tool.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Marking GCPs in ScanView.</td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX3IkthcED6rF_Tq16zw2Wp2aJ1ArTiPYZ-4ooUjasSSFxV_yaUPMtvs_xjJZ1HPOWUHFrY2VME2dOjPBdYroLuvC9QPSFdRUXGAiJjk32LpwE8R86qsUwvqQyYqqBvqda8N6gfwtW3DEp/s1600/Step12b_Reference_Map.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX3IkthcED6rF_Tq16zw2Wp2aJ1ArTiPYZ-4ooUjasSSFxV_yaUPMtvs_xjJZ1HPOWUHFrY2VME2dOjPBdYroLuvC9QPSFdRUXGAiJjk32LpwE8R86qsUwvqQyYqqBvqda8N6gfwtW3DEp/s320/Step12b_Reference_Map.png" width="247" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Map used for reference.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 13 </span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Once finished with identifying the point cloud GCPs, click the copy button in the measure tool.<span style="mso-spacerun: yes;"> </span>This saves the data to the computer's virtual clipboard.<span style="mso-spacerun: yes;"> </span>Open Notepad and paste this data into an empty file.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">This will produce a tab delimited array according to the following format:</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">ID X Y Z</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">ID = the ScanView's point cloud GCP number.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">XYZ = the point cloud location for each GCP.<span style="mso-spacerun: yes;"> </span>These will often be values less than “10" and greater than “-10”.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Save this file as PointCloudGCPs.txt</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh02i_TFgjqr1vuCK_jxRNXnw_pvtB-0IA-I6UjFcF1G6v1c7_gMfyF69cQOYoxNK56GNPmBfHQuFqN10o-gfyRqw1s3xq8JgtU-KwybiIW5Egdsmecudz6FM4vV7-rwPQrcwqZMJoKronY/s1600/Step13_Paste_Measure_Tool_data.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh02i_TFgjqr1vuCK_jxRNXnw_pvtB-0IA-I6UjFcF1G6v1c7_gMfyF69cQOYoxNK56GNPmBfHQuFqN10o-gfyRqw1s3xq8JgtU-KwybiIW5Egdsmecudz6FM4vV7-rwPQrcwqZMJoKronY/s320/Step13_Paste_Measure_Tool_data.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Copying the points from ScanView to Notepad.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 14</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Open Excel or similar spreadsheet program. Excel 2010 is capable of handling more than a million rows of data.<span style="mso-spacerun: yes;"> </span>Older versions of Excel and all versions of Open Office can only handle about 65,000 rows of data.<span style="mso-spacerun: yes;"> </span>This is important to note because most high resolution point clouds will have hundreds of thousands of points. </span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">In Excel, go to Open and then choose the file type as "Text Files". Navigate to the location of the file PointCloud_edited.XYZ from Step 10.<span style="mso-spacerun: yes;"> </span>In the filename box, type "*.XYZ" to make the file visible to Excel and then double click on the PointCloud_edited.XYZ file to open it.<span style="mso-spacerun: yes;"> </span>A Text Import Wizard will pop up. Make sure the radio button for Delimited is selected and then click Next.<span style="mso-spacerun: yes;"> </span>Depending on how the data was saved, you'll either need to select the "Space" or "Tab" boxes to properly delimit the file.<span style="mso-spacerun: yes;"> </span>You will know you have it right when six vertical lines appear in the data preview box that divides the data into seven columns.<span style="mso-spacerun: yes;"> </span>Click Finish and six columns of numbers should appear in the spread sheet.<span style="mso-spacerun: yes;"> </span>The columns are in the format of X Y Z R G B 255. <span style="mso-spacerun: yes;"> </span>The “XYZ” being the point cloud location of each point and “RGB” is the color value for each point. </span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWJRQxkoJ1st7uw3QJf0sNTiie0EsX1PalJacn5klwdWq_QIh4eXRa2Xi5qnZ0FPlR-sl4_VJsk4B8YHDuXvoi6-25PbaTD6x_cy_6u63mdnLi8-4dwbJeLKJhd-NlOidv6L22dA_Dlsr3/s1600/Step14a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="231" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWJRQxkoJ1st7uw3QJf0sNTiie0EsX1PalJacn5klwdWq_QIh4eXRa2Xi5qnZ0FPlR-sl4_VJsk4B8YHDuXvoi6-25PbaTD6x_cy_6u63mdnLi8-4dwbJeLKJhd-NlOidv6L22dA_Dlsr3/s320/Step14a.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Importing P<span style="font-family: Calibri;">ointCloud_edited.XYZ into Excel.</span></td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpBEGqn1GpWKbrRSnwbLeHdZzukWKThtCjo8sb-oN1ttSHIZaq51ImGAhpKlKrNNLsQs732M_Avrn1x_XVnyn-HLX2BRln2YMToHUKDx_5kVoC3rY6kEFhpBi2gChH-6B43f5HBzI5e080/s1600/Step14b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpBEGqn1GpWKbrRSnwbLeHdZzukWKThtCjo8sb-oN1ttSHIZaq51ImGAhpKlKrNNLsQs732M_Avrn1x_XVnyn-HLX2BRln2YMToHUKDx_5kVoC3rY6kEFhpBi2gChH-6B43f5HBzI5e080/s320/Step14b.jpg" width="264" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Calibri;">The file PointCloud_edited.XYZ after import into Excel.</span></td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 15</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The columns must be rearranged and modified for use in later steps.<span style="mso-spacerun: yes;"> </span>In the Excel spread sheet, add a new column to the left of XYZ and delete the RGB and 255 columns.<span style="mso-spacerun: yes;"> </span>This will leave the data in following format:</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">B X Y Z B B B B</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">B = BLANK/Empty column</span> </div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4q2Px3r7vFhpnea1q24MXKvA9b6wujVlXaQrkPd-Jx8gKRkxa7fKPAI90fL0QUEe_5KLiCtEdfOke3e5n4ksufxV3mQflsKozRDCsfTsE_7jjGsQ4H2o9hVtWEH92aegDmHwq0pTOq9hy/s1600/Step15.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4q2Px3r7vFhpnea1q24MXKvA9b6wujVlXaQrkPd-Jx8gKRkxa7fKPAI90fL0QUEe_5KLiCtEdfOke3e5n4ksufxV3mQflsKozRDCsfTsE_7jjGsQ4H2o9hVtWEH92aegDmHwq0pTOq9hy/s320/Step15.jpg" width="198" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">PointCloud_edited.XYZ with unneeded columns removed and reorganized</td></tr>
</tbody></table><br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;"><i style="mso-bidi-font-style: normal;"><span style="font-family: Calibri;">Please note this process ignores the RGB values because they are not significant for the final DEM.<span style="mso-spacerun: yes;"> </span>If you plan on using the data in 3D Studio Max or similar program, it may be useful to maintain these values.<span style="mso-spacerun: yes;"> </span>See <a href="http://www.personal.psu.edu/nmc15/blogs/anthspace/2010/06/coordinate-shift-for-improved-3d-rendering-of-models-that-are-in-utm-coordinates.html">Nathan Craig's blog</a> for more information on this.</span></i></div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 16</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Open the file PointCloudGCPs.txt in Notepad. Select all the points and paste them into first rows of the PointCloud_edited.XYZ file opened in Excel.<span style="mso-spacerun: yes;"> </span>This will replace several rows of data at the top of the file.<span style="mso-spacerun: yes;"> </span>You may need to manually reformat this file in Notepad to get it to paste correctly.<span style="mso-spacerun: yes;"> </span>Now select the first B column and use Excel's FILL command to add a series of numbers for each of the rows in the file.<span style="mso-spacerun: yes;"> </span>This should start with 0 and end with whatever number aligns with your last row of data.<span style="mso-spacerun: yes;"> </span>For each of the other columns, fill the rows with a value of 0. It should look something like this:</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOBy8xzYxCJpWkaZY5vi-d8j_yM5E2fP99h6uv6CDm8fWgEP3-c_wIQmt2DwuvuONaANMu0hhLG-QI7BExANsqBEYBYA5m8vrmqKnDVZP5ppnoVFqlGfTlGwn8MEZUuuetjMb32hvI8wP9/s1600/Step16.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOBy8xzYxCJpWkaZY5vi-d8j_yM5E2fP99h6uv6CDm8fWgEP3-c_wIQmt2DwuvuONaANMu0hhLG-QI7BExANsqBEYBYA5m8vrmqKnDVZP5ppnoVFqlGfTlGwn8MEZUuuetjMb32hvI8wP9/s320/Step16.jpg" width="320" /></a></div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 17</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Now select all the data in the Excel file and press CTRL-C to copy the data to the clipboard.<span style="mso-spacerun: yes;"> </span>Next, open a new Notepad document and paste (CTRL-V) the data into it.<span style="mso-spacerun: yes;"> </span>Save this file as "PointCloud_proc.txt" and close it.<span style="mso-spacerun: yes;"> </span>Also save the Excel data as a backup before closing the program, in case a problem is encountered.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI-5rvYTUnU9yhqTWSCuHteJ-GIAYWmEPXoONtgHX0O04Xcpo6xOQ279NlYnofw0VR9mVgrOC0anIMEN2GCqSWL1tpkBU3wHJow07v35OaawmxGeiN4QyXuikYCDFJQF7su2aqqojMap0m/s1600/Step17.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="185" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI-5rvYTUnU9yhqTWSCuHteJ-GIAYWmEPXoONtgHX0O04Xcpo6xOQ279NlYnofw0VR9mVgrOC0anIMEN2GCqSWL1tpkBU3wHJow07v35OaawmxGeiN4QyXuikYCDFJQF7su2aqqojMap0m/s320/Step17.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Calibri;">PointCloud_proc.txt</span></td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 18</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Now open the "RealWorldGCPs.txt" file that was created in Step 3.<span style="mso-spacerun: yes;"> </span>This file contains the real world locations of the GCPs but must be reformatted so that data in each row corresponds to each row of data in PointCloudGCPs.txt.<span style="mso-spacerun: yes;"> </span>This may mean that rows need to be switched, renumbered, and removed.<span style="mso-spacerun: yes;"> </span>Use notes and other reference materials noted in Step 12 to help with this task. Save the new file as "RealWorldGCPs_Reformatted.txt".</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkclIlGDYQjIZ2RL6iwQp_E7yBWXlmGIErJNbLCpKrxLSVTODxIgU9XulNc6DrM93X8hE9LiYcKBzRuOdQiFHT19Dq5aA7Ls_B0kQRG6MbhwmqWbC33kLRoPdOcM-EqpKukbG16Qu-LcBb/s1600/Step18.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="185" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkclIlGDYQjIZ2RL6iwQp_E7yBWXlmGIErJNbLCpKrxLSVTODxIgU9XulNc6DrM93X8hE9LiYcKBzRuOdQiFHT19Dq5aA7Ls_B0kQRG6MbhwmqWbC33kLRoPdOcM-EqpKukbG16Qu-LcBb/s320/Step18.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Matching the GCPs in <span style="font-family: Calibri;">RealWorldGCPs.txt to corresponds </span><br />
<span style="font-family: Calibri;">to each available point in PointCloudGCPs.txt.</span></td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 19</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The data is now properly formatted for use in the open source Java Graticule 3D (JAG3D) program. JAG3D transforms the arbitrary synth coordinate system into a real world coordinate system.<span style="mso-spacerun: yes;"> </span>The commands for transforming the data are only available in German.<span style="mso-spacerun: yes;"> </span>Open the program by double clicking the JAG3D.exe icon, click Module, and then choose Coordinate transformation (German only).<span style="mso-spacerun: yes;"> </span>This will open a new window.<span style="mso-spacerun: yes;"> </span>Make sure the 3D radio button is selected.<span style="mso-spacerun: yes;"> </span>Next pick the 9-Parametertranformation-3D (Mx, My, Mz, Rx, Ry, Rz, Tx, Ty, Tz) from the drop down menu.<span style="mso-spacerun: yes;"> </span>Now click Datei in the upper left of the menu and then Import Startsystem.<span style="mso-spacerun: yes;"> </span>Next, pick the file "PointCloud_proc.txt" that was saved in Step 17.<span style="mso-spacerun: yes;"> </span>This may take a while to open.<span style="mso-spacerun: yes;"> </span>Once it has opened, click Datei again and then Import Zeilsystem. Now pick the file "RealWorldGCPs_Reformatted.txt" that was created in Step 18. To perform the transformation, click the "Berechnung starten" button in the lower right of the CoordTrans window.<span style="mso-spacerun: yes;"> </span>This may take several minutes to complete.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqZeFp9XRYCmyoCg2DzxHEVVaX6Y0E9PDazn8kKOdOfzE3smnaAeQKbg9U2Cr0VuE1FBkGewSsmrWU0KWUJLDKI4r_fQX9Qp4Ycl4gEdASm8NwPYxvvSDfJm3V6txo2UnYQvL0rz1Sp9pe/s1600/Step19a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="238" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqZeFp9XRYCmyoCg2DzxHEVVaX6Y0E9PDazn8kKOdOfzE3smnaAeQKbg9U2Cr0VuE1FBkGewSsmrWU0KWUJLDKI4r_fQX9Qp4Ycl4gEdASm8NwPYxvvSDfJm3V6txo2UnYQvL0rz1Sp9pe/s320/Step19a.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Calibri;">PointCloud_proc.txt loaded into JAG3D.</span></td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKbRT5-KB5oJvY33XudpFG55Qg8VyhcJDS-nfw2v2A3kRA328uZxQQfi_lwonVeyPjmYpyxmshuDAJwVCGWd61N927BjSSv2zz0er7PQcVhiCmneRPEDEZ6OeO7eeXGfiEoWgC8EszQudx/s1600/Step19b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKbRT5-KB5oJvY33XudpFG55Qg8VyhcJDS-nfw2v2A3kRA328uZxQQfi_lwonVeyPjmYpyxmshuDAJwVCGWd61N927BjSSv2zz0er7PQcVhiCmneRPEDEZ6OeO7eeXGfiEoWgC8EszQudx/s320/Step19b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Calibri;">RealWorldGCPs_Reformatted.txt loaded into JAG3D.</span></td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 20</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">To export the transformed coordinate file, click Datei in the upper left of the window and then Export Transformation.<span style="mso-spacerun: yes;"> </span>Save this file with the name PointCloudinRealWorldCoordinates_trans.txt.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The data is now properly formatted, transformed, and is ready to be converted into a DEM.<span style="mso-spacerun: yes;"> </span>The process for doing this in ArcGIS via the Spatial Analyst tool is explained here, but there are different software options available that are capable of this such as Golden Software's Surfer, ERDAS Image, or the open source GRASS software.</span></div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 21</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The file PointCloudinRealWorldCoordinates_trans.txt must be imported into Excel.<span style="mso-spacerun: yes;"> </span>The easiest way to do this is to open a new workbook in Excel.<span style="mso-spacerun: yes;"> </span>Next, open PointCloudinRealWorldCoordinates_trans.txt in Notepad.<span style="mso-spacerun: yes;"> </span>Select all the data (CTRL-A) and copy it to the clipboard (CTRL-C).<span style="mso-spacerun: yes;"> </span>Now click the first column and row in Excel and paste the data (CTRL-V).<span style="mso-spacerun: yes;"> </span>To create a header that ArcGIS can read, name the first column "Number", the second column "Easting", the third "Northing", the fourth "Elevation" and the final three columns A, B, and C.<span style="mso-spacerun: yes;"> </span>Save this file in Excel's native format PointCloudinRealWorldCoordinates_trans.XLSX.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqf4qyLqmneCh4BOj9t2CIHElkkcWljTAoULF7czMGu4a_K8uUdNVvtMIUnP_6D-7jgop6TAMtUWoKihYYKsCkPz0dhz02htz1Q4nuI4o52rZ6bdzfniTCHmQ5IxQ-X91A99u4G-MFuSug/s1600/Step21.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqf4qyLqmneCh4BOj9t2CIHElkkcWljTAoULF7czMGu4a_K8uUdNVvtMIUnP_6D-7jgop6TAMtUWoKihYYKsCkPz0dhz02htz1Q4nuI4o52rZ6bdzfniTCHmQ5IxQ-X91A99u4G-MFuSug/s320/Step21.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Bringing the JAG3D transformed output back into Excel.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 22</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Open ArcGIS. We will need to create a shapefile from the transformed point cloud data using the Add XY Data tool.<span style="mso-spacerun: yes;"> </span>Go to the main tool bar select Tools > Add XY Data.<span style="mso-spacerun: yes;"> </span>Now navigate to the file saved in Step 21 (PointCloudinRealWorldCoordinates_trans.XLSX) from the "Choose a table from the map or browse for another table:" drop down.<span style="mso-spacerun: yes;"> </span>Pick "Sheet 1" and click Ok. For the X Field choose the Easting (X) column. From the Y Field pick the Northing (Y) column.<span style="mso-spacerun: yes;"> </span>Next define the coordinate system by choosing Edit from the lower left. The tutorial data is in the UTM Zone 17 North PSAD 56 projection. This will create an entry under Layers called "Sheet1$ Events" or something similar.<span style="mso-spacerun: yes;"> </span>Right click on this file and choose Data > Export Data.<span style="mso-spacerun: yes;"> </span>A warning "Table does not have Object_ID field" will appear. Click "Ok".<span style="mso-spacerun: yes;"> </span>It will ask for an Output shapefile or feature class.<span style="mso-spacerun: yes;"> </span>Call it "PointCloudinRealWorldCoordinates_trans.shp" and click OK. ArcGIS will ask if you would like to add the new shapefile as a layer.<span style="mso-spacerun: yes;"> </span>Click yes. A new shapefile called PointCloudinRealWorldCoordinates_trans should appear in the layers display.<span style="mso-spacerun: yes;"> </span>To keep this from becoming confusing, remove "Sheet1$ Events" by right clicking it and choosing "Remove".</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDCPvOsMk2m0bVAOR5PQJMfRnCTF9v6nhwO0wN0W4N84q0P8FxH-kNqQcuzaCefFDE42mYCcFkt29Rd4Peeg8NuYGT0l97JlvOFU_wnlvtxjPvpYsndjkftLvj4n9uvs8IgJEgD-BjTBLr/s1600/Step22a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDCPvOsMk2m0bVAOR5PQJMfRnCTF9v6nhwO0wN0W4N84q0P8FxH-kNqQcuzaCefFDE42mYCcFkt29Rd4Peeg8NuYGT0l97JlvOFU_wnlvtxjPvpYsndjkftLvj4n9uvs8IgJEgD-BjTBLr/s320/Step22a.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Importing the transformed point cloud from Excel into ArcGIS.</td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZDmZKFqlCIj_aDpTRcvMiLD1N_3lwU_YvOC59iP1qvL3aK28JjP1bmBGzs94AGc_m_sQoU16xa5Yrq7FTHh24dernyZbkCkntUEGkxp7fC-d5GN3O1FezG2BAblzKKPEc8Asgq5_05jaB/s1600/Step22b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZDmZKFqlCIj_aDpTRcvMiLD1N_3lwU_YvOC59iP1qvL3aK28JjP1bmBGzs94AGc_m_sQoU16xa5Yrq7FTHh24dernyZbkCkntUEGkxp7fC-d5GN3O1FezG2BAblzKKPEc8Asgq5_05jaB/s320/Step22b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Converting the Excel data into a shapefile.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 23</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">ArcGIS is not good at dealing with irregularly shaped point clouds during the DEM creation process. In order to make the dataset more ArcGIS friendly, the dataset must be rectangular.<span style="mso-spacerun: yes;"> </span>To accomplish this, use the "Editor" drop down and then select "Start editing".<span style="mso-spacerun: yes;"> </span>Next make sure the "Edit Tool" is active (It is the little black triangle next Editor drop down).<span style="mso-spacerun: yes;"> </span>Now select a rectangular or square area that is entirely contained within the "PointCloudinRealWorldCoordinates_Trans" shapefile. Right click on "PointCloudinRealWorldCoordinates_trans" in the Layers window and then select "Open attribute table".<span style="mso-spacerun: yes;"> </span>This will open a spread sheet of attributes for the shapefile.<span style="mso-spacerun: yes;"> </span>Pick "Options" from the lower right of the spread sheet and then click "Switch Selection".<span style="mso-spacerun: yes;"> </span>A warning may appear that says "This table (potentially) contains a large number of records... Do you want to continue?".<span style="mso-spacerun: yes;"> </span>Click Yes and the data outside of your original selection will become active. Now click "Delete" from your keyboard to remove these outside points.<span style="mso-spacerun: yes;"> </span>A rectangle of points should be left. Close the "Attributes of PointCloudinRealWorldCoordiantes_trans" by clicking the X in the upper right corner of that window. Save the edits by clicking the Editor drop down and then choosing "Stop Editing".<span style="mso-spacerun: yes;"> </span>A window will open asking if you want to save the edits.<span style="mso-spacerun: yes;"> </span>Pick Yes.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfqgzxwHZ5F79HuJaWOSBXBrE3ZQL1IB-tBAbAbCitezMdslxOJwJrm1evG2iBD4Bsm8GsFt21DhzbrgcqhDiiNV0_-vga-W2ERomhcFz0jsKjXYRd2hcu0D735E7_uD5n_hNJRfhhi3LV/s1600/Step23a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfqgzxwHZ5F79HuJaWOSBXBrE3ZQL1IB-tBAbAbCitezMdslxOJwJrm1evG2iBD4Bsm8GsFt21DhzbrgcqhDiiNV0_-vga-W2ERomhcFz0jsKjXYRd2hcu0D735E7_uD5n_hNJRfhhi3LV/s320/Step23a.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: 9.5pt; line-height: 115%;"><span style="font-family: Calibri;">Selecting a rectangular area to become a DEM from the irregular shapefile.</span></span></div></td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiegW5oj8cmRU97Mi42jkZGQP-yfUYH-_gG3Tr9g7E7Sq2Qw_xoIMVAC3Mncak92NFXldvlo4VcZ7xb-dYRfbJp1vpy0RIdlhNmoQVnBm7Mt_8rPQugG7fXo1z4xXdrQ3lehsp5F3QvTU9/s1600/Step23b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiegW5oj8cmRU97Mi42jkZGQP-yfUYH-_gG3Tr9g7E7Sq2Qw_xoIMVAC3Mncak92NFXldvlo4VcZ7xb-dYRfbJp1vpy0RIdlhNmoQVnBm7Mt_8rPQugG7fXo1z4xXdrQ3lehsp5F3QvTU9/s320/Step23b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Inverting the selection and deleting the points outside of the rectangular area.</td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVj1Ci_rwL1LqWmuvH7z0_TMSi9XMu61IV9lTZk1ZMIlK7gn9H_Ey56y5yfz8B8s6-z0c7Xr2e7z3NOiUJgJq9CIOCpbh_ERg8IScUFocQgfDIFEcxUDSVkg96Nvp3Y3RRQo8wnWB66oMJ/s1600/Step23c.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVj1Ci_rwL1LqWmuvH7z0_TMSi9XMu61IV9lTZk1ZMIlK7gn9H_Ey56y5yfz8B8s6-z0c7Xr2e7z3NOiUJgJq9CIOCpbh_ERg8IScUFocQgfDIFEcxUDSVkg96Nvp3Y3RRQo8wnWB66oMJ/s320/Step23c.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The remaining points to create the DEM with.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 24</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Now, make sure that the Spatial Analyst tool is visible in ArcGIS.<span style="mso-spacerun: yes;"> </span>If it is not, from the main tool bar select Tools > Customize and then put a checkmark next to "Spatial Analyst" and then click Close.<span style="mso-spacerun: yes;"> </span>Now in the Spatial Analyst tool bar choose "Interpolate to Raster and then Kriging". This will open the Kriging dialog box.<span style="mso-spacerun: yes;"> </span>For Input points: choose the shapefile "PointCloudinRealWorldCoordinates_trans.shp".<span style="mso-spacerun: yes;"> </span>For Z value field: pick the Elevation or Z column.<span style="mso-spacerun: yes;"> </span>Adjust the output cell size to value that is appropriate for your data.<span style="mso-spacerun: yes;"> </span>It is often best to leave this at default at first. Everything else should be ok to leave as is. Click Ok.<span style="mso-spacerun: yes;"> </span>A new file "Krige of PointCloudinRealWorldCoordinates_trans" should appear after a few minutes.<span style="mso-spacerun: yes;"> </span>This is your DEM!</span> </div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG5oruJhktIIxBnqZKCtBGlRUZuCu1Wc0DsmT4JQsp3102piXhgYdD9mTD0NTXXCLHgBQ6iQk61VAWhwMzLf-Qw9C8md9Y5CZdQUJ8RZy2JDHakRFjknTWz8gK4yPjE_4RbE17EycLahY5/s1600/Step25_new.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG5oruJhktIIxBnqZKCtBGlRUZuCu1Wc0DsmT4JQsp3102piXhgYdD9mTD0NTXXCLHgBQ6iQk61VAWhwMzLf-Qw9C8md9Y5CZdQUJ8RZy2JDHakRFjknTWz8gK4yPjE_4RbE17EycLahY5/s320/Step25_new.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Using Spatial Analyst to create temporary DEM.</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 25</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">To save the DEM, right click "Krige of PointCloudinRealWorldCoordinates_trans" and pick Data > Export Data.<span style="mso-spacerun: yes;"> </span>A dialog box will open.<span style="mso-spacerun: yes;"> </span>Name the file "DEM_PointCloudingRealWorldCoordinates_trans.img" and use the IMG format and click Save.</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_8ZVuFy9Oy-7D-tY2ivMZ5ymV-Tk5h-j5H8Rdb4GHA1Zwg_wAR5peQgp3aN5pMpX_9jP-B-xo0nj8pOeDrzMe2YaTsGN6KXXbbmRWnhtFxYoCLryOCquHjZ9pWUHt7jeb9N0m-dHbb_1S/s1600/Step24.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_8ZVuFy9Oy-7D-tY2ivMZ5ymV-Tk5h-j5H8Rdb4GHA1Zwg_wAR5peQgp3aN5pMpX_9jP-B-xo0nj8pOeDrzMe2YaTsGN6KXXbbmRWnhtFxYoCLryOCquHjZ9pWUHt7jeb9N0m-dHbb_1S/s320/Step24.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">There are many things that can affect the quality of a DEM. The point cloud data used in this tutorial was collected on a windy day from a kite aerial photography rig.<span style="mso-spacerun: yes;"> </span>Much of the ground vegetation was moderately tall grasses and small shrubs.<span style="mso-spacerun: yes;"> </span>Since it was windy, the vegetation was constantly swaying and changing position slightly.<span style="mso-spacerun: yes;"> </span>This produces “noise” during the synth matching process.<span style="mso-spacerun: yes;"> </span>Furthermore, near the excavations there were several poles, an excavation screening tripod, and a tarp protruding above the ground surface.<span style="mso-spacerun: yes;"> </span>These points have created "spikes" in the DEM.<span style="mso-spacerun: yes;"> </span>The spikes could have been minimized by more aggressive editing during Step 8.</span> </div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJEbmGoBkGJ0bKGDaV7LssArp3ky-1-kQnSblsT8OLvYvE_WXqvNhynZr1Hmh-xibaaXbY7dwmA6rVlD0mDg9I0jwR4J_37_eiRU2hO9JwKyqSg23lbsnjXy6OxJWCKzuQ11SnnEZARHDz/s1600/Step25b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="264" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJEbmGoBkGJ0bKGDaV7LssArp3ky-1-kQnSblsT8OLvYvE_WXqvNhynZr1Hmh-xibaaXbY7dwmA6rVlD0mDg9I0jwR4J_37_eiRU2hO9JwKyqSg23lbsnjXy6OxJWCKzuQ11SnnEZARHDz/s320/Step25b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The DEM</td></tr>
</tbody></table><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Step 26</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Have a cold beer.<span style="mso-spacerun: yes;"> </span>You deserve it! <strong>Maybe you'd like to buy me one?</strong> </span><span style="font-family: Calibri;"><span style="background: yellow; mso-highlight: yellow;"></span></span> Click the <strong>donate</strong> button at the top right of this page!</div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdq2lTeWoQsAcWxwq08UlrgrnOD1KBJNS3n45ZzfFP-Yl7c-9a-6MZAkRwqvzuAmfFfHK1ZAZbNOv2PXNJ0BlLy-BEi8C_5MpFKSxg0ADqN0-Yp90hU_4ggrTP57meKktz0FnnIpVrcLMn/s1600/stone_logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdq2lTeWoQsAcWxwq08UlrgrnOD1KBJNS3n45ZzfFP-Yl7c-9a-6MZAkRwqvzuAmfFfHK1ZAZbNOv2PXNJ0BlLy-BEi8C_5MpFKSxg0ADqN0-Yp90hU_4ggrTP57meKktz0FnnIpVrcLMn/s1600/stone_logo.jpg" /></a></div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Optional Steps</span></em></h2><h3 style="margin: 10pt 0in 0pt;"><span style="color: #4f81bd; font-family: Cambria; font-size: small;">Step 27 - Create Contours</span></h3><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">To create topographic contours of the DEM, go to Spatial Analyst drop down and pick Surface Analysis and then Contour. A dialog box will open.<span style="mso-spacerun: yes;"> </span>From there choose "Input surface" as DEM_Point_CloudinRealWorldCoordiantes_trans.img" and then pick a Contour interval of 0.5 meters. Under Output Features save the file as "Tola_5_50cm_Contours.shp" and click Ok.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjqt8wCaxSizM4G4BbwbtPKDgVZ6xD7wGTFpYvo3O9WSiaQ0kemSWIBZqPpIliPdK5_BI5ccHrdIP0jSPDcfdpSDl2f5GkNm39-UcvOiiSpsTqxg9U7nDL-E9Oj1fOax4ZldS0-X2FPMEn/s1600/Step26.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjqt8wCaxSizM4G4BbwbtPKDgVZ6xD7wGTFpYvo3O9WSiaQ0kemSWIBZqPpIliPdK5_BI5ccHrdIP0jSPDcfdpSDl2f5GkNm39-UcvOiiSpsTqxg9U7nDL-E9Oj1fOax4ZldS0-X2FPMEn/s320/Step26.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Generating topographic contours in Spatial Analyst.</td></tr>
</tbody></table><div class="MsoNormal" style="margin: 0in 0in 10pt;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Nei__fjP7Y7UJU29QSktHbDmk8Q7yUb7TXG5zilokpM5PsGvn8LKZlSO_IcdFzzZvY0iTcNHEB0Mo2dKJHygmGBsIKnPJJ2gPdF-BEw5FTUFAZeg3_jtdxwsmyhhP9Lb9Z8we5AqDkXT/s1600/Step27_DEM_w_Contours.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Nei__fjP7Y7UJU29QSktHbDmk8Q7yUb7TXG5zilokpM5PsGvn8LKZlSO_IcdFzzZvY0iTcNHEB0Mo2dKJHygmGBsIKnPJJ2gPdF-BEw5FTUFAZeg3_jtdxwsmyhhP9Lb9Z8we5AqDkXT/s320/Step27_DEM_w_Contours.jpg" width="251" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">50 centimeter contours on DEM.</td></tr>
</tbody></table><div class="MsoNormal" style="margin: 0in 0in 10pt;"> <span style="color: #4f81bd; font-family: Cambria; font-size: small;">Step 28 - Georeference Aerial Photograph</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The Georeferencing tool is made available by clicking Tools from the main menu, then Customize, putting a checkmark next to "Georeferencing", and clicking Close. Add an aerial photograph that covers a lot of the project area by clicking "Add Data" and picking "IMG_4197.JPG" (available from <a href="http://www.palentier.com/DEM_Tutorial/">www.palentier.com/DEM_Tutorial/</a> ). A warning about Unknown Spatial Reference will appear.<span style="mso-spacerun: yes;"> </span>Click Ok to proceed and add the image to the Layers window. Add the shapefile "Tola_5_TDS_UTM_Points" from <a href="http://www.palentier.com/DEM_Tutorial">www.palentier.com/DEM_Tutorial</a> to the Layer's window as well. In the Georeferencing tool, make sure the Layer dropdown has "IMG_4197.JPG" active and then click the "Add Control Points" tool (The icon looks like a green x with a line drawn to a red x). Match the GCP plates on the JPG to the points in the Tola_5_TDS_UTM_Points shapefile.<span style="mso-spacerun: yes;"> </span>The aerial image will start to line up with the portions of the DEM.<span style="mso-spacerun: yes;"> </span>As the image was not taken perfectly nadir and contains lens distortions, it is impossible to completely align all the GCP plates with the shapefile points.<span style="mso-spacerun: yes;"> </span>Line it up as best as possible, knowing that distortion is present.<span style="mso-spacerun: yes;"> </span>Removal of the distortion is a subject for another tutorial...<span style="mso-spacerun: yes;"> </span>Once you are satisfied with alignment, click Georeferencing, then click rectify, name it "IMG_4197_Rectified.img" and save the new image.<span style="mso-spacerun: yes;"> </span>The original IMG_4197.jpg can now be removed from the Layers windows and the new IMG_4197_Rectified.img can be added.<span style="mso-spacerun: yes;"> </span>Double click the "IMG_4197_Rectified.img" file from the Layers window.<span style="mso-spacerun: yes;"> </span>The Layers Properties dialog box will open.<span style="mso-spacerun: yes;"> </span>Select the Symbology tab and place a check mark next to "Display Background Value (R, G, B), under Stretch Type choose "Minimum-Maximum", and then click Ok. There should now be a georeferenced aerial image above the DEM.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglPgTQlGc6MvQihcH8Q3vMk-LdgXEx6rhEM8JidBtnl-1yYRh8C9OKGxORnK5iFkE354Sq2pjkWZVB0mJo5L1MBgcF5laxZNKG9RIeBQPJWFz34xu4gDI-aUEW0yKat0u0xn-zfDsUBuY2/s1600/Step28a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglPgTQlGc6MvQihcH8Q3vMk-LdgXEx6rhEM8JidBtnl-1yYRh8C9OKGxORnK5iFkE354Sq2pjkWZVB0mJo5L1MBgcF5laxZNKG9RIeBQPJWFz34xu4gDI-aUEW0yKat0u0xn-zfDsUBuY2/s320/Step28a.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Georeferencing the aerial photograph.</td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9u9cyPXqsFi8hkjSoNWT5nGKsZQ4GOfpEjV3zC1HVHgF53UhdqcyZlyXaoHH_nD8P434tjABVNafmGVwaXektZRlf96yA6H4zFFqwIoYAfObEoi_98Y9vW3EwW8F1iKxhGfIewgdysK2E/s1600/Step28b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9u9cyPXqsFi8hkjSoNWT5nGKsZQ4GOfpEjV3zC1HVHgF53UhdqcyZlyXaoHH_nD8P434tjABVNafmGVwaXektZRlf96yA6H4zFFqwIoYAfObEoi_98Y9vW3EwW8F1iKxhGfIewgdysK2E/s320/Step28b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Removing black background and fixing colors.</td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD07BA-qowuY_cr5cca5bNDs3oZtykw5zmSTLQ9vQhCalDqvbEKEJd5uMFZ2MCaXOOCyLwFFOODLP_Xt9l4pVEls0-VTODIAd6c9e_0nZb3U961XS_-iHTVfrJm8jJhNd128A2QxYhSL74/s1600/Step28c.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD07BA-qowuY_cr5cca5bNDs3oZtykw5zmSTLQ9vQhCalDqvbEKEJd5uMFZ2MCaXOOCyLwFFOODLP_Xt9l4pVEls0-VTODIAd6c9e_0nZb3U961XS_-iHTVfrJm8jJhNd128A2QxYhSL74/s320/Step28c.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Properly aligned aerial with DEM and contours.</td></tr>
</tbody></table><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">An example of the results of this process, when exported to Google Earth, is available here:<span style="mso-spacerun: yes;"> </span><a href="http://www.palentier.com/DEM_Tutorial/Tola_5_DEM_and_Aerial.kmz">http://www.palentier.com/DEM_Tutorial/Tola_5_DEM_and_Aerial.kmz</a></span></div><h3 style="margin: 10pt 0in 0pt;"><span style="color: #4f81bd; font-family: Cambria; font-size: small;">Step 29 - Visualing the Data in 3D</span></h3><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Use ArcScene to visualize your data as seen in this Youtube video:</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.youtube.com/watch?v=emM2FzjHQrQ"><img border="0" height="197" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzXRK0hPgU8APgeYky2bm8JC-1egljQZ4WDnKv8qbDaVRLg6arinVLKkq5g5A4wysbyFcW5AfPl9jUrTrf5tm8tdlCmaoWNXjocWKfHFzBjaPjYPv2YGr8ZQCtdGlG24w2dsK4I40pi1ye/s320/video_graphic.jpg" width="320" /></a></div></div><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Notes:</span></em></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"></span></div><ul><li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">If your dataset is very large, you might want to break it into several smaller sets.<span style="mso-spacerun: yes;"> </span>I have found that point clouds of around 100,000 points process happily in JAG3D.<span style="mso-spacerun: yes;"> </span>Larger point clouds (1 million+ points) can take forever to transform or may crash. Breaking the point clouds into smaller batches is also a good way to get around the 65,000 column limit in older version of Excel or in Open Office.<span style="mso-spacerun: yes;"> </span>To do this break the points from Step 10 into several smaller groups of points AFTER completing Step 13 and then follow the rest of the tutorial for each group of points through Step 20.<span style="mso-spacerun: yes;"> </span>The same PointCloudGCPs.txt file can be used for each group of points during the JAG3D transformation process. After all the groups of points have been transformed, copy and paste the contents of each group into one large text file (just add one group at the end of the next) and then proceed with the rest of the tutorial.</span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Consider the output number of digits in your transformed data.<span style="mso-spacerun: yes;"> </span>Some software, like 3DS Max and Meshlab, will not properly handle numbers with lots of digits.<span style="mso-spacerun: yes;"> </span>You may need to remove several leading digits (<a href="http://www.personal.psu.edu/nmc15/blogs/anthspace/2010/06/coordinate-shift-for-improved-3d-rendering-of-models-that-are-in-utm-coordinates.html">as explained here</a>) to make your data render properly.</span></div></li>
<li><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">If any of your GCPs were not identifiable in the point cloud but their location is within the boundary of the DEM, you can double check the DEM accuracy by comparing the GCP's Z value with the DEM's Z value.</span></div></li>
</ul><h2 style="margin: 12pt 0in 3pt;"><em><span style="font-family: Cambria;">Useful Links:</span></em></h2><h3 style="margin: 10pt 0in 0pt;"><span style="color: #4f81bd; font-family: Cambria; font-size: small;">Nathan Craig's Blog posts:</span></h3><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.personal.psu.edu/nmc15/blogs/anthspace/2010/02/structure-from-motion-point-clouds-to-real-world-coordinates.html">http://www.personal.psu.edu/nmc15/blogs/anthspace/2010/02/structure-from-motion-point-clouds-to-real-world-coordinates.html</a></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.personal.psu.edu/nmc15/blogs/anthspace/2010/06/coordinate-shift-for-improved-3d-rendering-of-models-that-are-in-utm-coordinates.html">http://www.personal.psu.edu/nmc15/blogs/anthspace/2010/06/coordinate-shift-for-improved-3d-rendering-of-models-that-are-in-utm-coordinates.html</a></span></div><h3 style="margin: 10pt 0in 0pt;"><span style="color: #4f81bd; font-family: Cambria; font-size: small;">Josh Harle's Tutorials:</span></h3><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://vimeo.com/user3453059">http://vimeo.com/user3453059</a></span></div><img height="60" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2itNMDTd6jz4fe096EwQbzRhR3uYLnmnG5javtEMEuKJc5nc3ONd8-gVdNRsM4D0FPTqYsVOQkDs3lzZ-y3SVBSFdyN6UxxP3rzZ2NOswlATu30Q0e8l4oW1UOXXOxurb62OBUsTg50dU/s320/Step25_new.jpg" style="filter: alpha(opacity=30); left: 339px; mozopacity: 0.3; opacity: 0.3; position: absolute; top: 486px; visibility: hidden;" width="96" />Markhttp://www.blogger.com/profile/03811635822004008238noreply@blogger.com19tag:blogger.com,1999:blog-7885771479626228472.post-22034259420819851842010-12-02T12:38:00.000-08:002010-12-02T12:38:38.658-08:00Using Photogrammetry with Low Altitude Aerial Photographs<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitTjwLJWmg082qUhSPSxjRVzYsIOcBVQvTcL0oaAjCJvQ1RlooxSJEFD0hLV2wfhLyVnuEaFz3zs70KEL08K96xXnHGSUfPWudl77QvE2pa4xp3WyJ-iAelCHtbPiw47Q7C_C5CjL6NQpM/s1600/Turtle_Ridge_DEM_KAP_wo_captions.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitTjwLJWmg082qUhSPSxjRVzYsIOcBVQvTcL0oaAjCJvQ1RlooxSJEFD0hLV2wfhLyVnuEaFz3zs70KEL08K96xXnHGSUfPWudl77QvE2pa4xp3WyJ-iAelCHtbPiw47Q7C_C5CjL6NQpM/s320/Turtle_Ridge_DEM_KAP_wo_captions.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Kite Aerial Photogrammetry. <br />
Digital Terrain Model on left and photomosaic with DTM on right. </td></tr>
</tbody></table><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">My <a href="http://www.youtube.com/user/mdwillis01?feature=mhum#p/u/16/nJgvLll57f0">low altitude aerial photogrammetry work</a> generates a lot of questions from the denizens of the internet.<span style="mso-spacerun: yes;"> </span>Primarily, they want a detailed explanation of how 3D models and photo-mosaics are created from simple point and shoot digital cameras.<span style="mso-spacerun: yes;"> </span>My regular work, as an archaeologist, normally keeps me too busy to answer these questions to everyone's satisfaction.<span style="mso-spacerun: yes;"> </span>At the urging of friend, Wonmin, I have created a two-part video that demonstrates the basic steps of how I use Leica Photogrammetry Suite (LPS) with low altitude aerial photographs to create geo-referenced and rectified images. Wonmin is an extremely talented aerial photographer, whose work at a South Korean archaeological site is the subject of the tutorial.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">For LPS to perform accurately, a few things are required before the aerial photographs are taken. </span></div><ol style="margin-top: 0in;" type="1"><li class="MsoNormal" style="margin: 0in 0in 10pt; mso-list: l0 level1 lfo1;"><span style="font-family: Calibri;">Several Ground Control Points<span style="mso-spacerun: yes;"> </span>(GCPs) should be placed across the area to be photographed.<span style="mso-spacerun: yes;"> </span>GCPs are objects that can easily be seen by the camera during flight.<span style="mso-spacerun: yes;"> </span>LPS requires a minimum of three GCPs but I have found that six or more, evenly distributed across the project area, yield the best results.<span style="mso-spacerun: yes;"> </span>The GCPs that I often use are cheap biodegradable paper plates, but those seen in the tutorial are nice yellow and black reflective markers.<span style="mso-spacerun: yes;"> </span></span></li>
<li class="MsoNormal" style="margin: 0in 0in 10pt; mso-list: l0 level1 lfo1;"><span style="font-family: Calibri;">In addition to placing the GCPs, tight coordinates for each are required.<span style="mso-spacerun: yes;"> </span>This is accomplished with a Total Data Station (TDS) or traditional transit.<span style="mso-spacerun: yes;"> </span><i style="mso-bidi-font-style: normal;">Differentially-corrected GPS (DGPS) is not normally accurate enough with elevation values to be useful.</i></span></li>
<li class="MsoNormal" style="margin: 0in 0in 10pt; mso-list: l0 level1 lfo1;"><span style="font-family: Calibri;">After capturing several overlapping photographs of the subject matter from the sky, the photographs are ready for processing. <span style="mso-spacerun: yes;"> </span></span></li>
<li class="MsoNormal" style="margin: 0in 0in 10pt; mso-list: l0 level1 lfo1;"><span style="font-family: Calibri;">For processing, a calibration report for the camera is also needed. While it is possible to spend a lot of money having this done professionally, I prefer a cheaper method such as using the camera calibration function in the PhotoModeler software*.<span style="mso-spacerun: yes;"> </span>PhotoModeler requires that several photographs of a printed grid be taken by the camera needing calibration.<span style="mso-spacerun: yes;"> </span>The software then compares the photographs with the grid and creates a report of the exact focal length, format size, principal point, and lens distortion parameters. These numbers can then be fed into LPS**. </span></li>
</ol><span style="font-family: "Calibri", "sans-serif"; font-size: 11pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;">Simple enough? Now, you're ready to follow along with the tutorial:</span>:<br />
<div _loaded="true" class="entirePost"> </div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.youtube.com/user/mdwillis01?feature=mhum#p/u/7/byF9AxlXhRM" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="194" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVp1gUEFok1fnRSJ0hzw-a3XP484lDN2zSCy9wP9Yp9mgJBfgyHH1pNiju9v3vfuZj99Eib46qTy37jiNMvwTIpvZVjvJrX5fAJA3KNsDrKFYtE0MUnMG5Tk4zVE8jRnO-874wRwuzlgcs/s320/Part1.jpg" width="320" /></a></div><br />
and Part 2<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.youtube.com/user/mdwillis01?feature=mhum#p/u/6/c8HQruwND4w" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="194" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIh2xaOhrJ5utBqTmHl6RoaxaykabR2_SB5G6JjZaVVRnAHGMsVAdwGueK_sDS54Z_xD7_sTibBIzYm9Vb3LcE2W2BFBYqiJ0qLGq6FL9wHgT_P_UOSVoDRJxoPqyZhucxJKI8HpxUy5O-/s320/Part2.jpg" width="320" /></a></div><div _loaded="true" class="entirePost"> </div><div _loaded="true" class="entirePost">What's not covered in the tutorial: How to remove radial lens distortion and creating large mosaics from dozens of images.</div><div _loaded="true" class="entirePost"> </div><div _loaded="true" class="entirePost"><em>* </em><a href="http://www.agisoft.ru/products/lens/"><strong><span style="color: #3366cc;"><em>Agisoft</em></span></strong></a><em> has similar </em><a href="http://www.agisoft.ru/products/lens/"><strong><span style="color: #3366cc;"><em>software</em></span></strong></a><em> for free but I have not tested it with LPS.</em></div><div _loaded="true" class="entirePost"><em></em> </div><div _loaded="true" class="entirePost"><em>** It is worth noting, to spare others my frustration, that PhotoModeler measures principal point from the upper left of the lens while LPS measures it from the center.</em></div>Markhttp://www.blogger.com/profile/03811635822004008238noreply@blogger.com10tag:blogger.com,1999:blog-7885771479626228472.post-39646285467960255302010-11-21T09:20:00.000-08:002010-11-21T10:31:19.420-08:00Using Kite Aerial Photography (KAP) with Palentier Mapping Software<div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.palentier.com/">Palentier</a> is an Open Source software that was originally created by me and a good friend (M. Stange) for processing aerial images from un-manned aerial vehicles (UAVs) like the MikroKopter.<span style="mso-spacerun: yes;"> </span><a href="http://www.palentier.com/">Palentier</a> can process aerial photographs into georeferenced and scaled images which accurately reflect the location and size of objects in the real world.<span style="mso-spacerun: yes;"> </span>These images can be exported to Google Earth or to GIS software, like ArcGIS, for review and analysis.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Our current attempt is to modify the software so that it could be useable by the KAP community. Several weeks ago, I asked for help with test images and rig GPS data from fellow KAPers. You came through and we now have results from using <a href="http://www.palentier.com/">Palentier</a> with KAP imagery.<span style="mso-spacerun: yes;"> </span>The system was tested using data from four places (Northern England, and Northern Libya, Southern Texas, and West Virginia).<span style="mso-spacerun: yes;"> </span>All had good results and all but one (West Virginia which I don't have permission to share publicly) are shown here.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Nicholas Kirby provided several dozen images from his KAP work south of Tripoli in Libya.<span style="mso-spacerun: yes;"> </span>The building in the photographs is a Roman mausoleum. <span style="mso-spacerun: yes;"> </span>Nick provided Qstar GPS data from his location, the kite, and a stationary point (his vehicle).<span style="mso-spacerun: yes;"> </span>Primarily the GPS data from the kite was used in Palentier's processing.</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJUfhyphenhyphenYU2iGnVCgoyNRrFIHewgFkGYBirOEIcZASL48w0NmVjPHnyBD_8MexumBJpS-YZwtVchbip0bcGgKyROraNWACRFOJMTCrnf0Nh5Zg31R4UoSX8eoAsllDIggvVNpCR1QPKSZ1Od/s1600/Palentier_KAP_Mosaic.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJUfhyphenhyphenYU2iGnVCgoyNRrFIHewgFkGYBirOEIcZASL48w0NmVjPHnyBD_8MexumBJpS-YZwtVchbip0bcGgKyROraNWACRFOJMTCrnf0Nh5Zg31R4UoSX8eoAsllDIggvVNpCR1QPKSZ1Od/s320/Palentier_KAP_Mosaic.jpg" width="320" /></a><span style="font-family: Calibri;"></span></div><span style="font-family: Calibri;"></span><br />
<div class="separator" style="clear: both; text-align: left;"><span style="font-family: Calibri;"></span><a href="http://www.palentier.com/KAP/Nick_Kirby_Palentier_KAP_Test_20101120.kmz"> <span style="font-family: Calibri;">Google Earth KMZ available here (~3.5Mb)</span></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">After days of poor wind, Lindsey Kemp successfully <span style="mso-spacerun: yes;"> </span>photographed an area near Eldwick, England.<span style="mso-spacerun: yes;"> </span>He used i-gotu GPSes to record locations for both the kite rig and anchor.<span style="mso-spacerun: yes;"> </span>Again, the kite's GPS data was the primary locational data used in Palentier.</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCgV2KU72fv-2OfbyD4AiiLKs7tzl2rBGi3LYQs4ryeckOR0_qqc_7PYl_X0uRtIf2fBVKG0Xr5gdqkeLOM4xq5lCfllpPWsp08p62CaU69iLv3r8FHxUviLoRaJlSK9GhB4tbHe5LDDcP/s1600/Lindsey_GE_Image.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCgV2KU72fv-2OfbyD4AiiLKs7tzl2rBGi3LYQs4ryeckOR0_qqc_7PYl_X0uRtIf2fBVKG0Xr5gdqkeLOM4xq5lCfllpPWsp08p62CaU69iLv3r8FHxUviLoRaJlSK9GhB4tbHe5LDDcP/s320/Lindsey_GE_Image.jpg" width="320" /></a></div><span style="font-family: Calibri;"></span><br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><span style="font-family: Calibri;"><a href="http://www.palentier.com/KAP/Lindsey_Kemp_Palentier_Test.kmz">Google Earth KMZ available here (~2Mb)</a></span><br />
</span><br />
<span style="font-family: Calibri;">I used a ground based handheld GPS (Garmin) that I carried on my person, to process this aerial photograph of my crews excavating a burned rock feature near Del Rio, Texas.<span style="mso-spacerun: yes;"> </span></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixE91Dtk9fQn3T2JwXPEdH0yPWUlOa90C63p3Bv6jb0rhn23ketpmKFMi_-5NTW1DackwrTSTx2lSQzZsZZsVl1-EMez7iDGbpFF2CuMefJW-sfNa9F3mnZmBdl-ZszT7NQc35QrWks0gU/s1600/KAP_EU.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixE91Dtk9fQn3T2JwXPEdH0yPWUlOa90C63p3Bv6jb0rhn23ketpmKFMi_-5NTW1DackwrTSTx2lSQzZsZZsVl1-EMez7iDGbpFF2CuMefJW-sfNa9F3mnZmBdl-ZszT7NQc35QrWks0gU/s320/KAP_EU.jpg" width="320" /></a></div><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"></span></span><br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><span style="font-family: Calibri;"><a href="http://www.palentier.com/KAP/KAP_Ground_Based_GPS_Test.kmz">Google Earth KMZ available here (~1.6 Mb)</a></span><br />
</span><span style="font-family: Calibri;">I'd like to point out that you can realistically measure things in this image using the measure tool in Google Earth.<span style="mso-spacerun: yes;"> </span>The excavation unit is four meters long north to south.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The fourth project was conducted near Canaan Heights, West Virginia for USGS biogeographers.<span style="mso-spacerun: yes;"> </span>They are using KAP and Palentier to map micro-floral plant communities in wetland environments where other means of mapping are too costly or too slow. ( I currently do not have permission to share their images but will post them here in the future if they grant it.)</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="color: #f3f3f3; font-family: Cambria; font-size: large;">Lessons Learned</span></div><h2 style="margin: 10pt 0in 0pt;"><span style="color: #f3f3f3; font-family: Cambria; font-size: medium;">Camera Parameters</span></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Palentier was originally tested using Canon cameras.<span style="mso-spacerun: yes;"> </span>Canon cameras have a very rich EXIF header that <span style="mso-spacerun: yes;"> </span>many other manufacture's lack.<span style="mso-spacerun: yes;"> </span>When tested on non-Canon cameras, I found that some of the information about the camera's configuration had to be manually added.<span style="mso-spacerun: yes;"> </span>To address this, we added new input fields into Palentier's "Options".<span style="mso-spacerun: yes;"> </span>The main parameter that is lacking from non-Canon cameras is the metric sensor size.<span style="mso-spacerun: yes;"> </span>www.dpreview.com keeps sensor size information for most modern cameras on the "Specifications" section of its website.</span></div><h2 style="margin: 10pt 0in 0pt;"><span style="color: #f3f3f3; font-family: Cambria; font-size: medium;">Ground Elevation and Altitude Override</span></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">For Palentier to work properly, it needs two things: one, the general elevation of the ground being photographed and two, the approximate height of the camera above that ground. To accommodate for this a new "Ground Elevation" option was added to the software.<span style="mso-spacerun: yes;"> </span>We have found a glitch in the code that does not allow for the proper manual selection of the elevation.<span style="mso-spacerun: yes;"> </span>Until we can fix this, a temporary work around<span style="mso-spacerun: yes;"> </span>is to use the "Altitude Override" option and enter the approximate altitude the camera was flown at.</span></div><h2 style="margin: 10pt 0in 0pt;"><span style="color: #f3f3f3; font-family: Cambria; font-size: medium;">Compass Override and Compass Declination</span></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The test data had only approximate declination information for the camera (which way the top of the camera was point at the time a photograph was taken).<span style="mso-spacerun: yes;"> </span>From my own experience this is not unusual because the rig tends to have a lot of play in it as the wind buffets the camera constantly.<span style="mso-spacerun: yes;"> </span>To account for this, a "Compass Override" option was created.<span style="mso-spacerun: yes;"> </span>Unfortunately, there is a glitch in this code as well, and it does not work properly, yet.<span style="mso-spacerun: yes;"> </span>Luckily, the "Compass Declination" option does essentially the same function.<span style="mso-spacerun: yes;"> </span>So, this option was used to rotate the images until the approximate north in the photographs matched true north.</span></div><h2 style="margin: 10pt 0in 0pt;"><span style="color: #f3f3f3; font-family: Cambria; font-size: medium;">Offset North and South</span></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The GPSes used in these tests, (i-gotu GT120, Garmin Map 60Cx, and Qstarz) <span style="mso-spacerun: yes;"> </span>are only accurate to between 10 and 15 meters.<span style="mso-spacerun: yes;"> </span>This low level of accuracy can throw the image locations off a bit.<span style="mso-spacerun: yes;"> </span>To allow the user to "bump" the photographs into place, the "Offset North" and "Offset East" options are used.<span style="mso-spacerun: yes;"> </span>The user can export a set of photographs, see that it needs to be moved one direction or another, pick the appropriate options and re-export for proper fit.</span></div><h2 style="margin: 10pt 0in 0pt;"><span style="color: #f3f3f3; font-family: Cambria; font-size: medium;">General Issues</span></h2><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">The biggest issue challenge a user might have with using Palentier and KAP imagery is that it is not fully automatic.<span style="mso-spacerun: yes;"> </span>When Palentier is used with MikroKopters or other UAVs, all the data <span style="mso-spacerun: yes;"> </span>for geo-location and rectification are automatically generated and the process is as simple as a few clicks of the mouse.<span style="mso-spacerun: yes;"> </span>Using Palentier with KAP involves more user input and may require multiple exports to Google Earth as well as fine tuning of parameters in Palentier.<span style="mso-spacerun: yes;"> </span>This can be a little cumbersome. Furthermore, since there is lot of variance between individual photographs <span style="mso-spacerun: yes;"> </span>taken from a kite, it will often be best for a user to adjust a single image at a time instead of being able to bulk process dozen of images at once.</span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.palentier.com/">Palentier</a> does not correct the distortion in photographs.<span style="mso-spacerun: yes;"> </span>All photographs have some level of distortion resulting from aberrations in manufacturing and some by design (like fisheye lens).<span style="mso-spacerun: yes;"> </span>Distortion is also present in ortho photography when the camera is not pointed straight down.<span style="mso-spacerun: yes;"> </span>The nature of KAP (using cheap cameras and wind driven flight) can exaggerate some of these distortion problems.<span style="mso-spacerun: yes;"> </span>What this means to the user is that it may not be possible to have every portion of a kite aerial image lineup exactly with Google Earth (but it should still be pretty darn close).<span style="mso-spacerun: yes;"> </span>Alignment problems can arise when there is great variability in the elevation of the ground (like when photographing the top of a mountain and the valley below).<span style="mso-spacerun: yes;"> </span>We compensate for these alignment issues by processing the images in photogrammetry software, such as Leica Photogrammetry Suite, (which Palentier supports export to) but are not currently directly handled by Palentier.</span></div><h1 style="margin: 24pt 0in 0pt;"><span style="color: #f3f3f3; font-family: Cambria; font-size: large;">Want to help?</span></h1><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;"><a href="http://www.palentier.com/">Palentier</a> is Open Source and meant to be an asset we can all take advantage for fun and in our work. Any thoughts on how to improve the software are always welcome. I am not a very good programmer but I do understand the principals of photogrammetry.<span style="mso-spacerun: yes;"> </span>If you are a programmer and interested in further developing the software, <span style="mso-spacerun: yes;"> </span>we need your help.</span></div><h1 style="margin: 24pt 0in 0pt;"><span style="color: #f3f3f3; font-family: Cambria; font-size: large;">Many Thanks</span></h1><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">I am very grateful to Nick Kirby and Lindsey Kemp for sharing their aerial photographs and for taking the time to collect GPS data from their rigs.<span style="mso-spacerun: yes;"> </span>You are both awesome and your help is genuinely appreciated. Thank you!</span></div>Markhttp://www.blogger.com/profile/03811635822004008238noreply@blogger.com4