This commit is contained in:
nuknal
2024-05-18 16:34:10 +08:00
parent 94a66fa3a1
commit f609b2b023
4 changed files with 98 additions and 23 deletions

View File

@@ -6,7 +6,6 @@ import (
"fmt"
"math"
"os"
"path/filepath"
"strings"
"time"
@@ -116,9 +115,24 @@ func (e *Extractor) SeprateAuxAndImgData(dataFile string, segmentIndex int) erro
log.Info("seprate aux and img data from", dataFile)
name := filepath.Base(dataFile)
name = strings.TrimRight(name, filepath.Ext(name))
dataLen := len(data)
log.Info("length of original data: ", dataLen)
var firstFrmHead *AuxFrameHead
data, firstFrmHead = e.trimImgRawData(data)
dataLen = len(data)
log.Info("after trim,length of data: ", dataLen)
e.quanlityAnalysis(data)
outputDir := e.params.OutputPath
name := strings.Join([]string{
e.params.Satellite,
"PMS",
time.Unix(int64(firstFrmHead.TimeSec)+int64(ReferenceTime2000),
int64(firstFrmHead.TimeSecFrac)*1000).
Format("20060102_150405"),
e.params.DataId,
fmt.Sprintf("%03d", firstFrmHead.FileNo),
}, "_")
lw := newL0Writer(outputDir, name)
defer lw.Close()
@@ -126,13 +140,6 @@ func (e *Extractor) SeprateAuxAndImgData(dataFile string, segmentIndex int) erro
var panEnviHdr, mssEnviHdr EnviHdr
var afh AuxFrameHead
dataLen := len(data)
log.Info("length of original data: ", dataLen)
data = e.trimImgRawData(data)
dataLen = len(data)
log.Info("length of trimmed data: ", dataLen)
e.quanlityAnalysis(data)
msdata := make([][]byte, 4)
@@ -281,9 +288,9 @@ func (e *Extractor) quanlityAnalysis(data []byte) {
}
// 裁剪图像数据,只保留有效数据
func (e *Extractor) trimImgRawData(data []byte) []byte {
func (e *Extractor) trimImgRawData(data []byte) ([]byte, *AuxFrameHead) {
var start, end int
afh := &AuxFrameHead{}
// 将中心辅助数据时间合理的帧作为第一帧
var startAuxLine bool
for i := 0; i < len(data); {
@@ -300,7 +307,6 @@ func (e *Extractor) trimImgRawData(data []byte) []byte {
continue
}
afh := &AuxFrameHead{}
afh.Decode(data[i : i+24])
if !afh.IsValidFrmHead {
@@ -322,5 +328,5 @@ func (e *Extractor) trimImgRawData(data []byte) []byte {
}
}
return data[start:end]
return data[start:end], afh
}