mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
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>
This commit is contained in:
parent
618a20ba5f
commit
a5e822a4d6
2 changed files with 10 additions and 2 deletions
5
dive.c
5
dive.c
|
@ -451,7 +451,12 @@ struct dive *fixup_dive(struct dive *dive)
|
|||
}
|
||||
}
|
||||
if (end < 0)
|
||||
{
|
||||
/* Assume an ascent/descent rate of 9 m/min */
|
||||
int asc_desc_time = dive->maxdepth.mm*60/9000;
|
||||
dive->meandepth.mm = dive->maxdepth.mm*(dive->duration.seconds-asc_desc_time)/dive->duration.seconds;
|
||||
return dive;
|
||||
}
|
||||
|
||||
update_duration(&dive->duration, end - start);
|
||||
if (start != end)
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue