private static VelocityDepthObservation CreateVelocityDepthObservation(VerticalItem verticalItem)
 {
     return(new VelocityDepthObservation
     {
         Depth = verticalItem.Depth.GetValueOrDefault() * verticalItem.SamplePosition.GetValueOrDefault(), //TODO: AQ-19384 - Throw if Depth is null
         RevolutionCount = (int?)verticalItem.Revs,
         ObservationInterval = verticalItem.ExposureTime,
         Velocity = verticalItem.Velocity.GetValueOrDefault() //TODO: AQ-19384 - Throw if this is null
     });
 }
        private static PointVelocityObservationType DetermineObservationMethodFromSamplePosition(VerticalItem observation)
        {
            const double pointFiveDepth = 0.5;
            const double pointSixDepth  = 0.6;

            var depth = observation.SamplePosition;

            if (!depth.HasValue)
            {
                return(PointVelocityObservationType.Surface);
            }

            if (IsEqual(depth.Value, pointFiveDepth))
            {
                return(PointVelocityObservationType.OneAtPointFive);
            }

            if (IsEqual(depth.Value, pointSixDepth))
            {
                return(PointVelocityObservationType.OneAtPointSix);
            }

            return(PointVelocityObservationType.Surface);
        }