private void UseRecentFITSConfig(TangraConfig.FITSFieldConfig config) { ucTimestampControl.UseRecentFitsConfig(config); ucTimestampControl2.UseRecentFitsConfig2(config); if (config.ExposureHeader != null) { for (int i = 0; i < cbxExposure.Items.Count; i++) { if (((HeaderEntry)cbxExposure.Items[i]).Card.Key == config.ExposureHeader) { cbxExposure.SelectedIndex = i; break; } } } if (config.FileHash == m_FilesHash || m_CardNamesHash == config.CardNamesHash) { cbxExposureUnits.SelectedIndex = (int)config.ExposureUnit; } else { cbxExposureUnits.SelectedIndex = -1; } rbStartEndTimestamp.Checked = !config.IsTimeStampAndExposure; }
public void TestDateTimeStartEnd(string formatS, string valueS, string formatS2, string valueS2, string formatE, string valueE, string formatE2, string valueE2) { var cfg = new TangraConfig.FITSFieldConfig() { IsTimeStampAndExposure = false, TimeStampIsDateTimeParts = true, TimeStampType = TangraConfig.TimeStampType.StartExposure, TimeStampFormat = formatS, TimeStampFormat2 = formatS2, TimeStampHeader = "OBS-DATE", TimeStampHeader2 = "OBS-TIME", TimeStamp2IsDateTimeParts = true, TimeStamp2Format = formatE, TimeStamp2Format2 = formatE2, TimeStamp2Header = "END-DATE", TimeStamp2Header2 = "END-TIME" }; var timestampReader = new FITSTimeStampReader(cfg); var hdr = new Header(); hdr.AddValue("OBS-DATE", valueS, ""); hdr.AddValue("OBS-TIME", valueS2, ""); hdr.AddValue("END-DATE", valueE, ""); hdr.AddValue("END-TIME", valueE2, ""); bool isMidPoint; double?fitsExposure; var timeStamp = timestampReader.ParseExposure(null, hdr, out isMidPoint, out fitsExposure); Assert.AreEqual(true, isMidPoint); Assert.AreEqual(0.240, fitsExposure, 0.0001); Assert.AreEqual(new DateTime(2017, 09, 13, 18, 04, 58).AddMilliseconds(121), timeStamp); }
public void TestTimeStampExposure(string format, string value) { var cfg = new TangraConfig.FITSFieldConfig() { IsTimeStampAndExposure = true, ExposureHeader = "EXP", ExposureUnit = TangraConfig.ExposureUnit.Milliseconds, TimeStampType = TangraConfig.TimeStampType.StartExposure, TimeStampFormat = format, TimeStampHeader = "TIMSTMP" }; var timestampReader = new FITSTimeStampReader(cfg); var hdr = new Header(); hdr.AddValue("TIMSTMP", value, ""); hdr.AddValue("EXP", "240.6", ""); bool isMidPoint; double?fitsExposure; var timeStamp = timestampReader.ParseExposure(null, hdr, out isMidPoint, out fitsExposure); Assert.AreEqual(true, isMidPoint); Assert.AreEqual(0.2406, fitsExposure, 0.00001); Assert.AreEqual(new DateTime(2017, 09, 13, 18, 04, 58).AddMilliseconds(121 + 240.6 / 2), timeStamp); }
public void TestStartEndTimeStamp(string format, string value, string value2) { var cfg = new TangraConfig.FITSFieldConfig() { IsTimeStampAndExposure = false, TimeStampType = TangraConfig.TimeStampType.StartExposure, TimeStampFormat = format, TimeStampHeader = "TIMSTMP", TimeStamp2Format = format, TimeStamp2Header = "TIMSTMP2" }; var timestampReader = new FITSTimeStampReader(cfg); var hdr = new Header(); hdr.AddValue("TIMSTMP", value, ""); hdr.AddValue("TIMSTMP2", value2, ""); bool isMidPoint; double?fitsExposure; var timeStamp = timestampReader.ParseExposure(null, hdr, out isMidPoint, out fitsExposure); Assert.AreEqual(true, isMidPoint); Assert.AreEqual(0.240, fitsExposure, 0.0001); Assert.AreEqual(new DateTime(2017, 09, 13, 18, 04, 58).AddMilliseconds(121), timeStamp); }
private bool RecentFITSConfigMatches(TangraConfig.FITSFieldConfig config) { if (config.IsTimeStampAndExposure) { var exposureCard = m_AllCards.FirstOrDefault(x => x.Card.Key == config.ExposureHeader); var timestampCard = m_AllCards.FirstOrDefault(x => x.Card.Key == config.TimeStampHeader); if (exposureCard != null && timestampCard != null) { return (VerifyExposure(exposureCard.Card.Value) && VerifyTimeStamp(timestampCard.Card.Value, config.TimeStampFormat)); } else { return(false); } } else { var startTimestampCard = m_AllCards.FirstOrDefault(x => x.Card.Key == config.TimeStampHeader); var endTimestampCard = m_AllCards.FirstOrDefault(x => x.Card.Key == config.TimeStamp2Header); if (startTimestampCard != null && endTimestampCard != null) { return (VerifyTimeStamp(startTimestampCard.Card.Value, config.TimeStampFormat) && VerifyTimeStamp(endTimestampCard.Card.Value, config.TimeStamp2Format)); } else { return(false); } } }
internal void UseRecentFitsConfig2(TangraConfig.FITSFieldConfig config) { rbSeparateDateTime.Checked = config.TimeStamp2IsDateTimeParts; for (int i = 0; i < cbxTimeStamp.Items.Count; i++) { if (((HeaderEntry)cbxTimeStamp.Items[i]).Card.Key == config.TimeStamp2Header) { cbxTimeStamp.SelectedIndex = i; break; } } if (config.TimeStamp2Format != null) { cbxTimeStampFormat.SelectedIndex = cbxTimeStampFormat.Items.IndexOf(config.TimeStamp2Format); } if (config.TimeStamp2IsDateTimeParts) { for (int i = 0; i < cbxSecondCard.Items.Count; i++) { if (((HeaderEntry)cbxSecondCard.Items[i]).Card.Key == config.TimeStamp2Header2) { cbxSecondCard.SelectedIndex = i; break; } } if (config.TimeStamp2Format2 != null) { cbxSecondCardFormat.SelectedIndex = cbxSecondCardFormat.Items.IndexOf(config.TimeStamp2Format2); } } }
private void btnOK_Click(object sender, EventArgs e) { if (!ucTimestampControl.ValidateInput()) { return; } if (!m_ExposureValid) { MessageBox.Show("Please choose valid settings for the exposure."); return; } if (cbxExposureUnits.SelectedIndex == -1) { MessageBox.Show("Please choose exposure units."); cbxExposureUnits.Focus(); return; } if (HasNegativePixels && !m_PixelMappingReviewed) { if (!ReviewPixelMapping()) { MessageBox.Show("As there are negative pixels you need to confirm the pixel value mapping before continuing."); btnPixelValueMapping.Focus(); return; } } var singleTimeStampConfig = ucTimestampControl.GetSelectedInput(); var config = new TangraConfig.FITSFieldConfig() { ExposureHeader = cbxExposure.Text, ExposureUnit = (TangraConfig.ExposureUnit)cbxExposureUnits.SelectedIndex, IsTimeStampAndExposure = true, TimeStampIsDateTimeParts = singleTimeStampConfig.TimeStampIsDateTimeParts, TimeStampHeader = singleTimeStampConfig.TimeStampHeader, TimeStampFormat = singleTimeStampConfig.TimeStampFormat, TimeStampHeader2 = singleTimeStampConfig.TimeStampHeader2, TimeStampFormat2 = singleTimeStampConfig.TimeStampFormat2, TimeStampType = singleTimeStampConfig.TimeStampType, }; TimeStampReader = new FITSTimeStampReader(config); config.FileHash = m_FilesHash; config.CardNamesHash = m_CardNamesHash; TangraConfig.Settings.RecentFITSFieldConfig.Register(config); TangraConfig.Settings.Save(); FlipVertically = cbxFlipVertically.Checked; FlipHorizontally = cbxFlipHorizontally.Checked; DialogResult = DialogResult.OK; Close(); }
public void TestTimeStampType(TangraConfig.TimeStampType timeStampType, double diff) { var cfg = new TangraConfig.FITSFieldConfig() { IsTimeStampAndExposure = true, ExposureHeader = "EXP", ExposureUnit = TangraConfig.ExposureUnit.Milliseconds, TimeStampType = timeStampType, TimeStampFormat = "yyyy-MM-ddTHH:mm:ss.fff", TimeStampHeader = "TIMSTMP" }; var timestampReader = new FITSTimeStampReader(cfg); var hdr = new Header(); hdr.AddValue("TIMSTMP", "2017-09-13T18:04:58.121", ""); hdr.AddValue("EXP", "240.6", ""); bool isMidPoint; double?fitsExposure; var timeStamp = timestampReader.ParseExposure(null, hdr, out isMidPoint, out fitsExposure); Assert.AreEqual(true, isMidPoint); Assert.AreEqual(0.2406, fitsExposure, 0.00001); Assert.AreEqual(new DateTime(2017, 09, 13, 18, 04, 58).AddMilliseconds(121 + diff), timeStamp); cfg = new TangraConfig.FITSFieldConfig() { IsTimeStampAndExposure = true, TimeStampIsDateTimeParts = true, ExposureHeader = "EXP", ExposureUnit = TangraConfig.ExposureUnit.Milliseconds, TimeStampType = timeStampType, TimeStampFormat = "yyyy-MM-dd", TimeStampFormat2 = "HH:mm:ss.fff", TimeStampHeader = "OBS-DATE", TimeStampHeader2 = "OBS-TIME" }; timestampReader = new FITSTimeStampReader(cfg); hdr = new Header(); hdr.AddValue("OBS-DATE", "2017-09-13", ""); hdr.AddValue("OBS-TIME", "18:04:58.121", ""); hdr.AddValue("EXP", "240.6", ""); timeStamp = timestampReader.ParseExposure(null, hdr, out isMidPoint, out fitsExposure); Assert.AreEqual(true, isMidPoint); Assert.AreEqual(0.2406, fitsExposure, 0.00001); Assert.AreEqual(new DateTime(2017, 09, 13, 18, 04, 58).AddMilliseconds(121 + diff), timeStamp); }
internal void UseRecentFitsConfig(TangraConfig.FITSFieldConfig config) { rbSeparateDateTime.Checked = config.TimeStampIsDateTimeParts; for (int i = 0; i < cbxTimeStamp.Items.Count; i++) { if (((HeaderEntry)cbxTimeStamp.Items[i]).Card.Key == config.TimeStampHeader) { cbxTimeStamp.SelectedIndex = i; break; } } if (config.TimeStampFormat != null) { cbxTimeStampFormat.SelectedIndex = cbxTimeStampFormat.Items.IndexOf(config.TimeStampFormat); } if (config.TimeStampIsDateTimeParts) { for (int i = 0; i < cbxSecondCard.Items.Count; i++) { if (((HeaderEntry)cbxSecondCard.Items[i]).Card.Key == config.TimeStampHeader2) { cbxSecondCard.SelectedIndex = i; break; } } if (config.TimeStampFormat2 != null) { cbxSecondCardFormat.SelectedIndex = cbxSecondCardFormat.Items.IndexOf(config.TimeStampFormat2); } } if (config.FileHash == m_FilesHash || m_CardNamesHash == config.CardNamesHash) { cbxTimestampType.SelectedIndex = (int)config.TimeStampType; } else { cbxTimestampType.SelectedIndex = -1; } }
public FITSTimeStampReader(TangraConfig.FITSFieldConfig config) { m_Config = config; }
private void btnOK_Click(object sender, EventArgs e) { if (rbTimeDuration.Checked) { if (!m_TimeStampMappingValid) { MessageBox.Show("Please choose valid settings for the time timestamp."); return; } if (!m_ExposureValid) { MessageBox.Show("Please choose valid settings for the exposure."); return; } if (cbxExposureUnits.SelectedIndex == -1) { MessageBox.Show("Please choose exposure units."); cbxExposureUnits.Focus(); return; } if (cbxTimestampType.SelectedIndex == -1) { MessageBox.Show("Please choose timestamp type."); cbxTimestampType.Focus(); return; } var config = new TangraConfig.FITSFieldConfig() { ExposureHeader = cbxExposure.Text, ExposureUnit = (TangraConfig.ExposureUnit) cbxExposureUnits.SelectedIndex, TimeStampType = (TangraConfig.TimeStampType) cbxTimestampType.SelectedIndex, TimeStampHeader = cbxTimeStamp.Text, TimeStampFormat = cbxTimeStampFormat.Text, IsTimeStampAndExposure = true }; TimeStampReader = new FITSTimeStampReader(config); config.FileHash = m_FilesHash; config.CardNamesHash = m_CardNamesHash; TangraConfig.Settings.RecentFITSFieldConfig.Register(config); TangraConfig.Settings.Save(); DialogResult = DialogResult.OK; Close(); } else if (rbStartEndTimestamp.Checked) { if (!m_TimeStampMappingValid) { MessageBox.Show("Please choose valid settings for the start time timestamp."); return; } if (!m_TimeStamp2MappingValid) { MessageBox.Show("Please choose valid settings for the end time timestamp."); return; } var config = new TangraConfig.FITSFieldConfig() { TimeStampHeader = cbxTimeStamp.Text, TimeStampFormat = cbxTimeStampFormat.Text, TimeStamp2Header = cbxTimeStamp2.Text, TimeStamp2Format = cbxTimeStamp2Format.Text, IsTimeStampAndExposure = false }; TimeStampReader = new FITSTimeStampReader(config); config.FileHash = m_FilesHash; config.CardNamesHash = m_CardNamesHash; TangraConfig.Settings.RecentFITSFieldConfig.Register(config); TangraConfig.Settings.Save(); DialogResult = DialogResult.OK; Close(); } }