- Timestamp:
- Nov 26, 2022, 11:08:43 PM (22 months ago)
- Location:
- trunk/BNC/src/upload
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/upload/bnccustomtrafo.cpp
r8252 r9911 119 119 editLayout->addWidget(new QLabel(tr("t0 [y]")), 4, 4, Qt::AlignRight); 120 120 editLayout->addWidget(_t0LineEdit, 4, 5); 121 editLayout->addWidget(new QLabel("Specify up to 14 Helmert Transformation Parameters for transformation from IGS 14"), 5, 0, 1, 6, Qt::AlignCenter);121 editLayout->addWidget(new QLabel("Specify up to 14 Helmert Transformation Parameters for transformation from IGS20"), 5, 0, 1, 6, Qt::AlignCenter); 122 122 editLayout->addWidget(new QLabel("into target reference system."), 6, 0, 1, 6, Qt::AlignCenter); 123 123 -
trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
r9888 r9911 243 243 _t0 = settings.value("trafo_t0").toDouble(); 244 244 } 245 // TODO: the following lines can be deleted if all parameters are updated regarding ITRF2020 246 if (_crdTrafo == "ETRF2000" || 247 _crdTrafo == "GDA2020" || 248 _crdTrafo == "DREF91" || 249 _crdTrafo == "SIRGAS2000") { 250 // Transformation Parameters from ITRF2020 to ITRF2014 251 // from ITRF web site: https://itrf.ign.fr/en/solutions/transformations 252 _dx14 = -0.0014; 253 _dy14 = -0.0009; 254 _dz14 = 0.0014; 255 _dxr14 = 0.0000; 256 _dyr14 = -0.0001; 257 _dzr14 = -0.0002; 258 _ox14 = 0.0000; 259 _oy14 = 0.0000; 260 _oz14 = 0.0000; 261 _oxr14 = 0.0000; 262 _oyr14 = 0.0000; 263 _ozr14 = 0.0000; 264 _sc14 = -0.4200; 265 _scr14 = 0.0000; 266 _t014 = 2015.0; 267 } 245 268 } 246 269 … … 1015 1038 1016 1039 double dc = 0.0; 1017 if (_crdTrafo != "IGS14") { 1018 crdTrafo(GPSweek, xP, dc); 1040 if (_crdTrafo != "IGS20") { 1041 crdTrafo14(GPSweek, xP, dc); // ITRF2020 => ITRF2014 1042 crdTrafo(GPSweek, xP, dc); // ITRF2014 to other reference frames 1019 1043 } 1020 1044 … … 1151 1175 } 1152 1176 else if (_crdTrafo == "Custom") { 1153 meanSta(1) = 0.0; // TODO1154 meanSta(2) = 0.0; // TODO1155 meanSta(3) = 0.0; // TODO1177 meanSta(1) = 0.0; 1178 meanSta(2) = 0.0; 1179 meanSta(3) = 0.0; 1156 1180 } 1157 1181 … … 1175 1199 } 1176 1200 1201 // Transform Coordinates 1202 //////////////////////////////////////////////////////////////////////////// 1203 void bncRtnetUploadCaster::crdTrafo14(int GPSWeek, ColumnVector& xyz, 1204 double& dc) { 1205 1206 // Current epoch minus 2000.0 in years 1207 // ------------------------------------ 1208 double dt = (GPSWeek - (1042.0 + 6.0 / 7.0)) / 365.2422 * 7.0 + 2000.0 - _t0; 1209 1210 ColumnVector dx(3); 1211 1212 dx(1) = _dx14 + dt * _dxr14; 1213 dx(2) = _dy14 + dt * _dyr14; 1214 dx(3) = _dz14 + dt * _dzr14; 1215 1216 static const double arcSec = 180.0 * 3600.0 / M_PI; 1217 1218 double ox = (_ox14 + dt * _oxr14) / arcSec; 1219 double oy = (_oy14 + dt * _oyr14) / arcSec; 1220 double oz = (_oz14 + dt * _ozr14) / arcSec; 1221 1222 double sc = 1.0 + _sc14 * 1e-9 + dt * _scr14 * 1e-9; 1223 1224 // Specify approximate center of area 1225 // ---------------------------------- 1226 ColumnVector meanSta(3); 1227 meanSta(1) = 0.0; // TODO 1228 meanSta(2) = 0.0; // TODO 1229 meanSta(3) = 0.0; // TODO 1230 1231 // Clock correction proportional to topocentric distance to satellites 1232 // ------------------------------------------------------------------- 1233 double rho = (xyz - meanSta).NormFrobenius(); 1234 dc = rho * (sc - 1.0) / sc / t_CST::c; 1235 1236 Matrix rMat(3, 3); 1237 rMat(1, 1) = 1.0; 1238 rMat(1, 2) = -oz; 1239 rMat(1, 3) = oy; 1240 rMat(2, 1) = oz; 1241 rMat(2, 2) = 1.0; 1242 rMat(2, 3) = -ox; 1243 rMat(3, 1) = -oy; 1244 rMat(3, 2) = ox; 1245 rMat(3, 3) = 1.0; 1246 1247 xyz = sc * rMat * xyz + dx; 1248 } 1249 1250 // Update Interval 1251 //////////////////////////////////////////////////////////////////////////// 1177 1252 int bncRtnetUploadCaster::determineUpdateInd(double samplingRate) { 1178 1253 … … 1219 1294 } 1220 1295 1296 // Check corrections 1297 //////////////////////////////////////////////////////////////////////////// 1221 1298 bool bncRtnetUploadCaster::corrIsOutOfRange(struct SsrCorr::ClockOrbit::SatData* sd) { 1222 1299 -
trunk/BNC/src/upload/bncrtnetuploadcaster.h
r9868 r9911 47 47 48 48 void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc); 49 // TODO: the following line can be deleted if all parameters are updated regarding ITRF2020 50 void crdTrafo14(int GPSWeek, ColumnVector& xyz, double& dc); 49 51 50 52 int determineUpdateInd(double samplingRate); … … 78 80 double _scr; 79 81 double _t0; 82 // TODO: the following lines can be deleted if all parameters are updated regarding ITRF2020 83 double _dx14; 84 double _dy14; 85 double _dz14; 86 double _dxr14; 87 double _dyr14; 88 double _dzr14; 89 double _ox14; 90 double _oy14; 91 double _oz14; 92 double _oxr14; 93 double _oyr14; 94 double _ozr14; 95 double _sc14; 96 double _scr14; 97 double _t014; 98 80 99 bncClockRinex* _rnx; 81 100 bncSP3* _sp3;
Note:
See TracChangeset
for help on using the changeset viewer.