2024-11-25 01:30:14 +00:00
# pragma once
/*****************************************************************/ /**
* \ file SARSatelliteSimulationAbstractCls . h
* \ brief <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> SAR <EFBFBD> <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е ó <EFBFBD> <EFBFBD> <EFBFBD> ģ <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ Щ <EFBFBD> <EFBFBD> <EFBFBD> õ Ľ ṹ <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*
* 1. <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ״ ̬
* 2. <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> ״ ̬ <EFBFBD> <EFBFBD> ɨ <EFBFBD> <EFBFBD> <EFBFBD> ǡ <EFBFBD> ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* 3. <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ߷ <EFBFBD> <EFBFBD> <EFBFBD> ͼ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> Ϊ 0 <EFBFBD> ȣ <EFBFBD> Z - > Y <EFBFBD> <EFBFBD> theta , X - > Y phi )
* 4. <EFBFBD> <EFBFBD> <EFBFBD> Dz <EFBFBD> <EFBFBD> <EFBFBD> ( Ƶ <EFBFBD> ʡ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ <EFBFBD> 䡢 PRF <EFBFBD> <EFBFBD> Fs )
* <EFBFBD> <EFBFBD> <EFBFBD> ߷ <EFBFBD> <EFBFBD> <EFBFBD> ͼ <EFBFBD> <EFBFBD> phi = 0 <EFBFBD> <EFBFBD> X <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> £ <EFBFBD> <EFBFBD> <EFBFBD> ʱ G ( phi ) > G ( theta ) <EFBFBD> <EFBFBD> G ( V ) > G ( H ) ˮ ƽ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> ߷ <EFBFBD> <EFBFBD> <EFBFBD> ͼ <EFBFBD> <EFBFBD> phi = 90 <EFBFBD> <EFBFBD> y <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> £ <EFBFBD> <EFBFBD> <EFBFBD> ʱ G ( phi ) < G ( theta ) <EFBFBD> <EFBFBD> G ( V ) < G ( H ) <EFBFBD> <EFBFBD> ֱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* \ author <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* \ date October 2024
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# include "BaseConstVariable.h"
# include "LogInfoCls.h"
# include <QString>
# include <vector>
# include <Eigen/Core>
# include <Eigen/Dense>
# include "GeoOperator.h"
2025-02-06 13:18:25 +00:00
2024-11-25 01:30:14 +00:00
/// <summary>
/// <20> <> <EFBFBD> ߷<EFBFBD> <DFB7> <EFBFBD> ͼ<EFBFBD> Ļ<EFBFBD> ȡ
2024-12-20 15:38:34 +00:00
/// ע<> <D7A2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʹ <EFBFBD> <CAB9> ˫<> <CBAB> <EFBFBD> Բ<EFBFBD> ֵ
2024-11-25 01:30:14 +00:00
/// </summary>
class AbstractRadiationPattern {
public :
AbstractRadiationPattern ( ) ;
virtual ~ AbstractRadiationPattern ( ) ;
public :
2024-12-20 15:38:34 +00:00
virtual double getGain ( double theta , double phi ) ;
2024-11-25 01:30:14 +00:00
virtual std : : vector < RadiationPatternGainPoint > getGainList ( ) ;
virtual ErrorCode getGain ( double & theta , double & phi , double & GainValue ) ;
virtual ErrorCode getGainLinear ( double & theta , double & phi , double & GainValue ) ;
2024-11-29 15:32:50 +00:00
double getGainLearThetaPhi ( double theta , double phi ) ;
2024-12-20 15:38:34 +00:00
virtual ErrorCode setGain ( double theta , double phi , double GainValue ) ;
2024-11-25 01:30:14 +00:00
virtual ErrorCode RecontructGainMatrix ( double threshold = - 3 ) ;
virtual std : : vector < double > getThetas ( ) ;
virtual std : : vector < double > getPhis ( ) ;
virtual Eigen : : MatrixXd getGainMatrix ( ) ;
2024-11-30 13:05:44 +00:00
virtual double getMaxTheta ( ) ;
virtual double getMinTheta ( ) ;
virtual double getMaxPhi ( ) ;
virtual double getMinPhi ( ) ;
2024-11-25 01:30:14 +00:00
private :
std : : vector < RadiationPatternGainPoint > GainMap ; // <20> <> <EFBFBD> ߷<EFBFBD> <DFB7> <EFBFBD> ͼ
std : : vector < double > thetas ;
std : : vector < double > phis ;
Eigen : : MatrixXd GainMatrix ;
double maxGain , maxThetaGain , maxPhiGain ;
double mintheta , maxtheta , minphi , maxphi ;
double EdgethetaMin , EdgethetaMax ;
double EdgeXMin , EdgeXMax ;
} ;
/// <summary>
/// <20> <> <EFBFBD> ǹ<EFBFBD> <C7B9> <EFBFBD> ģ<EFBFBD> ͣ<EFBFBD> <CDA3> <EFBFBD> <EFBFBD> <EFBFBD> ̬<EFBFBD> <CCAC> <EFBFBD> <EFBFBD>
/// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ر<EFBFBD> ˵<EFBFBD> <CBB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> нǶȶ<C7B6> <C8B6> ǻ<EFBFBD> <C7BB> <EFBFBD> <EFBFBD> <EFBFBD>
/// <20> <> <EFBFBD> <EFBFBD> û<EFBFBD> <C3BB> <EFBFBD> ر<EFBFBD> ˵<EFBFBD> <CBB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ϵ<EFBFBD> ο <EFBFBD> GF3:
/// <20> <> <EFBFBD> <EFBFBD> չ<EFBFBD> <D5B9> <EFBFBD> ŷ<EFBFBD> <C5B7> <EFBFBD> <EFBFBD> <EFBFBD> ΪX<CEAA> ᣬ
/// X<> ᶨ<EFBFBD> <E1B6A8> Ϊ<EFBFBD> <CEAA> <20> <> <EFBFBD> ߰ڶ<DFB0> <DAB6> <EFBFBD> Ϊ0ʱ<30> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ<EFBFBD> <C7B7> з<EFBFBD> <D0B7> <EFBFBD>
/// Z<> ᶨ<EFBFBD> <E1B6A8> Ϊ<EFBFBD> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Z<> <5A> Ӧ<EFBFBD> <D3A6> Ϊ<EFBFBD> <CEAA> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// H <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ <20> <> ֱ<EFBFBD> <D6B1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Z->X ƽ <> <C6BD>
/// V <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ ˮƽ <CBAE> <C6BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Z->Y ƽ <> <C6BD>
/// -Z
/// |
/// [=====]X<---Y---[======]
/// _
/// ___
/// _____
/// _________
///
///
///
/// -Z
/// ^
/// |
/// X<-Fly-Y
/// _
/// ___
/// _______
///
/// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/// <20> <> <EFBFBD> <EFBFBD> (+<2B> <> <20> <> <EFBFBD> ӣ<EFBFBD> -<2D> <>
/// Z Z Z
/// ^ \ /
/// | \ /
/// x<--O--- x<--O--- x<--O---
/// | |\ /|
/// \ /
///
///
/// X=Y x Z <20> ڶ<EFBFBD> <DAB6> <EFBFBD> (-<2D> <> <20> ڶ<EFBFBD> <DAB6> ǣ<EFBFBD> +<2B> <>
/// Z Z Z
/// ^ \ /
/// | \ /
/// y<--X--- y<--X--- y<--X---
/// | |\ /|
/// \ /
/// ע<> <D7A2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> 䰴<EFBFBD> ա <EFBFBD> <D5A1> ϳ ɿ<C9BF> <D7BE> ״<EFBFBD> <D7B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㷨<EFBFBD> <E3B7A8> ʵ<EFBFBD> ֣<EFBFBD> cumming<6E> <67> <EFBFBD> У <EFBFBD> ǰ<EFBFBD> <C7B0> Ϊ - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ +
///
/// </summary>
class AbstractSatelliteOribtModel {
public :
virtual ~ AbstractSatelliteOribtModel ( ) ;
public : // <20> <> <EFBFBD> ǹ<EFBFBD> <C7B9> <EFBFBD> <EFBFBD> ڵ<EFBFBD>
virtual SatelliteOribtNode getSatelliteOribtNode ( double & timeFromStartTime , bool & antAzAngleFlag ) ; // <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> ڵ<EFBFBD>
virtual ErrorCode getSatelliteOribtNode ( double & timeFromStartTime , SatelliteOribtNode & node , bool & antAzAngleFlag ) ; // <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> ڵ<EFBFBD>
virtual ErrorCode getSatelliteAntDirectNormal ( SatelliteOribtNode & Rs , Vector3D & Rt , SatelliteAntDirect & antNode ) ; // <20> <> <EFBFBD> <EFBFBD> Ŀ<EFBFBD> <C4BF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ߷<EFBFBD> <DFB7> <EFBFBD> ͼ<EFBFBD> е <EFBFBD> λ<EFBFBD> <CEBB>
public : // <20> <> <EFBFBD> ǹ<EFBFBD> <C7B9> <EFBFBD> ģ<EFBFBD> ͵IJο <C4B2> ʱ<EFBFBD> <CAB1> <EFBFBD> ڵ<EFBFBD>
virtual void setSatelliteOribtStartTime ( long double oribtStartTime ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ģ<EFBFBD> Ͳο <CDB2> ʱ<EFBFBD> <CAB1>
virtual long double getSatelliteOribtStartTime ( ) ; // <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> ģ<EFBFBD> Ͳο <CDB2> ʱ<EFBFBD> <CAB1>
public : // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ز<EFBFBD> <D8B2> <EFBFBD>
virtual void setbeamAngle ( double beamAngle , bool RightLook ) ; // <20> <> <EFBFBD> ò<EFBFBD> λ<EFBFBD> <CEBB>
public : // <20> <> <EFBFBD> ߰ڶ<DFB0> <DAB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ز<EFBFBD> <D8B2> <EFBFBD>
virtual void setAzAngleRange ( double cycletime , double minAzAngle , double maxAzAngle , double referenceAzAngle , double referenceTimeFromStartTime ) ; //<2F> <> λ<EFBFBD> DZ任ѭ<E4BBBB> <D1AD> ʱ<EFBFBD> <CAB1> ;<3B> <> λ<EFBFBD> DZ任<C7B1> <E4BBBB> Χ <EFBFBD> <CEA7> <20> ض<EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> ķ<EFBFBD> λ<EFBFBD> ǣ<EFBFBD> <C7A3> <EFBFBD> <EFBFBD> ڼ<EFBFBD> <DABC> 㷽λ<E3B7BD> DZ仯<C7B1> <E4BBAF> <EFBFBD> <EFBFBD>
virtual double getAzAngleInCurrentTimeFromStartTime ( double & currentTime ) ; // <20> <> ȡ<EFBFBD> <C8A1> ǰʱ<C7B0> <CAB1> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ߰ڶ<DFB0> <DAB6> <EFBFBD>
virtual ErrorCode getAzAngleInCurrentTimeFromStartTime ( double & currentTime , double & AzAngle ) ; // <20> <> ȡ<EFBFBD> <C8A1> ǰʱ<C7B0> <CAB1> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ߰ڶ<DFB0> <DAB6> <EFBFBD>
public : // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭʼ <D4AD> <CABC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> µ<EFBFBD> <C2B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ϵ<EFBFBD> ĵ<EFBFBD> <C4B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ȼ<EFBFBD> <C8BB> <EFBFBD> <EFBFBD> -Z <20> <> Ϊ <20> <> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
virtual void setAntnnaAxisX ( double X , double Y , double Z ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X<EFBFBD> <58> ָ<EFBFBD> <D6B8>
virtual void setAntnnaAxisY ( double X , double Y , double Z ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X<EFBFBD> <58> ָ<EFBFBD> <D6B8>
virtual void setAntnnaAxisZ ( double X , double Y , double Z ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> X<EFBFBD> <58> ָ<EFBFBD> <D6B8>
2024-11-25 17:51:20 +00:00
virtual ErrorCode getZeroDopplerAntDirect ( SatelliteOribtNode & node ) ; // <20> <> ȡ0<C8A1> <30> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ߷<EFBFBD> <DFB7> <EFBFBD>
2024-11-25 01:30:14 +00:00
virtual ErrorCode getAntnnaDirection ( SatelliteOribtNode & node ) ; // <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
public :
virtual double getPt ( ) ;
virtual double getGri ( ) ;
virtual void setPt ( double Pt ) ;
virtual void setGri ( double gri ) ;
} ;
/// <summary>
/// SAR<41> <52> <EFBFBD> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϣ
/// 1. <20> <> <EFBFBD> <EFBFBD> ϵͳΪ WGS84<38> <34> <EFBFBD> <EFBFBD> <EFBFBD> 굥λ<EAB5A5> <CEBB> <20> ף<EFBFBD> ʱ<EFBFBD> 䵥λ<E4B5A5> ǣ<EFBFBD> <20> <>
/// 2. ע<> <D7A2> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> ˵PRFͼ<46> <CDBC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> أ<EFBFBD> Fs <20> <> ͼ<> <CDBC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ص<EFBFBD>
/// 3.
/// </summary>
class AbstractSARSatelliteModel
{
public : // <20> <> <EFBFBD> <EFBFBD> ģ<EFBFBD> <C4A3>
virtual SatelliteOribtNode getSatelliteOribtNode ( double & timeFromStartTime , bool & antAzAngleFlag ) ; // <20> <> <EFBFBD> ù<EFBFBD> <C3B9> <EFBFBD> <EFBFBD> ڵ㣬
virtual ErrorCode getSatelliteOribtNode ( double & timeFromStartTime , SatelliteOribtNode & node , bool & antAzAngleFlag ) ; // <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> ڵ<EFBFBD>
virtual ErrorCode getSatelliteAntDirectNormal ( SatelliteOribtNode & Rs , Vector3D & Rt , SatelliteAntDirect & antNode ) ; // <20> <> <EFBFBD> <EFBFBD> Ŀ<EFBFBD> <C4BF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ߷<EFBFBD> <DFB7> <EFBFBD> ͼ<EFBFBD> е <EFBFBD> λ<EFBFBD> <CEBB>
virtual void setSatelliteOribtModel ( std : : shared_ptr < AbstractSatelliteOribtModel > model ) ; // <20> <> <EFBFBD> ù<EFBFBD> <C3B9> <EFBFBD> ģ<EFBFBD> <C4A3>
public : // Ӱ<> <D3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
virtual void setSARImageStartTime ( long double imageStartTime ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʼ ʱ<CABC> <CAB1>
virtual void setSARImageEndTime ( long double imageEndTime ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
virtual double getSARImageStartTime ( ) ;
virtual double getSARImageEndTime ( ) ;
virtual double getNearRange ( ) ; // <20> <> б <EFBFBD> <D0B1> -- <20> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
virtual void setNearRange ( double NearRange ) ;
virtual double getFarRange ( ) ; // <20> <> Զб <D4B6> <D0B1>
virtual void setFarRange ( double FarRange ) ;
virtual bool getIsRightLook ( ) ; // <20> Ƿ<EFBFBD> <C7B7> <EFBFBD> <EFBFBD> <EFBFBD>
virtual void setIsRightLook ( bool isR ) ;
public : // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
virtual void setCenterFreq ( double Freq ) ; // <20> <> <EFBFBD> <EFBFBD> Ƶ<EFBFBD> <C6B5>
virtual double getCenterFreq ( ) ;
virtual void setCenterLamda ( double Lamda ) ; // <20> <> <EFBFBD> <EFBFBD>
virtual double getCenterLamda ( ) ;
virtual void setBandWidth ( double bandwidth ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Χ
virtual double getBandWidth ( ) ;
2025-01-02 10:53:33 +00:00
virtual QVector < double > getFreqList ( ) ; // <20> <> ȡƵ<C8A1> <C6B5> <EFBFBD> б <EFBFBD>
2025-01-06 11:56:45 +00:00
virtual void setRefphaseRange ( double refRange ) ;
virtual double getRefphaseRange ( ) ;
2025-01-02 10:53:33 +00:00
2024-11-25 01:30:14 +00:00
virtual POLARTYPEENUM getPolarType ( ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
virtual void setPolarType ( POLARTYPEENUM type ) ;
public : // <20> <> <EFBFBD> <EFBFBD> PRF<52> <46> FS
virtual void setPRF ( double prf ) ; // <20> <> λ<EFBFBD> <CEBB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƶ<EFBFBD> <C6B5>
virtual double getPRF ( ) ;
virtual double getFs ( ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƶ<EFBFBD> <C6B5>
2025-02-20 04:13:04 +00:00
virtual void setFs ( double fs ) ;
2024-11-25 01:30:14 +00:00
virtual double getCenterLookAngle ( ) ;
virtual void setCenterLookAngle ( double angle ) ;
public : // <20> <> <EFBFBD> ߷<EFBFBD> <DFB7> <EFBFBD> ͼ
virtual void setTransformRadiationPattern ( std : : shared_ptr < AbstractRadiationPattern > radiationPanttern ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ䷽<EFBFBD> <E4B7BD> ͼ
virtual void setReceiveRadiationPattern ( std : : shared_ptr < AbstractRadiationPattern > radiationPanttern ) ; // V <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> շ<EFBFBD> <D5B7> <EFBFBD> ͼ
virtual std : : shared_ptr < AbstractRadiationPattern > getTransformRadiationPattern ( ) ; // H <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ䷽<EFBFBD> <E4B7BD> ͼ
virtual std : : shared_ptr < AbstractRadiationPattern > getReceiveRadiationPattern ( ) ; // V <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ䷽<EFBFBD> <E4B7BD> ͼ
public :
virtual double getPt ( ) ;
virtual double getGri ( ) ;
virtual void setPt ( double Pt ) ;
virtual void setGri ( double gri ) ;
2025-02-17 09:13:18 +00:00
private :
2025-03-25 03:23:14 +00:00
double refRangePhase ;
2025-02-17 09:13:18 +00:00
double DopplerParametersReferenceTime ;
std : : vector < double > DopplerCentroidCoefficients ;
std : : vector < double > DopplerRateValuesCoefficients ;
public :
virtual double getDopplerParametersReferenceTime ( ) ;
virtual void setDopplerParametersReferenceTime ( double time ) ;
virtual std : : vector < double > getDopplerCentroidCoefficients ( ) ;
virtual void setDopplerCentroidCoefficients ( std : : vector < double > DopplerCentroids ) ;
virtual std : : vector < double > getDopplerRateValuesCoefficients ( ) ;
virtual void setDopplerRateValuesCoefficients ( std : : vector < double > DopplerRateValues ) ;
2024-11-25 01:30:14 +00:00
} ;
/** ͨ<> ú<EFBFBD> <C3BA> <EFBFBD> ************************************************************************** */
/// <summary>
/// <20> <> xml<6D> ļ<EFBFBD> <C4BC> ж<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> Ǽ<EFBFBD> <C7BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ<EFBFBD>
/// </summary>
/// <param name="xmlPath"></param>
/// <param name="nodes"></param>
/// <returns></returns>
ErrorCode ReadSateGPSPointsXML ( QString xmlPath , std : : vector < SatelliteOribtNode > & nodes ) ;
std : : vector < SatelliteOribtNode > FilterSatelliteOribtNode ( std : : vector < SatelliteOribtNode > & nodes , double startTime , double endTime , long minCount = 10 ) ;
std : : shared_ptr < AbstractRadiationPattern > CreateAbstractRadiationPattern ( std : : vector < RadiationPatternGainPoint > antPatternPoints ) ;
std : : vector < RadiationPatternGainPoint > ReadGainFile ( QString antPatternFilePath ) ;
/** <20> <> <EFBFBD> ߷<EFBFBD> <DFB7> <EFBFBD> ͼ<EFBFBD> ļ<EFBFBD> չʾ ********************************************************************** */
/** <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƶ<EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ********************************************************************** */
/**
* <EFBFBD> ο <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> ϳ ɿ <EFBFBD> <EFBFBD> ״ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㷨 <EFBFBD> <EFBFBD> ʵ <EFBFBD> ֣ <EFBFBD> cumming <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ϳ ɿ <EFBFBD> <EFBFBD> ĸ <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> ״ <EFBFBD> <EFBFBD> ź Ŵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Mark A . Richards , <EFBFBD> <EFBFBD> <EFBFBD> ϵ <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> ϳ ɿ <EFBFBD> <EFBFBD> ״ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƥ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* InSAR ԭ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ <EFBFBD> ã <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> SAR <EFBFBD> ز <EFBFBD> <EFBFBD> ź ŷ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> о <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֽ <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> غ ϳ ɿ <EFBFBD> <EFBFBD> ״ <EFBFBD> ԭ ʼ <EFBFBD> ز <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ģ <EFBFBD> <EFBFBD> <EFBFBD> о <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* SAR <EFBFBD> ز <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ź <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 㷨 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ܱ Ƚ <EFBFBD> <EFBFBD> о <EFBFBD> <EFBFBD> <EFBFBD> Τ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> غ ϳ ɿ <EFBFBD> <EFBFBD> ״ <EFBFBD> Ӱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> У <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> о <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ¶ <EFBFBD> ѧ
* ע <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ռ <EFBFBD> <EFBFBD> 㹫 ʽ <EFBFBD> <EFBFBD> <EFBFBD> ¶ <EFBFBD> ѧ <EFBFBD> Ķ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ռ <EFBFBD> <EFBFBD> 㹫 ʽ <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> 죬 <EFBFBD> м <EFBFBD> ʡ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ Щ <EFBFBD> 任 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* .
*/
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƶ<EFBFBD> <C6B5>
double getDopplerCenterFreq ( double & lamda , double & R , Vector3D & Rs , Vector3D & Rt , Vector3D & Vs , Vector3D & Vt ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> յ<EFBFBD> Ƶ<EFBFBD> ʣ<EFBFBD> б <EFBFBD> ʣ<EFBFBD>
double getDopplerFreqRate ( double & lamda , double & R , Vector3D & Rs , Vector3D & Rt , Vector3D & Vs , Vector3D & Vt , Vector3D & Ast ) ;
2025-01-27 03:37:46 +00:00