Automation of the post-processing of propulsion test data and the online archive for test results.
- Detect test start and end based on:
- Spike in chamber pressure.
- Decrease in oxidizer pressure.
- Decrease in oxidizer mass.
- Allow manual input for oxidizer shutoff time.
- Define test end when chamber pressure returns to normal.
- Provide a way to download the filtered data.
- Display both unfiltered and filtered lines on the graph.
- Add a legend to the Plotly graph to toggle lines on/off.
- Implement two data smoothing filters that do not distort the data.
- Add a button to enable full-screen mode for the graph.
- Display mass flow rate on the graph.
- (Optional) Plot fill mass and pressure over time.
- Integrate a home page into the application.
- Implement a file organization system:
- Use a custom file extension or metadata to categorize files.
- Enable filtering of files for different website sections.
# API keys.
google_client_id="..."
google_client_secret="..."
# This is used to sign authorization tokens. It should be a long random string.
signing_key="..."
# Set this to true in a deployment environment.
in_production=false
# Place GMail addresses that are allowed to use the platform here.
whitelist = ["[email protected]", "[email protected]"]go run cmd/soarpipeline/soarpipeline.goSimply run the following command to start the application.
docker-compose -f docker-compose.<dev | prod>.yaml upor
docker-compose -f docker-compose.<dev | prod>.yaml up --buildto rebuild the containers from scratch.
To stop the application and remove the containers, run:
docker-compose -f docker-compose.<dev | prod>.yaml downA cache tree is represented as follows for multiple X columns.
test.lvm
|
v
test/
├─ PreviewMetadata
├─ x/
│ ├─ (X) someYColumnName
│ ├─ (X) anotherYColumnName
│ └─ (X) yetAnotherYColumnName
└─ y/
├─ someYColumnName
├─ anotherYColumnName
└─ yetAnotherYColumnName
Or, if there is only one X column.
test.lvm
|
v
test/
├─ PreviewMetadata
├─ x/
│ └─ X_Value
└─ y/
├─ someYColumnName
├─ anotherYColumnName
└─ yetAnotherYColumnName
Where each of these files that is not a directory is a binary data containing the data for the corresponding column or metadata. With this structure, only the necessary data is loaded into memory, and the data is only loaded when it is requested. cd