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) ([]*AuxFrameHead, []*AuxFocalBox, []*AuxPlatform, error) { log.Println("extract aux data from", auxfile, "to", xlsxfile) os.Remove(xlsxfile) if err := createAuxXlsx(xlsxfile); err != nil { return nil, nil, nil, err } f, err := excelize.OpenFile(xlsxfile) if err != nil { return nil, nil, nil, err } defer f.Close() data, err := os.ReadFile(auxfile) if err != nil { log.Println("read aux data from", auxfile, "error:", err.Error()) return nil, nil, nil, err } var afh []*AuxFrameHead var afb []*AuxFocalBox var aps []*AuxPlatform row := 2 col := 1 for i := 0; i < len(data); i += 24 + 128 + 512 { if i+24+128+512 > len(data) { break } var head AuxFrameHead head.Decode(data[i : i+24]) l0, _ := head.SaveXlsx(f, col, row) afh = append(afh, &head) var box AuxFocalBox box.Decode(data[i+24 : i+24+128]) l1, _ := box.SaveXlsx(f, col+l0, row) afb = append(afb, &box) var plat AuxPlatform plat.Decode(data[i+24+128 : i+24+128+512]) plat.SaveXlsx(f, col+l0+l1, row) aps = append(aps, &plat) row++ } err = f.Save() return afh, afb, aps, err }