aux
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user