コード例 #1
0
ファイル: FitsDatabase.cs プロジェクト: Jusas/fits-archive
 private void GenerateExtraIndexingData(IFitsFileInfo ff, FitsHeaderIndexedRow indexingData)
 {
     // Convert RA, DEC to decimal format for searches.
     try
     {
         if (ff.HasHeaderSingleValue("RA") && ff.HasHeaderSingleValue("DEC"))
         {
             indexingData.ParsedRa  = (double)ff.GetSingleHeaderValue("RA").Value;
             indexingData.ParsedDec = (double)ff.GetSingleHeaderValue("DEC").Value;
         }
         else if (ff.HasHeaderSingleValue("RA_OBJ") && ff.HasHeaderSingleValue("DEC_OBJ"))
         {
             indexingData.ParsedRa  = (double)ff.GetSingleHeaderValue("RA_OBJ").Value;
             indexingData.ParsedDec = (double)ff.GetSingleHeaderValue("DEC_OBJ").Value;
         }
         else if (ff.HasHeaderSingleValue("OBJCTRA") && ff.HasHeaderSingleValue("OBJCTDEC"))
         {
             string ra  = (string)ff.GetSingleHeaderValue("OBJCTRA").Value;
             string dec = (string)ff.GetSingleHeaderValue("OBJCTDEC").Value;
             indexingData.ParsedRa  = CoordinateTransform.HmsToDegrees(ra);
             indexingData.ParsedDec = CoordinateTransform.DmsToDegrees(dec);
         }
     }
     catch (Exception e)
     {
         _log?.Write(LogEventCategory.Error, $"Failed to convert RA/DEC coordinates to search index format with file '{ff.FilePath}'", e);
     }
 }
コード例 #2
0
        /// <summary>
        /// Add a RA/DEC constraint to the query.
        /// RA and DEC can be in either decimal degrees or in HH MM SS.sss, +/-DD MM SS.sss format.
        /// Radius is expected as arc minutes.
        /// </summary>
        /// <param name="ra">Center RA, either in degrees or 'HH MM SS.sss' format</param>
        /// <param name="dec">Center DEC, either in degrees or '+/-DD MM SS.sss' format</param>
        /// <param name="radius">Search radius, in arc minutes</param>
        /// <returns>The same FitsQueryBuilder for chaining.</returns>
        public IFitsQueryExpression RaDecRadius(string ra, string dec, double radius)
        {
            var dRa     = CoordinateTransform.HmsToDegrees(ra);
            var dDec    = CoordinateTransform.DmsToDegrees(dec);
            var dRadius = CoordinateTransform.ArcminToDegrees((int)radius);

            return(RaDecRadius(dRa, dDec, dRadius));
        }