private RovingObsLocation GetRovingObsLocation(string obsCode, IRovingObsLocationProvider rovObsLocProvider)
 {
     if (obsCode == MPCObsLine.ROVING_OBS_CODE)
     {
         return(rovObsLocProvider.GetRovingObsLocation());
     }
     else
     {
         return(null);
     }
 }
        public string CalculateSingleMeasurement(string obsCode, string designation, DateTime obsDate, double timeOfDay, IRovingObsLocationProvider rovObsLocProvider)
        {
            var rovObsLocation = GetRovingObsLocation(obsCode, rovObsLocProvider);

            foreach (var chunk in m_Chunks)
            {
                if (chunk.MinTimeOfDayUTCInstrDelayApplied <= timeOfDay && chunk.MaxTimeOfDayUTCInstrDelayApplied >= timeOfDay)
                {
                    return(chunk.GetReport(obsCode, designation, obsDate, timeOfDay, rovObsLocation));
                }
            }

            return(null);
        }
        public string[] ExtractPositions(string obsCode, string designation, DateTime obsDate, IRovingObsLocationProvider rovObsLocProvider)
        {
            var lines = new List <string>();

            var rovObsLocation = GetRovingObsLocation(obsCode, rovObsLocProvider);

            foreach (var chunk in m_Chunks)
            {
                lines.Add(chunk.GetMidPointReport(obsCode, designation, obsDate, rovObsLocation));
            }

            double combinedUncert = Math.Sqrt(m_Chunks.Sum(x => x.GetMidPointCombinedSQUncertainty())) * 3600.0;

            Trace.WriteLine(string.Format("Combined total measurement uncertainty: {0} arcsec", combinedUncert));

            return(lines.ToArray());
        }