internal static bool TryParseDouble(string s, string catalog, out CatalogObject obj)
        {
            obj = null;
            string[] sp = s.Split(new char[] { ',', '#' }, StringSplitOptions.RemoveEmptyEntries);
            if (sp.Length != 3) return false;
            try
            {
                double ra,dec;
                if (!double.TryParse(sp[1], System.Globalization.NumberStyles.Float, GeminiHardware.Instance.m_GeminiCulture, out ra)) return false;
                if (!double.TryParse(sp[2], System.Globalization.NumberStyles.Float, GeminiHardware.Instance.m_GeminiCulture, out dec)) return false;

                obj = new CatalogObject
                {
                    Catalog = catalog,
                    Name = sp[0],
                    RA=new RACoord(ra/360.0 * 24.0),     // when specified as double, it is in degrees, so convert to hours 
                    DEC=new DECCoord(dec)
                };
            }
            catch
            {
                return false;
            }
            return true;
        }
 public static bool TryParse(string s, string catalog, out CatalogObject obj)
 {
     obj = null;
     string[] sp = s.Split(new char[] { ',', '#' }, StringSplitOptions.RemoveEmptyEntries);
     if (sp.Length != 3) return false;
     try
     {
         obj = new CatalogObject { 
             Catalog = catalog, Name = sp[0], 
             RA = new RACoord(GeminiHardware.Instance.m_Util.HMSToHours(sp[1])), 
             DEC = new DECCoord(GeminiHardware.Instance.m_Util.DMSToDegrees(sp[2])) };
     }
     catch
     {
         return false;
     }
     return true;
 }