Skip to content

Commit f1a886f

Browse files
authored
Merge pull request #858 from ourairquality/gui-tide-corrs
gui tide correction options
2 parents e12643a + d4be99f commit f1a886f

9 files changed

Lines changed: 81 additions & 34 deletions

File tree

app/qtapp/appcmn_qt/navi_post_opt.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,12 @@ OptDialog::OptDialog(QWidget *parent, int opts)
6767

6868
ui->cBTideCorrection->setItemData(0, tr("Not apply earth tides correction"), Qt::ToolTipRole);
6969
ui->cBTideCorrection->setItemData(1, tr("Apply solid earth tides correction"), Qt::ToolTipRole);
70-
ui->cBTideCorrection->setItemData(2, tr("Apply solid earth tides, OTL (ocean tide loading) and pole tide corrections"), Qt::ToolTipRole);
70+
ui->cBTideCorrection->setItemData(2, tr("Apply OTL (ocean tide loading)"), Qt::ToolTipRole);
71+
ui->cBTideCorrection->setItemData(3, tr("Apply solid earth tides and OTL (ocean tide loading)"), Qt::ToolTipRole);
72+
ui->cBTideCorrection->setItemData(4, tr("Apply pole tide corrections"), Qt::ToolTipRole);
73+
ui->cBTideCorrection->setItemData(5, tr("Apply solid earth tides and pole tide corrections"), Qt::ToolTipRole);
74+
ui->cBTideCorrection->setItemData(6, tr("Apply OTL (ocean tide loading) and pole tide corrections"), Qt::ToolTipRole);
75+
ui->cBTideCorrection->setItemData(7, tr("Apply solid earth tides, OTL (ocean tide loading) and pole tide corrections"), Qt::ToolTipRole);
7176

7277
ui->cBIonosphereOption->setItemData(IONOOPT_OFF, tr("Not apply ionospheric correction"), Qt::ToolTipRole);
7378
ui->cBIonosphereOption->setItemData(IONOOPT_BRDC, tr("Apply broadcast ionospheric model"), Qt::ToolTipRole);
@@ -705,8 +710,7 @@ void OptDialog::updateOptions()
705710
processingOptions.ionoopt = ui->cBIonosphereOption->currentIndex();
706711
processingOptions.tropopt = ui->cBTroposphereOption->currentIndex();
707712
processingOptions.dynamics = ui->cBDynamicModel->currentIndex();
708-
processingOptions.tidecorr = ui->cBTideCorrection->currentIndex();
709-
if (processingOptions.tidecorr > 1) processingOptions.tidecorr = 7;
713+
processingOptions.tidecorr = ui->cBTideCorrection->currentIndex() & 7;
710714
processingOptions.niter = ui->sBNumIteration->value();
711715
// codesmooth
712716
processingOptions.intpref = ui->cBIntputReferenceObservation->currentIndex();
@@ -933,7 +937,7 @@ void OptDialog::updateUi(const prcopt_t &prcopt, const solopt_t &solopt, const f
933937
ui->cBIonosphereOption->setCurrentIndex(prcopt.ionoopt);
934938
ui->cBTroposphereOption->setCurrentIndex(prcopt.tropopt);
935939
ui->cBDynamicModel->setCurrentIndex(prcopt.dynamics);
936-
ui->cBTideCorrection->setCurrentIndex(prcopt.tidecorr > 1 ? 2 : prcopt.tidecorr);
940+
ui->cBTideCorrection->setCurrentIndex(prcopt.tidecorr & 7);
937941
ui->sBNumIteration->setValue(prcopt.niter);
938942
//prcopt.codesmooth
939943
if (options == PostOptions) {
@@ -1132,8 +1136,7 @@ void OptDialog::save(const QString &file)
11321136
procOpts.ionoopt = ui->cBIonosphereOption->currentIndex();
11331137
procOpts.tropopt = ui->cBTroposphereOption->currentIndex();
11341138
procOpts.dynamics = ui->cBDynamicModel->currentIndex();
1135-
procOpts.tidecorr = ui->cBTideCorrection->currentIndex();
1136-
if (procOpts.tidecorr > 1) procOpts.tidecorr = 7;
1139+
procOpts.tidecorr = ui->cBTideCorrection->currentIndex() & 7;
11371140
procOpts.niter = ui->sBNumIteration->value();
11381141
// procOpts.codesmooth
11391142
procOpts.intpref = ui->cBIntputReferenceObservation->currentIndex();
@@ -1312,7 +1315,7 @@ void OptDialog::saveOptions(QSettings &settings)
13121315
settings.setValue("prcopt/ionoopt", ui->cBIonosphereOption->currentIndex());
13131316
settings.setValue("prcopt/tropopt", ui->cBTroposphereOption->currentIndex());
13141317
settings.setValue("prcopt/dynamics", ui->cBDynamicModel->currentIndex());
1315-
settings.setValue("prcopt/tidecorr", ui->cBTideCorrection->currentIndex());
1318+
settings.setValue("prcopt/tidecorr", ui->cBTideCorrection->currentIndex() & 7);
13161319
settings.setValue("prcopt/niter", ui->sBNumIteration->value());
13171320
// settings.setValue("prcopt/codesmooth", processingOptions.codesmooth);
13181321
settings.setValue("prcopt/intpref", ui->cBIntputReferenceObservation->currentIndex());
@@ -1511,7 +1514,7 @@ void OptDialog::loadOptions(QSettings &settings)
15111514
ui->cBIonosphereOption->setCurrentIndex(settings.value("prcopt/ionoopt", IONOOPT_BRDC).toInt());
15121515
ui->cBTroposphereOption->setCurrentIndex(settings.value("prcopt/tropopt", TROPOPT_SAAS).toInt());
15131516
ui->cBDynamicModel->setCurrentIndex(settings.value("prcopt/dynamics", 0).toInt());
1514-
ui->cBTideCorrection->setCurrentIndex(settings.value("prcopt/tidecorr", 0).toInt());
1517+
ui->cBTideCorrection->setCurrentIndex(settings.value("prcopt/tidecorr", 0).toInt() & 7);
15151518
ui->sBNumIteration->setValue(settings.value("prcopt/niter", 1).toInt());
15161519
// processingOptions.codesmooth = settings.value("prcopt/codesmooth", 0).toInt();
15171520
if (options == PostOptions) {

app/qtapp/appcmn_qt/navi_post_opt.ui

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,36 @@
190190
<string>Solid</string>
191191
</property>
192192
</item>
193+
<item>
194+
<property name="text">
195+
<string>OTL</string>
196+
</property>
197+
</item>
193198
<item>
194199
<property name="text">
195200
<string>Solid/OTL</string>
196201
</property>
197202
</item>
203+
<item>
204+
<property name="text">
205+
<string>S.Pole</string>
206+
</property>
207+
</item>
208+
<item>
209+
<property name="text">
210+
<string>Solid/S.Pole</string>
211+
</property>
212+
</item>
213+
<item>
214+
<property name="text">
215+
<string>OTL/S.Pole</string>
216+
</property>
217+
</item>
218+
<item>
219+
<property name="text">
220+
<string>Solid/OTL/S.Pole</string>
221+
</property>
222+
</item>
198223
</widget>
199224
</item>
200225
<item row="0" column="0">

app/qtapp/rtknavi_qt/mondlg.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ void MonitorDialog::setRtk()
393393
int width[] = {500, 500};
394394

395395
ui->tWConsole->setColumnCount(2);
396-
ui->tWConsole->setRowCount(52 + NFREQ*2);
396+
ui->tWConsole->setRowCount(53 + NFREQ*2);
397397
ui->tWConsole->setHorizontalHeaderLabels(header);
398398

399399
for (int i = 0; (i < ui->tWConsole->columnCount()) && (i < 2); i++)
@@ -486,7 +486,7 @@ void MonitorDialog::showRtk()
486486
if (rtk->opt.navsys & SYS_IRN) navsys = navsys + tr("NavIC ");
487487
if (rtk->opt.navsys & SYS_SBS) navsys = navsys + tr("SBAS ");
488488

489-
if (ui->tWConsole->rowCount() < 55) {
489+
if (ui->tWConsole->rowCount() < 53 + NFREQ * 2) {
490490
free(rtk);
491491
return;
492492
}
@@ -532,8 +532,14 @@ void MonitorDialog::showRtk()
532532
.arg(rtk->opt.snrmask.mask[2][3], 0).arg(rtk->opt.snrmask.mask[2][4], 0).arg(rtk->opt.snrmask.mask[2][5], 0)
533533
.arg(rtk->opt.snrmask.mask[2][6], 0).arg(rtk->opt.snrmask.mask[2][7], 0).arg(rtk->opt.snrmask.mask[2][8], 0));
534534

535-
ui->tWConsole->item(row, 0)->setText(tr("Rec Dynamic/Earth Tides Correction"));
536-
ui->tWConsole->item(row++, 1)->setText(QStringLiteral("%1, %2").arg(rtk->opt.dynamics ? tr("ON") : tr("OFF"), rtk->opt.tidecorr ? tr("ON") : tr("OFF")));
535+
ui->tWConsole->item(row, 0)->setText(tr("Rec Dynamics"));
536+
ui->tWConsole->item(row++, 1)->setText(QStringLiteral("%1").arg(rtk->opt.dynamics ? tr("ON") : tr("OFF")));
537+
538+
ui->tWConsole->item(row, 0)->setText(tr("Earth Tides Correction"));
539+
const char *tideopts[]={"OFF","Solid Earth","Ocean Loading","Solid Earth + Ocean Loading",
540+
"Solid Pole","Solid Earth + Solid Pole","Ocean Loading + Sold Pole",
541+
"Solid Earth + Ocean Loading + Solid Pole"};
542+
ui->tWConsole->item(row++, 1)->setText(QStringLiteral("%1").arg(tideopts[rtk->opt.tidecorr & 7]));
537543

538544
ui->tWConsole->item(row, 0)->setText(tr("Ionosphere/Troposphere Model"));
539545
ui->tWConsole->item(row++, 1)->setText(QStringLiteral("%1, %2").arg(ionoopt[rtk->opt.ionoopt < 0 || rtk->opt.ionoopt > 6 ? 0 : rtk->opt.ionoopt],

app/winapp/rtknavi/mondlg.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,14 @@ void __fastcall TMonitorDialog::ShowRtk(void)
484484
rtk->opt.snrmask.mask[3][0],rtk->opt.snrmask.mask[3][1],rtk->opt.snrmask.mask[3][2],
485485
rtk->opt.snrmask.mask[3][3],rtk->opt.snrmask.mask[3][4],rtk->opt.snrmask.mask[3][5],
486486
rtk->opt.snrmask.mask[3][6],rtk->opt.snrmask.mask[3][7],rtk->opt.snrmask.mask[3][8]);
487-
Tbl->Cells[0][i ]="Rec Dynamic/Earth Tides Correction";
488-
Tbl->Cells[1][i++]=s.sprintf("%s, %s",rtk->opt.dynamics?"ON":"OFF",rtk->opt.tidecorr?"ON":"OFF");
487+
488+
Tbl->Cells[0][i ]="Rec Dynamics";
489+
Tbl->Cells[1][i++]=s.sprintf("%s",rtk->opt.dynamics?"ON":"OFF");
490+
491+
Tbl->Cells[0][i ]="Earth Tides Correction";
492+
const char *tideopts[]={"OFF","Solid Earth","Ocean Loading","Solid Earth + Ocean Loading","Solid Pole",
493+
"Solid Earth + Solid Pole","Ocean Loading + Sold Pole","Solid Earth + Ocean Loading + Solid Pole"};
494+
Tbl->Cells[1][i++]=s.sprintf("%s", tideopts[rtk->opt.tidecorr & 7]);
489495

490496
Tbl->Cells[0][i ]="Ionosphere/Troposphere Model";
491497
Tbl->Cells[1][i++]=s.sprintf("%s, %s",ionoopt[rtk->opt.ionoopt],tropopt[rtk->opt.tropopt]);

app/winapp/rtknavi/naviopt.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ void __fastcall TOptDialog::GetOpt(void)
421421
Freq ->ItemIndex=PrcOpt.nf-1>NFREQ-1?NFREQ-1:PrcOpt.nf-1;
422422
ElMask ->Text =s.sprintf("%.0f",PrcOpt.elmin*R2D);
423423
DynamicModel ->ItemIndex=PrcOpt.dynamics;
424-
TideCorr ->ItemIndex=PrcOpt.tidecorr > 1 ? 2 : PrcOpt.tidecorr;
424+
TideCorr ->ItemIndex=PrcOpt.tidecorr & 7;
425425
IonoOpt ->ItemIndex=PrcOpt.ionoopt;
426426
TropOpt ->ItemIndex=PrcOpt.tropopt;
427427
SatEphem ->ItemIndex=PrcOpt.sateph;
@@ -565,8 +565,7 @@ void __fastcall TOptDialog::SetOpt(void)
565565
PrcOpt.nf =Freq ->ItemIndex+1;
566566
PrcOpt.elmin =str2dbl(ElMask ->Text)*D2R;
567567
PrcOpt.dynamics =DynamicModel->ItemIndex;
568-
PrcOpt.tidecorr =TideCorr ->ItemIndex;
569-
if (PrcOpt.tidecorr > 1) PrcOpt.tidecorr = 7;
568+
PrcOpt.tidecorr =TideCorr ->ItemIndex & 7;
570569
PrcOpt.ionoopt =IonoOpt ->ItemIndex;
571570
PrcOpt.tropopt =TropOpt ->ItemIndex;
572571
PrcOpt.sateph =SatEphem ->ItemIndex;
@@ -752,7 +751,7 @@ void __fastcall TOptDialog::LoadOpt(AnsiString file)
752751
ElMask ->Text =s.sprintf("%.0f",prcopt.elmin*R2D);
753752
PrcOpt.snrmask =prcopt.snrmask;
754753
DynamicModel ->ItemIndex =prcopt.dynamics;
755-
TideCorr ->ItemIndex =prcopt.tidecorr > 1 ? 2 : prcopt.tidecorr;
754+
TideCorr ->ItemIndex =prcopt.tidecorr & 7;
756755
IonoOpt ->ItemIndex =prcopt.ionoopt;
757756
TropOpt ->ItemIndex =prcopt.tropopt;
758757
SatEphem ->ItemIndex =prcopt.sateph;
@@ -994,8 +993,7 @@ void __fastcall TOptDialog::SaveOpt(AnsiString file)
994993
prcopt.elmin =str2dbl(ElMask ->Text)*D2R;
995994
prcopt.snrmask =PrcOpt.snrmask;
996995
prcopt.dynamics =DynamicModel->ItemIndex;
997-
prcopt.tidecorr =TideCorr ->ItemIndex;
998-
if (prcopt.tidecorr > 1) prcopt.tidecorr = 7;
996+
prcopt.tidecorr =TideCorr ->ItemIndex & 7;
999997
prcopt.ionoopt =IonoOpt ->ItemIndex;
1000998
prcopt.tropopt =TropOpt ->ItemIndex;
1001999
prcopt.sateph =SatEphem ->ItemIndex;

app/winapp/rtknavi/naviopt.dfm

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ object OptDialog: TOptDialog
199199
object DynamicModel: TComboBox
200200
Left = 248
201201
Top = 136
202-
Width = 75
202+
Width = 45
203203
Height = 21
204204
Style = csDropDownList
205205
ItemIndex = 0
@@ -210,17 +210,23 @@ object OptDialog: TOptDialog
210210
'ON')
211211
end
212212
object TideCorr: TComboBox
213-
Left = 325
213+
Left = 295
214214
Top = 136
215-
Width = 75
215+
Width = 105
216216
Height = 21
217217
Style = csDropDownList
218218
ItemIndex = 0
219219
TabOrder = 5
220220
Text = 'OFF'
221221
Items.Strings = (
222222
'OFF'
223-
'Solid')
223+
'Solid Earth Tide'
224+
'Ocean Tide Loading'
225+
'Solid Earth + OTL'
226+
'Solid Pole'
227+
'Solid Earth + Pole'
228+
'OTL + Solid Pole'
229+
'Solid + OTL + Pole')
224230
end
225231
object IonoOpt: TComboBox
226232
Left = 248

app/winapp/rtkpost/postmain.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,8 +1000,7 @@ int __fastcall TMainForm::GetOption(prcopt_t &prcopt, solopt_t &solopt,
10001000
prcopt.posopt[4]=PosOpt[4];
10011001
prcopt.posopt[5]=PosOpt[5];
10021002
prcopt.dynamics =DynamicModel;
1003-
prcopt.tidecorr =TideCorr;
1004-
if (prcopt.tidecorr > 1) prcopt.tidecorr = 7;
1003+
prcopt.tidecorr =TideCorr & 7;
10051004
prcopt.armaxiter=ARIter;
10061005
prcopt.niter =NumIter;
10071006
prcopt.minfixsats=MinFixSats;

app/winapp/rtkpost/postopt.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ void __fastcall TOptDialog::LoadOpt(AnsiString file)
636636
ElMask ->Text =s.sprintf("%.0f",prcopt.elmin*R2D);
637637
SnrMask =prcopt.snrmask;
638638
DynamicModel ->ItemIndex =prcopt.dynamics;
639-
TideCorr ->ItemIndex =prcopt.tidecorr > 1 ? 2 : prcopt.tidecorr;
639+
TideCorr ->ItemIndex =prcopt.tidecorr & 7;
640640
IonoOpt ->ItemIndex =prcopt.ionoopt;
641641
TropOpt ->ItemIndex =prcopt.tropopt;
642642
SatEphem ->ItemIndex =prcopt.sateph;
@@ -797,8 +797,7 @@ int ppp=PosMode->ItemIndex>=PMODE_PPP_KINEMA;
797797
prcopt.elmin =str2dbl(ElMask ->Text)*D2R;
798798
prcopt.snrmask =SnrMask;
799799
prcopt.dynamics =DynamicModel->ItemIndex;
800-
prcopt.tidecorr =TideCorr ->ItemIndex;
801-
if (prcopt.tidecorr > 1) prcopt.tidecorr = 7;
800+
prcopt.tidecorr =TideCorr ->ItemIndex & 7;
802801
prcopt.ionoopt =IonoOpt ->ItemIndex;
803802
prcopt.tropopt =TropOpt ->ItemIndex;
804803
prcopt.sateph =SatEphem ->ItemIndex;

app/winapp/rtkpost/postopt.dfm

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ object OptDialog: TOptDialog
216216
object DynamicModel: TComboBox
217217
Left = 248
218218
Top = 92
219-
Width = 75
219+
Width = 45
220220
Height = 21
221221
Style = csDropDownList
222222
ItemIndex = 0
@@ -228,18 +228,23 @@ object OptDialog: TOptDialog
228228
'ON')
229229
end
230230
object TideCorr: TComboBox
231-
Left = 325
231+
Left = 295
232232
Top = 92
233-
Width = 75
233+
Width = 105
234234
Height = 21
235235
Style = csDropDownList
236236
ItemIndex = 0
237237
TabOrder = 6
238238
Text = 'OFF'
239239
Items.Strings = (
240240
'OFF'
241-
'Solid'
242-
'Solid/OTL')
241+
'Solid Earth Tide'
242+
'Ocean Tide Loading'
243+
'Solid Earth + OTL'
244+
'Solid Pole'
245+
'Solid Earth + Pole'
246+
'OTL + Solid Pole'
247+
'Solid + OTL + Pole')
243248
end
244249
object IonoOpt: TComboBox
245250
Left = 248

0 commit comments

Comments
 (0)