• No results found

2018_Becker.pdf

N/A
N/A
Protected

Academic year: 2020

Share "2018_Becker.pdf"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)
(2)

ABSTRACT

This study focused on establishing a straightforward process to create a 3D model using

photogrammetric software and drone photography allowing for the extraction of measurements

of structural data from inaccessible locations. The project specified field data collection

techniques, image processing workflow, and methods of measurement extraction that enabled

structural measurements to be taken from the Northeast high wall of the Boone Quarry outside of

Boone, NC. The study established the need for specifically tailored methods for extracting these

data from 3D models in order to compensate for potential biases in the drone data collection

method, as well as illuminated some potential for bias in structural measurements taken manually

in the field. Using this information, projects utilizing drone imaging and photogrammetry will be

able to design their data collection in a way that corrects for some of these biases and ensures a

more complete data set of structural features.

1. INTRODUCTION

1.1. Background Information

Obtaining structural measurements has historically been limited to sites directly

accessible for the use of a Brunton compass or other manual method; however, advances in

photogrammetry, a process of combining multiple photos into a single image, have made

possible the extraction of measurements from previously inaccessible locations. Photogrammetry

(3)

be taken. Software that provides this function often utilizes structure from motion (SFM)

algorithms, which find common points in overlapping images and compute the X, Y, and Z

coordinates for the points using the camera position, orientation, and focal length (Tavani et al.,

2016). Using the point clouds generated from the coordinates, a mesh is then constructed in the

form of irregular triangles and the images are draped over this mesh to produce a photorealistic

3D model (ibid.). Multiple studies have been done to assess the accuracy of image-based models

and have found that they are comparable to LiDAR-based models, which are often cost and size

prohibitive, making them an ideal alternative for many researchers (Tavani et al., 2014). Using a

GPS device, compass, camera, tape measure, and marking tape, and an unpiloted aerial vehicle

(UAV), a 3D model can be produced and structural measurements extracted. The goal of this

study is to determine the optimal workflow for photogrammetric modeling using Agisoft

PhotoScan Professional Edition 1.4, and the extraction of structural data from the model using

CloudCompare 2.9.

1.2. Geologic Setting

The site selected for this study was the Boone Quarry in Watauga County, North Carolina

(Fig. 1 & 2). The Boone Quarry is located outside of the town of Boone in the Blue Ridge

province in the southern Appalachian Mountains. The area that is now Watauga County was part

of the supercontinent Rodinia at the end of the Mesoproterozoic (Gillon et al., 2009). When

(4)

clastic and carbonate sediment deposits and this was followed by the Taconic Orogeny (Middle

Ordovician), during which arc accretion and regional metamorphism and deformation occurred

(ibid.). A final continent-continent collision occurred in the Permian, leading to the formation of

the thrust sheets that compose the Appalachian Mountains and it was this final tectonic event that

produced many of the structures and fabrics observable in Watauga County today, such as shear

zones comprised of bedrock that has undergone mylonitization, folding, faulting, and cataclasis

(ibid.).

(5)

Figure 2: Map of Watauga county showing geologic units and lineaments. (Gillon et al., 2009)

The Boone Quarry is located within the Grandfather Mountain Window (GMW) and has

exposures of the Linville Falls Fault (LFF). The GMW is a structural window that exposes the

Late Proterozoic (~765–740 Ma) Grandfather Mountain Formation, which is composed of

greenschist-grade metasandstone, metasiltstone, meta-arkose, and metaconglomerates as well as

interlayered mafic and felsic volcanics (Gillon et al., 2009). The LFF is a thrust fault with a shear

zone several hundred meters thick composed of mylonite, ultramylonite and phyllonite

originating from the Late Mesoproterozoic basement rocks and overprinted with cataclasites

(ibid.) as well as quartzite, meta-arkose, metaconglomerates, and granitoid bodies (ibid.). The

Boone Quarry is located within a region that has been a primary subject of research for the

(6)

measurements obtained from this study will be used to supplement ongoing research projects by

faculty and graduate students.

Figure 3: Image taken from Google Earth 4/17/2018

2. METHODS

2.1 Field Data Collection

Field data collection involves three steps: material preparation, setting of ground control

points, and image capture.

(7)

Materials needed for field data collection include the following: a compass with built-in

level, a minimum of three ground-control markers, a DJI Phantom quadcopter drone with

mounted camera, a GPS device, and measuring tape. Ground control markers used for this

project were made from pink marker tape placed within the study area. Alternative options

include Jacob staffs or pre-made markers automatically recognizable by PhotoScan and available

for purchase.

2.1.2 Setting Ground Control Points

Correct placement and measurements of Ground Control Points (GCPs) are crucial for

accurately constructing a 3D model. Three types of GCPs should be setup within the site. First,

multiple GCPs should be spread throughout the site all at the same elevation; these will be used

to level the model. Second, GCPs giving specific directional orientation should be placed. At the

Boone Quarry site, a make-shift compass was created by laying marker tape in straight lines

running from North to South and from East to West. Lastly, GCPs are used to scale the model.

Measurements of the marker tape from North to South and from East to West were taken and

used to scale the model.

2.1.3 Capturing Photos

(8)

one marker are recommended. Do not adjust the focal length while taking pictures and take all

photos in the same lighting conditions. Follow the appropriate diagram below to organize your

photo capture (Fig. 2). 50% overlap minimum is required for model processing. If using UAV

photography, take photos from differing elevations. It is also recommended to take images from

different distances, capturing both a general overview and closer details, in order to have high

enough resolution for structural measurements.

(9)

2.2 Image Processing

Image processing is the most time-consuming step in this method. PhotoScan will create

point clouds using the SFM algorithm to find matching points in the images and will assign them

coordinates based on camera position, orientation, and focal length. Next a mesh will be

constructed and images overlain to create the final 3D model. This model will then have to be

exported in order to extract structural measurements as PhotoScan does not have this capability

at this time. Many of the steps in this workflow were informed by the Agisoft PhotoScan

beginners tutorial (http://www.agisoft.com/support/tutorials/beginner-level/), modified for the

purposes of this study.

2.2.1 Setting Preferences

To set up PhotoScan preferences on the task bar select PhotoScanPro, Preferences. In the

General tab, specify the directory where your project will be stored (keep the PhotoScan project

and all the images together in one folder). Ensure that if the program detects GPUs that they are

checked in order to enable faster processing. For Mac computers, installation of a CUDA driver

may be necessary in order to utilize built-in GPUs. In the Advanced tab, ensure that Keep depth

maps is enabled to allow for faster processing if any changes are made and it needs to be built

(10)

Figure 5: Screen shots of PhotoScan Preferences menu showing settings used in construction of the model

2.2.2 Uploading Photos and Metadata

Before loading pictures, delete any unnecessary or flawed images (i.e. images not of area

of interest, blurry images, changing lighting conditions, moving objects, etc.) to minimize

processing time. Load pictures using Add Photos from the Workflow menu. The pictures

will be loaded in as a “chunk” and will be visible in the Workspace pane. Images will also load

in the Photos pane.

Verify that camera information was loaded automatically by selecting the Reference tab

at the bottom of the Workspace tab. There are three sections in the Reference pane: Cameras,

Markers, and Scale bars. The values to the right of each camera listed should be populated. If

(11)

import CSV file, open References pane toolbar and click Import. Select file containing

camera positions. If EXIF does not import automatically, select Import EXIF button. If

the data is in a global or spherical coordinate system it can be converted, using the button at the

top of the references pane, into a projected coordinate system . This is preferable for

exporting and using in CloudCompare. For the creation of this model, the drone measurements

were recorded degrees, seconds, minutes format and was converted into UTM in PhotoScan.

2.2.3 Setting Camera Parameters

In Reference settings, select coordinate system and set the following

accuracies: Camera accuracy (m): 10, Camera accuracy (deg): 50, Projection accuracy: 0.1, Tie

point accuracy: 1. PhotoScan automatically estimates the camera parameters using the EXIF

data. If values are missing they can be added in manually by selecting Tools, Camera calibration

(Fig. 4). After photos have been imported and the camera calibrated the photos can then be

(12)

Figure 6: Screen shots of reference settings menu and camera calibration menu in PhotoScan

2.2.4 Aligning Photos

Align photos from the Workflow menu. Set the accuracy at high (medium recommended

for over 100 photos) and genericpreselection enabled. Alternatively, reference preselection can

be used when ground control points are utilized to align the photos, but generic worked for any

model that we processed and no difference was observed in processing time (Fig. 5).

The photo alignment creates a “sparse point cloud” model and will be shown in the

Model view (Fig. 6). This sparse point cloud is made from points selected in the overlapping

portion of images and assigned an x,y,z coordinate where the point is then placed. At this point,

if any photos do not align they can be aligned manually by placing markers on the images and

aligning them to images that were able to align automatically. The Boone Quarry model aligned

(13)

on the ground that had no discernable overlapping features and was not ultimately important for

the model and was subsequently deleted.

Figure 7: Screen shot of align photos menu in PhotoScan

(14)

After any adjustments are made, it is recommended that optimization is run on the

cameras. This can achieve a higher level of accuracy if any substantial changes were made such

as manually aligning photos (Fig. 7).

Once the sparse cloud optimization is finished, extraneous data should be removed from

the model (i.e. foliage, excess area not needed in model, any objects that moved during imaging).

This can be done in a number of ways. PhotoScan automatically creates a bounding box around

the model which can be moved or resized. Only what is contained within the bounding box will

be used in the reconstruction of the dense point cloud. Resize the bounding box to contain only

the area to be reconstructed. To clean up additional features, the selection tools along the toolbar

can be used to highlight areas and delete them from the model.

For the Boone Quarry model, the edges of the wall were jagged after the point clouds

were built. The bounding box was resized and the selection tool used to smooth edges where

resizing the bounding box was not sufficient to clean up the edges of the model.

(15)

2.2.6 Setting Orientation and Scale

By double clicking on a photo that includes one of the GCP markers and the image will

expand allowing a marker to be placed on the GCP in the image. Once a marker has been

created, right clicking on the same ground control point in another photo will provide a

drop-down menu that will allow for placement of any created markers or give the option of creating a

new one. Once a marker has been added to one or two photos, PhotoScan will recognize it and

will automatically place it in the other photos, this will be indicated by a blue flag or gray

symbol appearing over the photo in the photos pane (Fig. 8). Once all markers are placed the

scale bars can be created.

Figure 8: Screen shot showing icons over image in PhotoScan

Create a scale bar by using shift-click to select two markers at a time, right clicking, and

selecting Create Scale Bar. Enter the GPS coordinates for each marker and the distances

between each for the scale bars.

(16)

Building the dense point cloud is the most time consuming part of the processing. Prior to

building it, ensure no other programs are running on the computer and check settings to make

sure no interruptions occur during the processing. For example, if the computer automatically

sleeps after a certain amount of time, the processing slows or stops and the program will show

that it has days left of processing. While a data set could potentially take days to process,

depending on the size of the model being constructed it should not take more than 20–30 hours

with smaller models taking significantly less time.

PhotoScan calculates depth information for each image and creates a new “dense point

cloud” model. Medium quality is acceptable for this use, higher quality will take much longer

and is not necessary for finalizing the model for export. Depth filtering should be set to

Aggressive or, if greater than 100 images are used, Moderate can be used. Enable Reuse depth

maps if available to use stored depth maps from earlier processing of the model(Fig. 9). Once

the dense point cloud has completed (Fig. 10) the mesh can be built.

(17)

Figure 10: Screen shot of dense point cloud model in PhotoScan

2.2.8 Build Mesh

The mesh should be built using the dense point cloud as the source and the surface type should e

set to arbitrary. Under advanced settings make sure Interpolation is enabled (Fig. 11).

If necessary, faces can be removed from the model after the mesh is built by using the

selection tools from the toolbar and deleting the unwanted faces.

At this point, if the model has any holes, the Close Holes function can be used from the

Tools, Mesh menu. The slider indicates percentage of the total model size that determines the

size of the largest hole to be closed. As the slider is moved, the holes that will be filled display

(18)

2.2.9 Build Texture

The final step in the creation of the model is building the texture. Use the mosaic

blending mode and enable hole filling for processing. This step drapes the original images over

the wireframe mesh which creates the final, photorealistic model.

(19)

2.2.10 Exporting the model

One issue that occurs when exporting from PhotoScan is that even when the model itself

is correctly oriented, PhotoScan has it saved in its own arbitrary coordinate system and if this is

not fixed prior to export, it will load in this coordinate system in any subsequent program that

opens it. There is a quick fix using a Python script provided by Agisoft on Github

(http://wiki.agisoft.com/wiki/Coordinate_System_to_Bounding_Box.py) that will set the

coordinate system of the program to that of the model bounding box which will allow the model

to export correctly to be used in another program for extracting measurements (see Appendix A).

Save the Python script and then from the tools menu select Run Script. Simply select the file with

the script and execute it. From the File menu, select Export Model and export it as a Wavefront

OBJ (*.obj) file.

2.3 Extracting Structural Measurements

Measurements will be taken using CloudCompare (http://cloudcompare.org), an open

source model editing program, and by utilizing R or Matlab to find a best fit plane to data points

on structural features. An alternative open source program for extracting structural data is

OpenPlot which has been utilized in other studies of 3D model measurements (Tavani et al.,

(20)

2.3.1 Importing the model into CloudCompare

Depending on the size of the model CloudCompare may recommend a shift in the

coordinate system when the obj. file is opened. This is done to preserve the original precision of

the model. The original coordinate system is restored when the model is saved or exported. Since

the shift is consistent across all points it does not affect the orientation data that is extracted from

the model (Fig. 13).

Figure 13: Screen shot of model imported into CloudCompare

2.3.2 Picking points

In the DB Tree toolbar on the left-hand side, click the drop down on the model folder and

(21)

vertices box is checked, if it is not enabled no measurements are able to be taken. The vertices

will be shown in the model as points.

Figure 14: Screen shot of DB Tree menu in CloudCompare

Using the point list picking tool select at least three points for each structure. These will

populate the point list, but they will not be named, so the number of points per feature must be

tracked either manually or by starting a new point list for each feature (Fig. 15). Using the save

button on the point list picking toolbar the points can be saved as a CSV file and loaded into

(22)

2.3.3 Fitting a plane to the points

The University of Georgia’s stratigraphy lab provides an R code

(http://strata.uga.edu/forms/strikeDipRotation.r) for fitting a plane to points picked from the

model using least squares minimization (see Appendix A). This code takes a set of points and

calculates a plane such that the sum of the squared errors is minimized. This code also includes a

function for removing the dip in order to reestablish original horizontality of dipping layers

which was not used for this study.

The outputs from the code give strike, dip and dip direction in azimuth for the planes. In

order to visually assess the orientation, a plane can be created in CloudCompare and placed into

the model using the dip angle and dip direction as well as the coordinates of one of the points

taken from the plane (Fig. 16). From the toolbar select edit, plane, create. This will open a plane

properties dialog box where the measurements for the plane can be added (Fig. 17).

(23)

Figure 17: Screen shot of plane properties menu in CloudCompare

2.3.4 Additional uses for model

The model is capable of being saved as a KML file and exported into Google Earth. More

details regarding this are discussed in Tavani et al. (2014).

3. RESULTS

A total of 306 photos of the Boone Quarry site were taken by drone and 11 GCPs were

placed on site. Upon import into PhotoScan 305 of the 306 photos were successfully aligned, the

(24)

were identified in the photos and in the model using markers. GPS coordinates of the GCPs were

specified and scale bars were created using the North-South and East-West markers and

specifying the distances between. The mesh was generated resulting in 4,406,609 faces and

2,205,993 vertices. At this point the PhotoScan orientation was set to the bounding box

coordinate system by running the Python script in the console in PhotoScan, the texture was

generated, and the model exported.

The exported model was next opened in CloudCompare. Using original photos as guides

for selection, three to four points were selected from 40 structural features including faults and

fractures on the model (Fig. 18). These points were exported into an Excel spreadsheet and then

into R. Using the R code from UGA, planes were fitted to the 40 structural features including

joints and faults giving the strike, dip, and dip direction for each plane.

Figure 18: Drone image of Northern-most section of the high wall that was modeled. Joints and minor faults that were measured are indicated by red lines.

Results were visually assessed by creating planes in CloudCompare and placing them in

the model space to verify appropriate alignment. The data were then inputted into Stereonet

(25)

developed by Rick Allmendinger at Cornell University and Nestor Cardozo at the University of

Stavanger, Norway (2013). Planes as well as poles to planes were plotted and contours were

added to visualize distribution of structural features (Fig. 19). The poles to the planes taken from

the model show that the largest concentration of the planes measured strike in a North-South

direction with a smaller number of East-West striking structures.

These data were then compared to measurements of faults taken inside the quarry by the

North Carolina Geological Survey (NCGS, 2007), measurements of fractures taken at an outcrop

immediately outside the entrance to the quarry, and measurements of fractures taken at another

nearby outcrop (Hill, 2018). The NCGS fault data shows the primary orientation striking in the

East-West direction (Fig. 20). The two data sets taken of fractures outside of the quarry also give

the primary orientations of fractures as striking East-West (Figs. 21 & 22).

Figure 19: Drone Model joint and minor fault measurements of Boone Quarry

(26)

Figure 21: Joint measurements taken on outcrop immediately outside the entrance to the Boone Quarry by Jesse Hill

Figure 22: Joint measurements taken 900 meters west of Boone Quarry off of Hwy 105, across from concrete plant by Jesse Hill

4. DISCUSSION

The measurements taken using the drone/3D model technique resulted in a data set that is

different from the NCGS data set as well as the other measurements taken in the nearby areas.

There are a few possible explanations for why this occurred. The NCGS measurements were

collected from different locations throughout the quarry indicated on the figure by the red dots,

with a higher concentration being taken from the Southeast walls, whereas the wall that was

imaged by the drone was the Northeast high wall as indicated by the red rectangle (Fig. 23).

There are also different geologic units present within the quarry which could explain differences

in orientations of structural features. The NCGS noted that the dips of the layering in the quarry

steepened towards the Southwest which shows that there are changes in orientation based on

(27)

Figure 23: Locations of measurements taken by NCGS with red dots indicating fault measurements. The red rectangle shows the location of the constructed 3D model from the drone imaging.

Furthermore, it is possible that different measurement techniques may have biases that

are affecting the data that is collected. For example, field measurements may be subject to an

inherent bias towards faults and features that strike perpendicular the face of an exposure, which

are more visible to on-site surveyors facing an outcrop or wall, while planes running parallel to

the face are less obvious and may consequently be missed during measurement. Measurements

(28)

parallel to one another strike at high angles to the face, many measurements of the same

orientation may be taken from these joints increasing the frequency of that orientation in the data

set, however, if they run parallel to the face, only one joint from the set will be exposed and there

will be a lower frequency of measurements taken from that orientation. Considering these

factors, it is reasonable to assume that there is some bias inherent in the method of data

collection which would lead to field measurements having higher frequency and increased

likelihood of recording features striking at high angles to the whereas there would be a higher

likelihood of measuring features parallel to the face when extracting data from the 3D model.

Based on this, we would expect to see measurements from the high wall of the Boone Quarry

which is oriented North to South to show a prevalence of North to South striking features which

is which is consistent with our data.

There are potential solutions that could resolve this issue. One method for obtaining more

varied measurements from a site with a single orientation would be to create a separate 3D model

comprised of images taken at a closer distance to the structural features which can provide more

detail and result in a model that retains more of the 3D data. This model could then be oriented to

the larger model and measurements could be obtained of the features with less exposure.

Secondly, the potential bias of obtaining measurements from a 3D model could be overcome

with deliberate planning of image collection. By selecting differently oriented exposures from

which to extract data, the inherent bias could be corrected for and resulting data would be more

balanced.

Overall, the primary limitation of this method was the time it took to process the images,

which was not prohibitive. Additionally, the need for multiple programs and code-fixes makes

(29)

entire workflow. Another possible limitation could be the cost of the drone and the PhotoScan

software, but barring these two expenses the method is very cost-effective.

The primary purpose of this study was to determine a protocol for creating 3D models

using photogrammetry that would allow for structural measurements to be taken from

inaccessible sites, however, this methodology has the potential to open up other new possibilities

for field work processes. Instead of relying on sketches of outcrops taken in the field, it is now

possible to bring the outcrop back virtually and to access it for further study or for educational

purposes. Another benefit of this method is the ability to view the study area from differing

orientations which helps to enhance the overall understanding of the structural features that are

present. By utilizing materials available to most researchers, this method can obtain reliable

measurements with little added cost making it an appealing option when standard field methods

are restricted due to inaccessibility of structural features. In conclusion, photogrammetry is a

suitable alternative for standard field methods that produces reliable results with nominal

additional time or expenses and will certainly become a standard practice for researchers moving

forward.

ACKNOWLEDGEMENTS

Thank you to my thesis advisor Dr. Kevin Stewart for his guidance and support during

this project. Thank you to Jesse Hill for assisting me with many steps in this process from simple

(30)

5. APPENDIX A: SUPPLEMENTARY DATA

R CODE

planeForPoints <- function(x, y, z) {

# Source - http://www.sci.utah.edu/~balling/FEtools/doc_files/LeastSquaresFitting.pdf # 3 Planar Fitting of 3D Points of Form (x,y,f(x,y))

# returns column vector [A, B, C], where z = Ax + By + C

xi <- sum(x) yi <- sum(y) zi <- sum(z) xi2 <- sum(x^2) yi2 <- sum(y^2) xiyi <- sum(x*y) xizi <- sum(x*z) yizi <- sum(y*z) n <- length(x)

M1 <- matrix(data=c(xi2, xiyi, xi, xiyi, yi2, yi, xi, yi, n), nrow=3) M2 <- matrix(data=c(xizi, yizi, zi), nrow=3)

solution <- solve(M1, M2) return(solution)

}

rSquaredPlane <- function(x, y, z, plane) {

# plane is the output of planeForPoints(), a column vector [A, B, C], # where z-hat = Ax + By + C

zHat <- plane[1]*x + plane[2]*y + plane[3] SSE <- sum((z-zHat)^2)

SST <- sum((z-mean(z))^2) Rsquared <- 1 - SSE/SST Rsquared

}

vcrossprod <- function(a, b) {

# returns line that forms intersection of two planes a and b # returns column vector [x, y, z] of the line in three dimensions c1 <- a[2]*b[3] - a[3]*b[2]

c2 <- a[3]*b[1] - a[1]*b[3] c3 <- a[1]*b[2] - a[2]*b[1]

c <- matrix(c(c1, c2, c3), nrow=3) return(c)

}

(31)

# converts angle theta on a unit circle to compass azimuth

# - unit circle has origin at 90° on compass with values increasing counterclockwise # - need origin at 0° on compass with values increasing clockwise

# input and output are in degrees, not radians azimuth <- 450 - theta

if (azimuth > 360) { azimuth = azimuth - 360 }

return(azimuth) }

strike <- function(a) {

# returns the azimuth of the strike (in degrees) of plane a

# where strike is the intersection of plane a and the horizontal plane. # uses east-half rule (i.e., strike is always 0-180°)

horizontalPlane <- matrix(data=c(0,0,1), nrow=3) strikeLine <- vcrossprod(a, horizontalPlane) theta <- atan(strikeLine[2]/strikeLine[1]) * 180 / pi azimuth <- azimuthFromUnitCircle(theta)

return(round(azimuth, 1)) }

dipDirection <- function(a) {

# returns the azimuth of the dip direction (in degrees) from plane a strikeAzimuth <- strike(a)

xSlope <- a[1] ySlope <- a[2]

dipAzimuth <- strikeAzimuth if (xSlope > 0) {

if (ySlope >= 0) {

dipAzimuth <- strikeAzimuth - 90 # SE dip } else {

dipAzimuth <- strikeAzimuth + 90 # NW dip }

} else {

if (ySlope > 0) {

dipAzimuth <- strikeAzimuth - 90 # SW dip } else {

dipAzimuth <- strikeAzimuth + 90 # NE dip }

}

(32)

xSlope <- a[1] ySlope <- a[2]

if (xSlope == 0) { # add negligible amounts to prevent dividing by zero xSlope <- 0.000001

}

if (ySlope == 0) { ySlope <- 0.000001 }

alphaX <- atan(xSlope) alphaY <- atan(ySlope)

dipRadians <- atan(tan(alphaX) * sqrt(tan(alphaY)^2 / tan(alphaX)^2 + 1)) dipDegrees <- dipRadians * 180 / pi

if (dipDegrees < 0) {

dipDegrees = - dipDegrees }

return(round(dipDegrees, 1)) }

######## dip degrees and dip direction

PYTHON SCRIPT

# Rotates model coordinate system in accordance of bounding box for active chunk. Scale is kept.

#

# This is python script for PhotoScan Pro. Scripts repository: https://github.com/agisoft-llc/photoscan-scripts

import PhotoScan import math

# Checking compatibility

compatible_major_version = "1.4"

found_major_version = ".".join(PhotoScan.app.version.split('.')[:2]) if found_major_version != compatible_major_version:

raise Exception("Incompatible PhotoScan version: {} != {}".format(found_major_version, compatible_major_version))

def cs_to_bbox():

print("Script started...")

(33)

R = chunk.region.rot # Bounding box rotation matrix C = chunk.region.center # Bounding box center vector

if chunk.transform.matrix: T = chunk.transform.matrix

s = math.sqrt(T[0, 0] ** 2 + T[0, 1] ** 2 + T[0, 2] ** 2) # scaling # T.scale() S = PhotoScan.Matrix().Diag([s, s, s, 1]) # scale matrix

else:

S = PhotoScan.Matrix().Diag([1, 1, 1, 1])

T = PhotoScan.Matrix([[R[0, 0], R[0, 1], R[0, 2], C[0]], [R[1, 0], R[1, 1], R[1, 2], C[1]],

[R[2, 0], R[2, 1], R[2, 2], C[2]], [ 0, 0, 0, 1]])

chunk.transform.matrix = S * T.inv() # resulting chunk transformation matrix

print("Script finished!")

label = "Custom menu/Coordinate system to bounding box" PhotoScan.app.addMenuItem(label, cs_to_bbox)

(34)

6. REFERENCES CITED

Agisoft LLC, 2017, coordinate_system_to_bounding_box.py: A code that will rotate model coordinate system in accordance of bounding box for active chunk, Agisoft LLc, St. Petersburg, Russia, Retrieved from: https://github.com/agisoft-llc/photoscan-scripts/blob/master/src/coordinate_system_to_bounding_box.py.

Agisoft LLC, 2017, PhotoScan Professional: a stand-alone software product that performs photogrammetric processing of digital images and generates 3D spatial data: Agisoft LLC, St. Petersburg, Russia

Agisoft LLC, 2018, Tutorial (Beginner Level): Orthomosaic and DEM generation with Agisoft PhotoScan Pro 1.3 (without ground control points),

http://www.agisoft.com/pdf/PS_1.3%20-Tutorial%20(BL)%20- %20Orthophoto,% 20DEM%20(without%20GCPs).pdf (accessed April 2018).

Allmendinger, R. W., Cardozo, N. C., and Fisher, D., 2013, Structural Geology Algorithms: Vectors & Tensors: Cambridge, England, Cambridge University Press, pp. 289

Cardozo, N., and Allmendinger, R. W., 2013, Spherical projections with OSXStereonet: Computers & Geosciences, v. 51, no. 0, p. 193 - 205, doi: 10.1016/j.cageo.2012.07.021

Hill, J., Stewart, K., 2016, A newly discovered fault zone near Boone, North Carolina and Cenozoic topographic rejuvenation of the southern Appalachian mountains, in

Proceedings, GSA Annual Meeting in Denver: Colorado, USA, 2016, Geological Society of America, Abstracts with Programs, v. 48, n. 7, doi: 10.1130/abs/2016AM-283940

Gillon, K.A., et al., 2009, Integrating GIS-based geologic mapping, LIDAR-based lineament analysis and site specific rock slope data to delineate a zone of existing and potential rock slope instability located along the Grandfather Mountain Window-Linville Falls shear zone contact, Southern Appalachian Mountains, Watauga County, North Carolina,

in Proceedings, US Rock Mechanics Symposium, 43rd, and U.S.-Canada Rock Mechanics Symposium, 4th, Asheville: North Carolina, North Carolina Geological Survey

Girardeau-Montaut, D., 2018, CloudCompare: a 3D point cloud and mesh processing software: CloudCompare.org, Open Source Project, http://cloudcompare.org.

North Carolina Geological Survey, PDF of report of fault measurements taken inside Vulcan Boone Quarry on May 23, 2007, acquired through personal communication with Jesse Hill, 2018.

Tavani, S., Corradetti, A., and Billi, A., 2016, High precision analysis of an embryonic extensional fault-related fold using 3D orthorectified virtual outcrops: The

(35)

Tavani, S., Granado, P., Corradetti, A., Girundo, M., Iannace, A., Arbués, P., Muñoz, J.A., and Mazzoli, S., 2014, Building a virtual outcrop, extracting geological information from it, and sharing the results in Google Earth via Openplot and Photoscan: An example from the Khaviz anticline (Iran): Computers & Geosciences, v. 63, p. 44-53,

doi:10.1016/j.cageo.2013.10.013.

UGA Stratigraphy Lab, 2016, Plane from points: R code to fit a plane to a set of points picked on a 3-d model obtained from drone-based photogrammetry and calculate the strike and dip of that plane, University of Georgia Stratigraphy Lab,

Figure

Figure	1:	Map	of	North	Carolina	showing	location	of	the	Boone	Quarry	taken	from	Google	Earth
Figure	2:	Map	of	Watauga	county	showing	geologic	units	and	lineaments.	(Gillon	et	al.,	2009)
Figure	3:	Image	taken	from	Google	Earth	4/17/2018
Figure	4:	Graphic	from	Agisoft	PhotoScan	Beginner’s	Tutorial	showing	the	incorrect	and	correct	method	for	capturing	 different	types	of	objects	for	photogrammetry
+7

References

Related documents

Request approval to 1) accept a grant award from, and enter into a grant agreement with, the American Psychological Association Board of Educational Affairs to pursue accreditation

The State of California, Department of Insurance (CDI) has awarded the District Attorney¶s Office (DA) $4,700,955 for the Automobile Insurance Fraud (AIF) Program, $2,121,829 for

77273 with Caban Resources, LLC (Caban), effective upon Board approval to: (i) extend the term of the Agreement for the period July 1, 2015 through June 30, 2016 with an option

Combining Properties and Evidence to Support Overall Confor- mance Claims: Safety-critical system development increasingly relies on using a diverse set of verification

Coastal Carolina University’s Sport Management program is positioned to offer a professional curriculum to students in a dynamic and growing industry, and in a geographic region

Based on the findings of the survey, it is recommended that the private sector should adopt the following health care measures for the employers: conduct health audit of all

Isso porque o discurso de ódio, como já visto, embora expresse negação da igualdade entre os seres humanos (base do reconhecimento jurídico), também manifesta negação do valor

Bridges (Folk, Classic, &amp; Archtop) Bridges (Folk, Classic, &amp; Archtop) Carbon Rods Carbon Rods Center Strips Center Strips Conversion Bushings Conversion Bushings Extension