linux build environment updated

This commit is contained in:
nuknal
2024-07-12 11:34:02 +08:00
parent 31887a6bfe
commit 2bc6f53acc
8 changed files with 33 additions and 24 deletions

View File

@@ -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...")

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"sort"
"github.com/chfenger/goNum"
"github.com/nuknal/goNum"
)
type LagrangeInterpolator struct {

View File

@@ -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)
}