Skip to content
Snippets Groups Projects
Commit 509f0152 authored by Guillaume Borrut's avatar Guillaume Borrut
Browse files

SARPolarimetrie : Passage de DTOR en variable locale

parent 7b490e9d
No related branches found
No related tags found
No related merge requests found
......@@ -182,10 +182,7 @@ private :
ComplexArrayType m_Ei;
/** Champs Electromagnetic Reflechi */
ComplexArrayType m_Er;
/** Conversion coefficient Degre To Radian */
static const double m_DTOR=M_PI/180;
/** Architecture Type */
int m_ArchitectureType;
......
......@@ -259,17 +259,20 @@ MultiChannelsPolarimetricSynthesisFilter<TInputImage,TOutputImage,TFunction>
ComplexType Ei0,Ei1,Er0,Er1;
ComplexArrayType AEi, AEr;
Ei0.real() = vcl_cos(m_DTOR*m_PsiI)*vcl_cos(m_DTOR*m_TauI);
Ei0.imag() = -vcl_sin(m_DTOR*m_PsiI)*vcl_sin(m_DTOR*m_TauI);
/** Conversion coefficient Degre To Radian */
double DTOR=M_PI/180;
Ei0.real() = vcl_cos(DTOR*m_PsiI)*vcl_cos(DTOR*m_TauI);
Ei0.imag() = -vcl_sin(DTOR*m_PsiI)*vcl_sin(DTOR*m_TauI);
Ei1.real() = vcl_sin(m_DTOR*m_PsiI)*vcl_cos(m_DTOR*m_TauI);
Ei1.imag() = vcl_cos(m_DTOR*m_PsiI)*vcl_sin(m_DTOR*m_TauI);
Ei1.real() = vcl_sin(DTOR*m_PsiI)*vcl_cos(DTOR*m_TauI);
Ei1.imag() = vcl_cos(DTOR*m_PsiI)*vcl_sin(DTOR*m_TauI);
Er0.real() = vcl_cos(m_DTOR*m_PsiR)*vcl_cos(m_DTOR*m_TauR);
Er0.imag() = -vcl_sin(m_DTOR*m_PsiR)*vcl_sin(m_DTOR*m_TauR);
Er0.real() = vcl_cos(DTOR*m_PsiR)*vcl_cos(DTOR*m_TauR);
Er0.imag() = -vcl_sin(DTOR*m_PsiR)*vcl_sin(DTOR*m_TauR);
Er1.real() = vcl_sin(m_DTOR*m_PsiR)*vcl_cos(m_DTOR*m_TauR);
Er1.imag() = vcl_cos(m_DTOR*m_PsiR)*vcl_sin(m_DTOR*m_TauR);
Er1.real() = vcl_sin(DTOR*m_PsiR)*vcl_cos(DTOR*m_TauR);
Er1.imag() = vcl_cos(DTOR*m_PsiR)*vcl_sin(DTOR*m_TauR);
AEi[0]=Ei0;
AEi[1]=Ei1;
......@@ -294,7 +297,7 @@ MultiChannelsPolarimetricSynthesisFilter<TInputImage,TOutputImage,TFunction>
std::cout<<"Er1 im: "<<m_Er[1].imag()<<std::endl;
std::cout<<"Er1 re: "<<m_Er[1].real()<<std::endl;
std::cout<<"DTOR: "<<m_DTOR<<std::endl;
std::cout<<"DTOR: "<<DTOR<<std::endl;
}
/**
......
......@@ -99,7 +99,11 @@ public:
this->GetFunctor().SetEr(er);
this->Modified();
}
void ForceCoPolar();
void ForceCrossPolar();
protected:
PolarimetricSynthesisFilter();
virtual ~PolarimetricSynthesisFilter() {};
......@@ -115,7 +119,7 @@ protected:
/** Verify and force the inputs, if only 2 or 3 channels are present */
void VerifyAndForceInputs();
void PrintSelf(std::ostream& os, itk::Indent indent) const;
private:
......@@ -131,15 +135,16 @@ private:
double m_PsiR;
/** Tau Reflected */
double m_TauR;
/** Emission mode */
bool m_EmissionH;
bool m_EmissionV;
/** Champs Electromagnetic Incident */
ComplexArrayType m_Ei;
/** Champs Electromagnetic Reflechi */
ComplexArrayType m_Er;
/** Conversion coefficient Degre To Radian */
static const double m_DTOR=M_PI/180;
};
} // end namespace otb
......
......@@ -91,6 +91,30 @@ PolarimetricSynthesisFilter<TInputImageHH,TInputImageHV,TInputImageVH,TInputImag
Superclass::PrintSelf(os,indent);
}
/**
* Force Copolar mode
*/
template <class TInputImageHH,class TInputImageHV,class TInputImageVH,class TInputImageVV,class TOutputImage,class TFunction >
void
PolarimetricSynthesisFilter<TInputImageHH,TInputImageHV,TInputImageVH,TInputImageVV,TOutputImage,TFunction>
::ForceCoPolar()
{
this->SetPsiR(m_PsiI);
this->SetTauR(m_TauI);
}
/**
* Force Crosspolar mode
*/
template <class TInputImageHH,class TInputImageHV,class TInputImageVH,class TInputImageVV,class TOutputImage,class TFunction >
void
PolarimetricSynthesisFilter<TInputImageHH,TInputImageHV,TInputImageVH,TInputImageVV,TOutputImage,TFunction>
::ForceCrossPolar()
{
this->SetPsiR(m_PsiI+90);
this->SetTauR(-m_TauI);
}
/**
* Computation of the electromagnetic fields Ei Er
*/
......@@ -102,17 +126,20 @@ PolarimetricSynthesisFilter<TInputImageHH,TInputImageHV,TInputImageVH,TInputImag
ComplexType Ei0,Ei1,Er0,Er1;
ComplexArrayType AEi, AEr;
Ei0.real() = vcl_cos(m_DTOR*m_PsiI)*vcl_cos(m_DTOR*m_TauI);
Ei0.imag() = -vcl_sin(m_DTOR*m_PsiI)*vcl_sin(m_DTOR*m_TauI);
/** Conversion coefficient Degre To Radian */
double DTOR=M_PI/180;
Ei0.real() = vcl_cos(DTOR*m_PsiI)*vcl_cos(DTOR*m_TauI);
Ei0.imag() = -vcl_sin(DTOR*m_PsiI)*vcl_sin(DTOR*m_TauI);
Ei1.real() = vcl_sin(m_DTOR*m_PsiI)*vcl_cos(m_DTOR*m_TauI);
Ei1.imag() = vcl_cos(m_DTOR*m_PsiI)*vcl_sin(m_DTOR*m_TauI);
Ei1.real() = vcl_sin(DTOR*m_PsiI)*vcl_cos(DTOR*m_TauI);
Ei1.imag() = vcl_cos(DTOR*m_PsiI)*vcl_sin(DTOR*m_TauI);
Er0.real() = vcl_cos(m_DTOR*m_PsiR)*vcl_cos(m_DTOR*m_TauR);
Er0.imag() = -vcl_sin(m_DTOR*m_PsiR)*vcl_sin(m_DTOR*m_TauR);
Er0.real() = vcl_cos(DTOR*m_PsiR)*vcl_cos(DTOR*m_TauR);
Er0.imag() = -vcl_sin(DTOR*m_PsiR)*vcl_sin(DTOR*m_TauR);
Er1.real() = vcl_sin(m_DTOR*m_PsiR)*vcl_cos(m_DTOR*m_TauR);
Er1.imag() = vcl_cos(m_DTOR*m_PsiR)*vcl_sin(m_DTOR*m_TauR);
Er1.real() = vcl_sin(DTOR*m_PsiR)*vcl_cos(DTOR*m_TauR);
Er1.imag() = vcl_cos(DTOR*m_PsiR)*vcl_sin(DTOR*m_TauR);
AEi[0]=Ei0;
AEi[1]=Ei1;
......@@ -137,7 +164,7 @@ PolarimetricSynthesisFilter<TInputImageHH,TInputImageHV,TInputImageVH,TInputImag
std::cout<<"Er1 im: "<<m_Er[1].imag()<<std::endl;
std::cout<<"Er1 re: "<<m_Er[1].real()<<std::endl;
std::cout<<"DTOR: "<<m_DTOR<<std::endl;
std::cout<<"DTOR: "<<DTOR<<std::endl;
}
/**
......@@ -216,7 +243,7 @@ PolarimetricSynthesisFilter<TInputImageHH,TInputImageHV,TInputImageVH,TInputImag
if ( ( this->GetInput(0)!=0 && this->GetInput(1)!=0 ) &&
( this->GetInput(2)==0 && this->GetInput(3)==0 ) )
{
// Forcing HH and HV to zero
// Forcing VH and VV to zero
typename VVInputImageType::Pointer inputVV = TInputImageVV::New();
typename VHInputImageType::Pointer inputVH = TInputImageVH::New();
typename VHInputImageType::IndexType start;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment