コード例 #1
0
ファイル: MPCReportFile.cs プロジェクト: aschweiz/tangra3
        public bool AddObservation(
            string designation, double raHours, double deDeg,
            DateTime utcTime, TimeSpan timePrecision, double mag,
            MagnitudeBand band, bool isVideoNormalPosition, double?raUncertaintyArcSec, double?deUncertaintyArcSec)
        {
            lastObjectDesignation = designation;

            MPCObsLine obsLine = new MPCObsLine(Header.COD);

            obsLine.SetObject(designation);
            obsLine.SetPosition(raHours, deDeg, utcTime, isVideoNormalPosition);
            obsLine.SetMagnitude(mag, band);
            obsLine.SetUncertainty(raUncertaintyArcSec, deUncertaintyArcSec);

            if (Header.COD == MPCObsLine.ROVING_OBS_CODE)
            {
                string newLine1 = obsLine.BuildRovingObserverLine1();
                if (ObsLines.Exists(l => newLine1.Equals(l.BuildObservationASCIILine(), StringComparison.Ordinal)))
                {
                    return(false);
                }
            }
            else
            {
                string newLine = obsLine.BuildObservationASCIILine();
                if (ObsLines.Exists(l => newLine.Equals(l.BuildObservationASCIILine(), StringComparison.Ordinal)))
                {
                    return(false);
                }
            }

            ObsLines.Add(obsLine);
            return(true);
        }
コード例 #2
0
ファイル: MPCObsLine.cs プロジェクト: alexcherney/tangra3
        public void SetMagnitude(double mag, MagnitudeBand magBand)
        {
            if (double.IsNaN(mag) || double.IsInfinity(mag))
            {
                m_Magnitude_65_70  = "     ";
                m_MagnitudeBand_71 = " ";
                return;
            }

            m_Magnitude_65_70 = (mag.ToString("0.0", CultureInfo.InvariantCulture).PadLeft(4) + " ").Substring(0, 5);
            switch (magBand)
            {
            case MagnitudeBand.Johnson_U:
                m_MagnitudeBand_71 = "U";
                break;

            case MagnitudeBand.Johnson_B:
                m_MagnitudeBand_71 = "B";
                break;

            case MagnitudeBand.Johnson_V:
                m_MagnitudeBand_71 = "V";
                break;

            case MagnitudeBand.Cousins_R:
                m_MagnitudeBand_71 = "R";
                break;

            case MagnitudeBand.Cousins_I:
                m_MagnitudeBand_71 = "I";
                break;

            case MagnitudeBand.Sloan_g:
                m_MagnitudeBand_71 = "g";
                break;

            case MagnitudeBand.Sloan_r:
                m_MagnitudeBand_71 = "r";
                break;

            case MagnitudeBand.Sloan_i:
                m_MagnitudeBand_71 = "i";
                break;

            case MagnitudeBand.Sloan_z:
                m_MagnitudeBand_71 = "z";
                break;

            case MagnitudeBand.TwoMicron_J:
                m_MagnitudeBand_71 = "J";
                break;

            case MagnitudeBand.W:
                m_MagnitudeBand_71 = "W";
                break;
            }
        }
コード例 #3
0
ファイル: MPCObsLine.cs プロジェクト: hpavlov/tangra3
        public void SetMagnitude(double mag, MagnitudeBand magBand)
        {
            if (double.IsNaN(mag) || double.IsInfinity(mag))
            {
                m_Magnitude_65_70 = "     ";
                m_MagnitudeBand_71 = " ";
                return;
            }

            m_Magnitude_65_70 = (mag.ToString("0.0", CultureInfo.InvariantCulture).PadLeft(4) + " ").Substring(0, 5);
            switch(magBand)
            {
                case MagnitudeBand.Johnson_U:
                    m_MagnitudeBand_71 = "U";
                    break;

                case MagnitudeBand.Johnson_B:
                    m_MagnitudeBand_71 = "B";
                    break;

                case MagnitudeBand.Johnson_V:
                    m_MagnitudeBand_71 = "V";
                    break;

                case MagnitudeBand.Cousins_R:
                    m_MagnitudeBand_71 = "R";
                    break;

                case MagnitudeBand.Cousins_I:
                    m_MagnitudeBand_71 = "I";
                    break;

                case MagnitudeBand.Sloan_g:
                    m_MagnitudeBand_71 = "g";
                    break;

                case MagnitudeBand.Sloan_r:
                    m_MagnitudeBand_71 = "r";
                    break;

                case MagnitudeBand.Sloan_i:
                    m_MagnitudeBand_71 = "i";
                    break;

                case MagnitudeBand.Sloan_z:
                    m_MagnitudeBand_71 = "z";
                    break;

                case MagnitudeBand.TwoMicron_J:
                    m_MagnitudeBand_71 = "J";
                    break;

                case MagnitudeBand.W:
                    m_MagnitudeBand_71 = "W";
                    break;
            }
        }
コード例 #4
0
ファイル: MPCReportFile.cs プロジェクト: hpavlov/tangra3
        public bool AddObservation(
			string designation, double raHours, double deDeg, 
			DateTime utcTime, TimeSpan timePrecision, double mag,
            MagnitudeBand band, bool isVideoNormalPosition, double? raUncertaintyArcSec, double? deUncertaintyArcSec)
        {
            lastObjectDesignation = designation;

            MPCObsLine obsLine = new MPCObsLine(Header.COD);
            obsLine.SetObject(designation);
            obsLine.SetPosition(raHours, deDeg, utcTime, isVideoNormalPosition);
            obsLine.SetMagnitude(mag, band);
            obsLine.SetUncertainty(raUncertaintyArcSec, deUncertaintyArcSec);

            string newLine = obsLine.BuildObservationASCIILine();
            if (ObsLines.Exists(l => newLine.Equals(l.BuildObservationASCIILine(), StringComparison.Ordinal)))
                return false;

            ObsLines.Add(obsLine);
            return true;
        }
コード例 #5
0
        private void DisplayMeaMag()
        {
            lblM.Visible = false;
            lblMeaMag.Visible = false;
            m_MPCMag = double.NaN;

            if (m_AllMeasurements.Count > 2)
            {
                List<double> allMags = m_AllMeasurements.Select(m => m.Value.Mag).Where(m => !double.IsNaN(m)).ToList();
                allMags.Sort();

                if (allMags.Count > 1)
                {
                    m_MPCMag = allMags[allMags.Count/2];

                    m_MPCMagBand = MagnitudeBand.Cousins_R;

                    if (m_MeasurementContext != null)
                    {
                        switch (m_MeasurementContext.PhotometryMagOutputBand)
                        {
                            case TangraConfig.MagOutputBand.CousinsR:
                                m_MPCMagBand = MagnitudeBand.Cousins_R;
                                break;

                            case TangraConfig.MagOutputBand.JohnsonV:
                                m_MPCMagBand = MagnitudeBand.Johnson_V;
                                break;
                        }
                    }
                }

                if (!double.IsNaN(m_MPCMag))
                {
                    m_MPCMag = m_MeasurementContext.StarCatalogueFacade.ConvertMagnitude(m_MPCMag, m_MeasurementContext.AssumedTargetVRColour, m_MeasurementContext.PhotometryCatalogBandId, m_MeasurementContext.PhotometryMagOutputBand);
                    string bandStr = "";
                    switch(m_MeasurementContext.PhotometryMagOutputBand)
                    {
                        case TangraConfig.MagOutputBand.CousinsR:
                            bandStr = " (R)";
                            break;

                        case TangraConfig.MagOutputBand.JohnsonV:
                            bandStr = " (V)";
                            break;
                    }
                    lblMeaMag.Text = m_MPCMag.ToString("0.0") + bandStr;
                    lblMeaMag.Visible = true;
                    lblM.Visible = true;
                }
            }
        }