增加了 WGS84 到斜距平面查找表结果反向映射

pull/10/head
陈增辉 2025-04-07 21:46:53 +08:00
parent 6d31efe868
commit e19d039014
11 changed files with 768 additions and 7 deletions

View File

@ -139,6 +139,14 @@ struct Point3 {
void setZ(double iz) { z = iz; }
};
struct Point_3d {
double x;
double y;
double z;
};
struct DemBox {
double min_lon;
double max_lon;

View File

@ -0,0 +1,97 @@
#include "QLookTableResampleFromWGS84ToRange.h"
#include "BaseConstVariable.h"
#include "BaseTool.h"
#include <QMessageBox>
#include <QFileDialog>
#include "ui_QLookTableResampleFromWGS84ToRange.h"
#include "ImageNetOperator.h"
QLookTableResampleFromWGS84ToRange::QLookTableResampleFromWGS84ToRange(QWidget *parent)
: QDialog(parent)
,ui(new Ui::QLookTableResampleFromWGS84ToRangeClass)
{
ui->setupUi(this);
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onaccepted()));
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onrejected()));
connect(ui->pushButtonLookTableWGS84Select, SIGNAL(clicked(bool)), this, SLOT(onpushButtonLookTableWGS84SelectClicked(bool)));
connect(ui->pushButtonLookTableRangeSelect, SIGNAL(clicked(bool)), this, SLOT(onpushButtonLookTableRangeSelectClicked(bool)));
connect(ui->pushButtonLookTableCountSelect, SIGNAL(clicked(bool)), this, SLOT(onpushButtonLookTableCountSelectClicked(bool)));
}
QLookTableResampleFromWGS84ToRange::~QLookTableResampleFromWGS84ToRange()
{}
void QLookTableResampleFromWGS84ToRange::onaccepted()
{
QString looktableWGS84Ptah = ui->lineEditLookTableWGS84Path->text();
QString looktableRangePtah = ui->lineEditLookTableRangePath->text();
QString looktableCountPtah = ui->lineEditLookTableCountPath->text();
long Oriheight = ui->spinBoxRowCount->value();
long OriWidth = ui->spinBoxColCount->value();
ReflectTable_WGS2Range(looktableWGS84Ptah, looktableRangePtah, looktableCountPtah, Oriheight, OriWidth);
QMessageBox::information(nullptr, u8"提示", u8"完成");
}
void QLookTableResampleFromWGS84ToRange::onrejected()
{
this->close();
}
void QLookTableResampleFromWGS84ToRange::onpushButtonLookTableWGS84SelectClicked(bool)
{
QString fileNames = QFileDialog::getOpenFileName(
this,
tr(u8"选择成像粗平面文件"),
QString(),
tr(ENVI_FILE_FORMAT_FILTER)
);
if (!fileNames.isEmpty()) {
QString message = "选中文件\n";
this->ui->lineEditLookTableWGS84Path->setText(fileNames);
}
else {
QMessageBox::information(this, tr(u8"提示"), tr(u8"没有选中文件"));
}
}
void QLookTableResampleFromWGS84ToRange::onpushButtonLookTableRangeSelectClicked(bool)
{
QString fileNames = QFileDialog::getOpenFileName(
this,
tr(u8"选择成像粗平面文件"),
QString(),
tr(ENVI_FILE_FORMAT_FILTER)
);
if (!fileNames.isEmpty()) {
QString message = "选中文件\n";
this->ui->lineEditLookTableRangePath->setText(fileNames);
}
else {
QMessageBox::information(this, tr(u8"提示"), tr(u8"没有选中文件"));
}
}
void QLookTableResampleFromWGS84ToRange::onpushButtonLookTableCountSelectClicked(bool)
{
QString fileNames = QFileDialog::getOpenFileName(
this,
tr(u8"选择成像粗平面文件"),
QString(),
tr(ENVI_FILE_FORMAT_FILTER)
);
if (!fileNames.isEmpty()) {
QString message = "选中文件\n";
this->ui->lineEditLookTableCountPath->setText(fileNames);
}
else {
QMessageBox::information(this, tr(u8"提示"), tr(u8"没有选中文件"));
}
}

View File

@ -0,0 +1,30 @@
#pragma once
#include <QDialog>
namespace Ui {
class QLookTableResampleFromWGS84ToRangeClass;
}
class QLookTableResampleFromWGS84ToRange : public QDialog
{
Q_OBJECT
public:
QLookTableResampleFromWGS84ToRange(QWidget *parent = nullptr);
~QLookTableResampleFromWGS84ToRange();
public slots:
void onaccepted();
void onrejected();
void onpushButtonLookTableWGS84SelectClicked(bool);
void onpushButtonLookTableRangeSelectClicked(bool);
void onpushButtonLookTableCountSelectClicked(bool);
private:
Ui::QLookTableResampleFromWGS84ToRangeClass* ui;
};

View File

@ -0,0 +1,201 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QLookTableResampleFromWGS84ToRangeClass</class>
<widget class="QDialog" name="QLookTableResampleFromWGS84ToRangeClass">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>747</width>
<height>293</height>
</rect>
</property>
<property name="windowTitle">
<string>QLookTableResampleFromWGS84ToRange</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="lineEditLookTableWGS84Path">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEditLookTableCountPath">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pushButtonLookTableWGS84Select">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>选择</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>行数</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>查找表(斜距)</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="pushButtonLookTableRangeSelect">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>选择</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>查找表WGS84)</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>查找表采样点数</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="pushButtonLookTableCountSelect">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>选择</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="3">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEditLookTableRangePath">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_5">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>列数</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="spinBoxRowCount">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximum">
<number>999999999</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="spinBoxColCount">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximum">
<number>999999999</number>
</property>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

View File

@ -6,6 +6,7 @@
#include "GPUBaseTool.h"
#include "GPUBPImageNet.cuh"
#include "BaseTool.h"
#include "BaseConstVariable.h"
void InitCreateImageXYZProcess(QString& outImageLLPath, QString& outImageXYZPath, QString& InEchoGPSDataPath,
@ -251,6 +252,8 @@ bool GPSPointsNumberEqualCheck(QString& ImageLLPath, QString& InEchoGPSDataPath)
}
void InterploateAtiByRefDEM(QString& ImageLLPath, QString& ImageDEMPath, QString& outImageLLAPath, QString& InEchoGPSDataPath)
{
gdalImage demimg(ImageDEMPath);
@ -404,3 +407,172 @@ void InterploateAtiByRefDEM(QString& ImageLLPath, QString& ImageDEMPath, QString
qDebug() << u8"²åÖµÍê³É";
}
int ReflectTable_WGS2Range(QString dem_rc_path,QString outOriSimTiffPath,QString ori_sim_count_tiffPath,long OriHeight,long OriWidth)
{
gdalImage sim_rc(dem_rc_path);
gdalImage sim_sar_img = CreategdalImage(outOriSimTiffPath, OriHeight, OriWidth, 2, sim_rc.gt, sim_rc.projection, false);// 注意这里保留仿真结果
gdalImage sim_sar_count_img = CreategdalImage(ori_sim_count_tiffPath, OriHeight, OriWidth, 1, sim_rc.gt, sim_rc.projection, false);// 注意这里保留仿真结果
for (int max_rows_ids = 0; max_rows_ids < OriHeight; max_rows_ids = max_rows_ids + 1000) {
Eigen::MatrixXd sim_sar = sim_sar_img.getData(max_rows_ids, 0, 1000, OriWidth, 1);
Eigen::MatrixXd sim_sarc = sim_sar_img.getData(max_rows_ids, 0, 1000, OriWidth, 2);
Eigen::MatrixXd sim_sar_count = sim_sar_count_img.getData(max_rows_ids, 0, 1000, OriWidth, 1);
sim_sar = sim_sar.array() * 0 - 9999;
sim_sarc = sim_sar.array() * 0 - 9999;
sim_sar_count = sim_sar_count.array() * 0;
sim_sar_img.saveImage(sim_sar, max_rows_ids, 0, 1);
sim_sar_img.saveImage(sim_sarc, max_rows_ids, 0, 2);
sim_sar_count_img.saveImage(sim_sar_count, max_rows_ids, 0, 1);
}
sim_sar_img.setNoDataValue(-9999, 1);
sim_sar_img.setNoDataValue(-9999, 2);
int conver_lines = 5000;
int line_invert = 4000;// 计算重叠率
int line_offset = 60;
// 逐区域迭代计算
omp_lock_t lock;
omp_init_lock(&lock); // 初始化互斥锁
int allCount = 0;
for (int max_rows_ids = 0; max_rows_ids < sim_rc.height; max_rows_ids = max_rows_ids + line_invert) {
Eigen::MatrixXd dem_r = sim_rc.getData(max_rows_ids, 0, conver_lines, sim_rc.width, 1);
Eigen::MatrixXd dem_c = sim_rc.getData(max_rows_ids, 0, conver_lines, sim_rc.width, 2);
int dem_rows_num = dem_r.rows();
int dem_cols_num = dem_r.cols();
// 更新插值经纬度
//Eigen::MatrixXd dem_lon = dem_r;
//Eigen::MatrixXd dem_lat = dem_c;
// 构建索引 更新经纬度并更新链
int temp_r, temp_c;
int min_row = dem_r.minCoeff() + 1;
int max_row = dem_r.maxCoeff() + 1;
if (max_row < 0) {
continue;
}
int len_rows = max_row - min_row;
min_row = min_row < 0 ? 0 : min_row;
Eigen::MatrixXd sar_r = sim_sar_img.getData(min_row, 0, len_rows, OriWidth, 1);
Eigen::MatrixXd sar_c = sim_sar_img.getData(min_row, 0, len_rows, OriWidth, 2);
len_rows = sar_r.rows();
#pragma omp parallel for num_threads(8) // NEW ADD
for (int i = 0; i < dem_rows_num - 1; i++) {
for (int j = 0; j < dem_cols_num - 1; j++) {
Point3 p, p1, p2, p3, p4;
Landpoint lp1, lp2, lp3, lp4;
lp1 = sim_rc.getLandPoint(i + max_rows_ids, j, 0);
lp2 = sim_rc.getLandPoint(i + max_rows_ids, j + 1, 0);
lp3 = sim_rc.getLandPoint(i + 1 + max_rows_ids, j + 1, 0);
lp4 = sim_rc.getLandPoint(i + 1 + max_rows_ids, j, 0);
p1 = { dem_r(i,j),dem_c(i,j) };
p2 = { dem_r(i,j + 1),dem_c(i,j + 1) };
p3 = { dem_r(i + 1,j + 1),dem_c(i + 1,j + 1) };
p4 = { dem_r(i + 1,j),dem_c(i + 1,j) };
//if (angle(i, j) >= 90 && angle(i, j + 1) >= 90 && angle(i + 1, j) >= 90 && angle(i + 1, j + 1) >= 90) {
// continue;
//}
double temp_min_r = dem_r.block(i, j, 2, 2).minCoeff();
double temp_max_r = dem_r.block(i, j, 2, 2).maxCoeff();
double temp_min_c = dem_c.block(i, j, 2, 2).minCoeff();
double temp_max_c = dem_c.block(i, j, 2, 2).maxCoeff();
if ((int(temp_min_r) != int(temp_max_r)) && (int(temp_min_c) != int(temp_max_c))) {
for (int ii = int(temp_min_r); ii <= temp_max_r + 1; ii++) {
for (int jj = int(temp_min_c); jj < temp_max_c + 1; jj++) {
if (ii < min_row || ii - min_row >= len_rows || jj < 0 || jj >= OriWidth) {
continue;
}
p = { double(ii),double(jj),0 };
//if (PtInRect(p, p1, p2, p3, p4)) {
p1.z = lp1.lon;
p2.z = lp2.lon;
p3.z = lp3.lon;
p4.z = lp4.lon;
p = invBilinear(p, p1, p2, p3, p4);
if (isnan(p.z)) {
continue;
}
if (p.x < 0) {
continue;
}
double mean = (p1.z + p2.z + p3.z + p4.z) / 4;
if (p.z > p1.z && p.z > p2.z && p.z > p3.z && p.z > p4.z) {
p.z = mean;
}
if (p.z < p1.z && p.z < p2.z && p.z < p3.z && p.z < p4.z) {
p.z = mean;
}
sar_r(ii - min_row, jj) = p.z;
p1.z = lp1.lat;
p2.z = lp2.lat;
p3.z = lp3.lat;
p4.z = lp4.lat;
p = invBilinear(p, p1, p2, p3, p4);
if (isnan(p.z)) {
continue;
}
if (p.x < 0) {
continue;
}
mean = (p1.z + p2.z + p3.z + p4.z) / 4;
if (p.z > p1.z && p.z > p2.z && p.z > p3.z && p.z > p4.z) {
p.z = mean;
}
if (p.z < p1.z && p.z < p2.z && p.z < p3.z && p.z < p4.z) {
p.z = mean;
}
sar_c(ii - min_row, jj) = p.z;
//}
}
}
}
}
}
omp_set_lock(&lock); //获得互斥器
sim_sar_img.saveImage(sar_r, min_row, 0, 1);
sim_sar_img.saveImage(sar_c, min_row, 0, 2);
allCount = allCount + conver_lines;
qDebug() << "rows:\t" << allCount << "/" << sim_rc.height << "\t computing.....\t" ;
omp_unset_lock(&lock); //释放互斥器
}
qDebug() << "\t resample computing.....\t";
{
int conver = 5000;
int line_invert = 4000;// 计算重叠率
ResampleGDALs(ori_sim_count_tiffPath.toUtf8().constData(), 1, GRIORA_Bilinear);
ResampleGDALs(ori_sim_count_tiffPath.toUtf8().constData(), 2, GRIORA_Bilinear);
}
return 0;
}

View File

@ -13,5 +13,5 @@ bool GPSPointsNumberEqualCheck(QString& ImageLLPath, QString& InEchoGPSDataPath)
void InterploateAtiByRefDEM(QString& ImageLLPath, QString& ImageDEMPath, QString& outImageLLAPath, QString& InEchoGPSDataPath);
int ReflectTable_WGS2Range(QString dem_rc_path, QString outOriSimTiffPath, QString ori_sim_count_tiffPath, long OriHeight, long OriWidth);
#endif

View File

@ -0,0 +1,74 @@
#include "QEcoherentAndAdditive.h"
#include "ui_QEcoherentAndAdditive.h"
#include <QFileDialog>
#include <QMessageBox>
QEcoherentAndAdditiveDialog::QEcoherentAndAdditiveDialog(QWidget *parent)
: QDialog(parent)
,ui(new Ui::QEcoherentAndAdditiveClass)
{
ui->setupUi(this);
QObject::connect(ui->pushButtonEchoDataAddSelect, SIGNAL(clicked()), this, SLOT(onpushButtonEchoDataAddSelectClicked()));
QObject::connect(ui->pushButtonEchoDataSelect, SIGNAL(clicked()), this, SLOT(onpushButtonEchoDataSelectClicked()));
QObject::connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onaccepted()));
QObject::connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onrejected()));
}
QEcoherentAndAdditiveDialog::~QEcoherentAndAdditiveDialog()
{}
void QEcoherentAndAdditiveDialog::onpushButtonEchoDataAddSelectClicked()
{
QString fileNames = QFileDialog::getOpenFileName(
this, // 父窗口
tr(u8"选择影像文件"), // 标题
QString(), // 默认路径
tr(u8"xml Files (*.xml);;All Files (*)") // 文件过滤器
);
// 如果用户选择了文件
if (!fileNames.isEmpty()) {
QString message = "选择的文件有:\n";
this->ui->lineEditEchoDataAddPath->setText(fileNames);
}
else {
QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。"));
}
}
void QEcoherentAndAdditiveDialog::onpushButtonEchoDataSelectClicked()
{
QString fileNames = QFileDialog::getOpenFileName(
this, // 父窗口
tr(u8"选择影像文件"), // 标题
QString(), // 默认路径
tr(u8"xml Files (*.xml);;All Files (*)") // 文件过滤器
);
// 如果用户选择了文件
if (!fileNames.isEmpty()) {
QString message = "选择的文件有:\n";
this->ui->lineEditEchoDataAdd2Path->setText(fileNames);
}
else {
QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。"));
}
}
void QEcoherentAndAdditiveDialog::onaccepted()
{
QString echo1Path = this->ui->lineEditEchoDataAddPath->text();
QString echo2Path = this->ui->lineEditEchoDataAdd2Path->text();
QMessageBox::information(this, tr(u8"提示"), tr(u8"完成"));
}
void QEcoherentAndAdditiveDialog::onrejected()
{
}

View File

@ -0,0 +1,29 @@
#pragma once
#include <QMainWindow>
#include <QDialog>
namespace Ui {
class QEcoherentAndAdditiveClass;
}
class QEcoherentAndAdditiveDialog : public QDialog
{
Q_OBJECT
public:
QEcoherentAndAdditiveDialog(QWidget *parent = nullptr);
~QEcoherentAndAdditiveDialog();
public slots:
void onpushButtonEchoDataAddSelectClicked();
void onpushButtonEchoDataSelectClicked();
void onaccepted();
void onrejected();
private:
Ui::QEcoherentAndAdditiveClass* ui;
};

View File

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QEcoherentAndAdditiveClass</class>
<widget class="QDialog" name="QEcoherentAndAdditiveClass">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>747</width>
<height>239</height>
</rect>
</property>
<property name="windowTitle">
<string>仿真回波叠加</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QToolBar" name="mainToolBar"/>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="lineEditEchoDataAddPath">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>带叠加回波:</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="pushButtonEchoDataAddSelect">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>选择</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="pushButtonEchoDataSelect">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>选择</string>
</property>
</widget>
</item>
<item row="3" column="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="1" colspan="3">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_4">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>被叠加回波</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="lineEditEchoDataAdd2Path">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

View File

@ -210,6 +210,7 @@
<ItemGroup>
<ClCompile Include="PowerSimulationIncoherent\OribtModelOperator.cpp" />
<ClCompile Include="PowerSimulationIncoherent\QCreateSARIntensityByLookTableDialog.cpp" />
<ClCompile Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.cpp" />
<ClCompile Include="PowerSimulationIncoherent\QSimulationLookTableDialog.cpp" />
<ClCompile Include="PowerSimulationIncoherent\QSimulationSARPolynomialOrbitModel.cpp" />
<ClCompile Include="PowerSimulationIncoherent\QtLinearToIntenisityDialog.cpp" />
@ -218,6 +219,7 @@
<ClCompile Include="SARImage\ImagePlaneAtiInterpDialog.cpp" />
<ClCompile Include="SARImage\InitCreateImageXYZDialog.cpp" />
<ClCompile Include="SARImage\QCreateInSARImagePlaneXYZRDialog.cpp" />
<ClCompile Include="SimulationSAR\QEcoherentAndAdditive.cpp" />
<ClCompile Include="SimulationSAR\QImageSARRFPC.cpp" />
<ClCompile Include="SimulationSAR\QSARLookTableSimualtionGUI.cpp" />
<ClCompile Include="SimulationSAR\QSimulationBPImage.cpp" />
@ -243,6 +245,7 @@
<QtMoc Include="PowerSimulationIncoherent\QtLinearToIntenisityDialog.h" />
<QtMoc Include="PowerSimulationIncoherent\QtSimulationGeoSARSigma0Dialog.h" />
<QtMoc Include="SARImage\InitCreateImageXYZDialog.h" />
<QtMoc Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.h" />
<ClInclude Include="SARImage\GPUBPImageNet.cuh" />
<ClInclude Include="SARImage\ImageNetOperator.h" />
<QtMoc Include="SARImage\ImagePlaneAtiInterpDialog.h" />
@ -258,6 +261,7 @@
<ClInclude Include="SimulationSAR\BPBasic0_CUDA.cuh" />
<ClInclude Include="SimulationSAR\GPURFPC_single.cuh" />
<ClInclude Include="SimulationSAR\GPUTBPImage.cuh" />
<QtMoc Include="SimulationSAR\QEcoherentAndAdditive.h" />
<ClInclude Include="SimulationSAR\RFPCProcessCls.h" />
<ClInclude Include="SimulationSAR\SARSatelliteSimulationAbstractCls.h" />
<ClInclude Include="SimulationSAR\SARSimulationTaskSetting.h" />
@ -277,6 +281,7 @@
</ItemGroup>
<ItemGroup>
<QtUic Include="PowerSimulationIncoherent\QCreateSARIntensityByLookTableDialog.ui" />
<QtUic Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.ui" />
<QtUic Include="PowerSimulationIncoherent\QSimulationLookTableDialog.ui" />
<QtUic Include="PowerSimulationIncoherent\QSimulationSARPolynomialOrbitModel.ui" />
<QtUic Include="PowerSimulationIncoherent\QtLinearToIntenisityDialog.ui" />
@ -284,6 +289,7 @@
<QtUic Include="SARImage\ImagePlaneAtiInterpDialog.ui" />
<QtUic Include="SARImage\InitCreateImageXYZDialog.ui" />
<QtUic Include="SARImage\QCreateInSARImagePlaneXYZRDialog.ui" />
<QtUic Include="SimulationSAR\QEcoherentAndAdditive.ui" />
<QtUic Include="SimulationSAR\QImageSARRFPC.ui" />
<QtUic Include="SimulationSAR\QSARLookTableSimualtionGUI.ui" />
<QtUic Include="SimulationSAR\QSimulationBPImage.ui" />

View File

@ -13,10 +13,6 @@
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Form Files">
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
<Extensions>ui</Extensions>
</Filter>
<Filter Include="Translation Files">
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
<Extensions>ts</Extensions>
@ -30,6 +26,10 @@
<Filter Include="SARImage">
<UniqueIdentifier>{3380934c-6b95-45eb-8d70-d8b58e0e9de3}</UniqueIdentifier>
</Filter>
<Filter Include="Form Files">
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
<Extensions>ui</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="simulationsartool_global.h">
@ -80,8 +80,8 @@
<ClInclude Include="SARImage\GPUBPImageNet.cuh">
<Filter>SARImage</Filter>
</ClInclude>
<ClInclude Include="SARImage\QCreateInSARImagePlaneXYZRDialog.h">
<Filter>SARImage</Filter>
<ClInclude Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.h">
<Filter>PowerSimulationIncoherent</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
@ -148,6 +148,12 @@
<ClCompile Include="SARImage\QCreateInSARImagePlaneXYZRDialog.cpp">
<Filter>SARImage</Filter>
</ClCompile>
<ClCompile Include="SimulationSAR\QEcoherentAndAdditive.cpp">
<Filter>SimulationSAR</Filter>
</ClCompile>
<ClCompile Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.cpp">
<Filter>PowerSimulationIncoherent</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtUic Include="SimulationSAR\QImageSARRFPC.ui">
@ -186,6 +192,12 @@
<QtUic Include="SARImage\QCreateInSARImagePlaneXYZRDialog.ui">
<Filter>SARImage</Filter>
</QtUic>
<QtUic Include="SimulationSAR\QEcoherentAndAdditive.ui">
<Filter>SimulationSAR</Filter>
</QtUic>
<QtUic Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.ui">
<Filter>PowerSimulationIncoherent</Filter>
</QtUic>
</ItemGroup>
<ItemGroup>
<QtMoc Include="SimulationSAR\QImageSARRFPC.h">
@ -224,6 +236,12 @@
<QtMoc Include="SARImage\ImagePlaneAtiInterpDialog.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="SARImage\QCreateInSARImagePlaneXYZRDialog.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="SimulationSAR\QEcoherentAndAdditive.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<CudaCompile Include="SimulationSAR\GPURFPC.cu">