Canopy Lookup Tool

Link to Canopy Lookup Tool

Description

The “Canopy Lookup Tool” uses ExitWeight – pilot+gear – and number of jumps and looks up which canopy size is recommended for that person. The underlying tables are the Norwegian recommendations made by NLF [2] and additional recommendations by Brian Germain [3].

It’s by all means a narrow set of qualitative variables for a canopy size recommendation – personal skills, currency and personalities of the jumpers can be argued to be equally or more important. That said, it’s way better that nothing.

Motivation and Process

I have a few projects where it would be great to deploy data directly in an interactive app easily. To sort of publish an interactive Jupyter notebook. Streamlit [1] seems like a good project so I decided to give it a go!

Data Structure

Most recommendations and requirements are tabular data which can be looked up using weight and skill. For one weight you’ll usually get two recommendations.

It is really easy to generate indicies for looking up weights for all tables. With a python dictionary we are able to lookup number of jumps quite easily. With the number of jumps and weigth we can easily fetch the canopy sizes for different requirements (licence or recommended/absolute minium size). The only downsize with this structure is that is requires some manual labor to fill in.

# Weights                  60,  65,  70,  75,  80,  85,  90,  95,  100, 105, 110, 115, 120, 125 
NLF_Rules = {20:  { "E" : [190, 190, 190, 190, 190, 210, 210, 230, 230, 250, 250, 250, 270, 270] },
             100: { "A" : [160, 160, 170, 180, 180, 190, 190, 190, 190, 210, 210, 230, 230, 240] },
             200: { "B" : [140, 140, 150, 160, 160, 170, 170, 170, 170, 190, 190, 210, 210, 220] },
             400: { "B" : [130, 135, 140, 150, 150, 160, 160, 160, 160, 170, 170, 190, 190, 200], 
                    "B2": [117, 120, 124, 127, 129, 134, 139, 144, 150, 158, 165, 174, 178, 185] },
             600: { "B" : [120, 125, 130, 140, 140, 150, 150, 150, 150, 160, 160, 170, 180, 190],
                    "C2": [109, 111, 114, 117, 117, 120, 124, 128, 132, 140, 145, 154, 165, 170]}, 
             800: { "B" : [110, 115, 120, 125, 130, 135, 135, 140, 140, 150, 150, 160, 160, 170], 
                    "C2": [100, 100, 104, 107, 109, 114, 117, 120, 124, 128, 132, 140, 145, 150]},
            1000: { "B" : [105, 105, 110, 115, 120, 125, 125, 130, 130, 140, 140, 150, 150, 160],
                    "C2": [ 96,  96,  99,  99,  99, 104, 107, 109, 112, 117, 119, 124, 129, 135]},
            1200: { "C" : [ 85,  85,  90,  90,  90,  95, 100, 100, 105, 110, 110, 115, 120, 125]},
            1500: { "C" : highWLSize},
            9999: { "C" : [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0]}}

# Compute row index
rowIndex = [x for x in NLF_Rules.keys() if x-numberOfJumps > -1][0]

Brian Germains table is ridiculously detailed as it has almost a recommendation every 20th jump for the 500 first jumps. Keying in this data was out of the question; Luckily Excel has this useful “import table from PDF” which enabled a quick import and pre-processing before a hardcoded table was quickly generated.

Next step was to serialize the hardcoded data to JSON files – as this is both easily modifiable, readable and makes it easy to add other recommendations and regulations.

Interactivity and Depolyment

From here an interactive Jupyter notebook was made, two sliders from which row and column indices was generated and performs a lookup in the tables.

Changing the slider code allowed for quick and easy deployment as a Streamlit app. Super simple stuff and works as a charm! Easy to deploy locally and updated synced changes.

It’s possible to reduce the amount of code to perform the lookup in a list of JSON tables and standardize output. “1. List JSON Table 2. List sub requirements (licencetype/recommended/minimum)”. This makes it super easy to add/remove tables.

References

[1] Streamlit • The fastest way to build and share data apps

[2] NLF Håndboka Vedlegg 100

[3] Brian Germains Downsizing Chart

Leave a Reply

Your email address will not be published.