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); GDALFlushCache(poDstDS);
GDALClose((GDALDatasetH)poDstDS); GDALClose((GDALDatasetH)poDstDS);
//delete poDstDS;
//poDstDS = nullptr;
// GDALDestroy(); // or, DllMain at DLL_PROCESS_DETACH // GDALDestroy(); // or, DllMain at DLL_PROCESS_DETACH
delete[] databuffer; delete[] databuffer;
omp_unset_lock(&lock); // 锟酵放伙拷斤拷 omp_unset_lock(&lock); // 锟酵放伙拷斤拷

View File

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

View File

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

View File

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

View File

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

View File

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