Current Status
Not Enrolled
Get Started

You can read the introduction on this page, but to take in the lessons below you need to be signed in »

In this lab, students learning about geomatics and spatial networks will build on what they did in the previous lab in order to carryout a pre-analysis for the design of a small trilateration network. Like other labs in the series, it’s about bringing spatial networks to life for yourself and understanding them as deeply as possible.
The practical applications of this one are being able to:
  • Carry out the error propagation for this kind of network;
  • Implement a ‘brute force’ design process; and
  • Make a recommendation for the ‘best’ design to be carried out in the field.
You’re also going to:
  • Add the related new functionality in order to build on your growing C++ spatial network library; and
  • Work as a team to develop and submit a final implementation.

Read the following introduction


In this lab you will apply what you have been learning in class (about the linearization of functional models, about error propagation, and about stochastic models for geomatics networks) in order to carry out the preanalysis of a trilateration network.

The lab has three parts:

1. In the first part, you’re asked to add to what you did in Lab 2 so that your solutions can carry out a network preanalysis in an iterative fashion:

a) Use Google Sheets to develop your own individual sandbox implementation. This means having a spreadsheet that implements the provided situation;

b) Add to your own C++ library so that it allows you to implement the same.

2. In the second part, you’re asked to carry out such a preanalysis-based design using the real world network scenario provided.

3. In the third part, you’re asked to come together to submit a single team-based solution in C++.

Directions for these parts are provided in the lessons at the bottom of this page.

Why this lab?

Specifically, you have four goals in doing this lab:

1. To demonstrate an understanding of stochastic modeling and error propagation as it applies to the design of horizontal control networks

2. To develop C++ code that applies / implements that understanding in a practical context

3. To demonstrate that you can use this in your own practice as an engineer to design a network, e.g. to help avoid excessive or inadequate field observations while still meeting the survey requirements

4. To reflect on the advantages and disadvantages of doing preanalysis before executing a survey project

And, simply put, these are fundamental skills for a practicing spatial or geomatics engineer.


The due dates for this work are outlined on our course page which you can access with the tabs at the bottom right side of any page on this site.

Individual vs. team

This lab is done individually and as a team in different parts.

As discussed in the following, you are asked to:

  1. Develop your own sandbox solutions in Google Sheets (using the kinds of approaches outlined in our earlier module Introduction to using spreadsheets as a sandbox tool for spatial applications );
  2. Code your own solutions in C++ as part your own library in this course; and
  3. Come together as a team to land on one C++ implementation that you’re going to submit to represent the work of your team.

We find it helps the learning a lot when each person has done the individual work in this lab before coming together on a solution, which is why it’s structured that way. Each person’s understanding gets stronger. They do better on the related exams. And the overall results are stronger.


This lab is based on a similar lab delivered by Dr. Edward Krakiwsky (mentioned in the timeline at the bottom of this page) and Dr. Mohamed Abousalem back in 1995 to students of the Geomatics Engineering program at the University of Calgary. I am grateful to them for their willingness to let me modify and share it here. Any mistakes are very likely mine and anything you like is very likely theirs.


A detailed marking rubric will be handed out via D2L and discussed in class. As long as the individual components are completed and included in the lab as requested, your mark will come from the final team submission.

Lab report template

A lab report template will be handed out via D2L and discussed in class. You’re asked to use this report format when submitting your lab.


Consider the following situation and requirements


Imagine that you just landed a summer job as a geomatics engineer, and that your boss comes to you in the first week and tells you that the company needs to extend a primary geodetic network in the area of the town of Exshaw, which is not too far from Calgary, Alberta, Canada. Having heard that you took a class in geomatics networks, she wants you to do a preanalysis of the proposed extension to avoid excessive or inadequate field observations. And she’d like you to use a trial and error method based on the propagation of errors in different possible network configurations.

Below is part of a 1:50,000 scale topographic map you downloaded from Natural Resources Canada depicting the planned extension. The new stations 3, 4, 5, and 6 will be positioned by conventional terrestrial methods using the control stations 1 and 2.

The UTM coordinates of stations 1 and 2 are as follows and can be considered to be known:

  • E_1 = 625774.134 \text{ m} \text{  and  } N_1 = 5654459.397 \text{ m}
  • E_2 = 624676.199 \text{ m} \text{  and  } N_2 = 5661431.497 \text{ m}

All stations are inter-visible except for stations 3 and 5, i.e. there’s a clear line of sight from all of the stations to all of the others except between 3 and 5.

To be clear: you will need all of these stations. The question is how many distance measurements are needed between them in order the meet the specs published below.

Click the image above to enlarge. Or here to open the full image in a new window » for downloading

Measurement precision and required survey specs

Your boss tells you that the client has told her that the semi-major axis of each 95% relative confidence region between new stations must be less than:

    \begin{equation*} d\text{ x }3.0\text{ x }10^{-6}\text{ + }0.05\text{ m } \end{equation*}

where d is the distance between the two stations in metres and can be approximated using the initial approximate coordinates of the stations.

She tells you that there are no specifications for the point confidence regions.

Further, you learn that the distance measurements will have the following standard deviation:

    \begin{equation*} \sigma_{l}\text{ = }\pm\text{ ( }4\text{ mm }+2\text{ ppm }\text{ ) } \end{equation*}

And you’re told that you can assume the measurements that are going to be made will be uncorrelated, meaning that there will be no off-diagonal elements in the variance-covariance matrix \mathbf{C}_l.


Jump right in

You need to be signed in and enrolled (see above) in order to do this step.