pull/3/head
陈增辉 2025-02-01 21:13:37 +08:00
commit b67b4c61a2
2 changed files with 17 additions and 29 deletions

View File

@ -27,10 +27,10 @@ __device__ double GPU_getSigma0dB(CUDASigmaParam param, double theta) {//
__device__ CUDAVectorEllipsoidal GPU_SatelliteAntDirectNormal(
double RstX, double RstY, double RstZ,
double antXaxisX, double antXaxisY, double antXaxisZ,
double antYaxisX, double antYaxisY, double antYaxisZ,
double antZaxisX, double antZaxisY, double antZaxisZ,
double antDirectX, double antDirectY, double antDirectZ
double AntXaxisX, double AntXaxisY, double AntXaxisZ,
double AntYaxisX, double AntYaxisY, double AntYaxisZ,
double AntZaxisX, double AntZaxisY, double AntZaxisZ,
double AntDirectX, double AntDirectY, double AntDirectZ
) {
CUDAVectorEllipsoidal result{ 0,0,-1 };
@ -38,15 +38,6 @@ __device__ CUDAVectorEllipsoidal GPU_SatelliteAntDirectNormal(
double Xst = -1 * RstX; // 卫星 --> 地面
double Yst = -1 * RstY;
double Zst = -1 * RstZ;
double AntXaxisX = antXaxisX;
double AntXaxisY = antXaxisY;
double AntXaxisZ = antXaxisZ;
double AntYaxisX = antYaxisX;
double AntYaxisY = antYaxisY;
double AntYaxisZ = antYaxisZ;
double AntZaxisX = antZaxisX;
double AntZaxisY = antZaxisY;
double AntZaxisZ = antZaxisZ;
// 归一化
double RstNorm = sqrtf(Xst * Xst + Yst * Yst + Zst * Zst);
@ -73,15 +64,12 @@ __device__ CUDAVectorEllipsoidal GPU_SatelliteAntDirectNormal(
double Zant = (Rx * Xy * Yz - Rx * Xz * Yy - Ry * Xx * Yz + Ry * Xz * Yx + Rz * Xx * Yy - Rz * Xy * Yx) / (Xx * Yy * Zz - Xx * Yz * Zy - Xy * Yx * Zz + Xy * Yz * Zx + Xz * Yx * Zy - Xz * Yy * Zx);
// 计算theta 与 phi
double Norm = sqrtf(Xant * Xant + Yant * Yant + Zant * Zant); // 计算 pho
double ThetaAnt = abs(Zant - Norm)<PRECISIONTOLERANCE?0: acosf(Zant / Norm); // theta Óë ZÖáµÄ¼Ð½Ç
double PhiAnt = atanf(Yant / Xant); // -pi/2 ~pi/2
if (isnan(ThetaAnt)) {
printf("theta is nan,[Xant,Yant,Zant,Norm,Zn,Z1]=[%f,%f,%f,%f,%f,%f];\n",
Xant, Yant, Zant,Norm, Zant / Norm, Zant / Norm-1);
}
double Zn = Zant / Norm;
double ThetaAnt = ( - 1 > Zn) ? PI : (Zn > 1 ? 0 : acos(Zn));// acosf(Zant / Norm); // theta Óë ZÖáµÄ¼Ð½Ç
double PhiAnt = abs(Xant)<PRECISIONTOLERANCE ?0: atanf(Yant / Xant); // -pi/2 ~pi/2
if (abs(Yant) < PRECISIONTOLERANCE) { // X轴上
PhiAnt = 0;
@ -273,12 +261,12 @@ __global__ void CUDA_Kernel_Computer_R_amp(
}
}
ampGain = TansantPatternGain * antPatternGain;
if (10 * log10(ampGain / maxReceiveAntPatternValue / maxTransAntPatternValue) < -3) { // СÓÚ-3dB
d_temp_R[idx] = 0;
d_temp_amps[idx] = 0;
return;
}
else {}
//if (10 * log10(ampGain / maxReceiveAntPatternValue / maxTransAntPatternValue) < -3) { // СÓÚ-3dB
// d_temp_R[idx] = 0;
// d_temp_amps[idx] = 0;
// return;
//}
//else {}

View File

@ -112,7 +112,7 @@ void QImageSARRFPC::onpushButtonTaskxmlClieck()
void QImageSARRFPC::onpushButtondemClieck()
{
// 调用文件选择对话框并选择一个 .tif 文件
QString fileName = QFileDialog::getSaveFileName(this,
QString fileName = QFileDialog::getOpenFileName(this,
u8"dem文件", // 对话框标题
"", // 初始目录,可以设置为路径
u8"tif Files (*.tif);;data Files (*.data);;bin Files (*.bin);;All Files (*)"); // 文件类型过滤器
@ -128,7 +128,7 @@ void QImageSARRFPC::onpushButtondemClieck()
void QImageSARRFPC::onpushButtonSloperClieck()
{
// 调用文件选择对话框并选择一个 .tif 文件
QString fileName = QFileDialog::getSaveFileName(this,
QString fileName = QFileDialog::getOpenFileName(this,
u8"sloper文件", // 对话框标题
"", // 初始目录,可以设置为路径
u8"tif Files (*.tif);;data Files (*.data);;bin Files (*.bin);;All Files (*)"); // 文件类型过滤器
@ -144,7 +144,7 @@ void QImageSARRFPC::onpushButtonSloperClieck()
void QImageSARRFPC::onpushButtonlandcoverClieck()
{
// 调用文件选择对话框并选择一个 .tif 文件
QString fileName = QFileDialog::getSaveFileName(this,
QString fileName = QFileDialog::getOpenFileName(this,
u8"地表覆盖数据", // 对话框标题
"", // 初始目录,可以设置为路径
u8"tif Files (*.tif);;data Files (*.data);;bin Files (*.bin);;All Files (*)"); // 文件类型过滤器