BaseLibraryCPP/SARSimulationImageL1.h

200 lines
4.6 KiB
C
Raw Normal View History

2024-11-15 01:38:46 +00:00
#pragma once
#include "BaseConstVariable.h"
#include "BaseTool.h"
#include "ImageOperatorBase.h"
#include "GeoOperator.h"
#include "FileOperator.h"
#include "LogInfoCls.h"
2024-11-25 07:14:53 +00:00
enum RasterLevel {
RasterSLC,
RasterL1B,
RasterL2
};
2024-11-15 01:38:46 +00:00
class SARSimulationImageL1Dataset
{
public:
2024-11-25 07:14:53 +00:00
SARSimulationImageL1Dataset(RasterLevel Rasterlevel= RasterLevel::RasterSLC);
2024-11-15 01:38:46 +00:00
~SARSimulationImageL1Dataset();
2024-11-25 07:14:53 +00:00
private:
RasterLevel Rasterlevel;
public:
RasterLevel getRasterLevel();
2024-11-15 01:38:46 +00:00
private :
QString outFolderPath;
QString L1DatasetName;
QString xmlfileName;
QString xmlFilePath;
QString ImageRasterName;
QString ImageRasterPath;
QString GPSPointFilename;
QString GPSPointFilePath;
public:
QString getoutFolderPath();
QString getDatesetName();
QString getxmlfileName();
QString getxmlFilePath();
QString getImageRasterName();
QString getImageRasterPath();
QString getGPSPointFilename(); // GPS<50><53>
QString getGPSPointFilePath();
public:
ErrorCode OpenOrNew(QString folder, QString filename, long rowCount, long colCount);
ErrorCode Open(QString folderPath, QString Name);
ErrorCode Open(QString xmlPath);
public:
void saveToXml();
ErrorCode loadFromXml();
std::shared_ptr<double> getAntPos();
ErrorCode saveAntPos(std::shared_ptr<double> ptr); // ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD>д<EFBFBD><D0B4>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
std::shared_ptr<std::complex<double>> getImageRaster();
ErrorCode saveImageRaster(std::shared_ptr<std::complex<double>> echoPtr, long startPRF, long PRFLen);
std::shared_ptr<std::complex<double>> getImageRaster(long startPRF, long PRFLen);
Eigen::MatrixXcd getImageRasterMatrix();
ErrorCode saveImageRaster(Eigen::MatrixXcd& data, long startPRF);
2024-11-25 07:14:53 +00:00
gdalImage getImageRasterGdalImage();
2024-11-15 01:38:46 +00:00
private: // xml<6D>в<EFBFBD><D0B2><EFBFBD>
long rowCount;
long colCount;
double Rnear;
double Rfar;
double Rref;
double centerFreq;
double Fs;
2024-11-25 07:14:53 +00:00
double prf;
2024-11-15 01:38:46 +00:00
double CenterAngle;
QString LookSide;
2024-11-25 07:14:53 +00:00
QVector<SatelliteAntPos> sateposes;
double startImageTime;
double EndImageTime;
2024-11-15 01:38:46 +00:00
public:
2024-11-25 07:14:53 +00:00
void setStartImageTime(double imageTime);
double getStartImageTime();
void setEndImageTime(double imageTime);
double getEndImageTime();
QVector<SatelliteAntPos> getXmlSateAntPos();
void setSateAntPos(QVector<SatelliteAntPos> pos);
2024-11-15 01:38:46 +00:00
long getrowCount();
void setrowCount(long rowCount);
long getcolCount();
void setcolCount(long pulsePoints);
double getNearRange();
void setNearRange(double nearRange);
double getFarRange();
void setFarRange(double farRange);
double getRefRange();
void setRefRange(double refRange);
double getCenterFreq();
void setCenterFreq(double freq);
double getFs();
void setFs(double samplingFreq);
2024-11-25 07:14:53 +00:00
double getPRF();
void setPRF(double PRF);
2024-11-15 01:38:46 +00:00
double getCenterAngle();
void setCenterAngle(double angle);
QString getLookSide();
void setLookSide(QString lookside);
2024-11-25 07:14:53 +00:00
public:// <20><><EFBFBD><EFBFBD><EFBFBD>ղ<EFBFBD><D5B2><EFBFBD>
double TotalProcessedAzimuthBandWidth, DopplerParametersReferenceTime;
double d0, d1, d2, d3, d4;
double r0, r1, r2, r3, r4;
double DEM;
double incidenceAngleNearRange, incidenceAngleFarRange;
public:
double getTotalProcessedAzimuthBandWidth();
void setTotalProcessedAzimuthBandWidth(double v);
2024-11-15 01:38:46 +00:00
2024-11-25 07:14:53 +00:00
double getDopplerParametersReferenceTime();
void setDopplerParametersReferenceTime(double v);
2024-11-15 01:38:46 +00:00
2024-11-25 07:14:53 +00:00
QVector<double> getDopplerParams();
void setDopplerParams(double d0, double d1, double d2, double d3, double d4);
2024-11-15 01:38:46 +00:00
2024-11-25 07:14:53 +00:00
QVector<double> getDopplerCenterCoff();
void setDopplerCenterCoff(double r0, double r1, double r2, double r3, double r4);
2024-11-15 01:38:46 +00:00
2024-11-25 07:14:53 +00:00
double getIncidenceAngleNearRange();
void setIncidenceAngleNearRangeet(double angle);
double getIncidenceAngleFarRange();
void setIncidenceAngleFarRange(double angle);
private:
double latitude_center, longitude_center,
latitude_topLeft, longitude_topLeft,
latitude_topRight, longitude_topRight,
latitude_bottomLeft, longitude_bottomLeft,
latitude_bottomRight, longitude_bottomRight;
public:
// Getter and Setter functions
double getLatitudeCenter();
void setLatitudeCenter(double value);
double getLongitudeCenter();
void setLongitudeCenter(double value);
double getLatitudeTopLeft();
void setLatitudeTopLeft(double value);
double getLongitudeTopLeft();
void setLongitudeTopLeft(double value);
double getLatitudeTopRight();
void setLatitudeTopRight(double value);
double getLongitudeTopRight();
void setLongitudeTopRight(double value);
double getLatitudeBottomLeft();
void setLatitudeBottomLeft(double value);
double getLongitudeBottomLeft();
void setLongitudeBottomLeft(double value);
double getLatitudeBottomRight();
void setLatitudeBottomRight(double value);
double getLongitudeBottomRight();
void setLongitudeBottomRight(double value);
public:
DemBox getExtend();
2024-11-15 01:38:46 +00:00
};