isce3 0.25.0
Loading...
Searching...
No Matches
Baseline.h
1//
2// Source Author: Bryan Riel
3// Co-Author: Joshua Cohen
4// Copyright 2017
5//
6
7#pragma once
8
9#include "forward.h"
10
11#include "Constants.h"
12#include "Ellipsoid.h"
13#include "Metadata.h"
14#include "Orbit.h"
15#include "Vector.h"
16
17namespace isce3 { namespace core {
18
20class Baseline {
21public:
22
24 double horizontalBaseline() const { return _bh; }
25
27 double verticalBaseline() const { return _bv; }
28
30 double perpendicularBaseline() const { return (-1. * _bh * _coslook) + (_bv * _sinlook); }
31
33 double sinLook() const { return _sinlook;}
34
36 double cosLook() const { return _coslook;}
37
39 Vec3 refXyz() const { return _refxyz; }
40
42 Vec3 look() const { return _look; }
43
45 Vec3 rhat() const { return _rhat; }
46
48 Vec3 chat() const { return _chat; }
49
51 Vec3 vhat() const { return _vhat; }
52
54 Orbit orbit1() const { return _orbit1; }
55
57 Orbit orbit2() const { return _orbit2; }
58
60 Metadata radar() const { return _radar; }
61
63 Ellipsoid ellipsoid() const { return _elp; }
64
66 double velocityMagnitude() const { return _velocityMagnitude; }
67
69 void init();
70
75 void initBasis(double);
76
81 Vec3 calculateBasisOffset(const Vec3 &) const;
82
84 void computeBaselines();
85
87 void calculateLookVector(double);
88
89private:
90 // Orbits
91 Orbit _orbit1, _orbit2;
92 // Metadata
93 Metadata _radar;
94 // Ellipsoid
95 Ellipsoid _elp;
96 // Basis vectors
97 Vec3 _refxyz, _look, _rhat, _chat, _vhat;
98 // Baseline scalars
99 double _bh, _bv;
100 // Look angle
101 double _sinlook, _coslook;
102 // Velocity magnitude
103 double _velocityMagnitude;
104};
105
106}}
Data structure for computing interferometric baselines.
Definition Baseline.h:20
Vec3 look() const
Unit vector in look direction.
Definition Baseline.h:42
Orbit orbit2() const
Return secondary orbit.
Definition Baseline.h:57
double perpendicularBaseline() const
Get perpendicular baseline.
Definition Baseline.h:30
Metadata radar() const
Return metadata object.
Definition Baseline.h:60
void initBasis(double)
For a given time, calculate an orthogonal basis for cross-track and velocity directions for orbit1.
Definition Baseline.cpp:26
Vec3 refXyz() const
Reference ECEF position for baseline.
Definition Baseline.h:39
void computeBaselines()
Compute horizontal and vertical baselines.
Definition Baseline.cpp:51
Vec3 vhat() const
Unit vector in direction of velocity.
Definition Baseline.h:51
double velocityMagnitude() const
Return magnitude of velocity.
Definition Baseline.h:66
void calculateLookVector(double)
Calculate look vector.
Definition Baseline.cpp:72
double cosLook() const
Get cos of look angle.
Definition Baseline.h:36
Orbit orbit1() const
Return reference orbit.
Definition Baseline.h:54
double horizontalBaseline() const
Get horizontal baseline.
Definition Baseline.h:24
Ellipsoid ellipsoid() const
Return ellipsoid.
Definition Baseline.h:63
Vec3 chat() const
Unit vector in cross track direction.
Definition Baseline.h:48
double verticalBaseline() const
Get vertical baseline.
Definition Baseline.h:27
void init()
Initialization function to compute look vector and set basis vectors.
Definition Baseline.cpp:16
Vec3 calculateBasisOffset(const Vec3 &) const
Given a position vector, calculate offset between reference position and that vector,...
Definition Baseline.cpp:45
Vec3 rhat() const
Unit vector in radial direction.
Definition Baseline.h:45
double sinLook() const
Get sin of look angle.
Definition Baseline.h:33
Data structure to store Ellipsoid information.
Definition Ellipsoid.h:20
Data structure for storing basic radar geometry image metadata.
Definition Metadata.h:17
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing,...
Definition Orbit.h:44
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.