private void ShowFrequence() { RinexSatFrequency satelliteFrequency = GetSatFrequence(); if (satelliteFrequency == null) { return; } StringBuilder sb = new StringBuilder(); sb.AppendLine("当前选中了: " + satelliteFrequency.ToString()); if (satelliteFrequency.GetFrequence() != null) { sb.AppendLine("频率: " + satelliteFrequency.GetFrequence().ToString()); } log.Info(sb.ToString()); }
private void button_solve_Click(object sender, EventArgs e) { RinexSatFrequency satFreq = GetSatFrequence(); int n = namedIntControl_epochCount.GetValue(); double deltaL = satFreq.GetFrequence().WaveLength * 0.01;// 0.0019; double deltaP = this.namedFloatControl_deltaOfP.GetValue(); double deltaC = namedFloatControl_deltaOfC.GetValue(); double deltaLSquared = deltaL * deltaL; double deltaPSquared = deltaP * deltaP; double deltaCSquared = deltaC * deltaC; int i = n; double deltaPs = GetDeltaOfSmoothedRange(i, deltaP, deltaL); double deltaCs = GetDeltaOfSmoothedRange(i, deltaC, deltaL); double step = this.namedFloatControl_step.GetValue(); double stepWeight = (i - 1) * step; if (i >= 100) { stepWeight = 0.01; } double normalWeight = 1.0 / i; double deltaStepP = GetDeltaOfWeightedSmoothRange(i, stepWeight, deltaP, deltaL); double deltaStepC = GetDeltaOfWeightedSmoothRange(i, stepWeight, deltaC, deltaL); double deltaWeightedPs = GetDeltaOfWeightedSmoothRange(i, normalWeight, deltaP, deltaL); double deltaWeightedCs = GetDeltaOfWeightedSmoothRange(i, normalWeight, deltaC, deltaL); double timesOfP = deltaP / deltaPs; double timesOfC = deltaC / deltaCs; double timesOfWeightedP = deltaP / deltaWeightedPs; double timesOfWeightedC = deltaC / deltaWeightedCs; double timesOfStepWeightedP = deltaStepP / deltaWeightedPs; double timesOfStepWeightedC = deltaStepC / deltaWeightedCs; StringBuilder sb = new StringBuilder(); sb.AppendLine("deltaPs:\t" + deltaPs); sb.AppendLine("deltaCs:\t" + deltaCs); sb.AppendLine("deltaWeightedPs:\t" + deltaWeightedPs); sb.AppendLine("deltaWeightedCs:\t" + deltaWeightedCs); sb.AppendLine("deltaStepP:\t" + deltaStepP); sb.AppendLine("deltaStepC:\t" + deltaStepC); sb.AppendLine("timesOfP:\t" + timesOfP); sb.AppendLine("timesOfC:\t" + timesOfC); sb.AppendLine("timesOfWeightedP:\t" + timesOfWeightedP); sb.AppendLine("timesOfWeightedC:\t" + timesOfWeightedC); sb.AppendLine("timesOfStepWeightedP:\t" + timesOfStepWeightedP); sb.AppendLine("timesOfStepWeightedC:\t" + timesOfStepWeightedC); this.richTextBoxControl1.Text = sb.ToString(); }
private void button_multiDelta_Click(object sender, EventArgs e) { RinexSatFrequency satFreq = GetSatFrequence(); ObjectTableStorage table = new ObjectTableStorage(); bool isShowCA = checkBox_IsShowCA.Checked; double step = this.namedFloatControl_step.GetValue(); double n = namedIntControl_epochCount.GetValue(); var deltaL = satFreq.GetFrequence().WaveLength * 0.01;// 0.0019; double deltaP = this.namedFloatControl_deltaOfP.GetValue(); double deltaC = namedFloatControl_deltaOfC.GetValue(); var deltaLSquared = deltaL * deltaL; var deltaPSquared = deltaP * deltaP; var deltaCSquared = deltaC * deltaC; double stepCount = 1 / step; for (int i = 1; i < n; i++) { //原始 double deltaPs = GetDeltaOfSmoothedRange(i, deltaP, deltaL); double deltaCs = GetDeltaOfSmoothedRange(i, deltaC, deltaL); //加权平均 double normalWeight = 1.0 / i; double deltaWeightedPs = GetDeltaOfWeightedSmoothRange(i, normalWeight, deltaP, deltaL); double deltaWeightedCs = GetDeltaOfWeightedSmoothRange(i, normalWeight, deltaC, deltaL); //步长加权 double stepWeight = 1 - (i - 1) * step; // stepCount;// (i - 1) * step; if (i >= stepCount) { stepWeight = step; } double deltaStepP2 = GetDeltaOfStepWeightedSmoothRange(i, step, deltaP, deltaL); double deltaStepP = GetDeltaOfWeightedSmoothRange(i, stepWeight, deltaP, deltaL); double deltaStepC = GetDeltaOfWeightedSmoothRange(i, stepWeight, deltaC, deltaL); double timesOfP = deltaP / deltaPs; double timesOfC = deltaC / deltaCs; double timesOfWeightedP = deltaP / deltaWeightedPs; double timesOfWeightedC = deltaC / deltaWeightedCs; if (i < 1000) { table.NewRow(); table.AddItem("Epoch", i); table.AddItem("σRawSP", deltaPs); if (isShowCA) { table.AddItem("σRawSC", deltaCs); } table.AddItem("σWSP", deltaWeightedPs); if (isShowCA) { table.AddItem("σWSC", deltaWeightedCs); } table.AddItem("σStepSP", deltaStepP); table.AddItem("σStepSP2", deltaStepP2); if (isShowCA) { table.AddItem("σStepSC", deltaStepC); } } // 精度提高倍数 else if ( //i <= 10 // || (i > 10 && i <= 100 && i % 10 == 0) // || (i > 100 && i <= 1000 && i % 100 == 0) // || (i > 1000 && i % 1000 == 0) || (i > 10000 && i % 10000 == 0) || (i > 100000 && i % 100000 == 0)) { table.NewRow(); table.AddItem("Epoch", i); table.AddItem("σRawSP", deltaPs); if (isShowCA) { table.AddItem("σRawSC", deltaCs); } table.AddItem("σWSP", deltaWeightedPs); if (isShowCA) { table.AddItem("σWSC", deltaWeightedCs); } table.AddItem("σStepSP", deltaStepP); if (isShowCA) { table.AddItem("σStepSC", deltaStepP); } } } table.IndexColName = "Epoch"; this.objectTableControl1.DataBind(table); }