public List <ENU> GetEnus() { var strs = this.richTextBox_neu.Lines; List <ENU> list = new List <ENU>(); foreach (string item in strs) { if (String.IsNullOrWhiteSpace(item)) { continue; } list.Add(ENU.Parse(item)); } return(list); }
/// <summary> /// 增加参数到存储表 /// </summary> /// <param name="epoch"></param> /// <param name="result"></param> private void AddEpochParam(ISiteSatObsInfo epoch, SimpleGnssResult result) { var fileName = ResultFileNameBuilder.BuildEpochParamFileName(epoch.Name); var table = TableTextManager.GetOrCreate(fileName); table.NewRow(); table.AddItem("Epoch", epoch.ReceiverTime);//ToShortTimeString()); if (result is SingleSiteGnssResult || result is IWithEstimatedBaselines || result is SingleSitePeriodInfoGnssResult || result is IWithEstimatedBaseline) { XYZ appXyz = new XYZ(); XYZ estXyz = new XYZ(); if (result is SingleSiteGnssResult) { var singleSiteResult = result as SingleSiteGnssResult; appXyz = singleSiteResult.ApproxXyz; estXyz = singleSiteResult.EstimatedXyz; } if (result is SingleSitePeriodInfoGnssResult) { var period = result as SingleSitePeriodInfoGnssResult; appXyz = period.MaterialObj[0].SiteInfo.ApproxXyz; } if (result is IWithEstimatedBaseline) { var info = result as IWithEstimatedBaseline; var baseLine = info.GetEstimatedBaseline(); estXyz = baseLine.EstimatedXyzOfRov; appXyz = baseLine.ApproxXyzOfRov; } if (result is IWithEstimatedBaselines) { var info = result as IWithEstimatedBaselines; var baseLine = info.GetEstimatedBaselines().First; estXyz = baseLine.EstimatedXyzOfRov; appXyz = baseLine.ApproxXyzOfRov; } var dxyz = ((BaseGnssResult)result).XyzCorrection; // XYZ.Parse(result.Adjustment.Estimated); if (dxyz != null) //&& epoch.ReceiverTime.SecondsOfDay % 30 == 0 { ENU enu = null; if (this.Option.IsUpdateEstimatePostition) { dxyz = estXyz - appXyz; enu = CoordTransformer.XyzToEnu(estXyz, appXyz); } else { enu = CoordTransformer.LocaXyzToEnu(dxyz, appXyz); } table.AddItem(Gnsser.ParamNames.De, enu.E); table.AddItem(Gnsser.ParamNames.Dn, enu.N); table.AddItem(Gnsser.ParamNames.Du, enu.U); if (this.Option.IsUpdateEstimatePostition || this.Option.PositionType == PositionType.动态定位) { table.AddItem("EstX", estXyz.X); table.AddItem("EstY", estXyz.Y); table.AddItem("EstZ", estXyz.Z); } } } #region 添加钟结果改正 if (result is ClockEstimationResult) { var mEpochInfo = epoch as MultiSiteEpochInfo; List <string> paranames = result.ResultMatrix.ParamNames; int CountOfSat = epoch.EnabledSatCount * 2; foreach (var item in epoch.EnabledPrns) { double qq = result.ResultMatrix.Corrected.CorrectedValue[paranames.IndexOf(item + "_" + ParamNames.SatClkErrDistance)]; table.AddItem(item.ToString(), qq); int count = 0; double time = 0; Time EmissionSatClockTime = new Time();// Time.Default; //Time EmissionSatClockTime1 = Time.Default; foreach (var item2 in mEpochInfo) { foreach (var item3 in item2) { if (item3.Prn == item) { count++; time += item3.Ephemeris.ClockBias - ((Ephemeris)item3.Ephemeris).RelativeCorrection; //EmissionSatClockTime.TickTime.SecondTicks += item3.EmissionTime.TickTime.SecondTicks; EmissionSatClockTime.TickTime += item3.EmissionTime.TickTime; break; } } } double aa = qq / 0.3 + time * 1e9 / count; double time1 = (EmissionSatClockTime.TickTime.SecondTicks + EmissionSatClockTime.TickTime.Fraction) / count; EmissionSatClockTime.TickTime = SecondTime.FromSecond(time1); table.AddItem(item + "EmissionSatClockTime", EmissionSatClockTime.ToString()); table.AddItem(item + "_Corrected", aa); } } #endregion //table.AddItem((IVector)result.Adjustment.Estimated); foreach (var name in result.ParamNames) { //if (item.Length == 6 && item.Substring(3, 3) == "_λN") //{ // table.AddItem(item.Substring(0, 3), result.Adjustment.Estimated[item]); //} //else { table.AddItem(name, result.ResultMatrix.Estimated[name]); } } if (epoch.UnstablePrns.Count > 0 || epoch.RemovedPrns.Count > 0) { StringBuilder sb = new StringBuilder(); if (epoch.UnstablePrns.Count > 0) { sb.Append(String.Format(new EnumerableFormatProvider(), "{0}", epoch.UnstablePrns)); } if (epoch.RemovedPrns.Count > 0) { sb.Append(";" + String.Format(new EnumerableFormatProvider(), "{0}", epoch.RemovedPrns)); } table.AddItem("CsOrRemoved", sb.ToString()); } table.AddItem(ParamNames.ResultType, result.ResultMatrix.ResultType); table.AddItem(ParamNames.StdDev, result.ResultMatrix.StdDev); table.EndRow(); }