public void EstimateProbability() { StkAssistant.SetAnalysisIntervalFromTCA(this.Primary.EpochISOYMD); string primaryPath = Primary.BaselineObjectPath; string primaryType = Primary.BaselineObjectType; string primaryName = primaryPath.Substring(primaryPath.LastIndexOf("/") + 1); string secondaryPath = Secondary.BaselineObjectPath; string secondaryName = secondaryPath.Substring(secondaryPath.LastIndexOf("/") + 1); string catName = "CAT_" + primaryName; int counter = 0; while (StkAssistant.Root.CurrentScenario.Children.Contains(AgESTKObjectType.eAdvCat, catName)) { catName = "CAT_" + primaryName + "_" + (++counter).ToString(); } IAgStkObject cat = StkAssistant.Root.CurrentScenario.Children.New(AgESTKObjectType.eAdvCat, catName); string cmdResult; StkAssistant.TryConnect("Save / " + primaryPath, out cmdResult); StkAssistant.TryConnect("Save / " + secondaryPath, out cmdResult); StkAssistant.TryConnect("ACAT */AdvCAT/" + catName + " TimePeriod \"" + StkAssistant.Scenario.StartTime + "\" \"" + StkAssistant.Scenario.StopTime + "\"", out cmdResult); StkAssistant.TryConnect("ACAT */AdvCAT/" + catName + " Primary Add \"" + primaryName + ".sa\" Cov", out cmdResult); StkAssistant.TryConnect("ACAT */AdvCAT/" + catName + " Secondary Add \"" + secondaryName + ".sa\" Cov", out cmdResult); StkAssistant.TryConnect("ACAT */AdvCAT/" + catName + " Compute ShowProgress On", out cmdResult); StkAssistant.TryConnect("VO */AdvCAT/" + catName + " AdvCATAttributes ShowSecondary On ShowAllSecondary On", out cmdResult); //StkAssistant.TryConnect("ReportCreate */AdvCAT/" + catName + " Type Display Style \"Close Approach By Min Range\"", out cmdResult); StkAssistant.TryConnect("ACATEvents_RM */AdvCAT/" + catName, out cmdResult); string catTCA; if (!cmdResult.Equals("No events found.")) { catTCA = cmdResult.Split(',')[5]; IAgStkObject catObject = StkAssistant.Root.GetObjectFromPath("*/AdvCAT/" + catName); IAgDataPrvInterval catDP = cat.DataProviders["Events by Min Range"] as IAgDataPrvInterval; IAgDrResult catResult = catDP.Exec(StkAssistant.Scenario.StartTime, StkAssistant.Scenario.StopTime); double catMaxProb = (double)catResult.DataSets.GetDataSetByName("Max Collision Probability").GetValues().GetValue(0); double catSigmaDilution = (double)catResult.DataSets.GetDataSetByName("Sigma Dilution Threshold").GetValues().GetValue(0); if (Probability == 0) { Probability = catMaxProb; } if (SigmaDilution == 0) { SigmaDilution = Math.Round(catSigmaDilution, 3); } } cat.Unload(); }
public void GenerateStkCdmObjects() { StkAssistant.SetAnalysisIntervalFromTCA(this.Primary.EpochISOYMD); this.Primary.CreateCdmSatellite(true); this.Secondary.CreateCdmSatellite(); }