-
Notifications
You must be signed in to change notification settings - Fork 1
Extension
Architect is designed to support easy extension of the core systems library. This page will explain how. Follow the environment setup instructions in the README before starting.
The general workflow for introducing extensions is roughly:
- Create a new branch off
main
- Make your changes
- Create a pull request
- Profit! 💸
To add a new LUT file follow these steps.
- Navigate to
architect/luts
. - Select the folder that correctly describes the LUT you would like the add. Currently there are two folders,
architect/luts/sensors
andarchitect/luts/atmosphere
. - Create a new
.csv
and give it a name that describes the LUT well. - If the quantities represented by the LUT have units, write these units as the the header row of the file. For example, the quantum efficiency LUT for a camera sensor might look something like this:
nm | % |
---|---|
800 | 0 |
1000 | 82 |
1200 | 84 |
1400 | 82 |
To add a new system, follow these steps:
- Document the mathematical equations that define the system in UTAT's Mathematical Modelling database.
- Navigate to the Class Diagram for Systems.
- Determine the parent and child classes of your system. Update the diagram with your new system.
- Navigate to
architect/systems
. - Select the folder that classifies the system appropriately.
- Select or create a
.py
file that classifies the system appropriately. - Create a new System class in the
.py
file.- Initialize relevant properties of the system as data members of the class.
- Define relevant mathematical properties of the system as methods of the class.
Note: Navigate to architect/systems/optical/foreoptics.py
to see an example of a System class and modules that should be imported.
To create a new tradebook, follow these steps:
- Navigate to
architect/tradebooks
. - Create a new
.ipynb
file. You may also duplicate thetemplate.ipynb
file to start with a template.- Make necessary imports from the standard library, external imports (shown below), and the project
- In "Setup", update the constants and variables used in the pipeline as parameters, and instantiate the systems needed for the pipeline.
- Create the pipeline for tradeoff analysis.
- Create the plot.
The "Tradebook for Mapping of Wavelengths onto Sensor Face" can be found at architect/tradebooks/sensor_wavelength_mapping.ipynb
. It plots sensor height as a function of wavelengths in the SWIR range.
The first time running a tradebook, click "Run All" to execute all cells. Parameters can be updated in their respective cell, and a plot with the new parameter value will be generated when the "Setup" and "Pipeline" sections are run.