void ProcessBigImage(GRBImageHeader header) { if (FullImageCache == null) { var product = Products.GetProductByAPID(APID); var imsz = (ImageSize)product.Meta[1]; FullImageCache = new ImageAssembler(imsz.Width, imsz.Height, Epoch); if (SaveDQF) { FullDQFCache = new ImageAssembler(imsz.Width, imsz.Height, Epoch); } } FullImageCache.DrawAt(ImageCache.Image, (int)header.ulX, (int)header.ulY + (int)header.rowOffset, true); // rowOffset to int might be bad if (SaveDQF) { FullDQFCache.DrawAt(DQF.Image, (int)header.ulX, (int)header.ulY + (int)header.rowOffset, true); // rowOffset to int might be bad } DQF = null; ImageCache = null; }
/// <summary> /// Saves this instance to disk /// </summary> /// <returns>Async Task of saving</returns> public async Task Save() { string folder = Path.Combine(FileHandler.FinalFileFolder, ProductFolder); if (Filename == null) { Filename = $"{Epoch}.nc"; } try { Directory.CreateDirectory(folder); } catch (IOException e) { UIConsole.Error($"Cannot create directory {folder}: {e}"); } string dqfFilename = Filename.Replace(".nc", ".dqf.pgm"); string imgFilename = Filename.Replace(".nc", ".pgm"); string metaFilename = Filename.Replace(".nc", ".xml"); string dataFilename = Filename.Replace(".nc", ".bin"); if (Title == null) { Title = Products.GetNameByAPID(APID); } UIConsole.Log($"New Product: {Title}"); if (Metadata != null) { metaFilename = Path.Combine(folder, metaFilename); UIConsole.Debug($"Saving file {metaFilename}"); File.WriteAllText(metaFilename, Metadata); } if (Data != null) { dataFilename = Path.Combine(folder, dataFilename); UIConsole.Debug($"Saving file {dataFilename}"); File.WriteAllBytes(dataFilename, Data); } if (FullDQFCache != null && SaveDQF) { dqfFilename = Path.Combine(folder, dqfFilename); UIConsole.Debug($"Saving file {dqfFilename}"); await FullDQFCache.AsyncSavePGM(dqfFilename); } if (FullImageCache != null) { if (SavePGM) { imgFilename = Path.Combine(folder, imgFilename); UIConsole.Debug($"Saving file {imgFilename}"); await FullImageCache.AsyncSavePGM(imgFilename); } if (SaveJPG) { string jpgFilename = imgFilename.Replace(".pgm", ".jpg"); jpgFilename = Path.Combine(folder, jpgFilename); UIConsole.Debug($"Saving file {jpgFilename}"); await FullImageCache.AsyncSaveJPG(jpgFilename); } if (SavePNG) { string pngFilename = imgFilename.Replace(".pgm", ".png"); pngFilename = Path.Combine(folder, pngFilename); UIConsole.Debug($"Saving file {pngFilename}"); await FullImageCache.AsyncSavePNG(pngFilename); } } }