Thesis/README.md

39 lines
2.1 KiB
Markdown
Raw Normal View History

2024-10-25 16:05:22 +10:00
# Ionization Probe Analysis Code
2024-10-25 16:21:42 +10:00
> Written by Cal Wing (<c.wing@uq.net.au> - 45811953) in 2024 for his Thesis
2024-10-25 16:05:22 +10:00
## Installation
Run `pip install -r requirements.txt` or equivilient for your envoroment.
## Running
Run `main.py` it will then generate all the output graphs and put them in (a git untracked) folder called `./images`.
2024-10-25 16:21:42 +10:00
By default all data graphs will be generated - you need to change the functions called at the end in the `if '__name__ == '__main__':` section.
2024-10-25 16:05:22 +10:00
## `./data` Explanation
I like YAML files to store information. All the data shot folders have a file call `_info.yaml` this file contained all the info about the shot so that when it would load & be graphed it would be correct.
2024-10-25 16:21:42 +10:00
I hope the values are self explanatory but they may not - sorry
## Changes to [canny_shock_finder.py](./canny_shock_finder.py)
Basically I hacked in an extra argument `print_func`, that is used to override the `print` function in the file. It assumes its either a callable reference (like print, the default) or None (it then uses a no-operation function to silence all output)
I also removed the error catching around lines ~497 so the function blindly continues if it can't graph.
I also enabled grid lines on the graphs.
The UQ colours being used on the graphs is due to some funky ~~abuse~~ *utlitly* I built into my [`makeGraph`](#makegraph) library.
## MakeGraph
> This refers to the [makeGraph.py](./makeGraph.py) file/version *in this code base*, I would not trust the exact specifics for versions found elsewhere, but the general gist is the same.
A *long* time ago I wrote a wrapper for matplotlib that has expanded into a formatting tool. The crux of it is that I can throw a dictionary at the `makeGraph` function and it will do all the hard work for me.
There are a few fun things that loading the lib will do - like overriding the default colour cyclers to use only the UQ colours - so if your going to liberate / adapt it be wary.
All the graphing done in the [`main.py`](./main.py) uses makeGraph, its not the most scary thing in the world as its basically ~~AI~~ *a big if conditional*.