private void Init() { int count = entities.Count; double[] x = new double[count]; double[] yX = new double[count]; double[] yY = new double[count]; double[] yZ = new double[count]; double[] yClock = new double[count]; int i = 0; foreach (var item in entities) { Ephemeris record = item; x[i] = (record.Time - entities.First.Time); //Y为GPS周秒。 yX[i] = record.XYZ.X; yY[i] = record.XYZ.Y; yZ[i] = record.XYZ.Z; yClock[i] = record.ClockBias; i++; } //for (int i = 0; i < count; i++) //{ // Ephemeris record = sortedRecords[i]; // x[i] = (record.Time - sortedRecords[0].Time); //Y为GPS周秒。 // yX[i] = record.XYZ.X; // yY[i] = record.XYZ.Y; // yZ[i] = record.XYZ.Z; // yClock[i] = record.ClockBias; //} int order = 10; order = Math.Min(order, count); //fitX = new PolyFit(x, yX); //fitY = new PolyFit(x, yY); //fitZ = new PolyFit(x, yZ); //fitClock = new PolyFit(x, yClock); fitX = new LagrangeInterplation(x, yX, order); fitY = new LagrangeInterplation(x, yY, order); fitZ = new LagrangeInterplation(x, yZ, order); fitClock = new LagrangeInterplation(x, yClock, 2); //fitClock = new LagrangeInterplation(x, yClock, 10); //fitX = new ChebyshevPolyFit(x, yX, order); //fitY = new ChebyshevPolyFit(x, yY, order); //fitZ = new ChebyshevPolyFit(x, yZ, order); //fitClock = new LagrangeInterplation(x, yClock, 2); }
private void Init() { int count = SatEphemerises.Count; double[] x = new double[count]; double[] yX = new double[count]; double[] yY = new double[count]; double[] yZ = new double[count]; double[] yClock = new double[count]; var first = SatEphemerises.First; int i = 0; foreach (var record in SatEphemerises) { x[i] = (record.Time - first.Time); //Y为GPS周秒。 yX[i] = record.XYZ.X; yY[i] = record.XYZ.Y; yZ[i] = record.XYZ.Z; yClock[i] = record.ClockBias; } int order = 10; order = Math.Min(Order, count); //fitX = new PolyFit(x, yX); //fitY = new PolyFit(x, yY); //fitZ = new PolyFit(x, yZ); //fitClock = new PolyFit(x, yClock); fitX = new LagrangeInterplation(x, yX, order); fitY = new LagrangeInterplation(x, yY, order); fitZ = new LagrangeInterplation(x, yZ, order); // fitClock = new LagrangeInterplation(x, yClock, 2); fitClock = new LagrangeInterplation(x, yClock, 10); //fitX = new ChebyshevPolyFit(x, yX, order); //fitY = new ChebyshevPolyFit(x, yY, order); //fitZ = new ChebyshevPolyFit(x, yZ, order); //fitClock = new LagrangeInterplation(x, yClock, 2); }
private void Init() { int count = sortedRecords.Count; double[] x = new double[count]; double[] yX = new double[count]; double[] yY = new double[count]; double[] yZ = new double[count]; double[] yClock = new double[count]; for (int i = 0; i < count; i++) { Ephemeris record = sortedRecords[i]; x[i] = (record.Time - sortedRecords[0].Time); //Y为GPS周秒。 yX[i] = record.XYZ.X; yY[i] = record.XYZ.Y; yZ[i] = record.XYZ.Z; yClock[i] = record.ClockBias; } int order = 10; order = Math.Min(order, count); //fitX = new PolyFit(x, yX); //fitY = new PolyFit(x, yY); //fitZ = new PolyFit(x, yZ); //fitClock = new PolyFit(x, yClock); fitX = new LagrangeInterplation(x, yX, order); fitY = new LagrangeInterplation(x, yY, order); fitZ = new LagrangeInterplation(x, yZ, order); // fitClock = new LagrangeInterplation(x, yClock, 2); fitClock = new LagrangeInterplation(x, yClock, 10); //fitX = new ChebyshevPolyFit(x, yX, order); //fitY = new ChebyshevPolyFit(x, yY, order); //fitZ = new ChebyshevPolyFit(x, yZ, order); //fitClock = new LagrangeInterplation(x, yClock, 2); }