aux
This commit is contained in:
@@ -127,17 +127,15 @@ func (e *Extractor) SeprateAuxAndImgData(dataFile string, segmentIndex int) erro
|
||||
|
||||
var afh AuxFrameHead
|
||||
dataLen := len(data)
|
||||
log.Info("original data length:", dataLen)
|
||||
log.Info("length of original data: ", dataLen)
|
||||
data = e.trimImgRawData(data)
|
||||
dataLen = len(data)
|
||||
log.Info("trimmed data length:", dataLen)
|
||||
log.Info("length of trimmed data: ", dataLen)
|
||||
|
||||
e.quanlityAnalysis(data)
|
||||
|
||||
msdata := make([][]byte, 4)
|
||||
var firstLineFound bool
|
||||
var totalLines int
|
||||
var pancount int
|
||||
|
||||
for i := 0; i < dataLen; {
|
||||
if i+4 > dataLen {
|
||||
logrus.Println("end of data, dataLen:", dataLen, "i:", i)
|
||||
@@ -149,7 +147,6 @@ func (e *Extractor) SeprateAuxAndImgData(dataFile string, segmentIndex int) erro
|
||||
log.Debug("find package head: 0xD15BD15B")
|
||||
} else {
|
||||
i++
|
||||
// log.Println("not find package head: 0xD15BD15B, skip 1 byte")
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -159,7 +156,6 @@ func (e *Extractor) SeprateAuxAndImgData(dataFile string, segmentIndex int) erro
|
||||
break
|
||||
}
|
||||
afh.Decode(data[i : i+24])
|
||||
// pp.Println(afh)
|
||||
|
||||
if !afh.IsValidFrmHead {
|
||||
log.Info("invalid frame head of original raw data")
|
||||
@@ -179,21 +175,6 @@ func (e *Extractor) SeprateAuxAndImgData(dataFile string, segmentIndex int) erro
|
||||
break
|
||||
}
|
||||
|
||||
// 通过中心辅助时间判断是否第一行数据
|
||||
if !firstLineFound {
|
||||
utcTime := binary.BigEndian.Uint32(data[i+32 : i+36])
|
||||
t := time.Unix(int64(afh.TimeSec+uint32(ReferenceTime2000)), int64(afh.TimeSecFrac)*1000)
|
||||
tAux := time.Unix(int64(utcTime+uint32(ReferenceTime2000)), 0)
|
||||
firstLineFound = tAux.Year() == t.Year() && tAux.Month() == t.Month() && tAux.Day() == t.Day() &&
|
||||
tAux.Hour() == t.Hour() && tAux.Minute() == t.Minute()
|
||||
if !firstLineFound {
|
||||
log.Info("did not find first line of aux data, skip this frame: ", afh.SerialNo)
|
||||
i += afh.RowLength
|
||||
continue
|
||||
}
|
||||
}
|
||||
totalLines += 1
|
||||
|
||||
// 存储辅助数据到临时文件
|
||||
dataIndex := i + 24
|
||||
lw.ws[EB_AUX].w.Write(data[dataIndex : dataIndex+8]) // 8字节焦面电箱辅助数据
|
||||
@@ -207,7 +188,6 @@ func (e *Extractor) SeprateAuxAndImgData(dataFile string, segmentIndex int) erro
|
||||
write16bPixelLittleEndian(lw.ws[PAN_RAW].w, data[dataIndex:dataIndex+19040])
|
||||
dataIndex += 19040
|
||||
panEnviHdr.Lines += 1
|
||||
pancount += 19040
|
||||
}
|
||||
|
||||
if afh.B1 {
|
||||
@@ -252,7 +232,7 @@ func (e *Extractor) SeprateAuxAndImgData(dataFile string, segmentIndex int) erro
|
||||
|
||||
mssEnviHdr.Lines = mssEnviHdr.Lines / 4 // 多光谱波段分别在 4 行中传输
|
||||
mssEnviHdr.Samples = 2384
|
||||
mssEnviHdr.Bands = 1
|
||||
mssEnviHdr.Bands = bands
|
||||
lw.ws[MSS_HDR].w.Write([]byte(mssEnviHdr.String()))
|
||||
|
||||
return nil
|
||||
@@ -271,7 +251,7 @@ func (e *Extractor) quanlityAnalysis(data []byte) {
|
||||
afh.Decode(data[i : i+24])
|
||||
|
||||
if !afh.IsValidFrmHead {
|
||||
log.Error("invalid frame head of original raw data", i, len(data), afh.SerialNo, afh.FileNo)
|
||||
log.Errorf("invalid frame head of original raw data i: %v, len: %v", i, len(data))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -338,9 +318,6 @@ func (e *Extractor) trimImgRawData(data []byte) []byte {
|
||||
nLen := (len(data) - i - 1)
|
||||
nLen = nLen - nLen%(afh.RowLength*16)
|
||||
end = i + nLen
|
||||
fmt.Println("start:", start, "end:", end, "i:", i, "len(data):", len(data),
|
||||
len(data)%(afh.RowLength*16), afh.RowLength,
|
||||
)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user