#pragma once
#include "BaseConstVariable.h"
#include "ImageOperatorBase.h"
#include "LogInfoCls.h"
#include "SARSimulationImageL1.h"
#include "GF3PSTNClass.h"
#include <QString>


// 数据定标
ErrorCode GF3CalibrationRaster(QString inRasterPath, QString outRasterPath, double Qualifyvalue, double calibrationConst);

ErrorCode ImportGF3L1ARasterToWorkspace(QString inMetaxmlPath,QString inRasterPath, QString outWorkDirPath, POLARTYPEENUM polsartype);

QVector<QString> SearchGF3DataTiff(QString inMetaxmlPath);

POLARTYPEENUM getDatasetGF3FilePolsarType(QString fileName);

ErrorCode ImportGF3L1AProcess(QString inMetaxmlPath, QString outWorkDirPath);
// 复数转实部
ErrorCode Complex2AmpRaster(QString inComplexPath, QString outRasterPath);
//复数转相位
ErrorCode Complex2PhaseRaster(QString inComplexPath, QString outRasterPath);
ErrorCode Complex2dBRaster(QString inComplexPath, QString outRasterPath);

 
ErrorCode ResampleDEM(QString indemPath, QString outdemPath, double gridx, double gridy);
// RD 算法类
ErrorCode RD_PSTN(double& refrange,double& lamda, double& timeR, double& R, double& tx, double& ty, double& tz, double& slopex, double& slopey, double& slopez, GF3PolyfitSatelliteOribtModel& polyfitmodel, SatelliteOribtNode& node,double& d0,double& d1, double& d2, double& d3, double& d4);


//创建查找表
ErrorCode GF3RDCreateLookTable(QString inxmlPath, QString indemPath, QString outworkdir, QString outlooktablePath, QString outLocalIncidenceAnglePath, bool localincAngleFlag=false);
ErrorCode GF3OrthSLC( QString inRasterPath, QString inlooktablePath, QString outRasterPath);

// 正射处理流程
ErrorCode GF3RDProcess(QString inxmlPath, QString indemPath, QString outworkdir, double gridx, double gridy);




