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));
        }
示例#2
0
        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));
        }
示例#4
0
        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 });
        }