Ignore:
Timestamp:
02/05/05 15:55:56 (19 years ago)
Author:
vor010
Message:

SDLineFinder: work around to detect weak and broad lines
as well as to avoid creating sidelobes near strong lines due to imperfections in edge detection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/SDLineFinder.h

    r352 r368  
    161161   std::vector<int>   getLineRanges(bool defunits=true)
    162162                                const throw(casa::AipsError);
     163protected:
     164   // auxiliary function to average adjacent channels and update the mask
     165   // if at least one channel involved in summation is masked, all
     166   // output channels will be masked. This function works with the
     167   // spectrum and edge fields of this class, but updates the mask
     168   // array specified, rather than the field of this class
     169   // boxsize - a number of adjacent channels to average
     170   void averageAdjacentChannels(casa::Vector<casa::Bool> &mask2update,
     171                               const casa::Int &boxsize)
     172                               throw(casa::AipsError);
     173   
     174   // an auxiliary function to remove all lines from the list, except the
     175   // strongest one (by absolute value). If the lines removed are real,
     176   // they will be find again at the next iteration. This approach 
     177   // increases the number of iterations required, but is able to remove
     178   // the sidelobes likely to occur near strong lines.
     179   // Later a better criterion may be implemented, e.g.
     180   // taking into consideration the brightness of different lines. Now
     181   // use the simplest solution     
     182   // temp_mask - mask to work with (may be different from original mask as
     183   // the lines previously found may be masked)
     184   // lines2update - a list of lines to work with
     185   //                 nothing will be done if it is empty
     186   // max_box_nchan - channels in the running box for baseline filtering
     187   void keepStrongestOnly(const casa::Vector<casa::Bool> &temp_mask,
     188                          std::list<std::pair<int, int> > &lines2update,
     189                          int max_box_nchan)
     190                                      throw (casa::AipsError);
    163191private:
    164192   casa::CountedConstPtr<SDMemTable> scan; // the scan to work with
Note: See TracChangeset for help on using the changeset viewer.