计算成像平面
parent
bcaeb8fe7a
commit
3dd749c414
|
@ -353,7 +353,7 @@ void EchoL0Dataset::setRefPhaseRange(double refRange)
|
|||
this->refPhaseRange = refRange;
|
||||
}
|
||||
|
||||
double EchoL0Dataset::setRefPhaseRange()
|
||||
double EchoL0Dataset::getRefPhaseRange()
|
||||
{
|
||||
return this->refPhaseRange;
|
||||
}
|
||||
|
|
|
@ -159,7 +159,7 @@ public: //
|
|||
SatelliteAntPos getSatelliteAntPos(long plusePRFID);
|
||||
|
||||
void setRefPhaseRange(double refRange);
|
||||
double setRefPhaseRange();
|
||||
double getRefPhaseRange();
|
||||
// 打印信息的成员函数
|
||||
void printInfo() ;
|
||||
|
||||
|
|
|
@ -230,14 +230,14 @@ __global__ void CUDA_Kernel_Computer_R_amp(
|
|||
antVector.phi = antVector.phi * r2d;
|
||||
//printf("theta: %f , phi: %f \n", antVector.theta, antVector.phi);
|
||||
if (antVector.Rho > 0) {
|
||||
double TansantPatternGain = GPU_BillerInterpAntPattern(
|
||||
TransAntpattern,
|
||||
Transtarttheta, Transstartphi, Transdtheta, Transdphi, Transthetapoints, Transphipoints,
|
||||
antVector.theta, antVector.phi);
|
||||
double antPatternGain = GPU_BillerInterpAntPattern(
|
||||
ReceiveAntpattern,
|
||||
Receivestarttheta, Receivestartphi, Receivedtheta, Receivedphi, Receivethetapoints, Receivephipoints,
|
||||
antVector.theta, antVector.phi);
|
||||
//double TansantPatternGain = GPU_BillerInterpAntPattern(
|
||||
// TransAntpattern,
|
||||
// Transtarttheta, Transstartphi, Transdtheta, Transdphi, Transthetapoints, Transphipoints,
|
||||
// antVector.theta, antVector.phi);
|
||||
//double antPatternGain = GPU_BillerInterpAntPattern(
|
||||
// ReceiveAntpattern,
|
||||
// Receivestarttheta, Receivestartphi, Receivedtheta, Receivedphi, Receivethetapoints, Receivephipoints,
|
||||
// antVector.theta, antVector.phi);
|
||||
|
||||
double sigma0 = 0;
|
||||
{
|
||||
|
@ -260,7 +260,8 @@ __global__ void CUDA_Kernel_Computer_R_amp(
|
|||
sigma0 = powf(10.0, sigma / 10.0);
|
||||
}
|
||||
}
|
||||
ampGain = TansantPatternGain * antPatternGain;
|
||||
//ampGain = TansantPatternGain * antPatternGain;
|
||||
ampGain = 1;
|
||||
//if (10 * log10(ampGain / maxReceiveAntPatternValue / maxTransAntPatternValue) < -3) { // СÓÚ-3dB
|
||||
// d_temp_R[idx] = 0;
|
||||
// d_temp_amps[idx] = 0;
|
||||
|
|
|
@ -301,6 +301,7 @@ ErrorCode RFPCProcessCls::Process(long num_thread)
|
|||
//stateCode = this->RFPCMainProcess(num_thread);
|
||||
// 初始化回波
|
||||
this->EchoSimulationData->initEchoArr(std::complex<double>(0, 0));
|
||||
|
||||
stateCode = this->RFPCMainProcess_GPU();
|
||||
|
||||
if (stateCode != ErrorCode::SUCCESS) {
|
||||
|
@ -343,6 +344,7 @@ ErrorCode RFPCProcessCls::InitParams()
|
|||
this->EchoSimulationData->setCenterAngle(this->TaskSetting->getCenterLookAngle());
|
||||
this->EchoSimulationData->setLookSide(this->TaskSetting->getIsRightLook() ? "R" : "L");
|
||||
this->EchoSimulationData->OpenOrNew(OutEchoPath, TaskFileName, PluseCount, PlusePoint);
|
||||
this->EchoSimulationData->setRefPhaseRange(this->TaskSetting->getRefphaseRange());
|
||||
|
||||
QString tmpfolderPath = QDir(OutEchoPath).filePath("tmp");
|
||||
if (QDir(tmpfolderPath).exists() == false) {
|
||||
|
@ -466,6 +468,7 @@ void RFPCProcessMain(long num_thread,
|
|||
qDebug() << "POLAR: " << task->getPolarType();
|
||||
qDebug() << "NearRange: " << task->getNearRange();
|
||||
qDebug() << "FarRange: " << task->getFarRange();
|
||||
qDebug() << "RefRange: " << task->getRefphaseRange();
|
||||
qDebug() << (task->getFarRange() - task->getNearRange()) * 2 / LIGHTSPEED * task->getFs();
|
||||
qDebug() << "\n\n";
|
||||
}
|
||||
|
|
|
@ -24,9 +24,10 @@ void CreatePixelXYZ(std::shared_ptr<EchoL0Dataset> echoL0ds, QString outPixelXYZ
|
|||
gt(1, 2) = 1;
|
||||
gdalImage xyzRaster = CreategdalImage(outPixelXYZPath, prfcount, freqcount, 3, gt, QString(""), false, true,true);
|
||||
std::shared_ptr<double> antpos = echoL0ds->getAntPos();
|
||||
double dx = LIGHTSPEED / 2 / echoL0ds->getFs();
|
||||
double dx = (echoL0ds->getFarRange()-echoL0ds->getNearRange())/(echoL0ds->getPlusePoints()-1);
|
||||
double Rnear = echoL0ds->getNearRange();
|
||||
|
||||
double Rref = echoL0ds->getRefPhaseRange();
|
||||
double centerInc = echoL0ds->getCenterAngle()*d2r;
|
||||
long echocol = 1073741824 / 8 / 4 / prfcount*8;
|
||||
std::cout << "echocol:\t " << echocol << std::endl;
|
||||
echocol = echocol < 3000 ? 3000 : echocol;
|
||||
|
@ -56,7 +57,7 @@ void CreatePixelXYZ(std::shared_ptr<EchoL0Dataset> echoL0ds, QString outPixelXYZ
|
|||
double R = 0;
|
||||
double NormAnt = 0;
|
||||
|
||||
Px = antpos.get()[i * 19 + 1];
|
||||
Px = antpos.get()[i * 19 + 1]; // 卫星坐标
|
||||
Py = antpos.get()[i * 19 + 2];
|
||||
Pz = antpos.get()[i * 19 + 3];
|
||||
AntDirectX = antpos.get()[i * 19 + 13];// zero doppler
|
||||
|
@ -67,11 +68,41 @@ void CreatePixelXYZ(std::shared_ptr<EchoL0Dataset> echoL0ds, QString outPixelXYZ
|
|||
AntDirectX = AntDirectX / NormAnt;
|
||||
AntDirectY = AntDirectY / NormAnt;
|
||||
AntDirectZ = AntDirectZ / NormAnt;// ¹éÒ»»¯
|
||||
|
||||
// 计算中心参考点
|
||||
double centerX = Px + Rref * AntDirectX; // T1
|
||||
double centerY = Py + Rref * AntDirectY;
|
||||
double centerZ = Pz + Rref * AntDirectZ;
|
||||
|
||||
|
||||
double satH = Rref * std::cos(centerInc); // 卫星高
|
||||
|
||||
double PR = sqrt(Px * Px + Py * Py + Pz * Pz);
|
||||
|
||||
double satR = PR - satH;
|
||||
double sPx = satR / PR * Px;
|
||||
double sPy = satR / PR * Py;
|
||||
double sPz = satR / PR * Pz;
|
||||
|
||||
|
||||
double dTSx = sPx - centerX;
|
||||
double dTSy = sPy - centerY;
|
||||
double dTSz = sPz - centerZ;
|
||||
|
||||
double dTSR = sqrt(dTSx * dTSx + dTSy * dTSy + dTSz * dTSz);
|
||||
dTSx=dTSx/dTSR;
|
||||
dTSy=dTSy/dTSR;
|
||||
dTSz=dTSz/dTSR;
|
||||
|
||||
for (long j = 0; j < tempechocol; j++) {
|
||||
R = (j + startcolidx)*dx + Rnear;
|
||||
demx(i,j) = Px + AntDirectX * R;
|
||||
demy(i,j) = Py + AntDirectY * R;
|
||||
demz(i,j) = Pz + AntDirectZ * R;
|
||||
|
||||
double dRp = (Rref - R) / sin(centerInc); // -- 0 +++
|
||||
|
||||
|
||||
demx(i,j) = centerX + dTSx * dRp;
|
||||
demy(i,j) = centerY + dTSy * dRp;
|
||||
demz(i,j) = centerZ + dTSz * dRp;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -202,6 +233,7 @@ ErrorCode TBPImageAlgCls::ProcessGPU()
|
|||
qDebug() << "TBP params:";
|
||||
qDebug() << "Rnear:\t" << Rnear;
|
||||
qDebug() << "Rfar:\t" << Rfar;
|
||||
qDebug() << "refRange:\t" << this->getEchoL1()->getRefPhaseRange();
|
||||
qDebug() << "fs:\t" << fs;
|
||||
qDebug() << "freq:\t" << freq;
|
||||
qDebug() << "rowCount:\t" << rowCount;
|
||||
|
|
Loading…
Reference in New Issue