1.修复查找表bug,Fs 计算错误

2. 未能修复gdal文件不释放bug
pull/4/head
chenzenghui 2025-02-20 12:13:04 +08:00
parent b60582b885
commit 7f29679055
6 changed files with 34 additions and 12 deletions

View File

@ -1302,6 +1302,8 @@ void gdalImage::saveImage(std::shared_ptr<float> data, int start_row, int start_
GDALFlushCache(poDstDS);
GDALClose((GDALDatasetH)poDstDS);
//delete poDstDS;
//poDstDS = nullptr;
// GDALDestroy(); // or, DllMain at DLL_PROCESS_DETACH
delete[] databuffer;
omp_unset_lock(&lock); // 锟酵放伙拷斤拷

View File

@ -130,10 +130,10 @@ __global__ void Kernel_RDProcess_doppler(
if (abs(inct) <= dt||isnan(inct) ) {
Rd_r = (ti - starttime) * PRF;
Rd_c = 2 * (R - nearRange) / LIGHTSPEED * Fs;
//printf("ti: %10.6f,starttime:%10.6f,PRF:%10.6f\n", ti, starttime, PRF);
Rd_c = Fs/LIGHTSPEED * (R - nearRange)*2;
//printf("ti: %10.6f,starttime:%10.6f,PRF:%10.6f,Rd_c:%10.6f,R:%10.6f\n", ti, starttime, PRF, Rd_c, R);
outRidx[idx] = Rd_r;
outCidx[idx] = Rd_c;
outCidx[idx] = Rd_c;//Rd_c;
return;
}
ti = ti + inct;

View File

@ -254,16 +254,21 @@ double AbstractSARSatelliteModel::getPRF()
double AbstractSARSatelliteModel::getFs()
{
double NearRange = this->getNearRange();
double FarRange = this->getFarRange();
//double NearRange = this->getNearRange();
//double FarRange = this->getFarRange();
QVector<double> freqpoints = this->getFreqList();
long freqNum = freqpoints.size();
//QVector<double> freqpoints = this->getFreqList();
//long freqNum = freqpoints.size();
double timeRange = 2 * (FarRange - NearRange) / LIGHTSPEED;
double fs = freqNum / timeRange;
//double timeRange = 2 * (FarRange - NearRange) / LIGHTSPEED;
//double fs = freqNum / timeRange;
return fs;
//return fs;
return 0.0;
}
void AbstractSARSatelliteModel::setFs(double fs)
{
}
double AbstractSARSatelliteModel::getCenterLookAngle()

View File

@ -193,7 +193,7 @@ public: //
virtual double getPRF();
virtual double getFs(); // žŕŔëĎň˛ÉŃůĆľÂĘ
virtual void setFs(double fs);
virtual double getCenterLookAngle() ;
virtual void setCenterLookAngle(double angle) ;

View File

@ -153,6 +153,16 @@ double SARSimulationTaskSetting::getRefphaseRange()
return this->refPhaseRange;
}
double SARSimulationTaskSetting::getFs()
{
return this->Fs;
}
void SARSimulationTaskSetting::setFs(double fs)
{
this->Fs = fs;
}
void SARSimulationTaskSetting::setTransformRadiationPattern(std::shared_ptr<AbstractRadiationPattern> radiationPanttern)
{
this->TransformRadiationPattern = radiationPanttern;
@ -261,6 +271,7 @@ std::shared_ptr<AbstractSARSatelliteModel> ReadSimulationSettingsXML(QString xml
QDomElement bandWidth = taskSensor.firstChildElement("bandWidth");
QDomElement centerLookAngle = taskSensor.firstChildElement("centerLookAngle");
QDomElement prf = taskSensor.firstChildElement("prf");
QDomElement fs = taskSensor.firstChildElement("fs");
QDomElement refphaseRange = taskSensor.firstChildElement("refPhaseRange");
QDomElement polar = taskSensor.firstChildElement("polar");
QDomElement nearRange = taskSensor.firstChildElement("nearRange");
@ -360,7 +371,7 @@ std::shared_ptr<AbstractSARSatelliteModel> ReadSimulationSettingsXML(QString xml
taskSetting->setBandWidth(bandWidth.text().toDouble());
taskSetting->setCenterFreq(radarCenterFrequency.text().toDouble()); // ÖÐÐÄÆµÂÊ
taskSetting->setPRF(prf.text().toDouble()); // PRF
//taskSetting->setFs(fs.text().toDouble()); //Fs
taskSetting->setFs(fs.text().toDouble()); //Fs
taskSetting->setNearRange(nearRange.text().toDouble()); // NearRange
taskSetting->setFarRange(farRange.text().toDouble()); // FarRange
taskSetting->setIsRightLook(isR);

View File

@ -80,8 +80,12 @@ public: //
virtual double getPRF() override;
virtual void setRefphaseRange(double refRange);
virtual double getRefphaseRange();
virtual double getFs() override;
virtual void setFs(double fs) override;
private:
double PRF;
double Fs;
double refPhaseRange;
double pt;
double Gri;