Class OfflineSuperDetFilter

java.lang.Object
offlineProcessing.superdet.OfflineSuperDetFilter

public class OfflineSuperDetFilter extends Object
Super detection filter for offline tasks. When added to a offlinetaskgroup it will show options (if there are any) for filtering processed data units by super detections. e.g. for click processing, this should be able to restrict processing to just files that have porpoise events. Key will be to not even load a file that hasn't any data associated with super detections.

Author:
dg50
  • Method Details

    • findPossibleSuperDetections

      public static ArrayList<SuperDetDataBlock> findPossibleSuperDetections(PamDataBlock coreDataBlock)
      Make a list of all possible data blocks that might hold super detection data for the data in the given data block.

      For a datablock to be identified as a super data block it must have SQLLogging with a sub table and the subDetectionType of the data in that block must be compatible with the data in the core data block.

      Parameters:
      coreDataBlock - datablock containing sub detections
      Returns:
      list of datablocks that might have super detections.
    • makeSuperDetFilter

      public static OfflineSuperDetFilter makeSuperDetFilter(PamDataBlock subDataBlock, String dataName)
      Make a super detection filter for the given datablock. Return null if no appropriate super detections are available.
      Parameters:
      subDataBlock - datablock of the sub detections
      dataName - data name (will be used in dataselector settings for the super detection).
      Returns:
      null if no suitable super detections, otherwise the basis of a filter.
    • getSwingComponent

      public JComponent getSwingComponent(Window parent)
    • getAvailableSuperDetctors

      public ArrayList<SuperDetDataBlock> getAvailableSuperDetctors()
      Returns:
      the availableSuperDetctors
    • getDataName

      public String getDataName()
      Get a dataname that can be used with data selectors.
      Returns:
      the dataName
    • checkSubDetection

      public boolean checkSubDetection(PamDataUnit dataUnit)
      Called to see if this sub detection will pass the super detection filter, i.e. find an appropriate super detection then test that in the superdetection filter.

      Defaults to returning true if there isn't a filter data block selected or if the super datablock doesn't have a data selector. Data selectors can themselves how to handle a null dataunit, e.g. if we're looking at super detections of clicks - clcik trains - then the data selector has an option to unclude clicks which are not part of a train, in which case the superdetection of the click will be null

      Parameters:
      dataUnit - Sub detectoin data unit.
      Returns:
      true if conditions are met ...
    • setFilterDataBlock

      public void setFilterDataBlock(SuperDetDataBlock currentSuperBlock)
    • shouldProcess

      public boolean shouldProcess(OfflineDataMapPoint mapPoint)
      Work out if any of the data in the mapPoint, which is for the main OfflineTask datablock, might be associated with a super detection which passes this filter. Will involve some querying of database tables, but hopefully this will be faster than loading a lot of data we don't need to process.
      Parameters:
      mapPoint - Map Point for sub detection data.
      Returns:
      true if there are data worth processing.
    • checkSubDetectionLinks

      public void checkSubDetectionLinks()