Tidal window calculator

Created by on 2010-12-14 16:52
Last modified on 2010-12-16 16:39
A description of the tidal window calculation code.

The key functionality of PROTIDE is to calculate tidal window requests, resulting in a useful tidal window advice. Starting a calculation through the Tasks module, puts a new calculation in the calculation queue. This queue is handled by one or more independent calculation threads, depending on the application setup.

Code

TTidalWindowCalculationSchedulerUses a schedule to determine if a new TTidalWindowCalculation has to be calculated and fires a TTidalWindowCalculatorThread.
TTidalWindowCalculatorThreadUses a TTidalWindowCalculator to calculate a TTidalWindowCalculation assigned by the scheduler.
TTidalWindowCalculationA subclass of TProtideCalculation which holds information about the TTidalWindowRequest and the TTidalWindowCalculationSettings it needs to be calculated with.
TTidalWindowCalculatorLoads all necessary information to be able to calculate a TTidalWindowCalculation, including TProtidePredictors, a TVerticalMotionCalculator and a TSafeTimeLocationTableCalculator. Resulting in a TTimeLocationTable to determine possible ship routes.
TProtidePredictorsGathers all prediction data for a specific channel and period to determine water conditions the ship will encounter.
TVerticalMotionCalculatorModels the vertical ship movement based on water conditions and ship dimensions provided. Uses the TAmarconVerticalMotionCalculator for probabilistic tidal window calculations.
TTimeLocationSafetyAnalyzerCombines prediction data, vertical ship movements, channel and ship information to analyze safety per time / location combination.
TSafeTimeLocationTableCalculatorUses a TTimeLocationSafetyAnalyzer to analyze ship safety on provided kilometer positions within a certain period using a bisection root finding algorithm.
TTimeLocationTableHolds (safe) time intervals per kilometer position.