HAlphaAnomalyzer

(Part of the MLEcoFi Project)

HAlphaAnomalyzer is a software for detecting anomalies in H-Alpha full-disk solar observations. Leveraging a grid-based approach and advanced statistical analysis, it computes optimal pixel average range values for each grid cell to identify anomalies effectively.

PyPI - Version Read the Docs PyPI - License

Try the demo online

Binder

Table of Contents

User Manual

Installation

To install the required library, run:

pip install HAlphaAnomalyzer

Importing Required Class

Import the Anomalyzer class from the library’s anomalyzer module into your Python script with:

from HAlphaAnomalyzer.anomalyzer import Anomalyzer

Initializing Anomalyzer Object

Create an instance of Anomalyzer with a specified grid size:

anomalyzer = Anomalyzer(grid_size=8)

Computing Best Ranges

Calculate optimal range values for each grid cell using your image paths.

anomalyzer.compute_best_ranges(
    non_anomalous_paths=['path/to/non-anomalous/image1.png', 'path/to/non-anomalous/image2.png'],
    anomalous_paths=['path/to/anomalous/image1.png', 'path/to/anomalous/image2.png']
)

Parameters:

  1. non_anomalous_paths: List of paths to non-anomalous image files.

  2. anomalous_paths: List of paths to anomalous image files.

  3. lower_range_end: End of candidate lower ranges, default is 20.

  4. upper_range_start: Start of candidate upper ranges, default is 80.

  5. step_size: Step size for candidate ranges, default is 2.

Finding Corrupt Images

Detect corrupt images based on computed best ranges, with options to set likelihood thresholds and minimum corrupt cells:

corrupt_images_labels = anomalyzer.find_corrupt_images(
    image_paths=['path/to/image1.png', 'path/to/image2.png'],
    likelihood_threshold=0.6,
    min_corrupt_cells=1,
    verbose=True
)

Parameters:

  1. image_paths: List of paths to image files.

  2. likelihood_threshold: Threshold for considering a cell as corrupt, default is 0.5.

  3. min_corrupt_cells: Minimum number of corrupt cells required to classify an image as corrupt, default is 0.

  4. verbose: If True, prints the number of detected corrupt images, default is False.

Plotting Image Likelihoods with Corrupt Cells

Visualize the anomaly likelihoods with an option to highlight corrupt cells:

anomalyzer.plot_image_likelihoods(
    image_path='path/to/image.png',
    likelihood_threshold=0.6
)

Parameters:

  1. image_path: Path to the image file.

  2. likelihood_threshold: Optional threshold for identifying corrupt cells. If provided, corrupt cells will be outlined.

Example Outputs

Anomaly_Likelihoods_With Threshold