void SegmentListVIIRSM::progressreadvalue(int progress) { int totalcount = segsselected.count(); this->progressresultready += 100 / totalcount; emit progressCounter(this->progressresultready); qDebug() << QString("SegmentListVIIRSM::progressreadvalue( %1 )").arg(progress); }
void SegmentListVIIRSM::finishedviirs() { qDebug() << "=============>SegmentListVIIRSM::readfinishedviirs()"; emit progressCounter(100); opts.texture_changed = true; delete watcherviirs; QApplication::restoreOverrideCursor(); emit segmentlistfinished(true); }
void SegmentListOLCI::finishedolci() { qDebug() << "=============>SegmentListOLCIefr::finishedolci()"; emit progressCounter(100); opts.texture_changed = true; delete watcherolci; QApplication::restoreOverrideCursor(); emit segmentlistfinished(true); }
bool SegmentListVIIRSM::ComposeVIIRSImageInThread(QList<bool> bandlist, QList<int> colorlist, QList<bool> invertlist) { qDebug() << "bool SegmentListVIIRSM::ComposeVIIRSImageInThread(QList<bool> bandlist, QList<int> colorlist) started"; progressresultready = 0; QApplication::setOverrideCursor( Qt::WaitCursor ); emit progressCounter(10); for (int i=0; i < 3; i++) { for (int j=0; j < 1024; j++) { imageptrs->segment_stats_ch[i][j] = 0; imageptrs->lut_ch[i][j] = 0; } } for(int k = 0; k < 3; k++) { imageptrs->stat_max_ch[k] = 0; imageptrs->stat_min_ch[k] = 9999999; this->stat_max_ch[k] = 0; this->stat_min_ch[k] = 9999999; } // Reset memory ; segselected can be metop, noaa , hrp, gac, viirsm viirsdnb QList<Segment*>::iterator segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { Segment *segm = (Segment *)(*segsel); segm->resetMemory(); ++segsel; } segsselected.clear(); int startlinenbr = 0; int totalnbroflines = 0; int totalnbrofsegments = 0; QList<Segment*>::iterator segit = segmentlist.begin(); // create QList of selected segments while ( segit != segmentlist.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segit); if (segm->segmentselected) { segsselected.append(segm); totalnbroflines += 768; totalnbrofsegments++; } ++segit; } segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segsel); segm->setBandandColor(bandlist, colorlist, invertlist); segm->setStartLineNbr(startlinenbr); segm->initializeMemory(); startlinenbr += segm->NbrOfLines; ++segsel; } // image pointers always = new QImage() if(imageptrs->ptrimageViirs != NULL) { delete imageptrs->ptrimageViirs; imageptrs->ptrimageViirs = NULL; } imageptrs->ptrimageViirs = new QImage(earthviews, totalnbroflines, QImage::Format_ARGB32); int deltaprogress = 99 / (totalnbrofsegments*2); int totalprogress = 0; segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segsel); segm->ReadSegmentInMemory(); totalprogress += deltaprogress; emit progressCounter(totalprogress); //QApplication::processEvents(); ++segsel; } bool composecolor; long cnt_active_pixels = 0; segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segsel); composecolor = segm->composeColorImage(); for(int i = 0; i < (composecolor ? 3 : 1); i++) { if( segm->stat_max_ch[i] > this->stat_max_ch[i]) this->stat_max_ch[i] = segm->stat_max_ch[i]; if( segm->stat_min_ch[i] < this->stat_min_ch[i]) this->stat_min_ch[i] = segm->stat_min_ch[i]; } cnt_active_pixels += segm->active_pixels[0]; ++segsel; } for(int i = 0; i < (composecolor ? 3 : 1); i++) { imageptrs->stat_max_ch[i] = this->stat_max_ch[i]; imageptrs->stat_min_ch[i] = this->stat_min_ch[i]; } imageptrs->active_pixels = cnt_active_pixels; CalculateLUT(); segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segsel); segm->ComposeSegmentImage(); totalprogress += deltaprogress; emit progressCounter(totalprogress); QApplication::processEvents(); ++segsel; } qDebug() << " SegmentListVIIRS::ComposeVIIRSMImageInThread Finished !!"; QApplication::restoreOverrideCursor(); emit segmentlistfinished(true); emit progressCounter(100); return true; }
void SegmentListVIIRSM::ShowImageSerial(QList<bool> bandlist, QList<int> colorlist, QList<bool> invertlist) { progressresultready = 0; QApplication::setOverrideCursor( Qt::WaitCursor ); for (int i=0; i < 3; i++) { for (int j=0; j < 1024; j++) { imageptrs->segment_stats_ch[i][j] = 0; imageptrs->lut_ch[i][j] = 0; } } for(int k = 0; k < 3; k++) { imageptrs->stat_max_ch[k] = 0; imageptrs->stat_min_ch[k] = 9999999; this->stat_max_ch[k] = 0; this->stat_min_ch[k] = 9999999; } QList<Segment*>::iterator segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segsel); segm->setBandandColor(bandlist, colorlist, invertlist); segm->initializeMemory(); ++segsel; } segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segsel); segm->ReadDatasetsInMemory(); ++segsel; } bool composecolor; long cnt_active_pixels = 0; segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segsel); composecolor = segm->composeColorImage(); for(int i = 0; i < (composecolor ? 3 : 1); i++) { if( segm->stat_max_ch[i] > this->stat_max_ch[i]) this->stat_max_ch[i] = segm->stat_max_ch[i]; if( segm->stat_min_ch[i] < this->stat_min_ch[i]) this->stat_min_ch[i] = segm->stat_min_ch[i]; } cnt_active_pixels += segm->active_pixels[0]; ++segsel; } for(int i = 0; i < (composecolor ? 3 : 1); i++) { imageptrs->stat_max_ch[i] = this->stat_max_ch[i]; imageptrs->stat_min_ch[i] = this->stat_min_ch[i]; } imageptrs->active_pixels = cnt_active_pixels; CalculateLUT(); segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSM *segm = (SegmentVIIRSM *)(*segsel); segm->ComposeSegmentImage(); ++segsel; } qDebug() << " SegmentListVIIRS::ShowImageSerialM Finished !!"; QApplication::restoreOverrideCursor(); emit segmentlistfinished(true); emit progressCounter(100); }
bool SegmentListOLCI::ComposeOLCIImageInThread(QList<bool> bandlist, QList<int> colorlist, QList<bool> invertlist, bool untarfiles) { qDebug() << "bool SegmentListOLCIefr::ComposeOLCIImageInThread() started"; progressresultready = 0; QApplication::setOverrideCursor( Qt::WaitCursor ); emit progressCounter(10); for (int i=0; i < 3; i++) { for (int j=0; j < 1024; j++) { imageptrs->lut_ch[i][j] = 0; } } for(int k = 0; k < 3; k++) { imageptrs->stat_max_ch[k] = 0; imageptrs->stat_min_ch[k] = 9999999; this->stat_max_ch[k] = 0; this->stat_min_ch[k] = 9999999; } // Reset memory QList<Segment*>::iterator segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { Segment *segm = (Segment *)(*segsel); segm->resetMemory(); ++segsel; } segsselected.clear(); int startlinenbr = 0; int totalnbroflines = 0; int totalnbrofsegments = 0; QList<Segment*>::iterator segit = segmentlist.begin(); // create QList of selected segments while ( segit != segmentlist.end() ) { SegmentOLCI *segm = (SegmentOLCI *)(*segit); if (segm->segmentselected) { segsselected.append(segm); totalnbrofsegments++; } ++segit; } int deltaprogress = 99 / (totalnbrofsegments*3); int totalprogress = 0; if(untarfiles) { segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentOLCI *segm = (SegmentOLCI *)(*segsel); segm->UntarSegmentToTemp(); totalprogress += deltaprogress; emit progressCounter(totalprogress); ++segsel; } } segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentOLCI *segm = (SegmentOLCI *)(*segsel); segm->setBandandColor(bandlist, colorlist, invertlist); segm->ReadSegmentInMemory(); totalprogress += deltaprogress; emit progressCounter(totalprogress); if(segsel == segsselected.begin()) this->earth_views_per_scanline = segm->getEarthViewsPerScanline(); ++segsel; } segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentOLCI *segm = (SegmentOLCI *)(*segsel); segm->setStartLineNbr(startlinenbr); startlinenbr += segm->NbrOfLines; totalnbroflines += segm->NbrOfLines; ++segsel; } // image pointers always = new QImage() if(imageptrs->ptrimageOLCI != NULL) { delete imageptrs->ptrimageOLCI; imageptrs->ptrimageOLCI = NULL; } imageptrs->ptrimageOLCI = new QImage(this->earth_views_per_scanline, totalnbroflines, QImage::Format_ARGB32); qDebug() << QString("ptrimageOLCI created %1 x %2").arg(this->earth_views_per_scanline).arg(totalnbroflines); bool composecolor; long cnt_active_pixels = 0; segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentOLCI *segm = (SegmentOLCI *)(*segsel); composecolor = segm->composeColorImage(); for(int i = 0; i < (composecolor ? 3 : 1); i++) { if( segm->stat_max_ch[i] > this->stat_max_ch[i]) this->stat_max_ch[i] = segm->stat_max_ch[i]; if( segm->stat_min_ch[i] < this->stat_min_ch[i]) this->stat_min_ch[i] = segm->stat_min_ch[i]; } cnt_active_pixels += segm->active_pixels[0]; ++segsel; } for(int i = 0; i < (composecolor ? 3 : 1); i++) { imageptrs->stat_max_ch[i] = this->stat_max_ch[i]; imageptrs->stat_min_ch[i] = this->stat_min_ch[i]; } imageptrs->active_pixels = cnt_active_pixels; imageptrs->stat_max = 0; imageptrs->stat_min = 99999999; for(int k = 0; k < (composecolor ? 3 : 1); k++) { if(imageptrs->stat_max < this->stat_max_ch[k]) imageptrs->stat_max = this->stat_max_ch[k]; if(imageptrs->stat_min > this->stat_min_ch[k]) imageptrs->stat_min = this->stat_min_ch[k]; } qDebug() << QString("imageptrs stat_min_ch[0] = %1 stat_max_ch[0] = %2").arg(imageptrs->stat_min_ch[0]).arg(imageptrs->stat_max_ch[0]); if(composecolor) { qDebug() << QString("imageptrs stat_min_ch[1] = %1 stat_max_ch[1] = %2").arg(imageptrs->stat_min_ch[1]).arg(imageptrs->stat_max_ch[1]); qDebug() << QString("imageotrs stat_min_ch[2] = %1 stat_max_ch[2] = %2").arg(imageptrs->stat_min_ch[2]).arg(imageptrs->stat_max_ch[2]); } qDebug() << QString("imageptrs stat min = %1 stat max = %2").arg(imageptrs->stat_min).arg(imageptrs->stat_max); CalculateLUTAlt(); CalculateLUT(); segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentOLCI *segm = (SegmentOLCI *)(*segsel); segm->ComposeSegmentImage(); totalprogress += deltaprogress; emit progressCounter(totalprogress); QApplication::processEvents(); ++segsel; } qDebug() << " SegmentListOLCI::ComposeOLCIImageInThread Finished !!"; QApplication::restoreOverrideCursor(); emit segmentlistfinished(true); emit progressCounter(100); return true; }
bool SegmentListVIIRSDNB::ComposeVIIRSImageConcurrent(QList<bool> bandlist, QList<int> colorlist, QList<bool> invertlist) { progressresultready = 0; QApplication::setOverrideCursor( Qt::WaitCursor ); // reset in composefinishedviirs for (int i=0; i < 3; i++) { for (int j=0; j < 1024; j++) { imageptrs->segment_stats_ch[i][j] = 0; imageptrs->lut_ch[i][j] = 0; } } for(int k = 0; k < 3; k++) { imageptrs->stat_max_ch[k] = 0; imageptrs->stat_min_ch[k] = 9999999; this->stat_max_ch[k] = 0; this->stat_min_ch[k] = 9999999; } // Reset memory QList<Segment*>::iterator segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { Segment *segm = (Segment *)(*segsel); segm->resetMemory(); ++segsel; } segsselected.clear(); int startlinenbr = 0; int totalnbroflines = 0; QList<Segment*>::iterator segit = segmentlist.begin(); // create QList of selected segments while ( segit != segmentlist.end() ) { SegmentVIIRS *segm = (SegmentVIIRS *)(*segit); if (segm->segmentselected) { segsselected.append(segm); totalnbroflines += 768; } ++segit; } segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRS *segm = (SegmentVIIRS *)(*segsel); segm->setBandandColor(bandlist, colorlist, invertlist); segm->setStartLineNbr(startlinenbr); segm->initializeMemory(); startlinenbr += segm->NbrOfLines; ++segsel; } emit progressCounter(10); // image pointers always = new QImage() if(imageptrs->ptrimageViirs != NULL) { delete imageptrs->ptrimageViirs; imageptrs->ptrimageViirs = NULL; } imageptrs->ptrimageViirs = new QImage(earthviews, totalnbroflines, QImage::Format_ARGB32); watcherreadviirs = new QFutureWatcher<void>(this); connect(watcherreadviirs, SIGNAL(finished()), this, SLOT(readfinishedviirs())); connect(watcherreadviirs, SIGNAL(progressValueChanged(int)), this, SLOT(progressreadvalue(int))); watcherreadviirs->setFuture(QtConcurrent::map( segsselected.begin(), segsselected.end(), &SegmentListVIIRS::doReadSegmentInMemoryVIIRS)); return true; }
void SegmentListVIIRSDNB::ShowImageSerial() { progressresultready = 0; QApplication::setOverrideCursor( Qt::WaitCursor ); for (int i=0; i < 3; i++) { for (int j=0; j < 1024; j++) { imageptrs->segment_stats_ch[i][j] = 0; imageptrs->lut_ch[i][j] = 0; } } for(int k = 0; k < 3; k++) { imageptrs->stat_max_ch[k] = 0; imageptrs->stat_min_ch[k] = 9999999; this->stat_max_ch[k] = 0; this->stat_min_ch[k] = 9999999; } QList<Segment*>::iterator segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segsel); segm->initializeMemory(); ++segsel; } segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segsel); segm->ReadDatasetsInMemory(); ++segsel; } long cnt_active_pixels = 0; segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segsel); // for(int i = 0; i < (composecolor ? 3 : 1); i++) // { // if( segm->stat_max_ch[i] > this->stat_max_ch[i]) // this->stat_max_ch[i] = segm->stat_max_ch[i]; // if( segm->stat_min_ch[i] < this->stat_min_ch[i]) // this->stat_min_ch[i] = segm->stat_min_ch[i]; // } cnt_active_pixels += segm->active_pixels[0]; ++segsel; } // for(int i = 0; i < (composecolor ? 3 : 1); i++) // { // imageptrs->stat_max_ch[i] = this->stat_max_ch[i]; // imageptrs->stat_min_ch[i] = this->stat_min_ch[i]; // } imageptrs->active_pixels = cnt_active_pixels; // CalculateLUTDNB(); segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segsel); segm->ComposeSegmentImage(); ++segsel; } qDebug() << " SegmentListVIIRS::ShowImageSerialDNB Finished !!"; QApplication::restoreOverrideCursor(); emit segmentlistfinished(true); emit progressCounter(100); }
bool SegmentListVIIRSDNB::ComposeVIIRSImageInThread() { qDebug() << "bool SegmentListVIIRS::ComposeVIIRSImageInThread() started"; progressresultready = 0; QApplication::setOverrideCursor( Qt::WaitCursor ); emit progressCounter(10); // Reset memory QList<Segment*>::iterator segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { Segment *segm = (Segment *)(*segsel); segm->resetMemory(); ++segsel; } segsselected.clear(); int startlinenbr = 0; int totalnbroflines = 0; int totalnbrofsegments = 0; QList<Segment*>::iterator segit = segmentlist.begin(); // create QList of selected segments while ( segit != segmentlist.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segit); if (segm->segmentselected) { segsselected.append(segm); totalnbroflines += 768; totalnbrofsegments++; } ++segit; } segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segsel); segm->setStartLineNbr(startlinenbr); segm->initializeMemory(); startlinenbr += segm->NbrOfLines; ++segsel; } // image pointers always = new QImage() if(imageptrs->ptrimageViirs != NULL) { delete imageptrs->ptrimageViirs; imageptrs->ptrimageViirs = NULL; } imageptrs->ptrimageViirs = new QImage(earthviews, totalnbroflines, QImage::Format_ARGB32); int deltaprogress = 99 / (totalnbrofsegments*2); int totalprogress = 0; segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segsel); segm->ReadSegmentInMemory(); totalprogress += deltaprogress; emit progressCounter(totalprogress); ++segsel; } /* stat_max_dnb = -1.0E31; stat_min_dnb = 1.0E31; segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segsel); if( segm->stat_max > this->stat_max_dnb) this->stat_max_dnb = segm->stat_max; if( segm->stat_min < this->stat_min_dnb) this->stat_min_dnb = segm->stat_min; ++segsel; } imageptrs->stat_max_dnb = this->stat_max_dnb; imageptrs->stat_min_dnb = this->stat_min_dnb; qDebug() << QString("imageptrs stat_min = %1 stat_max = %2").arg(imageptrs->stat_min_dnb).arg(imageptrs->stat_max_dnb); */ //CalculateLUTDNB(); float lowerlimit = pow(10, opts.dnbsbvalue/20.0)/pow(10, opts.dnbspbwindowsvalue); float upperlimit = pow(10, opts.dnbsbvalue/20.0)*pow(10, opts.dnbspbwindowsvalue); segsel = segsselected.begin(); while ( segsel != segsselected.end() ) { SegmentVIIRSDNB *segm = (SegmentVIIRSDNB *)(*segsel); segm->ComposeSegmentImageWindow(lowerlimit, upperlimit); totalprogress += deltaprogress; emit progressCounter(totalprogress); ++segsel; } qDebug() << " SegmentListVIIRS::ComposeVIIRSDNBImageInThread Finished !!"; QApplication::restoreOverrideCursor(); emit segmentlistfinished(true); emit progressCounter(100); return true; }