Giter Club home page Giter Club logo

lead's Introduction

Lead

What

Lead is a mobile application that allows to evaluate the amount of weight required for every dive. Lead implements two methods of evaluation, Archimedes and PADI's *Basic Weighting Guidelines *.

Archimedes method

With this method, Lead evaluates the amount of weight to carry by applying the archimedes principle on the diver body, set of gears in a specific environment. Each element is considered as a mass and volume to compute the resulting buoyancy.

Basic Weighting Guidelines method

With this method, Lead evaluates the amount of weight to carry by following the PADI's basic weighting guidelines. The result is meant to be a starting point for a buoyancy check.

Why

The amount of weight required for a dive is important to maintain a good buoyancy. Divers are advised to follow basic weight guidelines in order to get an estimation about the amount of weight to carry and fine tune this amount through experience in each environment. Ultimately, divers should reach the perfect weighting for a given environment and keep track of it in a log book for further reference.

When diving in new conditions, divers should refer to basic weight guidelines again and start the fine tuning process.

Lead aims at leveraging the divers built up experience and automatically evaluate the equivalent amount of weight in different conditions.

How

Archimedes method

Lead evaluates the minimum amount of weight required so that the diver never ends up being positively buoyant during a dive with an empty BCD and lungs half full. This allows the diver to control his ascent at any time.

The minimum amount of weight is related to the maximum buoyancy which is computed using the Archimedes' principle.

buoyancy_max = ρ * volume_max(element) - mass_min(element)

where 
element is the diver body or a gear
ρ is the density of the water

The density of the water is computed via a seawater model (see The thermophysical properties of seawater: A review of existing correlations and data) based on water temperature and salinity.

Default values for water temprature and salinity are obtained from NASA Open Data based on geolocation and date.

The human body volume and density is computed via a two-compartment model (see Fat-free mass in relation to stature: ratios of fat-free mass to height in children, adults, and elderly subjects.) incorporating the person gender, age, height and weight. The volume is computed for a subject holding a normal breath in his lungs.

The volume maximum and mass minimum for gears is taken or derived from data sheets. The volume for wet suits is approximated depending on the diver surface and the wet suit thickness.

The diver's body volume is evaluated via a model. The minimum amount of weight required is estimated by computing the following equation

lead_min = Σ[buoyancy_max(element, ρ)]

where 
element is the diver body or a gear
ρ is the density of the water

Basic Weighting Guidelines method

The PADI's Basic Weighting Guidelines is implemented and takes into account the buoyancy of the cylinders, the type of suits, the diver fitness (computed through a model).

Disclaimer

Lead provides estimation of the minimum amount of weight to carry in a dive. Although Lead aims at being accurate, it can't be perfect. Lead can't take into account all details of a real environment. Lead is likely not free from bugs. Lead indications must never take precedence over common sense or established weight guidelines. Finally, Lead does not free divers from doing buoyancy checks.

By using any version of Lead you, you confirm to have read and that you agree with the terms of the Apache Software License 2.0.

Disclaimer of Warranty. Unless required by applicable law or agreed to in writing,
Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY,
or FITNESS FOR A PARTICULAR PURPOSE.
You are solely responsible for determining the appropriateness of using or redistributing
the Work and assume any risks associated with Your exercise of permissions under this License.

Features

  • Evaluates the minium amount of lead to carry for a dive
  • Archimedes method
  • PADI's Basic Weighting Guidelines method
  • Detailed computation results
  • Metric/Imperial units
  • Hydrostatic characteristics of typical gears
  • Evaluation of Seawater density out of a model including salinity and temperature
  • Default seawater salinity and temperature derived from based on geolocation (selectable) and date (selectable)
  • Works offline (except map)

Technology

Lead is a mobile application developed on top of the following frameworks/components Apache Cordova, Ratchet, Backbone.js, jQuery, Underscore, Hydro.

The supported platforms are Google Android, Apple iOS.

Thanks

Thanks to JetBrains for supporting us with free Open Source License of its IntelliJ IDEA product.

Misc

Icons are credit of roundicons.com with slight modifications as allowed by their license.

lead's People

Contributors

tmaret avatar

Watchers

 avatar  avatar

Forkers

tmaret

lead's Issues

UI to define generic gears

The UI would allow to define abstract gears as a tuple from volume, mass, density.

Cylinders could be defined by internal volume, material and weight (more or less the manifold)

Base tile does not load over https

The base tile currently hardcodes the scheme in the uri. The scheme is hardcoded to "http". This prevents the tile to load when browsing over HTTPS.

Add most common UK cylinders

Comprehensive list to be defined, but already reported in Google Store was:

  • standard Faber steel 232bar 12 & 15 L

Allow to set a unit system per input

Currently, it is possible to set the unit system (metric vs imperial) globally.
This feature request is about allowing to set each value in either unit system.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.