54 lines
972 B
Go
54 lines
972 B
Go
package extract
|
|
|
|
import (
|
|
"os"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
"github.com/xuri/excelize/v2"
|
|
)
|
|
|
|
// 卫星时间起点 北京时间 2000-01-01 20:00:00
|
|
var (
|
|
ReferenceTime2000 = 946728000
|
|
)
|
|
|
|
func (e Extractor) ExtractAux(auxfile, xlsxfile string) error {
|
|
os.Remove(xlsxfile)
|
|
if err := createAuxXlsx(xlsxfile); err != nil {
|
|
return err
|
|
}
|
|
|
|
f, err := excelize.OpenFile(xlsxfile)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
defer f.Close()
|
|
|
|
data, err := os.ReadFile(auxfile)
|
|
if err != nil {
|
|
log.Println("read aux data from", auxfile, "error:", err.Error())
|
|
return err
|
|
}
|
|
|
|
row := 2
|
|
col := 1
|
|
for i := 0; i < len(data); i += 24 + 128 + 512 {
|
|
var head AuxFrameHead
|
|
head.Decode(data[i : i+24])
|
|
l0, _ := head.SaveXlsx(f, col, row)
|
|
|
|
var box AuxFocalBox
|
|
box.Decode(data[i+24 : i+24+128])
|
|
l1, _ := box.SaveXlsx(f, col+l0, row)
|
|
|
|
var plat AuxPlatform
|
|
plat.Decode(data[i+24+128 : i+24+128+512])
|
|
plat.SaveXlsx(f, col+l0+l1, row)
|
|
|
|
row++
|
|
}
|
|
|
|
return f.Save()
|
|
}
|