diff --git a/design/direct-localization-class-diagram.puml b/design/direct-localization-class-diagram.puml index ee2306942c76adbfaff86b5f14d2721e868a4124..8d90bc51fb368f66fe48f1cfc9594643658dacb3 100644 --- a/design/direct-localization-class-diagram.puml +++ b/design/direct-localization-class-diagram.puml @@ -39,7 +39,7 @@ +intersection(ellipsoid, position, los) +refineIntersection(ellipsoid, position, los, closeGuess) } - Tile <-- IntersectionAlgorithm : compute elevation + Tile <-- IntersectionAlgorithm : evaluate DEM } package utils #DDEBD8 { @@ -51,7 +51,7 @@ +pointOnGround(position, los) } class SpacecraftToObservedBody - IntersectionAlgorithm --> ExtendedEllipsoid : find DEM tiles boundaries + IntersectionAlgorithm --> ExtendedEllipsoid : compute grid points crossings } package api #DDEBD8 { diff --git a/design/direct-localization-sequence-diagram.puml b/design/direct-localization-sequence-diagram.puml index f0475efd97116f5a8960793b4c95af728f0dcf05..f4eb1ba3bd2c83ccebafd943cfaf163571457315 100644 --- a/design/direct-localization-sequence-diagram.puml +++ b/design/direct-localization-sequence-diagram.puml @@ -31,53 +31,61 @@ hide footbox - participant "Application" as A - participant "Interface" as I + participant "UserMain" as A participant "Rugged" as R - participant "Algorithm" as G - participant "Orekit" as O + participant "LineSensor" as LS + participant "SpacecraftToObservedBody" as S + participant "ExtendedEllipsoid" as E + participant "IntersectionAlgorithm" as G + participant "Tile" as T activate A - A -> I : directLocalization(name, number) - activate I - I -> R : directLocalization(name, number) + A -> R : directLocalization(name, number) + activate R + R -> LS : apply time stamping model + R -> S : get transforms at line date + R -> R : loop over line pixels pₖ activate R - R -> R : apply time stamping model - R -> R : apply combined transform provider at date - R -> R : loop over line pixels pₖ - activate R - R -> O : intersection(ellipsoid, line-of-sight) - R -> R : fix speed of light delay in transforms - activate R - deactivate R - R -> G : intersection(ellipsoid, line-of-sight) - activate G - G -> O : conversions - G -> R : elevation(φₖ, λₖ) - activate R - R -> I : DEM callback - I --> R : DEM raw data cell - R --> G : h(φₖ, λₖ) - deactivate R - G -> O : conversions - G -> R : elevation(φₖ, λₖ) - activate R - R --> G : h(φₖ, λₖ) - deactivate R - G -> O : conversions - G -> R : elevation(φₖ, λₖ) - activate R - R --> G : h(φₖ, λₖ) - deactivate R - G -> O : conversions - G --> R : φₖ, λₖ, hₖ - deactivate G - R --> R : list(φₖ, λₖ, hₖ) - deactivate R - R --> I : list(φₖ, λₖ, hₖ) + R -> R : fix aberration of light + R -> E : approximate point on ground + R -> R : fix speed of light delay in transforms + R -> G : intersection(ellipsoid, line-of-sight) + activate G + G -> E : grid points crossings + G -> T : elevation(φₖ, λₖ) + activate T + T -> A : DEM callback + A --> T : DEM raw data cell + T --> G : h(φₖ, λₖ) + deactivate T + G -> E : grid points crossings + G -> T : elevation(φₖ, λₖ) + activate T + T --> G : h(φₖ, λₖ) + deactivate T + G -> E : grid points crossings + G -> T : elevation(φₖ, λₖ) + activate T + T --> G : h(φₖ, λₖ) + deactivate T + G -> T : pixel intersection(los) + activate T + T --> G : φₖ, λₖ, hₖ + deactivate T + G --> R : φₖ, λₖ, hₖ + deactivate G + R -> R : refine speed of light delay in transforms + R -> G : refine intersection(ellipsoid, line-of-sight) + activate G + G -> T : refine pixel intersection(los) + activate T + T --> G : φₖ, λₖ, hₖ + deactivate T + deactivate G + R --> R : array(φₖ, λₖ, hₖ) deactivate R - I --> A : list(φₖ, λₖ, hₖ) - deactivate I + R --> A : array(φₖ, λₖ, hₖ) + deactivate R deactivate A @enduml