Changeset 8405 in ntrip for trunk/BNC


Ignore:
Timestamp:
Jul 6, 2018, 10:30:06 AM (6 years ago)
Author:
stuerze
Message:

updated transformation parameters for ITRF2014 => DREF91 and ITRF2014 => ETRF2000

Location:
trunk/BNC/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/bncwindow.cpp

    r8403 r8405  
    26892689      QComboBox* system = new QComboBox();
    26902690      system->setEditable(false);
    2691       system->addItems(QString("IGS14,ETRF2000,NAD83,GDA2020,SIRGAS2000,DREF91,Custom").split(","));
     2691      system->addItems(QString("IGS14,ETRF2000,GDA2020,SIRGAS2000,DREF91,Custom").split(","));
    26922692      system->setFrame(false);
    26932693      _uploadTable->setCellWidget(iRow, iCol, system);
  • trunk/BNC/src/upload/bncrtnetuploadcaster.cpp

    r8361 r8405  
    105105  // Set Transformation Parameters
    106106  // -----------------------------
    107   // Transformation Parameters from ITRF2008 to ETRF2000
     107  // Transformation Parameters from ITRF2014 to ETRF2000
    108108  if (_crdTrafo == "ETRF2000") {
    109     _dx  =  0.0521;
    110     _dy  =  0.0493;
    111     _dz  = -0.0585;
     109    _dx  =  0.0537;
     110    _dy  =  0.0512;
     111    _dz  = -0.0551;
    112112    _dxr =  0.0001;
    113113    _dyr =  0.0001;
    114     _dzr = -0.0018;
    115     _ox  =  0.000891;
    116     _oy  =  0.005390;
    117     _oz  = -0.008712;
    118     _oxr =  0.000081;
    119     _oyr =  0.000490;
    120     _ozr = -0.000792;
    121     _sc  =  1.34;
    122     _scr =  0.08;
     114    _dzr = -0.0019;
     115    _ox  = -0.000891;
     116    _oy  = -0.005390;
     117    _oz  =  0.008712;
     118    _oxr = -0.000081;
     119    _oyr = -0.000490;
     120    _ozr = +0.000792;
     121    _sc  =  1.02;
     122    _scr =  0.11;
    123123    _t0  =  2000.0;
    124   }
    125   // Transformation Parameters from ITRF2008 to NAD83
    126   else if (_crdTrafo == "NAD83") {
    127     _dx  =  0.99343;
    128     _dy  = -1.90331;
    129     _dz  = -0.52655;
    130     _dxr =  0.00079;
    131     _dyr = -0.00060;
    132     _dzr = -0.00134;
    133     _ox  = -0.02591467;
    134     _oy  = -0.00942645;
    135     _oz  = -0.01159935;
    136     _oxr = -0.00006667;
    137     _oyr =  0.00075744;
    138     _ozr =  0.00005133;
    139     _sc  =  1.71504;
    140     _scr = -0.10201;
    141     _t0  =  1997.0;
    142124  }
    143125  // Transformation Parameters from ITRF2014 to GDA2020 (Ryan Ruddick, GA)
     
    177159    _t0  =  2000.4;
    178160  }
    179   // Transformation Parameters from ITRF2008 to DREF91
     161  // Transformation Parameters from ITRF2014 to DREF91
    180162  else if (_crdTrafo == "DREF91") {
    181     _dx  = -0.0118;
    182     _dy  =  0.1432;
    183     _dz  = -0.1117;
     163    _dx  =  0.0537;
     164    _dy  =  0.0512;
     165    _dz  = -0.0551;
    184166    _dxr =  0.0001;
    185167    _dyr =  0.0001;
    186     _dzr = -0.0018;
    187     _ox  =  0.003291;
    188     _oy  =  0.006190;
    189     _oz  = -0.011012;
    190     _oxr =  0.000081;
    191     _oyr =  0.000490;
    192     _ozr = -0.000792;
    193     _sc  =  12.24;
    194     _scr =  0.08;
     168    _dzr = -0.0019;
     169    _ox  = -0.000233;
     170    _oy  = -0.005598;
     171    _oz  =  0.009467;
     172    _oxr = -0.000081;
     173    _oyr = -0.000490;
     174    _ozr =  0.000792;
     175    _sc  =  1.02;
     176    _scr =  0.11;
    195177    _t0  =  2000.0;
    196178  }
     
    212194    _t0 = settings.value("trafo_t0").toDouble();
    213195  }
    214   // TODO: the following lines can be deleted if all parameters are updated regarding ITRF2014
    215   if (_crdTrafo == "ETRF2000" ||
    216       _crdTrafo ==  "NAD83" ||
    217       _crdTrafo ==  "DREF91" ) {// Transformation Parameters from ITRF2014 to ITRF2008
    218                                 // (http://itrf.ign.fr/doc_ITRF/Transfo-ITRF2014_ITRFs.txt)
    219    _dx8  =  0.0016;
    220    _dy8  =  0.0019;
    221    _dz8  =  0.0024;
    222    _dxr8 =  0.0;
    223    _dyr8 =  0.0;
    224    _dzr8 = -0.0001;
    225    _ox8  =  0.0;
    226    _oy8  =  0.0;
    227    _oz8  =  0.0;
    228    _oxr8 =  0.0;
    229    _oyr8 =  0.0;
    230    _ozr8 =  0.0;
    231    _sc8  = -0.02;
    232    _scr8 =  0.03;
    233    _t08  =  2010.0;
    234  }
    235196}
    236197
     
    682643                break;
    683644              biasSat->NumberOfCodeBiases += 1;
    684               biasSat->Biases[ii].Type = CODETYPEGPS_L2_CM;
     645              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_M;
    685646              biasSat->Biases[ii].Bias = it.value();
    686647            }
     
    690651                break;
    691652              biasSat->NumberOfCodeBiases += 1;
    692               biasSat->Biases[ii].Type = CODETYPEGPS_L2_CL;
     653              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_L;
    693654              biasSat->Biases[ii].Bias = it.value();
    694655            }
     
    698659                break;
    699660              biasSat->NumberOfCodeBiases += 1;
    700               biasSat->Biases[ii].Type = CODETYPEGPS_L2_CML;
     661              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_ML;
    701662              biasSat->Biases[ii].Bias = it.value();
    702663            }
     
    1028989                break;
    1029990              biasSat->NumberOfCodeBiases += 1;
    1030               biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_S;
     991              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_D;
    1031992              biasSat->Biases[ii].Bias = it.value();
    1032993            }
     
    1036997                break;
    1037998              biasSat->NumberOfCodeBiases += 1;
    1038               biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_L;
     999              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_P;
    10391000              biasSat->Biases[ii].Bias = it.value();
    10401001            }
     
    10441005                break;
    10451006              biasSat->NumberOfCodeBiases += 1;
    1046               biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_SL;
     1007              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_DP;
    10471008              biasSat->Biases[ii].Bias = it.value();
    10481009            }
     
    13271288                break;
    13281289              phasebiasSat->NumberOfPhaseBiases += 1;
    1329               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CM;
     1290              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_M;
    13301291              phasebiasSat->Biases[ii].Bias = pbSig.bias;
    13311292              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
     
    13401301                break;
    13411302              phasebiasSat->NumberOfPhaseBiases += 1;
    1342               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CL;
     1303              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_L;
    13431304              phasebiasSat->Biases[ii].Bias = pbSig.bias;
    13441305              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
     
    13531314                break;
    13541315              phasebiasSat->NumberOfPhaseBiases += 1;
    1355               phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CML;
     1316              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_ML;
    13561317              phasebiasSat->Biases[ii].Bias = pbSig.bias;
    13571318              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
     
    18781839                break;
    18791840              phasebiasSat->NumberOfPhaseBiases += 1;
    1880               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_S;
     1841              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_D;
    18811842              phasebiasSat->Biases[ii].Bias = pbSig.bias;
    18821843              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
     
    18911852                break;
    18921853              phasebiasSat->NumberOfPhaseBiases += 1;
    1893               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_L;
     1854              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_P;
    18941855              phasebiasSat->Biases[ii].Bias = pbSig.bias;
    18951856              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
     
    19041865                break;
    19051866              phasebiasSat->NumberOfPhaseBiases += 1;
    1906               phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_SL;
     1867              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_DP;
    19071868              phasebiasSat->Biases[ii].Bias = pbSig.bias;
    19081869              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
     
    22962257
    22972258  double dc = 0.0;
    2298   //TODO: the following 3 lines can be activated again if all parameters are updated regarding ITRF2014
    2299   //if (_crdTrafo != "IGS14") {
    2300   //  crdTrafo(GPSweek, xP, dc);
    2301   //}
    2302   //TODO: the following 3 lines can be deleted if all parameters are updated regarding ITRF2014
    2303   if (_crdTrafo ==  "ETRF2000") {
    2304     crdTrafo8(GPSweek, xP, dc);
    2305     crdTrafo(GPSweek, xP, dc);
    2306   }
    2307   else if (_crdTrafo ==  "NAD83") {
    2308     crdTrafo8(GPSweek, xP, dc);
    2309     crdTrafo(GPSweek, xP, dc);
    2310   }
    2311   else if (_crdTrafo ==  "DREF91") {
    2312     crdTrafo8(GPSweek, xP, dc);
    2313     crdTrafo(GPSweek, xP, dc);
    2314   }
    2315   else if (_crdTrafo ==  "SIRGAS2000" ||
    2316            _crdTrafo ==  "GDA2020") {
     2259  if (_crdTrafo != "IGS14") {
    23172260    crdTrafo(GPSweek, xP, dc);
    23182261  }
     
    23962339    meanSta(3) = 5136850.0;
    23972340  }
    2398   else if (_crdTrafo == "NAD83") {
    2399     meanSta(1) = -1092950.0;
    2400     meanSta(2) = -4383600.0;
    2401     meanSta(3) = 4487420.0;
    2402   }
    24032341  else if (_crdTrafo == "GDA2020") {
    24042342    meanSta(1) = -4052050.0;
     
    24212359    meanSta(3) = 0.0; // TODO
    24222360  }
    2423   // TODO: has to be deleted as soon all parameters are available with respect to ITRF2014
    2424   else if (_crdTrafo == "ITRF2008") {
    2425       meanSta(1) = 0.0; // TODO
    2426       meanSta(2) = 0.0; // TODO
    2427       meanSta(3) = 0.0; // TODO
    2428     }
    24292361
    24302362  // Clock correction proportional to topocentric distance to satellites
     
    24472379}
    24482380
    2449 // Transform Coordinates
    2450 ////////////////////////////////////////////////////////////////////////////
    2451 void bncRtnetUploadCaster::crdTrafo8(int GPSWeek, ColumnVector& xyz,
    2452     double& dc) {
    2453 
    2454   // Current epoch minus 2000.0 in years
    2455   // ------------------------------------
    2456   double dt = (GPSWeek - (1042.0 + 6.0 / 7.0)) / 365.2422 * 7.0 + 2000.0 - _t0;
    2457 
    2458   ColumnVector dx(3);
    2459 
    2460   dx(1) = _dx8 + dt * _dxr8;
    2461   dx(2) = _dy8 + dt * _dyr8;
    2462   dx(3) = _dz8 + dt * _dzr8;
    2463 
    2464   static const double arcSec = 180.0 * 3600.0 / M_PI;
    2465 
    2466   double ox = (_ox8 + dt * _oxr8) / arcSec;
    2467   double oy = (_oy8 + dt * _oyr8) / arcSec;
    2468   double oz = (_oz8 + dt * _ozr8) / arcSec;
    2469 
    2470   double sc = 1.0 + _sc8 * 1e-9 + dt * _scr8 * 1e-9;
    2471 
    2472   // Specify approximate center of area
    2473   // ----------------------------------
    2474   ColumnVector meanSta(3);
    2475   meanSta(1) = 0.0; // TODO
    2476   meanSta(2) = 0.0; // TODO
    2477   meanSta(3) = 0.0; // TODO
    2478 
    2479 
    2480   // Clock correction proportional to topocentric distance to satellites
    2481   // -------------------------------------------------------------------
    2482   double rho = (xyz - meanSta).norm_Frobenius();
    2483   dc = rho * (sc - 1.0) / sc / t_CST::c;
    2484 
    2485   Matrix rMat(3, 3);
    2486   rMat(1, 1) = 1.0;
    2487   rMat(1, 2) = -oz;
    2488   rMat(1, 3) = oy;
    2489   rMat(2, 1) = oz;
    2490   rMat(2, 2) = 1.0;
    2491   rMat(2, 3) = -ox;
    2492   rMat(3, 1) = -oy;
    2493   rMat(3, 2) = ox;
    2494   rMat(3, 3) = 1.0;
    2495 
    2496   xyz = sc * rMat * xyz + dx;
    2497 }
    2498 
    24992381int bncRtnetUploadCaster::determineUpdateInd(double samplingRate) {
    25002382
  • trunk/BNC/src/upload/bncrtnetuploadcaster.h

    r8275 r8405  
    3939                        QString& outLine);
    4040  void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc);
    41 
    42   // TODO: the following lines can be deleted if all parameters are updated regarding ITRF2014
    43   void crdTrafo8(int GPSWeek, ColumnVector& xyz, double& dc);
    4441
    4542  int determineUpdateInd(double samplingRate);
Note: See TracChangeset for help on using the changeset viewer.