This is a foundational lab for students learning about spatial networks. The goal is to bridge from theory to practice so you can build your tools and skill set, and code your own networks library.
Like the labs to follow, it’s about bringing spatial networks to life for yourself and understanding them as deeply as possible.
You’re going to:
- Develop clear and concise derivations for five observation equations that are key to spatial networks: 1) distance; 2) simple trilateration; 3) azimuth; 4) angle; and 5) simple intersection;
- Prototype those in a Google Sheet and then implement them in C++ as a first step in building a spatial network library of your own through the labs in this course; and
- Work as a team to develop and submit a final implementation.
1. Watch the introduction
2. Read the following guidance
This lab has three parts:
1. In the first part, you’re asked to develop five of the key observation equations for spatial network applications. You can do this with with paper and pencil – no need to be fancy. (Although pen or tablet or document-based submissions are fine if you wish, as long as your submission ends up in PDF format.) The idea is for you to have your own complete set of related derivations and solutions that will serve you well on tests, and for this and future labs.
2. In the second part, you’re asked to:
- Use Google Sheets to develop your own individual sandbox implementations. This means having a spreadsheet that implements the observation equations for the provided situations.
- Use C++ to develop and code your own library that allows you to implement the same.
3. In the third part, you’re asked to come together to submit a single team-based solution in C++.
Directions for each of these parts are provided in the lessons at the bottom of this page.
Why this lab?
The lab really is fundamental to understanding spatial networks. The first part helps you build and solidify an understanding of how to derive observation equations. This skill will come in handy in this course, but the fundamentals are also important for all kinds of situations in spatial and geomatics applications – from land surveying, to differential GPS, to navigating spacecraft. It’s critical that you’re able to look at a situation, put down its functional model, and linearize it in a way that serves its implementation.
The second part of the lab helps you bridge from theory to practice. It requires you to get off paper and develop a sandbox solution in a spreadsheet. As we learned when covering that for the first time, this is to help you make fewer mistakes and write better code. Part 2 is also where you’ll start building your very own C++ library in this area. In the future, I want you to be able to look at any commercial survey networks package and know from experience what’s happening under the hood. This only comes from experience, and, I believe, is made much more real if you actually build your own.
The third part of the lab gives you insight into how your colleagues are working to achieve the same goals, and demands a level of collaboration by requiring you to come together to prepare a working team-based solution. I’m looking for you to learn from each other and develop a strong solution.
So let’s get to it!
Deadlines + assessment + individual vs. team work
If you’re taking this from me as part of a university class then:
- The due dates for this work are outlined on our activity schedule which you can access with the tabs at the bottom right side of any page on this site.
- A detailed marking rubric will be handed out via D2L and discussed in class. Don’t hesitate to reach out if you have any questions at all.
- You’re asked to use the lab report report template when submitting your lab.
This lab requires individual work and then requires you to work as a team with others. As discussed in the following, you are asked to:
- Work alone to develop your own sandbox solutions in Google Sheets (in Part 1);
- Code your own solutions in C++ as a start to building your own library in this course (in Part 2); and
- Come together as a team to land on one C++ implementation that you’re going to submit to represent the work of your team (in Part 3).
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 and why you each need to hand in your individual solutions as an appendix to the final report. Each person’s understanding gets stronger this way. They do better on the related tests. And the overall results are stronger.
3. Check out these related modules
The following modules might be helpful:
- Introduction to using spreadsheets as a sandbox tool for spatial applications
- Introduction to browser-based coding as a sandbox tool for spatial applications
- Our first few networks and a review of parametric least squares for spatial networks
4. Get started!
You need to be signed in and enrolled (see above) in order to access the content found below.