# 代写ENGO 531作业、代做MATLAB程序语言作业、代做MATLAB实验作业、代写data作业代写Python程序|代写留学生 Statistics统计、

ENGO 531 Lab 1 Fall 2020 Page 1 of 3
ENGO 531
Laboratory Assignment 1
Date given: 16 September 2020
Date due: 6 October 2020 at 23.59.59
Late submissions lose 20% per business day
Objective
The objective of this lab is to build and test your own photogrammetric bundle adjustment program for
frame camera imagery. You will add to and use this program for all subsequent laboratory assignments in
this course.
Thisis an individual assignment. Collaboration between studentsis anticipated and encouraged. However,
each student is to submit their own, original work. We will check for plagiarism.
Programming language
The focus of this laboratory assignment to understand bundle adjustment program organization and
methodology. The programming language you choose for the implementation is not important. Thus, the
use of interpreted languages such as MATLAB scripts and Python is permitted and encouraged.
Basic program functionality
Your program should be able to read the following inputs from text files:
 Interior orientation parameters (IOPs). Only the basic set of IOPs (principal point and principal
distance) are required. For now, these will be treated as constants, but they will be estimated in
a future lab assignment.
 Exterior orientation parameters (EOPs). For now, these will be treated approximate values rather
than observed values, but this will change in another future lab assignment.
 Ground control points (GCPs). For now, these will be treated as constants, but they will be
considered as observations in a future lab assignment.
 Tie points. These are approximate values.
 Check points. These are treated as constants but NOT used directly in the bundle adjustment.
They will be used for post‐adjustment accuracy assessment.
 Image point coordinates. These are observed values.
ENGO 531 Lab 1 Fall 2020 Page 2 of 3
o The standard deviations for observation groups: there is only one group now, the image
point coordinates, but this will change in a later lab assignment
o Convergence tolerances. For now, only tolerancesfor object point coordinates and angles
are required but, again, this will change later.
o Operation mode options of the program. For now, these comprise the following, but at
least one more will be required for a later lab assignment:
1. Observed or unknown EOPs
2. Observed or unknown GCPs
Your program must correlate all the input data. That is, it must identify all the required point matches
(e.g. homologies) as described in the lecture notes. Moreover, your program must not only perform the
bundle adjustment computations (specified below), but also provide formatted, text‐file output to
facilitate the analyses of results. Some examples of this have been provided in the lecture notes, but the
exact formatting is left to your own creativity—you certainly don’t need to follow the example in the
output file. The main principle you might consider is that the data should be easy to plot from the output
file(s).
Numerical program functionality
Your program must perform the least‐squares bundle adjustment solution once all the input data have
been read. This entails the following general steps:
 Determination of the dimensions of the relevant matrices n, u, r. Note that these, like any other
adjustment quantities, should be derived from the input data and not hard coded.
 Computation of the partial derivatives and misclosures
 Formation of the normal equations by the optimized summation of normal method—this is
mandatory
 Iterative solution of the normal equations
 Computation of all parameters, residuals, covariance matrices and other relevant quantities.
Test dataset description
A small aerial dataset is provided for testing your program. The test dataset was derived from imagery of
the University of Calgary campus. The imagery was captured with a Leica RC 30 metric camera (6 focal
length and 9  9 image format) at a nominal scale of 1:5000 and scanned with a resolution of 12 m. All
image point coordinates were measured manually in the Irfanview software. Control points and tie points
were post‐identified features. The standard deviation of the image point observations was 5 m.
All input data are provided in ASCII text files having the same prefix (engo531_lab1). The format and suffix
of each file is given below:
Suffix Description Format Units
PHO Image (photo) point observations point_id  image_id  x  y mm
INT Interior orientation parameters camera_id  xp  yp  c   mm
EXT Exterior orientation parameters image_id  camera_id  Xc
ENGO 531 Lab 1 Fall 2020 Page 3 of 3
A file of “configuration” data (convergence tolerances, observation group standard deviations,
adjustment modes, etc.—the “other important adjustment data” mentioned above) is NOT provided. The
format of this file is left to your creativity.
Adjustment results are also provided in a text file (OUT suffix). These were generated with fixed control
points and unknown (i.e., not observed) EOPs.
Submissions
Your bundle adjustment program will be validated and verified. Validation is performed to confirm that
the program meets the user needs. That is, does it generate the required outputs? In this regard, both the
completeness of the output file and the formatting will be assessed. Verification is performed to confirm
that you have built the program correctly. You must make statements, justified with numerical results,
that your program has correctly computed the bundle adjustment quantities. The choice of which
quantities to analyze and the quality of the presentation are your responsibility. Note that detailed
analyses of the results in terms of network quality are NOT required. Your code will be assessed in terms
its modularity, documentation and overall design. Modularity is particularly important since you will add
functionality to your program for future lab assignments.
In summary, you are required to submit
 Formatted bundle adjustment output file
 Source code
 Verification report
Submissions are to be uploaded as a single PDF file to the D2L Dropbox by the specified date and time.
As a final note, writing a bundle adjustment program is a big job, but it can be done in the three weeks
allocated to this assignment. The following benchmarks are suggested as a guide to help you monitor
progress:
 End of week 1: demonstration of basic program functionality—read all input data and correlate
all data.
 End of week 2: demonstration of program functionality—least‐squares computations
implemented
 End of week 3: lab completed.
END OF LAB 1

• QQ：99515681
• 邮箱：99515681@qq.com
• 工作时间：8:00-23:00
• 微信：codinghelp2