isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
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 
17 namespace isce3 { namespace core {
18 
20 class Baseline {
21 public:
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 
89 private:
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 to store Ellipsoid information.
Definition: Ellipsoid.h:20
void computeBaselines()
Compute horizontal and vertical baselines.
Definition: Baseline.cpp:51
Ellipsoid ellipsoid() const
Return ellipsoid.
Definition: Baseline.h:63
void calculateLookVector(double)
Calculate look vector.
Definition: Baseline.cpp:72
Data structure for computing interferometric baselines.
Definition: Baseline.h:20
Metadata radar() const
Return metadata object.
Definition: Baseline.h:60
Data structure for storing basic radar geometry image metadata.
Definition: Metadata.h:17
Vec3 vhat() const
Unit vector in direction of velocity.
Definition: Baseline.h:51
Vec3 chat() const
Unit vector in cross track direction.
Definition: Baseline.h:48
Vec3 refXyz() const
Reference ECEF position for baseline.
Definition: Baseline.h:39
void init()
Initialization function to compute look vector and set basis vectors.
Definition: Baseline.cpp:16
double velocityMagnitude() const
Return magnitude of velocity.
Definition: Baseline.h:66
Vec3 calculateBasisOffset(const Vec3 &) const
Given a position vector, calculate offset between reference position and that vector, projected in the reference basis.
Definition: Baseline.cpp:45
double cosLook() const
Get cos of look angle.
Definition: Baseline.h:36
Vec3 rhat() const
Unit vector in radial direction.
Definition: Baseline.h:45
Orbit orbit1() const
Return reference orbit.
Definition: Baseline.h:54
Vec3 look() const
Unit vector in look direction.
Definition: Baseline.h:42
double verticalBaseline() const
Get vertical baseline.
Definition: Baseline.h:27
double horizontalBaseline() const
Get horizontal baseline.
Definition: Baseline.h:24
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing, supporting efficient lookup and interpolation.
Definition: Orbit.h:43
double perpendicularBaseline() const
Get perpendicular baseline.
Definition: Baseline.h:30
Orbit orbit2() const
Return secondary orbit.
Definition: Baseline.h:57
double sinLook() const
Get sin of look angle.
Definition: Baseline.h:33
void initBasis(double)
For a given time, calculate an orthogonal basis for cross-track and velocity directions for orbit1...
Definition: Baseline.cpp:26

Generated for ISCE3.0 by doxygen 1.8.5.