<waypoint> describes a waypoint in a dive profile. A waypoint always marks a change in the course of the dive profile. Changes (events) are:
an alarm given by the dive computer,
an updated CNS value,
an updated OTU value,
the setting of a (new) value for the maximum oxygen partial pressure (when diving with a rebreather),
the use of another breathing gas at a certain depth,
a new value of the water temperature.
All these changes occur at a certain depth at a unique moment. Therefore <depth>, and <divetime> must be given in every <waypoint> statement (exception: the calculation of an ascent profile — see below).
From one <waypoint> statement to another, time and depth vary linearly. For example, if descending with a uniform velocity of 5 metres per minute down to 20 metres, only two <waypoint> statements are necessary to entirely describe the descent profile:
<!-- the first <waypoint> statement in a profile MUST ALWAYS --> <!-- be the depth 0 metre, and the time 0 seconds as well as a --> <!-- <switchmix> statement to determine the breathing gas --> <waypoint> <depth>0.0</depth> <divetime>0.0</divetime> <switchmix ref="air"/> </waypoint> <waypoint> <depth>20.0</depth> <divetime>240.0</divetime> </waypoint>
Of course, the above described descent could also be modeled as follows:
<!-- the first <waypoint> statement in a profile MUST ALWAYS --> <!-- be the depth 0 metre, and the time 0 seconds as well as a --> <!-- <switchmix> statement to determine the breathing gas --> <waypoint> <depth>0.0</depth> <divetime>0.0</divetime> <switchmix ref="air"/> </waypoint> <waypoint> <depth>5.0</depth> <divetime>60.0</divetime> </waypoint> <waypoint> <depth>10.0</depth> <divetime>120.0</divetime> </waypoint> <waypoint> <depth>15.0</depth> <divetime>180.0</divetime> </waypoint> <waypoint> <depth>20.0</depth> <divetime>240.0</divetime> </waypoint>
For the whole descent takes place with a uniform velocity of 5 m/s, the three middle <waypoint> statements can be omitted — they provide no additional information; in a graphical representation of the profile they wouldn't be visible (as long as they are not marked otherwise :-) ). Dive simulation programs should store profiles with the least necessary number of waypoints. Dive computer store time/depth values in certain intervals (e.g. 20 seconds), therefore a profile logged by a dive computer may contain a lot of <waypoint> statements.
If in between a change occurs, e.g. water temperature varies, this event has to occur inside a new waypoint (without this change of water temperature still only two <waypoint> statements are necessary, as descent takes place with uniform velocity):
<!-- the first <waypoint> statement in a profile MUST ALWAYS --> <!-- be the depth 0 metre, and the time 0 seconds as well as a --> <!-- <switchmix> statement to determine the breathing gas --> <waypoint> <depth>0.0</depth> <divetime>0.0</divetime> <switchmix ref="luft"/> <!-- if temperature values are to be given in the following, --> <!-- it's the best to start with it in the first <waypoint> --> <temperature>283.15</temperature> </waypoint> <waypoint> <depth>10.0</depth> <divetime>120.0</divetime> <!-- thermocline at a depth of 10 m --> <temperature>278.15</temperature> </waypoint> <waypoint> <depth>20.0</depth> <divetime>240.0</divetime> </waypoint>
Events, which occur at same time at same depth must be given in the same <waypoint> statement. The appearance of more then one <waypoint> statement one after the other with same depth/time values is not allowed.
Inside the parent elements (<ascent>, <descent>, <inputprofile>, and <samples>) <waypoint> must be given. Because the simplest possible dive profile consists of three waypoints (beginning of dive at the surface, descending with uniform velocity to the maximum depth, ascending with uniform velocity to the surface) at least three <waypoint> statements must be given in every <samples> section. Modeling a descent profile, at least two waypoints (beginning of dive at the surface, and descending with uniform velocity to the target depth) must be given.
It's not allowed to omit the waypoints at the surface (beginning and ending of dive).
Calculation of ascent profiles,
Calculation of tissue saturation on the basis of a profile with different breathing gases, or breathing gas changes
:
When calculating ascent profiles (see <calculateprofile>) the different changes
of breathing gases (in case) at certain depths can also be modeled via <waypoint> elements
(<mixchange> -> <ascent> -> <waypoint>).
Of course, it's not possible to set the time in this case. Another special feature is the calculation of tissue saturation on basis
of a dive profile with different breathing gases, or changes of the breathing gases respectively. Also for this task it's necessary
to provide information about the breathing gas changes separately from the real profile data via <waypoint> elements. Treating
these jobs it's not necessary to set <divetime> elements inside <waypoint>.
<ascent>, <descent>, <inputprofile>, <samples>
<alarm>, <cns>, <depth>, <divetime>, <otu>, <setpo2>, <switchmix/>, <temperature>
<ascent>, <descent>, <inputprofile>, <samples>