public static GraphPane GenericSatComparisonGraph(Graphics g, string sat1Path, string sat2Path, string centerEpochISOYMD) { IAgCrdnVector diff = StateCompare.GetVectorBetweenObjects(sat1Path, sat1Path, sat2Path); object[] diffMin = StateCompare.GetTimeOfMinAndValue(diff); string timeOfMinRange = (string)diffMin.GetValue(0); double minRange = ((double)diffMin.GetValue(1)); double[] ric = StateCompare.GetRICDifferenceAtTCA(sat1Path, sat2Path, centerEpochISOYMD); double rangeAtTCA = Math.Sqrt(ric[0] * ric[0] + ric[1] * ric[1] + ric[2] * ric[2]); TextObj stktcaComment = ZedGraphAssistant.CreateGraphLabel("Time of Min Range: " + timeOfMinRange, .01f, .01f, Color.Black); TextObj stkmissComment = ZedGraphAssistant.CreateGraphLabel("Minimum Range: " + minRange.ToString(), .01f, .05f, Color.Black); TextObj tcaComment = ZedGraphAssistant.CreateGraphLabel("Comparison Time : " + centerEpochISOYMD, 1f, .01f, AlignH.Right, AlignV.Top, Color.Black); TextObj tcaRangeComment = ZedGraphAssistant.CreateGraphLabel("Range : " + rangeAtTCA.ToString(), 1f, .05f, AlignH.Right, AlignV.Top, Color.Black); TextObj[] comments = new TextObj[] { stktcaComment, stkmissComment, tcaComment, tcaRangeComment }; StateCompare.RICResults ricOverTime = StateCompare.GetRICDifferenceOverTime(sat1Path, sat2Path, centerEpochISOYMD); PointPairList pplR = ZedGraphAssistant.ArrayToPlottableList(ricOverTime.Times, ricOverTime.R); PointPairList pplI = ZedGraphAssistant.ArrayToPlottableList(ricOverTime.Times, ricOverTime.I); PointPairList pplC = ZedGraphAssistant.ArrayToPlottableList(ricOverTime.Times, ricOverTime.C); PointPairList pplRange = ZedGraphAssistant.ArrayToPlottableList(ricOverTime.Times, ricOverTime.Range); PointPairList[] ppl = new PointPairList[] { pplR, pplI, pplC, pplRange }; string[] pplNames = new string[] { "Radial", "In-Track", "Cross-Track", "Range", "" }; string sat1Name = sat1Path.Substring(sat1Path.LastIndexOf("/") + 1); string sat2Name = sat2Path.Substring(sat2Path.LastIndexOf("/") + 1); return(ZedGraphAssistant.CreateGraph("Comparison: " + sat1Name + " to " + sat2Name, centerEpochISOYMD, g, ppl, pplNames, comments)); }
private void GetStkCdmTleTCA() { IAgCrdnVector diff = StateCompare.GetVectorBetweenObjects(StkCdmSatellitePath, StkCdmSatellitePath, StkTleSatellitePath); object[] diffMin = StateCompare.GetTimeOfMinAndValue(diff); _stkTimeOfMinRange = (string)diffMin.GetValue(0); _stkMinimumRange = ((double)diffMin.GetValue(1)); }
private void GetStkTCA() { IAgCrdnVector diff = StateCompare.GetVectorBetweenObjects("*/Satellite/" + Primary.StkCdmSatelliteName, "*/Satellite/" + Primary.StkCdmSatelliteName, "*/Satellite/" + Secondary.StkCdmSatelliteName); object[] diffMin = StateCompare.GetTimeOfMinAndValue(diff); _stkTimeOfMinRange = (string)diffMin.GetValue(0); _stkMinimumRange = ((double)diffMin.GetValue(1)); }
public static object[] GetTcaRangeInfo(string sat1Path, string sat2Path) { IAgCrdnVector diff = StateCompare.GetVectorBetweenObjects(sat1Path, sat1Path, sat2Path); object[] diffMin = StateCompare.GetTimeOfMinAndValue(diff); string stkTimeOfMinRange = (string)diffMin.GetValue(0); double stkMinimumRange = ((double)diffMin.GetValue(1)); return(new object[] { stkTimeOfMinRange, stkMinimumRange }); }