diff --git a/Demuxer/DirectDemuxer.go b/Demuxer/DirectDemuxer.go index 62badd0..8d588c0 100644 --- a/Demuxer/DirectDemuxer.go +++ b/Demuxer/DirectDemuxer.go @@ -10,12 +10,15 @@ type DirectDemuxer struct { demux *ccsds.Demuxer } -func MakeDirectDemuxer(outFolder, tmpFolder string) *DirectDemuxer { +func MakeDirectDemuxer(outFolder, tmpFolder string, drawMap, reproject, falseColor bool) *DirectDemuxer { d := &DirectDemuxer{} d.demux = ccsds.MakeDemuxer() d.demux.SetOutputFolder(outFolder) d.demux.SetTemporaryFolder(tmpFolder) + d.demux.SetDrawMap(drawMap) + d.demux.SetReprojectImage(reproject) + d.demux.SetFalseColor(falseColor) SLog.Info("Starting direct Demuxer with: ") SLog.Info(" Output Folder: %s", aurora.Bold(outFolder).Green()) diff --git a/ImageProcessor/GOESABI.go b/ImageProcessor/GOESABI.go index 48273b8..d0db0ed 100644 --- a/ImageProcessor/GOESABI.go +++ b/ImageProcessor/GOESABI.go @@ -1,15 +1,26 @@ package ImageProcessor import ( + "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/ImageData" "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/ImageTools" + "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/Projector" "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/Structs" "github.com/opensatelliteproject/SatHelperApp/Logger" + "github.com/opensatelliteproject/SatHelperApp/Tools" "github.com/opensatelliteproject/SatHelperApp/XRIT" + "github.com/opensatelliteproject/SatHelperApp/XRIT/Geo" + "os" "path" "path/filepath" + "regexp" "strings" ) +var NOAANameRegex = regexp.MustCompile(`OR_ABI-(.*)-(.*)_(.*)_(s.*).*`) + +const visChan = "C02" +const irChan = "C14" + func ProcessGOESABI(ip *ImageProcessor, filename string, xh *XRIT.Header) { if xh.NOAASpecificHeader.ProductSubID == 0 { // Mesoscales and unknown data PlainLRITImage(ip, filename, xh) @@ -38,7 +49,114 @@ func ProcessGOESABI(ip *ImageProcessor, filename string, xh *XRIT.Header) { delete(ip.MultiSegmentCache, name) if purgeFiles { - ms.Purge() + if !ip.GetFalseColor() || !ms.FirstSegmentHeader.IsFalseColorPiece() { + ms.Purge() + } + } + + if ms.FirstSegmentHeader.IsFalseColorPiece() { + folder := path.Dir(ms.FirstSegmentFilename) + nomapFile := path.Join(folder, ImageTools.GetNoMapName(ms.Name)) + ProcessFalseColor(ip, ms.FirstSegmentHeader, nomapFile) + } + } +} + +func ProcessFalseColor(ip *ImageProcessor, xh *XRIT.Header, filename string) { + if !NOAANameRegex.MatchString(path.Base(filename)) { + SLog.Debug("Filename %s does not match noaa name. Not continuing...", filename) + return + } + + // 0 => full string, 1 => Level-Product, 2 => Mode/Channel, 3 => Satellite Name, 4 => Group, 5 => File Stamp + groups := NOAANameRegex.FindStringSubmatch(path.Base(filename)) + + mdch := groups[2] + md := mdch[:2] + name := groups[4] + + vismdch := md + visChan + irmdch := md + irChan + + visFilename := strings.Replace(filename, mdch, vismdch, -1) + irFilename := strings.Replace(filename, mdch, irmdch, -1) + fsclrFileName := strings.Replace(filename, mdch, md+"99", -1) + fsclrFileName = strings.Replace(fsclrFileName, "-nomap", "", -1) + + if !Tools.Exists(visFilename) || !Tools.Exists(irFilename) { + // Not Ready + return + } + + if Tools.Exists(fsclrFileName) { + SLog.Debug("Skipping generating false color. File exists...") + return + } + + SLog.Info("Generating false color for %s", name) + + vis, err := ImageTools.LoadImageGrayScale(visFilename) + if err != nil { + SLog.Error("Error loading visible image at %s: %s", visFilename, err) + return + } + + ir, err := ImageTools.LoadImageGrayScale(irFilename) + if err != nil { + SLog.Error("Error loading infrared image at %s: %s", irFilename, err) + return + } + + curveManipulator := ImageData.GetVisibleCurveManipulator() + falseLut := ImageData.GetFalseColorLUT() + + err = curveManipulator.ApplyCurve(vis) + if err != nil { + SLog.Error("Error applying curve to visible image: %s", err) + return + } + + fsclr, err := falseLut.Apply(vis, ir) + if err != nil { + SLog.Error("Error applying false color LUT: %s", err) + return + } + + gc, err := Geo.MakeGeoConverterFromXRIT(xh) + + if err == nil { + mapDrawer := ip.GetMapDrawer() + + if mapDrawer != nil { + SLog.Debug("Map Drawer Enabled, drawing at FalseColor") + mapDrawer.DrawMap(fsclr, gc) + } + + if ip.GetReproject() { + SLog.Debug("Reprojection Enabled, reprojecting FalseColor") + proj := Projector.MakeProjector(gc) + fsclr = proj.ReprojectLinearMultiThread(fsclr) } + } else { + SLog.Error("Cannot crate GeoConverter: %s", err) } + + err = ImageTools.SaveImage(fsclrFileName, fsclr) + if err != nil { + SLog.Error("Error saving false color image to %s: %s", fsclrFileName, err) + return + } + + SLog.Debug("Removing %s", visFilename) + err = os.Remove(visFilename) + if err != nil { + SLog.Error("Error erasing %s: %s", visFilename, err) + } + SLog.Debug("Removing %s", irFilename) + err = os.Remove(irFilename) + if err != nil { + SLog.Error("Error erasing %s: %s", irFilename, err) + } + + SLog.Info("New image %s", fsclrFileName) } diff --git a/ImageProcessor/ImageData/tools.go b/ImageProcessor/ImageData/tools.go index 0c3a88e..7e735f2 100644 --- a/ImageProcessor/ImageData/tools.go +++ b/ImageProcessor/ImageData/tools.go @@ -1,6 +1,7 @@ package ImageData import ( + "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/ImageTools" "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/MapDrawer" "github.com/opensatelliteproject/SatHelperApp/Logger" "io/ioutil" @@ -11,8 +12,11 @@ import ( const shpFileName = "ne_50m_admin_0_countries.shp" const dbfFileName = "ne_50m_admin_0_countries.dbf" +const falseColorLutName = "wx-star.com_GOES-R_ABI_False-Color-LUT.png" var mapDrawer *MapDrawer.MapDrawer +var fsclrLut *ImageTools.Lut2D +var visCurve *ImageTools.CurveManipulator // ExtractShapeFiles extracts the shapefiles to temp folder and return path for shp file func ExtractShapeFiles() (string, error) { @@ -70,3 +74,30 @@ func GetDefaultMapDrawer() *MapDrawer.MapDrawer { return mapDrawer } + +func GetVisibleCurveManipulator() *ImageTools.CurveManipulator { + if visCurve == nil { + visCurve = ImageTools.MakeDefaultCurveManipulator() + } + + return visCurve +} + +func GetFalseColorLUT() *ImageTools.Lut2D { + if fsclrLut == nil { + lutData, err := Asset(falseColorLutName) + if err != nil { + SLog.Error("Cannot load False Color LUT data: %s", err) + return nil + } + lut2d, err := ImageTools.MakeLut2DFromMemory(lutData) + + if err != nil { + SLog.Error("Error creating False Color LUT: %s", err) + } else { + fsclrLut = lut2d + } + } + + return fsclrLut +} diff --git a/ImageProcessor/ImageProcessor.go b/ImageProcessor/ImageProcessor.go index 4aa716d..c3aa16b 100644 --- a/ImageProcessor/ImageProcessor.go +++ b/ImageProcessor/ImageProcessor.go @@ -2,6 +2,7 @@ package ImageProcessor import ( "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/ImageData" + "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/ImageTools" "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/MapDrawer" "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/Structs" "github.com/opensatelliteproject/SatHelperApp/Logger" @@ -19,6 +20,7 @@ type ImageProcessor struct { mapDrawer *MapDrawer.MapDrawer reproject bool drawmap bool + falsecolor bool } func MakeImageProcessor() *ImageProcessor { @@ -27,9 +29,19 @@ func MakeImageProcessor() *ImageProcessor { mapDrawer: ImageData.GetDefaultMapDrawer(), reproject: false, drawmap: false, + falsecolor: false, } } +func (ip *ImageProcessor) SetFalseColor(fsclr bool) { + ip.falsecolor = fsclr + if fsclr { + SLog.Warn("False color is enabled, so it will also save plain images with no map") + ImageTools.SetSaveNoMap(true) // Needed for FSCLR + } + +} + func (ip *ImageProcessor) SetDrawMap(drawMap bool) { ip.drawmap = drawMap } @@ -38,6 +50,10 @@ func (ip *ImageProcessor) SetReproject(reproject bool) { ip.reproject = reproject } +func (ip *ImageProcessor) GetFalseColor() bool { + return ip.falsecolor +} + func (ip *ImageProcessor) GetDrawMap() bool { return ip.drawmap } diff --git a/ImageProcessor/ImageTools/MultiSegmentDump.go b/ImageProcessor/ImageTools/MultiSegmentDump.go index 7c08223..c785e5f 100644 --- a/ImageProcessor/ImageTools/MultiSegmentDump.go +++ b/ImageProcessor/ImageTools/MultiSegmentDump.go @@ -1,12 +1,12 @@ package ImageTools import ( - "encoding/json" "fmt" "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/MapDrawer" "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/Projector" "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/Structs" "github.com/opensatelliteproject/SatHelperApp/Logger" + "github.com/opensatelliteproject/SatHelperApp/Tools" "github.com/opensatelliteproject/SatHelperApp/XRIT" "github.com/opensatelliteproject/SatHelperApp/XRIT/Geo" "github.com/opensatelliteproject/SatHelperApp/XRIT/PacketData" @@ -19,6 +19,17 @@ import ( "path" ) +var saveNoMap = false +var saveNoProj = false + +func SetSaveNoMap(s bool) { + saveNoMap = s +} + +func SetSaveNoProj(s bool) { + saveNoProj = s +} + func DrawGray8At(data []byte, px, py int, image *image.Gray) { b := image.Bounds() p := b.Dx()*py + px @@ -68,19 +79,45 @@ func MultiSegmentAssemble(msi *Structs.MultiSegmentImage) (error, image.Image) { return nil, img } +func SaveImage(filename string, img image.Image) error { + f, err := os.Create(filename) + if err != nil { + SLog.Error("Error creating file %s: %s\n", filename, err) + return err + } + + defer f.Close() + + err = png.Encode(f, img) + + if err != nil { + return err + } + + return nil +} + +func GetNoMapName(filename string) string { + // Remove file timestamp + return filename[:len(filename)-16] + "-nomap.png" +} +func GetNoProjName(filename string) string { + // Remove file timestamp + return filename[:len(filename)-16] + "-noproj.png" +} + func DumpMultiSegment(msi *Structs.MultiSegmentImage, mapDrawer *MapDrawer.MapDrawer, reproject bool) (error, string) { folder := path.Dir(msi.FirstSegmentFilename) newFilename := path.Join(folder, msi.Name+".png") + newFilenameNoMap := path.Join(folder, GetNoMapName(msi.Name)) + newFilenameNoProj := path.Join(folder, GetNoProjName(msi.Name)) - f, err := os.Create(newFilename) - if err != nil { - SLog.Error("Error creating file %s: %s\n", newFilename, err) - return err, "" + if Tools.Exists(newFilename) { + SLog.Info("File %s already exists, skipping...", newFilename) + return nil, newFilename } - defer f.Close() - err, img := MultiSegmentAssemble(msi) if err != nil { return err, "" @@ -92,6 +129,13 @@ func DumpMultiSegment(msi *Structs.MultiSegmentImage, mapDrawer *MapDrawer.MapDr } if mapDrawer != nil { + if saveNoMap && !Tools.Exists(newFilenameNoMap) { + SLog.Debug("Saving No Map Image: %s", newFilenameNoMap) + err := SaveImage(newFilenameNoMap, img) + if err != nil { + SLog.Error("Error saving %s: %s", newFilenameNoMap, err) + } + } SLog.Debug("Map Drawer enabled. Drawing maps...") newImg := image.NewRGBA(img.Bounds()) draw.Draw(newImg, img.Bounds(), img, img.Bounds().Min, draw.Src) @@ -100,6 +144,13 @@ func DumpMultiSegment(msi *Structs.MultiSegmentImage, mapDrawer *MapDrawer.MapDr } if reproject { + if saveNoProj && !Tools.Exists(newFilenameNoProj) { + SLog.Debug("Saving No Projection Image: %s", newFilenameNoProj) + err := SaveImage(newFilenameNoProj, img) + if err != nil { + SLog.Error("Error saving %s: %s", newFilenameNoProj, err) + } + } SLog.Debug("Reprojecting Image to Linear") proj := Projector.MakeProjector(gc) @@ -107,22 +158,16 @@ func DumpMultiSegment(msi *Structs.MultiSegmentImage, mapDrawer *MapDrawer.MapDr img = img2 } - err = png.Encode(f, img) + err = SaveImage(newFilename, img) if err != nil { return err, "" } - meta, err := json.MarshalIndent(msi.FirstSegmentHeader, "", " ") - + metaName := path.Join(folder, msi.Name+".json") + err = ioutil.WriteFile(metaName, []byte(msi.FirstSegmentHeader.ToJSON()), os.ModePerm) if err != nil { - SLog.Error("Cannot generate JSON for metadata file: %s", err) - } else { - metaName := path.Join(folder, msi.Name+".json") - err := ioutil.WriteFile(metaName, meta, os.ModePerm) - if err != nil { - SLog.Error("Cannot write Meta file %s: %s", metaName, err) - } + SLog.Error("Cannot write Meta file %s: %s", metaName, err) } return nil, newFilename diff --git a/ImageProcessor/ImageTools/tools.go b/ImageProcessor/ImageTools/tools.go index ea4b7b5..89ce224 100644 --- a/ImageProcessor/ImageTools/tools.go +++ b/ImageProcessor/ImageTools/tools.go @@ -6,6 +6,7 @@ import ( "github.com/opensatelliteproject/SatHelperApp/XRIT" "github.com/opensatelliteproject/SatHelperApp/XRIT/PacketData" "image" + "image/draw" "image/jpeg" "io" "io/ioutil" @@ -90,7 +91,7 @@ func DumpRaw(newFileName string, data []byte, xh *XRIT.Header) error { func DumpDirectly(newFileName string, data []byte) error { err := ioutil.WriteFile(newFileName, data, os.ModePerm) if err != nil { - fmt.Printf("Error saving file: %s\n", err) + SLog.Error("Error saving file: %s\n", err) return err } @@ -134,3 +135,39 @@ func DumpImage(filename string) error { return DumpDirectly(newFileName, data) } } + +func LoadImage(filename string) (image.Image, error) { + f, err := os.Open(filename) + if err != nil { + return nil, err + } + + defer f.Close() + + src, _, err := image.Decode(f) + if err != nil { + return nil, err + } + + return src, nil +} + +func LoadImageGrayScale(filename string) (*image.Gray, error) { + img, err := LoadImage(filename) + if err != nil { + return nil, err + } + + switch i := img.(type) { + case *image.Gray: + return i, nil + default: + return Image2Gray(img), nil + } +} + +func Image2Gray(img image.Image) *image.Gray { + gray := image.NewGray(img.Bounds()) + draw.Draw(gray, img.Bounds(), img, img.Bounds().Min, draw.Src) + return gray +} diff --git a/ImageProcessor/MapDrawer/MapDrawer.go b/ImageProcessor/MapDrawer/MapDrawer.go index bb25437..f633990 100644 --- a/ImageProcessor/MapDrawer/MapDrawer.go +++ b/ImageProcessor/MapDrawer/MapDrawer.go @@ -107,7 +107,7 @@ func (md *MapDrawer) DrawMap(img *image.RGBA, gc *Geo.Converter) { ctx := draw2dimg.NewGraphicContext(img) ctx.SetStrokeColor(color.RGBA{R: 255, A: 255}) - ctx.SetLineWidth(5) + ctx.SetLineWidth(3) for _, v := range md.sections { for _, poly := range v.polygons { diff --git a/Models/Config.go b/Models/Config.go index 01e7eff..ef90dd4 100644 --- a/Models/Config.go +++ b/Models/Config.go @@ -70,6 +70,7 @@ type DirectDemuxerConfig struct { SkipVCID []int ReprojectImages bool DrawMap bool + FalseColor bool } type AppConfig struct { diff --git a/Tools/tools.go b/Tools/tools.go new file mode 100644 index 0000000..997357d --- /dev/null +++ b/Tools/tools.go @@ -0,0 +1,12 @@ +package Tools + +import "os" + +func Exists(name string) bool { + if _, err := os.Stat(name); err != nil { + if os.IsNotExist(err) { + return false + } + } + return true +} diff --git a/XRIT/XRITHeader.go b/XRIT/XRITHeader.go index 0d44ac7..79dfb8f 100644 --- a/XRIT/XRITHeader.go +++ b/XRIT/XRITHeader.go @@ -1,6 +1,7 @@ package XRIT import ( + "encoding/json" "fmt" "github.com/opensatelliteproject/SatHelperApp/XRIT/NOAAProductID" "github.com/opensatelliteproject/SatHelperApp/XRIT/PacketData" @@ -104,6 +105,15 @@ func MakeXRITHeader() *Header { } } +func MakeFromJSON(data string) (*Header, error) { + var xh *Header + err := json.Unmarshal([]byte(data), xh) + if err != nil { + return nil, err + } + return xh, nil +} + func MakeXRITHeaderWithHeaders(records []Structs.BaseRecord) *Header { xh := MakeXRITHeader() @@ -168,3 +178,16 @@ func (xh *Header) ToNameString() string { return baseName } + +func (xh *Header) IsFalseColorPiece() bool { + if xh.Product().ID == NOAAProductID.GOES16_ABI || xh.Product().ID == NOAAProductID.GOES17_ABI { + return xh.SubProduct().ID == 2 || xh.SubProduct().ID == 14 + } + + return false +} + +func (xh *Header) ToJSON() string { + data, _ := json.MarshalIndent(xh, "", " ") + return string(data) +} diff --git a/ccsds/FileAssembler.go b/ccsds/FileAssembler.go index 3ed1c5b..55f168a 100644 --- a/ccsds/FileAssembler.go +++ b/ccsds/FileAssembler.go @@ -47,6 +47,9 @@ func (fa *FileAssembler) SetDrawMap(drawMap bool) { func (fa *FileAssembler) SetReprojectImages(reproject bool) { fa.ip.SetReproject(reproject) } +func (fa *FileAssembler) SetFalseColor(fsclr bool) { + fa.ip.SetFalseColor(fsclr) +} func (fa *FileAssembler) PutMSDU(msdu *MSDU) { if msdu.Sequence == SequenceFirstSegment || msdu.Sequence == SequenceSingleData { diff --git a/ccsds/parser.go b/ccsds/parser.go index a16195e..ff1c951 100644 --- a/ccsds/parser.go +++ b/ccsds/parser.go @@ -55,6 +55,18 @@ func (dm *Demuxer) SetOutputFolder(folder string) { dm.fileAssembler.SetOutputFolder(folder) } +func (dm *Demuxer) SetDrawMap(d bool) { + dm.fileAssembler.SetDrawMap(d) +} + +func (dm *Demuxer) SetReprojectImage(r bool) { + dm.fileAssembler.SetReprojectImages(r) +} + +func (dm *Demuxer) SetFalseColor(r bool) { + dm.fileAssembler.SetFalseColor(r) +} + func (dm *Demuxer) SetOnFrameLost(cb func(channelId, currentFrame, lastFrame int)) { dm.Lock() dm.cbOnFrameLost = cb diff --git a/cmd/MultiSegmentDump/multiSegmentDump.go b/cmd/MultiSegmentDump/multiSegmentDump.go index dc209b4..fdb9c81 100644 --- a/cmd/MultiSegmentDump/multiSegmentDump.go +++ b/cmd/MultiSegmentDump/multiSegmentDump.go @@ -2,17 +2,10 @@ package main import ( "github.com/opensatelliteproject/SatHelperApp" - "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/ImageData" - "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/ImageTools" - "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/MapDrawer" - "github.com/opensatelliteproject/SatHelperApp/ImageProcessor/Structs" + "github.com/opensatelliteproject/SatHelperApp/ImageProcessor" "github.com/opensatelliteproject/SatHelperApp/Logger" "github.com/opensatelliteproject/SatHelperApp/XRIT" "gopkg.in/alecthomas/kingpin.v2" - "os" - "path" - "path/filepath" - "strings" ) func main() { @@ -20,61 +13,25 @@ func main() { reproject := kingpin.Flag("linear", "Reproject to linear").Bool() drawMap := kingpin.Flag("drawMap", "Draw Map Overlay").Bool() + falseColor := kingpin.Flag("falsecolor", "Generate False Color Image").Bool() files := kingpin.Arg("filenames", "File names to dump image").Required().ExistingFiles() kingpin.Parse() - f := (*files)[0] - - xh, err := XRIT.ParseFile(f) - - if err != nil { - SLog.Error("Error processing file %s: %s", f, err) - os.Exit(1) - } - - basename := path.Base(f) - name := strings.TrimSuffix(basename, filepath.Ext(basename)) - - msi := Structs.MakeMultiSegmentImage(name, int(xh.NOAASpecificHeader.ProductSubID), int(xh.SegmentIdentificationHeader.ImageID)) - msi.PutSegment(f, xh) + ip := ImageProcessor.MakeImageProcessor() + ip.SetDrawMap(*drawMap) + ip.SetReproject(*reproject) + ip.SetFalseColor(*falseColor) for _, v := range *files { - if v != f { - basename := path.Base(v) - _name := strings.TrimSuffix(basename, filepath.Ext(basename)) - - if _name != name { - SLog.Warn("Skipping %s since its not the same group of %s", _name, name) - continue - } - - xh, err = XRIT.ParseFile(v) - - if err != nil { - SLog.Error("Error processing file %s: %s", f, err) - os.Exit(1) - } + SLog.Debug("Processing %s", v) + xh, err := XRIT.ParseFile(v) - msi.PutSegment(v, xh) - } - } - - var mapDrawer *MapDrawer.MapDrawer - - if *drawMap { - mapDrawer = ImageData.GetDefaultMapDrawer() - } - - if msi.Done() { - SLog.Info("Got all segments, generating image.") - err, outname := ImageTools.DumpMultiSegment(msi, mapDrawer, *reproject) if err != nil { - SLog.Error("Error dumping image: %s", err) - os.Exit(1) + SLog.Error("Error processing file %s: %s", v, err) + continue } - SLog.Info("Output Image: %s", outname) - } else { - SLog.Error("Not all segments arrived. Expected %d got %d", msi.MaxSegments, len(msi.Files)) + + ImageProcessor.ProcessGOESABI(ip, v, xh) } } diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg001 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg001 deleted file mode 100755 index c6df3c7..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg001 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg002 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg002 deleted file mode 100755 index a5503cb..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg002 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg003 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg003 deleted file mode 100755 index 8eee537..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg003 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg004 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg004 deleted file mode 100755 index c14ebdc..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg004 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg005 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg005 deleted file mode 100755 index c8996c6..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg005 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg007 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg007 deleted file mode 100755 index bdfbda9..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg007 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg009 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg009 deleted file mode 100755 index d276bc1..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg009 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg010 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg010 deleted file mode 100755 index 6948414..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg010 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg011 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg011 deleted file mode 100755 index 41a4938..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg011 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg012 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg012 deleted file mode 100755 index b19c763..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg012 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg013 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg013 deleted file mode 100755 index 2ee9397..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg013 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg014 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg014 deleted file mode 100755 index 0465d0b..0000000 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg014 and /dev/null differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg015 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg000 old mode 100755 new mode 100644 similarity index 69% rename from cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg015 rename to cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg000 index 486f156..84016b1 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg015 and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg000 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg001 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg001 new file mode 100644 index 0000000..dd86625 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg001 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg002 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg002 new file mode 100644 index 0000000..6285ef3 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg002 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg003 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg003 new file mode 100644 index 0000000..fcda6e7 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg003 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg004 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg004 new file mode 100644 index 0000000..6f96678 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg004 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg005 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg005 new file mode 100644 index 0000000..78ecc6e Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg005 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg006 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg006 new file mode 100644 index 0000000..b4696e3 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg006 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg007 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg007 new file mode 100644 index 0000000..519c24a Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg007 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg008 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg008 new file mode 100644 index 0000000..289b14e Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg008 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg009 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg009 new file mode 100644 index 0000000..cfbb40e Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg009 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg010 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg010 new file mode 100644 index 0000000..2b7daeb Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg010 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg011 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg011 new file mode 100644 index 0000000..83ae52f Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg011 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg012 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg012 new file mode 100644 index 0000000..334be82 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg012 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg013 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg013 new file mode 100644 index 0000000..fe454bd Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg013 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg014 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg014 new file mode 100644 index 0000000..42b02ae Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg014 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg000 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg015 old mode 100755 new mode 100644 similarity index 67% rename from cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg000 rename to cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg015 index c733cf5..f17670f Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg000 and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190601900310_e20190601911077_c20190601911151.lritseg015 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg008 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg000 old mode 100755 new mode 100644 similarity index 69% rename from cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg008 rename to cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg000 index 91590d8..26cdd38 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg008 and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg000 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg001 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg001 new file mode 100644 index 0000000..343982a Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg001 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg002 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg002 new file mode 100644 index 0000000..3bed929 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg002 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg003 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg003 new file mode 100644 index 0000000..fd749f0 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg003 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg004 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg004 new file mode 100644 index 0000000..4a61ba9 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg004 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg005 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg005 new file mode 100644 index 0000000..d55e9a2 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg005 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg006 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg006 new file mode 100644 index 0000000..bf36d92 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg006 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg007 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg007 new file mode 100644 index 0000000..a5d57e9 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg007 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg008 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg008 new file mode 100644 index 0000000..a25b744 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg008 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg009 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg009 new file mode 100644 index 0000000..656ae3e Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg009 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg010 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg010 new file mode 100644 index 0000000..a7c9ddf Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg010 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg011 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg011 new file mode 100644 index 0000000..69a16f0 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg011 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg012 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg012 new file mode 100644 index 0000000..c47e286 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg012 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg013 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg013 new file mode 100644 index 0000000..b7f6b82 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg013 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg014 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg014 new file mode 100644 index 0000000..2652e95 Binary files /dev/null and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg014 differ diff --git a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg006 b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg015 old mode 100755 new mode 100644 similarity index 69% rename from cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg006 rename to cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg015 index 5032411..1e69906 Binary files a/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C02_G16_s20190550030315_e20190550041082_c20190550041157.lritseg006 and b/cmd/MultiSegmentDump/testdata/OR_ABI-L2-CMIPF-M3C14_G16_s20190601900310_e20190601911077_c20190601911167.lritseg015 differ diff --git a/cmd/SatHelperApp/Config.go b/cmd/SatHelperApp/Config.go index 5fece7f..d0db455 100644 --- a/cmd/SatHelperApp/Config.go +++ b/cmd/SatHelperApp/Config.go @@ -70,6 +70,7 @@ func LoadDefaults(save bool) { DSP.CurrentConfig.DirectDemuxer.SkipVCID = make([]int, 0) DSP.CurrentConfig.DirectDemuxer.DrawMap = false DSP.CurrentConfig.DirectDemuxer.ReprojectImages = false + DSP.CurrentConfig.DirectDemuxer.FalseColor = false if save { SaveConfig() diff --git a/cmd/SatHelperApp/SatHelperApp.go b/cmd/SatHelperApp/SatHelperApp.go index 5a944df..9a131b6 100644 --- a/cmd/SatHelperApp/SatHelperApp.go +++ b/cmd/SatHelperApp/SatHelperApp.go @@ -170,7 +170,7 @@ func main() { switch strings.ToLower(DSP.CurrentConfig.Base.DemuxerType) { case "direct": SLog.Info(aurora.Cyan("Direct Internal Demuxer selected.").String()) - dd := Demuxer.MakeDirectDemuxer(DSP.CurrentConfig.DirectDemuxer.OutputFolder, DSP.CurrentConfig.DirectDemuxer.TemporaryFolder) + dd := Demuxer.MakeDirectDemuxer(DSP.CurrentConfig.DirectDemuxer.OutputFolder, DSP.CurrentConfig.DirectDemuxer.TemporaryFolder, DSP.CurrentConfig.DirectDemuxer.DrawMap, DSP.CurrentConfig.DirectDemuxer.ReprojectImages, DSP.CurrentConfig.DirectDemuxer.FalseColor) for _, v := range DSP.CurrentConfig.DirectDemuxer.SkipVCID { dd.AddSkipVCID(v) }