linux build environment updated
This commit is contained in:
@@ -73,9 +73,9 @@ func (r *Registrator) AuxPrint() {
|
||||
|
||||
for _, p := range r.auxHeads {
|
||||
tp := float64(p.TimeSec) + float64(p.TimeSecFrac)/10e6
|
||||
X := utils.InterpPolynomial(r.w84PositionTime, r.w84PositionX, tp)
|
||||
Y := utils.InterpPolynomial(r.w84PositionTime, r.w84PositionY, tp)
|
||||
Z := utils.InterpPolynomial(r.w84PositionTime, r.w84PositionZ, tp)
|
||||
X := utils.InterpPolynomial(r.w84PositionTime, r.w84PositionX, tp, 2)
|
||||
Y := utils.InterpPolynomial(r.w84PositionTime, r.w84PositionY, tp, 2)
|
||||
Z := utils.InterpPolynomial(r.w84PositionTime, r.w84PositionZ, tp, 2)
|
||||
lat, lon, _ := calculator.WGS84XYZtoLatLngH(X, Y, Z)
|
||||
point := orb.Point{lon, lat}
|
||||
fcPos84Interp.Features = append(fcPos84Interp.Features, geojson.NewFeature(point))
|
||||
@@ -116,17 +116,18 @@ func (r *Registrator) SetSceneBoundary(scene *Scene) (topLeft, bottomRight orb.P
|
||||
// FIXME: GPS 拟合效果不佳
|
||||
// x0 := float64(r.auxHeads[startPosInAux].TimeSec) + float64(r.auxHeads[startPosInAux].TimeSecFrac)/10e6
|
||||
// x1 := float64(r.auxHeads[endPosInAux].TimeSec) + float64(r.auxHeads[endPosInAux].TimeSecFrac)/10e6
|
||||
// startPos84 := []float64{r.w84FitPre[0].Predict(x0), r.w84FitPre[1].Predict(x0), r.w84FitPre[2].Predict(x0)}
|
||||
// endPos84 := []float64{r.w84FitPre[0].Predict(x1), r.w84FitPre[1].Predict(x1), r.w84FitPre[2].Predict(x1)}
|
||||
// startPos84 := []float64{
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionX, x0),
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionY, x0),
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionZ, x0),
|
||||
// startPos84 = []float64{r.w84FitPre[0].Predict(x0), r.w84FitPre[1].Predict(x0), r.w84FitPre[2].Predict(x0)}
|
||||
// endPos84 = []float64{r.w84FitPre[0].Predict(x1), r.w84FitPre[1].Predict(x1), r.w84FitPre[2].Predict(x1)}
|
||||
// stepN := 2
|
||||
// startPos84 = []float64{
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionX, x0, stepN),
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionY, x0, stepN),
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionZ, x0, stepN),
|
||||
// }
|
||||
// endPos84 := []float64{
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionX, x1),
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionY, x1),
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionZ, x1),
|
||||
// endPos84 = []float64{
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionX, x1, stepN),
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionY, x1, stepN),
|
||||
// utils.InterpPolynomial(r.w84PositionTime, r.w84PositionZ, x1, stepN),
|
||||
// }
|
||||
// ------------------ 使用定姿态四元数计算图像边界 ------------------
|
||||
log.Info("using attitude quaternion to calculate image boundary...")
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
"sort"
|
||||
|
||||
"github.com/chfenger/goNum"
|
||||
"github.com/nuknal/goNum"
|
||||
)
|
||||
|
||||
type LagrangeInterpolator struct {
|
||||
|
||||
@@ -46,13 +46,13 @@ func (p PolynomialInterpolator) Predict(x float64) float64 {
|
||||
return y
|
||||
}
|
||||
|
||||
func InterpPolynomial(x []float64, y []float64, xq float64) float64 {
|
||||
func InterpPolynomial(x []float64, y []float64, xq float64, degree int) float64 {
|
||||
if len(x) != len(y) {
|
||||
return 0.0
|
||||
}
|
||||
|
||||
start, end := FindClosestSubset(x, xq, 4)
|
||||
interp := &PolynomialInterpolator{Degree: 3}
|
||||
start, end := FindClosestSubset(x, xq, degree+1)
|
||||
interp := &PolynomialInterpolator{Degree: degree}
|
||||
interp.Fit(x[start:end+1], y[start:end+1])
|
||||
return interp.Predict(xq)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user