diff options
author | Mikko Rasa <tdb@tdb.fi> | 2012-07-29 12:52:51 +0300 |
---|---|---|
committer | Mikko Rasa <tdb@tdb.fi> | 2012-07-31 21:12:19 +0300 |
commit | a5e822a4d6f742afe2b4b2e6a856af3063b5ffe1 (patch) | |
tree | 2d58dcaaf99b6ef21840b7d84f1f6879a47a2ce6 /profile.c | |
parent | 618a20ba5f2a9adc0e5a35117535f8eaa9fd34a4 (diff) | |
download | subsurface-a5e822a4d6f742afe2b4b2e6a856af3063b5ffe1.tar.gz |
Improved depth info for dives without samples
This calculates a mean depth for the dive with a fixed ascent/descent
rate and an assumption that all of the bottom time is at the maximum
depth. It's not much, but it allows some derived values such as SAC to
make more sense.
The depth profile for such dives is now also generated with the same
assumptions instead of putting the samples at fixed percentages of the
dive duration.
Signed-off-by: Mikko Rasa <tdb@tdb.fi>
Diffstat (limited to 'profile.c')
-rw-r--r-- | profile.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -1354,12 +1354,15 @@ void plot(struct graphics_context *gc, cairo_rectangle_int_t *drawing_area, stru int nr = dive->samples; if (!nr) { + /* The dive has no samples, so create a few fake ones. This assumes an + ascent/descent rate of 9 m/min, which is just below the limit for FAST. */ int duration = dive->duration.seconds; int maxdepth = dive->maxdepth.mm; + int asc_desc_time = dive->maxdepth.mm*60/9000; sample = fake; - fake[1].time.seconds = duration * 0.05; + fake[1].time.seconds = asc_desc_time; fake[1].depth.mm = maxdepth; - fake[2].time.seconds = duration * 0.95; + fake[2].time.seconds = duration - asc_desc_time; fake[2].depth.mm = maxdepth; fake[3].time.seconds = duration * 1.00; nr = 4; |