Download - SEGMENTATION OF CORONAL HOLES USING ACTIVE
SEGMENTATION OF CORONAL HOLES USING ACTIVE CONTOURS
WITHOUT EDGES AND DETECTION OF SMALL BOUNDARY FLASHES
BY
MEGHALA VALLURI
A thesis submitted to the Graduate School
in partial fulfillment of the requirements
for the degree
Master of Science
Major Subject: Electrical Engineering
New Mexico State University
Las Cruces, New Mexico
August 2013
“Segmentation of Coronal Holes Using Active Contours Without Edges and Detec-
tion of Small Boundary Flashes,” a thesis prepared by Meghala Valluri in partial
fulfillment of the requirements for the degree, Master of Science, has been ap-
proved and accepted by the following:
Linda LaceyDean of the Graduate School
Laura BoucheronChair of the Examining Committee
Date
Committee in charge:
Dr. Laura Boucheron, Chair
Dr. Charles Creusere
Dr. James McAteer
ii
DEDICATION
I would like to dedicate my thesis work to my beloved family and friends. A
special feeling of gradtitude to my loving parents, Raja Valluri and Satya Priya
Valluri and my sister and brother-in-law, Sri Harika and Kapil Kasturi whose
words of encouragement gave me all the strength to complete this work. Also,
I dedicate this work to my little nephew Karthikeya who always brings smile on
my face. I would also like to dedicate my work to Tapaswy Muppaneni, Harika
Vedam, Navya Makkapati and many other friends who supported me throughout
my Masters.
iii
ACKNOWLEDGMENTS
I would like to give special thanks to my advisor, Dr. Laura E. Boucheron, for
her guidance, support, encouragement and patience whose insight and experience
is vital in this work. I would also like to thank my committee members Dr.
Charles Creusere and Dr. James McAteer for agreeing to serve on my committee.
Special thanks to members of astronomy department and NMSU solar and stellar
research group for their help and support.
A special thanks to Dr. Bernard McNamara and Dr. Jason Jackiewicz for
funding my reasearch through NSF PAARE grant AST-0849986 and NASA EP-
SCoR grant NNX09AP76A. I give special thanks to Dr.Laura Boucheron for pro-
viding research support through Internal NMSU funds and Klipsch School of Elec-
trical and Computer Engineering Department for teaching assistant funds.
iv
VITA
September 21, 1986 Born in Andhra Pradesh, India
2004-2008 B.S.E.C.E., Acharya Nagarjuna University,Andhra Pradesh, India
2008-2011 Application Developer, Computer Sciences Corporation(CSC), India.
2011-Present Graduate Research Assistant,Electrical and Computer Engineering Department,New Mexico State University, Las Cruces, New Mexico.
PUBLICATIONS [or Papers Presented]
1. Segmentation of Coronal Holes using Active Contours Without Edges and
Detection of Small Boundary Flashes. Meghala Valluri, Laura E. Boucheron and
R. T. James McAteer. Solar Information Processing Workshop, 2012.“Talk”.
2. Segmentation of Coronal Holes using Active Contours Without Edges and
Detection of Small Boundary Flashes, Meghala Valluri, Laura E. Boucheron, and
R. T. James McAteer. Solar Physics, 2013. “To be Submitted”
FIELD OF STUDY
Major Field: Digital Signal Processing and Pattern Recognition
v
ABSTRACT
Segmentation of Coronal Holes Using Active Contours Without Edges and
Detection of Small Boundary Flashes
BY
Meghala Valluri
MASTER OF SCIENCE
New Mexico State University
Las Cruces, New Mexico, 2013
Dr. Laura E. Boucheron, Chair
Coronal holes are regions of low-density plasma on the Sun with open mag-
netic field lines, and are the source of the fast solar wind. The detection and
characterization of these regions is important to both testing theories of their for-
mation and evolution and from a space weather perspective. We present results
of the application of active contours without edges for automated detection of
coronal holes. We use full disk solar images from the Solar Dynamics Observatory
(SDO) Atmospheric Imaging Assembly (AIA) at multiple wavelengths to test the
vi
proposed algorithm. The proposed method can detect coronal holes without de-
pendence on a fixed threshold value, as used by many previous methods. Instead,
the active contour segmentation employs an energy-minimization in which coronal
holes are assumed to have more homogeneous intensities than surrounding active
and quiet sun. The obtained segmented results are verified using magnetogram
data and solar wind data. We also introduce an algorithm to detect small transient
flashes occurring around the boundary of coronal holes and the co-occurrence of
these flashes and the detected coronal hole boundary.
vii
CONTENTS
LIST OF TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
LIST OF FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 The Sun and Its Corona . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Coronal Holes and the Solar Wind . . . . . . . . . . . . . . . . . . 4
1.3 Automatic Segmentation of Coronal Holes . . . . . . . . . . . . . 6
1.4 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 ACTIVE CONTOUR MODELS . . . . . . . . . . . . . . . . . . . 9
2.1 Basic Active Contours: “Snakes” . . . . . . . . . . . . . . . . . . . 9
2.2 Active Contours Without Edges (ACWE) . . . . . . . . . . . . . 11
2.2.1 Background and Algorithm . . . . . . . . . . . . . . . . . 11
2.2.2 Advantages of ACWE over Basic Snakes . . . . . . . . . . 13
2.3 Application of ACWE to Image Segmentation . . . . . . . . . . . 14
3 DATASETS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1 Instruments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.1 Atmospheric Imaging Assembly (AIA) . . . . . . . . . . . 16
3.1.2 Helioseismic and Magnetic Imager (HMI) . . . . . . . . . . 17
3.1.3 Advanced Composition Explorer (ACE) . . . . . . . . . . 17
viii
3.2 Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 APPLICATION OF ACWE TO SOLAR IMAGERY . . . . . . . 21
4.1 Pre-Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Initialization by Thresholding . . . . . . . . . . . . . . . . . . . . 22
4.3 Application of ACWE . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3.1 Parameter Optimization . . . . . . . . . . . . . . . . . . . 25
4.3.2 Initial Mask . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.3 Stopping Criterion . . . . . . . . . . . . . . . . . . . . . . 33
4.3.4 Segementation Results . . . . . . . . . . . . . . . . . . . . 33
5 DETECTION OF BOUNDARY FLASHES . . . . . . . . . . . . . 40
5.1 Theoretical Background . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Flash Detection Algorithm . . . . . . . . . . . . . . . . . . . . . . 41
5.3 Flash Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3.1 Time Period of the Flashes . . . . . . . . . . . . . . . . . . 44
5.3.2 Size of Flashes . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.3 Brightness of Flashes . . . . . . . . . . . . . . . . . . . . . 48
5.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6 VALIDATION OF CORONAL HOLE SEGMENTATION . . . . . 52
6.1 Validation with Magnetogram Data . . . . . . . . . . . . . . . . . 52
6.2 Validation with ACE data . . . . . . . . . . . . . . . . . . . . . . 53
6.3 Validation using Flashes . . . . . . . . . . . . . . . . . . . . . . . 56
ix
6.4 Validation Compared to Previous Standard Detection Method . . 56
6.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7 CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8 FUTURE WORK . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
APPENDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
A MATLAB CODE . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.1 Get Datasets Code . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.2 Active Contours Without Edges Calling Program Code . . . . . . 69
A.3 Active Contour Without Edges Function Code . . . . . . . . . . . 74
A.4 Flash Detection Algorithm Code . . . . . . . . . . . . . . . . . . . 83
A.5 Flash Time Period Code . . . . . . . . . . . . . . . . . . . . . . . 89
A.6 Skewness Calculation Code . . . . . . . . . . . . . . . . . . . . . . 94
REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
x
LIST OF TABLES
1 Data used for testing the CH segmentation algorithm. . . . . . . . 18
2 Average flash characteristics for each dataset, plus or minus stan-
dard deviation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3 Average skewness values plus or minus standard deviation for each
of the datasets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
xi
LIST OF FIGURES
1 Different layers of the Sun. . . . . . . . . . . . . . . . . . . . . . . 2
2 Coronal hole Image of the Sun from Atmospheric Imaging Assem-
bly (AIA). The darker portion seen in the center of the solar disk
indicates the coronal hole [2] . . . . . . . . . . . . . . . . . . . . . 4
3 Initial curve propagating in normal directions from [10] . . . . . . 12
4 Example images of AIA data. . . . . . . . . . . . . . . . . . . . . 19
5 Example HMI magnetogram image. . . . . . . . . . . . . . . . . . 19
6 Histrogram Equalized Image. . . . . . . . . . . . . . . . . . . . . 22
7 Thresholded Output Image. . . . . . . . . . . . . . . . . . . . . . 23
8 Output of the processing to obtain the initial mask. . . . . . . . . 24
9 Evolution of the initial curve based on ACWE energies at different
iterations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10 Plots of skewness and area versus varying smoothness. . . . . . . 27
11 Difference in the contour for low and high values of smoothness
parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12 Plots of skewness and area by varying lambda values. . . . . . . . 29
13 Plots of λ1 vs skewness and λ1 vs area by varying λ1 value and with
λ2 = 0.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
xii
14 Plots of λ2 vs skewness and λ2 vs area by varying λ2 value and with
λ1 = 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
15 Segmented images obtained with different initializations. . . . . . 31
16 Difference image of the two segmented images Fig15(a)-Fig 15(b)
described in Figure 15 . . . . . . . . . . . . . . . . . . . . . . . . 32
17 Original AIA image and final segemented image for the period 06-
01-2012 to 06-07-2012. . . . . . . . . . . . . . . . . . . . . . . . . 35
18 Original AIA image and final segemented image for the period 01-
01-2011 to 01-10-2011. . . . . . . . . . . . . . . . . . . . . . . . . 36
19 Original AIA image and final segemented image for the period 02-
27-2013 to 03-04-2013. . . . . . . . . . . . . . . . . . . . . . . . . 37
20 Original AIA image and final segemented image for the period 08-
22-2012 to 08-26-2012. . . . . . . . . . . . . . . . . . . . . . . . . 38
21 Original AIA image and final segemented image for the period 01-
25-2012 to 01-29-2012. . . . . . . . . . . . . . . . . . . . . . . . . 39
22 Image showing individual flashes. . . . . . . . . . . . . . . . . . . 42
23 Different regions of interest considered for calculating number of
flashes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
24 Plot showing the average time period of the flashes. . . . . . . . . 46
25 Plot showing the average size of the flashes. . . . . . . . . . . . . 47
26 Plot showing the average brightness of the flashes. . . . . . . . . . 48
xiii
27 Histogram plot showing the average time period of the flashes. . . 50
28 Histogram plot showing the average size of the flashes. . . . . . . 50
29 Histogram plot showing the average brightness of the flashes. . . . 51
30 Plot showing the skewness of magnetic field distribution. . . . . . 54
31 Plot showing the Solar wind measurements. . . . . . . . . . . . . 55
32 Segmented outputs for 01-03-201, 01-05-2011 and 01-07-2011. . . . 55
33 Count of flahes in each region of interest considered . . . . . . . . 57
34 Output of CHARM algorithm for the day 11-28-2012. . . . . . . . 58
35 Output of ACWE for the day 11-28-2012. . . . . . . . . . . . . . . 59
xiv
1 INTRODUCTION
1.1 The Sun and Its Corona
The Sun is the nearest star to the earth and is the source of energy for life on
earth. It is a middle aged star with an age of ∼ 4.9 billion years. It is 1.3 million
times larger in volume than earth and is composed of 90% hydrogen and ∼ 10%
helium, with traces of few other gases [27]. Solar gas pressure and gravity are
responsible for maintaining the equilibrium in the solar interior which otherwise
would result in a massive explosion.
There are several different layers of the Sun as shown in Figure 1: the core,
radiation zone, convection zone, photosphere, chromosphere, and corona. The
core is the innermost layer of the Sun with a temparature of about 15M K which
is enough to ignite the thermonuclear reactions which results in the solar energy
output. However, it takes several million years for this energy to be transferred
to the solar surface. The layer above the core is the radiative zone, where the
energy from the core starts getting transferred to the surface of the Sun by means
of electromagnetic radiation. The next layer is the convection zone, where the
energy is primarily carried to the surface of the sun by heat convection currents.
The convection zone is less dense than the core and temperature gradients are so
1
Figure 1: Different layers of the Sun [3].
high that the plasma becomes unstable creating structures known as supergranular
cells.
The photosphere is generally considered as the apparent surface of the Sun and
is the layer from which solar light is emitted. The photosphere is relatively cooler
with temparatures around 5000 K, so only a small fraction (0.1%) of the gas is
ionized in the plasma state. It is thus the densest part of the solar atmosphere.
The photosphere has dark regions called sunspots which tend to coincide with
active regions which are the sites for strong magnetic activity. The next layer, the
chromosphere, is generally not visible as the light from the photosphere overpowers
it. The temparature of the chromosphere rises from about 5000 K to 8500 K
towards its edge. The active regions associated with sunspots produce strong
magnetic fields and cause eruptions in the corona. Flares begin in seconds and
2
may end in minutes or hours [8].
The corona is the outermost layer of the sun and is visible to the naked eye
only during a total solar eclipse or by using a coronagraph telescope. It can also
be observed on the solar disk at extreme ultraviolet (EUV) or X-ray wavelengths
using space-borne instruments and ground based telescopes. With the magnetic
configuration of the sun, the shape of the corona changes accordingly, i.e., during
solar maximum the corona is visible all around the limb due to shrunken coronal
holes and during solar minimum the corona streches farther from the Sun in eq-
uitorial than in the polar direction. The temparature of the corona reaches over
a million degrees. These high temparatures in the corona have elements that con-
tinuously stream into interplanetary space due to a large pressure gradient which
is responsible for the solar wind. A number of theories [42], [50], [53] suggest that
Alfvén waves which are created during chromospheric magnetic footpoint motions
deposit their energy through magnetic reconnection and magnetohydrodyanmic
turbulance which are responsible for high temparatures of the corona. Some other
theories [13], [56] suggest that the primary source of coronal heating lies in the
small-scale magnetic reconnection processess occuring between open and closed
field lines in the transition region and lower corona.
3
Figure 2: Coronal hole Image of the Sun from Atmospheric Imaging Assembly
(AIA). The darker portion seen in the center of the solar disk indicates the coronal
hole [2]
1.2 Coronal Holes and the Solar Wind
Coronal holes (CHs) are identified as darker, colder, and lower-density plasma
regions of the Sun’s corona that have lower EUV and X-ray emission than nominal
quiet and active regions [5], [52], [40], [51], [37]. As the electron density in CHs
is 2 - 3 times lower than that of quiet Sun (QS), and the temparature is around
105−106K, CHs appear as dark areas in X-ray and EUV wavelengths [28]. Figure
2 shows an example coronal hole image from the Atmospheric Imaging Assembly
(AIA); dark regions indicate the coronal hole.
Coronal holes were first discovered using K-coronameter data [5] in soft X-
4
ray images of the solar corona. Earlier theories on the origin of the coronal
holes [59], [6], [7], [47] considered the birth of holes as a process that depends
on the emergence of bipolar magnetic regions. According to those theories when
several bipolar regions interact to produce a large region of ‘locally unbalanced’
magnetic flux, coronal holes are born. Magnetic properties of coronal holes are
different compared to QS regions. CHs are regions of conglomerated unipolar
open magnetic field, whereas QS regions are dominated by small and large closed
magnetic fields. Due to different solar wind acceleration mechanisms like Alfvén
wave acceleration [42], [50], [53], velocity of the solar wind at the coronal holes is
higher than that of the QS which has weak solar winds.
The fundamental nature of high speed solar wind was not recognized for at
least a decade after its intial detection in 1972 [11]. The high speed component of
solar wind represents the more amorphous ambient state of plasma [18] whereas
the slow component is more variable. These high speed winds primarily emerge
from the coronal holes of the Sun, and expand to fill the majority of volume of the
heliosphere [26], [30]. The association of high-speed solar wind with solar coronal
holes is of great importance for space weather forecasting. Characterizing the
high speed solar wind can allow us to determine the arrival time of coronal mass
ejections at earth and other positions in heliosphere [40], [26]. It is still unknown
how specific properties of CHs (e.g., size, shape) affect the characteristics of high
speed solar wind.
5
Several theories were proposed confirming open magnetic fields of the CHs.
One of the main theories is the interchange model [55], which is based on the as-
sumption that the dominant process in the coronal open field evolution is the re-
connection between open and closed magnetic field lines. The other standard the-
ory for the solar-heliospheric magnetic field is the so-called quasi-steady model [31]
in which the field is determined by the observed magnetic flux at the photosphere
and the balance between magnetic plasma forces in the corona. In recent years the
most sophisticated implementation of the quasi-steady theory, which solves the
fully time-dependent 3D Magnetohydrodynamics (MHD) equations for the corona
and wind were developed [34].
1.3 Automatic Segmentation of Coronal Holes
CHs must be detected in consistent manner for studying their properties. Numer-
ous methods were proposed for the detection of coronal holes. The first quantita-
tive observations of coronal holes were made by Waldmeier in 1956 and 1957 [54]
at the Swiss Federal Observatory in Zurich. These features were identified as
long-lived regions of negligible intensity in coronagraphic (off-limb) images of the
5303 Å green emission line. Initial attempts to obtain coronal hole boundaries
involved hand drawn synoptic maps [21] based upon 1083mm He I images and
photosphere magnetograms.
Recently a number of automated detection methods have been proposed. Henny
6
& Harvey [22] present an algorithm which uses morphological image process-
ing, thresholding and smoothing to detect the coronal hole boundaries. Another
method proposed by Scholl & Habbal [45] used an image segmentation technique
based on a combination of region and edge-based methods using 171Å, 193Å, 304Å
(HE II) images and Michelson Doppler Imager (MDI) magnetograms. Most recent
techniques include detection of polar coronal holes by Kirk et al. [25] using perime-
ter tracing, thresholding and extracting coronal holes; this method, however, can
detect only polar coronal holes. There are several other models [28], [43], [41]
which mostly used thresholding techniques for obtaining the coronal hole con-
tours. The method of Krista et al. [28] is considered by many in the astrophysics
community to be the standard method. It is also implemented in the SDO image
processing pipeline. This method uses a histogram based intensity thresholding
technique to obtain the coronal hole boundaries. All these methods discussed used
threshold based detection techniques whereas the proposed algorithm uses active
contour models for the detection of coronal holes which will be discussed in detail
in Chapter 2.
1.4 Thesis Outline
The outline of this thesis is as follows. Chapter 2 introduces basic snakes which
are active contour techniques and then gives an overview of active contours with-
out edges and the advantages of this technique for segmentation of coronal holes.
7
Chapter 3 presents the instruments and data used in this study. Chapter 4 shows
the results obtained by applying active contours without edges to solar data, se-
lection of different parameters for optimization, and implementation of a stopping
criterion used to obtain the results. Chapter 5 gives brief description about the
theory behind the boundary flashes and introduces our flash detection algorithm,
discusses the flash characteristics, and the results of the algorithm. Chapter 6
presents and discusses the results of validating the obtained CH segmentations
with magnetograms, solar wind data, obtained flashes and previous thresholding
techniques. We discuss conclusions in Chapter 7 and future work in Chapter 8.
8
2 ACTIVE CONTOUR MODELS
This chapter details the concept of active contour models. Firstly classi-
cal snakes are introduced, then the algorithm and advantages of active contours
without edges are described.
2.1 Basic Active Contours: “Snakes”
A snake is an energy minimizing, deformable spline affected by external constraint
forces (e.g., smoothness) and by internal image forces that pull it towards object
features such as lines and edges [24]. Snakes are active contour models which
are generally used for object detection, image segmentation, motion tracking and
stereo matching [24]. Snakes will dynamically move towards an object contour
by iteratively minimizing an energy functional. Snakes can be visualized as a
rubber band of arbitrary shape that is deforming with time trying to get as close
as possible to the object contour.
In their most common formulation, snakes use an edge detector (i.e., dependent
on the gradient of the image) to stop the evolving curve on the boundary of
the desired object. The energy functional defined is minimized with respect to
the contour parameters in order to obtain contours. Contours of the snake are
represented parametrically as v(s) = (x(s), y(s)) where x(s) and y(s) are the
coordinates along the contour and v(s) is the parameterized curve such that v(s) :
9
[0, 1] [10]. The energy functional for the snake is a sum of several terms, each
corresponding to some force acting on the contour and is given by
E∗snake =
∫ 1
0
Esnake(v(s))ds =
∫ 1
0
Eint((v(s)) +Eimage((v(s)) +Econ((v(s))ds (1)
where Eint is the internal energy, Eimage is the image energy and Econ is the
constraint energy.
The internal energy term tries to keep the snake smooth and relatively close
to its original initialized shape. It is given by
Eint = (α(s)|vs(s)|2 + β(s)|vss(s)|2)/2 (2)
α(s) and β(s) are weights that control the first order (vs(s)) and second order
terms (vss(s)) of the initial curve which needs to be adjusted so that the system
will not be either too rigid or too flexible.
Image energy is the term which drives the model towards the desired object of
the image. Three different energy functionals attract snakes towards lines, edges,
and terminations. Image energy is given as the weighted combination of these
three energy functionals:
Eimage = wlineEline + wedgeEedge + wtermEterm (3)
where Eline = I(x, y) which is the image intensity itself, Eedge = −|∇I(x, y)|2
which is image gradient, and Eterm is the curvature level of the contours. The
weights wline, wedge, and wterm can be adjusted to observe a wide range of behavior
10
in snakes. The effect of image energy is very local, however; if just a small portion
of an active contour model finds a low-energy feature then the internal constraints
will pull neighboring elements of the contour towards that feature. Although these
are the image energies that are primarily defined, they can be chosen according
to a particular image application.
The external constraint forces are responsible for putting the snakes near the
desired local minimum. They can be used to interactively guide the snakes towards
or away from particular features in terms of their energies. Most snakes do not
try to solve the entire problem of finding salient image features, they rely on other
mechanisms to place them somewhere near a desired solution.
2.2 Active Contours Without Edges (ACWE)
2.2.1 Background and Algorithm
The model active contours without edges [10], unlike the classical snakes, does not
depend on the gradient of the image. The model is based on trying to seperate the
image into regions based on homogenity of intensities. The initialized curve will
propagate in the normal directions until the defined energy is minimized. Figure 3
shows the normal propagation of an initial curve defined by C = {(x, y) : φ(x, y)}
where c is the initialized curve, x and y are the coordinates of the initial curve
and φ is the function of the level set formulation. The energy functional for this
11
Figure 3: Initial curve propagating in normal directions from [10]
model will have additional regularizing terms added to the basic snake model:
F (c1, c2, C) = µ · Length(C) + ν · Area(inside(C))
+λ1
∫inside(C)
|u0(x, y)− cin|2dxdy
+λ2
∫outside(C)
|u0(x, y)− cout|2dxdy
where µ ≥ 0, ν ≥ 0, λ1, λ2 > 0 are fixed parameters and u0 is the image formed
by two regions of approximately piecewise-constant intensities of distinct values
ui0 (intensities inside the desired boundary) and uo0 (intensities outside the desired
boundary). It is assumed that C0 is the desired boundary and C is the evolving
curve or the initial curve. cin and cout are average intensity levels inside and outside
of the contour repectively. The parameters µ, ν, λ1, and λ2 are the weights that
can be adjusted for different evolving behavior.
The energy minimizer of the above functional is given by
infc{F1(C) + F2(C)} ≈ 0 ≈ F1(C0) + F2(C0). (4)
12
where F1(C) and F2(C) are energy functionals inside and outside the defined
initial curve repectively. It can be understood from the above equation that, for
instance, if the curve C is outside the object, then F1(C) > 0 and F2(C) ≈ 0. If
curve C is inside the object, then F1(C) ≈ 0 but F2(C) > 0, and if the curve C is
both inside and outside the object, then F1(C) > 0 and F2(C) > 0. Finally the
fitting energy is minimized if C = C0 i.e. if the curve C is on the boundary of
the object. This idea of active contour model without edges can be implemented
using the Mumford-Shah level set formulation [10], [36].
2.2.2 Advantages of ACWE over Basic Snakes
The classical active contour (snakes) model has a stopping criterion that depends
on the gradient of the image. Thus, limitations of classical snakes are that the
models usually only incorporate edge information, ignoring other image charac-
teristics such as texture and color. While snakes can only detect edges having
gradient change, ACWE can detect contours with or without gradient change, for
instance objects with very smooth boundaries or even with discontinuous bound-
aries.
Additionally, classical snakes must be initialized close to the feature of interest
to avoid being distracted by noise and clutter whereas ACWE is insensitive to the
initialization of the curve. The initial curve propagates in the normal directions
according to the active contour energies and will stop at the desired boundary.
13
Extensions made in ACWE compared to classical snakes are that the gradient
of the image is replaced by the curvature of its level sets and by orientations which
is useful in texture segmentation. The assumption of having the image gradient
was removed in ACWE thus allowing piecewise smooth solutions to the variational
problem. Also the level set formulations of active contours without edges are such
that interior contours (i.e., “holes”) are automatically detected [10].
In the ACWE model, along with the terms in the energy functional, the reg-
ularization terms which involves the length and area of the boundary are also
minimized. This enables the segmentation of image into piecewise smooth re-
gions. One important remark concerning this model as opposed to other level set
evolutions is its global nature where all the levelsets defined have the potential to
be important so that contours of the image are properly obtained.
2.3 Application of ACWE to Image Segmentation
In the context of image processing, there are several applications of ACWE be-
cause of its advantages in segmentation of the images. Medical image processing
is one field where this algorithm is more widely used. There are several important
publications where this algorithm is used.
Shenghua Ni et al. [38] published a book on DNA microarray image segmenta-
tion using ACWE. In this work, the authors used ACWE to segment two types of
DNA microarrays with improvement in segmentation accuracy compared to the
14
existing techniques. Another work [58] used ACWE for segmentation of intra-
retinal layers from optical coherence tomography images. Some other works in-
clude automatic tooth segmentation using ACWE [46], real shape inner iris seg-
mentation using ACWE [23], and semi-automatic cervical cancer segmentation
using ACWE [33]. Along with medical image processing, ACWE has applica-
tions in other fields like texture segmentation [44], and tracking of probability
distributions of any variable [14].
15
3 DATASETS
3.1 Instruments
In this section, we discuss the various instruments used in the present research.
This discussion includes the data used for segmentation of coronal holes as well
as validation of segmentation. SDO Atmospheric Imaging Assembly (SDO/AIA)
data is used for applying the algorithm and validating the obtained results. For
space weather forecasting purposes the detected CHs are linked to high-speed
solar wind streams using in-situ solar wind data from the Advanced Composition
Explorer (ACE) solar particle moniters. In order to determine whether a low
intensity region is a CH, magnetic field analysis was carried out using full-disk
magnetograms provided by Helioseismic and Magnetic Imager (SDO/HMI).
3.1.1 Atmospheric Imaging Assembly (AIA)
The Solar Dynamics Observatory (SDO) Atmospheric Imaging Assembly (AIA)
is designed to take images spanning >1.3 solar diameters in multiple wavelengths
nearly simultaneously, at a resolution of <1.5 arcsec and high cadence [1]. The
primary goal of the AIA Science Investigation is to “use these data, together with
data from other SDO instruments and from other observatories, to significantly
improve our understanding of the physics behind the activity displayed by the
16
atmosphere, which drives space weather in the heliosphere and in planetary en-
vironments” [1]. AIA is designed to provide date covering a wide temperature
range, with the aim to resolve fundamental observational ambiguities between
magnetic field evolution (observed by moving coronal loops) and thermal and
density changes in adjacent strcutures [1].
3.1.2 Helioseismic and Magnetic Imager (HMI)
The SDO Helioseismic and Magnetic Imager (HMI) instrument was primarily
built to study solar variability and to characterize the Sun’s interior and various
components of magnetic activity. HMI produces data to explore mechanisms of
solar variability and how the physical processes inside the Sun are related to
surface magnetic field and activity. HMI takes high-resolution measurements of
the longitudinal and vector magnetic field over the entire visible solar disk [4].
We will use longitudinal (line-of-sight) measurements for validation of unipolarity
underlying CHs.
3.1.3 Advanced Composition Explorer (ACE)
The Advanced Composition Explorer (ACE) was launched in 1997. ACE observes
the Sun without interruption from a distance of 148.5x106 km from the Sun and
about 1.5 million km from the Earth [48]. Due to its continuous ability to sample
the solar wind, ACE can provide space weather warnings shortly before a magnetic
17
Starting day Period Wavelength (in Å)
01-01-2011 10 days 193
06-01-2012 7 days 193
02-27-2013 7 days 193
08-22-2011 5 days 211
01-25-2012 5 days 193
Table 1: Data used for testing the CH segmentation algorithm.
storm hits Earth [48] .
3.2 Datasets
The datasets used for testing this algorithm are summarized in Table 1. We pri-
marily use 193Å data, but choose one dataset at 211Å to show the applicability of
the proposed method to other wavelengths. High resolution images (4096×4096)
of wavelength 193Å and 211Å are used. Figure 4 shows example AIA data for the
same day for both 193Å and 211Å. With the full cadence of 12 seconds, the size
of the dataset is prohibitively large (more than 12 TB for the period of 10 days),
so data is taken from AIA in such a way that full cadence (12 seconds) images are
taken for 5 minutes each hour for the entire period of data. This dataset allows
for analysis at full cadence for flash detection and also for long term analysis of
coronal hole evolution. With these datasets, for each period of 10 days, there will
be approximately 6000 images.
18
(a) AIA Image for 193Å . (b) AIA Image for 211Å .
Figure 4: (a)AIA 193 Å wavelength image and (b)AIA 211Å wavelength image.
Figure 5: Example magnetogram image for the same day closest time to the AIA
data in Figure 4.
Magnetogram data for the same days as AIA data with cadence of 720 seconds
are chosen to most closely coincide with the AIA times and are used for measure-
19
ment of magnetic polarity of detected coronal hole boundary. Figure 5 shows one
magnetogram image for the same day and time to the AIA data shown in Figure
4. Segmented coronal hole images are compared with magnetograms for each hour
and skewness of the underlying magnetic field is calculated to give a measure of
the unipolarity of the underlying magnetic field.
ACE data for the same period of AIA data is used to confirm the detected
coronal holes by observing wind speeds.
20
4 APPLICATION OF ACWE TO SOLAR IMAGERY
The ACWE algorithm described in Chapter 2 is applied to solar imagery. This
chapter discusses the steps to obtain the final segmented coronal hole boundary.
These steps include pre-processing, thresholding, and the ACWE algorithm. Pre-
processing and thresholding are used to obtain the initial mask which subsequently
evolves via ACWE into the segmented coronal hole area.
4.1 Pre-Processing
AIA images are initially scaled such that their intensity levels are distributed
between 0 and 1. The scaled data is then histogram equalized in order to increase
the global contrast. Histogram equalization is the process of distributing the
intensities evenly on the histogram by effectively spreading out the most frequent
intensity values [16]. This method is especially useful as the AIA images have
different contrast values in the background and foreground.
We used a global histogram equalization technique as we need improvement in
the contrast of entire image. Figure 6 shows the original AIA image of wavelength
193Å and the result of scaling and histogram equalizing. From the result of the
histogram equalization, the contrast between the dark areas (coronal holes) and
background is obvious. This improved contrast will be helpful for CH detection.
21
(a) Original AIA Image of 193Å . (b) Histogram Equalized Image.
Figure 6: (a) original AIA 193 Å wavelength image and (b) result of applying
scaling in order to adjust intensity values to between 0 and 1 and then histogram
equalizing.
4.2 Initialization by Thresholding
To obtain the segmented coronal hole image by applying ACWE to a series of solar
imagery, we must define an initial curve which subsequently evolves according to
ACWE energies and stops at the desired boundary. The ACWE algorithm is
insensitive to the initialization, but we want to initialize the contour to contain
the CH on the interior. We thus choose to initialize the contour at some low
intensity for which we are certain to be well within the CH boundary. A percentage
thresholding technique is used to get this initial mask.
A threshold is chosen to be the intensity value where the cumulative sum of
22
Figure 7: Output obtained by applying percentage thresholding to the histogram
equalized image. White regions are those segmented as CHs using threshold level.
pixel intensities is closest to 10% of the maximum intensity value present in the
histogram equalized image. This value of 10% was empricially determined to yield
initialization within the CHs. A percentage thresholding technique is chosen as
it is effective for automatic threshold selection. Figure 7 shows the thresholded
image obtained by applying the 10% threshold to the same histogram equalized
image as shown in Figure 6.
Note that this image has the outer boundary of the Sun and regions off the solar
disk segemented along with the desired interior region of the CHs. Thus, these
images are further processed to remove the outer boundaries of the Sun using
morphological reconstruction of images. Morphological reconstruction involves
transforming the image constrained by a structuring element [17]. The structuring
23
(a) Clearing the borders by morphological
reconstruction
(b) Eroded output
Figure 8: (a) output of clearing borders by using morphological reconstruction
and (b) erosion output which is done to remove the isolated pixels.
element in this case is chosen as an 8-connected component which represents 8
neighbours of any considered pixel. This transformation suppresses structures that
are lighter than their surroundings and that are connected to an image border.
Then the image is eroded in order to remove any isolated pixels. Figure 8 shows
the resultant images after boundary removal and erosion. The final image obtained
after boundary removal and erosion is used as the initial mask which is given as
input to the ACWE algorithm along with the original AIA image.
24
4.3 Application of ACWE
The ACWE algorithm detailed in Section 2.2 is applied to a series of AIA imagery.
Several important parameters of ACWE must be determined to obtain the desired
segmented boundary, including the initial mask, length of the curve (µ), interior
and exterior homogenity parameters (λ1 and λ2), and number of iterations. Each
of these parameters will be considered in turn in the next section.
Figure 9 shows the initialization and final convergence of ACWE applied to
the first image in a data sequence, along with several intermediate evolutions of
the contour. Once the initial contour has reached the desired boundary according
to ACWE energies, even with increasing number of iterations the contour will not
grow further. So percentage change in area is chosen as the stopping criterion
which is explained in Section 4.5.
4.3.1 Parameter Optimization
As mentioned in Section 2.2.1, selection of various parameters like length of the
curve (µ), and interior and exterior homogenity parameters (λ1 and λ2) are critical
for the evolving curve to get to the desired boundary according to ACWE energies.
Length of the curve (µ) is the parameter that controls the total length of the
evolving curve and will thus penalize longer and more discontinuous curves. Figure
10 shows how varying the length of the curve parameter (µ) affects the area and
magnetic skewness of the converged CH segmentation. From Figure 10 (a), it can
25
Initialization
(a) Initialization.
100 Iterations
(b) At 100 iterations.
200 Iterations
(c) At 200 iterations.
300 Iterations
(d) At 300 iterations.
Figure 9: Evolution of initial curve based on the ACWE energies for first image in
a data sequence where the stopping criteria is the number of iterations.(a) initial
mask, (b), (c) and (d) evolution of the curve for 100, 200 and 300 iterations.
26
0 0.2 0.4 0.6 0.8 14.5
4.6
4.7
4.8
4.9
5
5.1
5.2
5.3
5.4
5.5Smoothness vs Skewness
Smoothness
Ske
wne
ss
(a) Smoothness vs Skewness
0 0.2 0.4 0.6 0.8 10.7
0.8
0.9
1
1.1
1.2
1.3x 10
7 Smoothness vs Area
Smoothness
Are
a
(b) Smoothness vs Area
Figure 10: (a)plot of skewness versus varying smoothness parameter (b)plot of
area of segemented coronal hole versus varying smoothness parameter.
be seen that the skewness value is highest for a low value of length parameter
(µ) while CH area is largely unaffected. Thus, for the segementation of coronal
holes, a low length parameter of µ=0 is chosen; this results in curves that are
not penalized for length. Figure 11 illustrates the difference in contours for two
extreme values of µ. Although the difference in the contour is not significant, from
the skewness value in Figure 10 (a), it is obvious that low length is better.
Lambda values (λ1 and λ2) are the parameters which control the direction
of movement of the evolving curve based on the homogenity of the intensities.
Specifically λ1 tends to look for homogenity of intensities inside the defined contour
whereas λ2 tries to evolve the curve for homogenity outside the defined initial
contour. These values are chosen in our application such that they will put much
larger weight on keeping the interior of the contour (interior of the CH) more
27
(a) Segementation of coronal hole with µ =
0
(b) Segementation of coronal hole with µ =
1
Figure 11: (a) Coronal hole boundary with µ = 0 and (b) coronal hole boundary
with µ = 1.
homogeneous. The decision is based on the hypothesis that the interior of CHs
will be more homogeneous than the remainder of the Sun taken in aggregate
(including quiet Sun and active regions). Figure 12 shows the plots of the ratio
λ = λ1/λ2 vs. area of the segmented CH and lambda vs. skewness calculated
using magnetograms. From this plot, we can infer that λ1 value should be high
and λ2 value should be low for the skewness value to be high. Figure 13 shows
the plot of λ1 vs. skewness and λ1 vs. area by varying just λ1 and by having λ2
as a constant at a low value of 0.2. Similarly, Figure 14 shows the plot λ2 vs.
skewness and λ2 vs. area by varying λ2 and by having λ1 as a constant at a high
value of 15. From Figures 12, 13, and 14 it is obvious that the λ1 value should
be chosen at a high value and λ2 should be chosen relatively low for the skewness
to be a high value and thus for the evolving curve to detect the CH’s correctly.
28
1 1.5 2 2.5 35.2
5.4
5.6
5.8
6
6.2
6.4
6.6
6.8
7Lambda vs Skewness
Lambda = Lambda1/Lambda2
Ske
wne
ss
(a) Skewness vs λ
1 1.5 2 2.5 33
4
5
6
7
8
9
10
11x 10
6 Lambda vs Area
Lambda = Lambda1/Lambda2
Are
a
(b) Area vs λ
Figure 12: (a) Skewness versus λ = λ1/λ2 (b) area of segemented coronal hole
versus λ = λ1/λ2.
Additionally from these plots, it can be seen that the area of the detected coronal
hole boundary is relatively unaffected by the parameter variation. Thus, in this
work, we have chosen λ1 as 15 and λ2 as 0.2 for all subsequent application of
ACWE.
4.3.2 Initial Mask
The initial mask is the basis from which the contour will propagate to the final
segementation. The output image from the thresholding step as described in
Section 4.2 is taken as the initial mask. As we are running this algorithm on
thousands of images, for speedy computation, the segmented coronal hole image
obtained from the previous image in the image sequence is given as initial mask
for the next image. This is based on the assumption that the CH boundary
29
0 2 4 6 8 10 12 14 166.4
6.6
6.8
7
7.2
7.4
7.6
7.8
8
8.2
8.4Lambda1 vs Skewness
Lambda1
Ske
wne
ss
(a) λ1 vs skewness with λ2 = 0.2
0 2 4 6 8 10 12 14 162
2.5
3
3.5
4
4.5
5
5.5
6
6.5x 10
6 Lambda1 vs Area
Lambda1
Are
a
(b) λ1 vs area of segemented boundary
with λ2 = 0.2
Figure 13: (a)λ1 vs skewness with λ2 = 0.2 (b)λ1 vs area of segemented coronal
hole with λ2 = 0.2.
0 5 10 155
5.5
6
6.5
7
7.5
8
8.5Lambda2 vs Skewness
Lambda2
Ske
wne
ss
(a) λ2 vs skewness with λ1 = 15
0 5 10 152
4
6
8
10
12
14x 10
6 Lambda2 vs Area
Lambda2
Are
a
(b) λ2 vs skewness with λ2 = 15
Figure 14: (a)λ2 vs skewness with λ1 = 15 (b)λ2 vs area of segemented coronal
hole with λ1 = 15.
will not change significantly in the 12 seconds between images. This minimizes
the number of iterations to converge, speeding the computation. As mentioned
30
With prior segmented image used as initialization
(a) Segmented image with previous ob-
tained segmented image as initialization
With generating initial mask everytime
(b) Segmented image with initialization ob-
tained from thresholding
Figure 15: (a) segmented image obtained by applying ACWE algorithm, with ini-
tialization defined from previous obtained segmented image (b) segmented image
obtained by applying ACWE algorithm with initialization obtained from thresh-
olding.
earlier, the ACWE algorithm is insensitive to initialization, so using the previously
evolved image as the input mask for the next image should not affect the output
segmented image.
Figure 15 shows the resultant segemented images obtained with different ini-
tializations. Figure 15(a) shows the segmented result with the previous segmented
image as the initial mask after 200 subsequent images and 15(b) shows the resul-
tant image with the initial mask defined by thresholding as explained in Section
31
Difference Image
Figure 16: Difference of the two segemented images described in Figure 15.
4.2. Figure 16 shows the image difference image of the results obtained in Figure
15. We note that initialization with the previously segmented image does intro-
duce a small bias in the segementation versus reinitialization via thresholding for
each image. For Figure 16, this bias is 6.08% difference which is calculated using
mathematical expression in equation 5.
bias =ΣiΣjD(i, j)
ΣiΣjC(i, j)(5)
where D is the difference image and C is the segmented image obtained by initial-
ization via thresholding. This bias could be minimized by periodic reinitialization
via thresholding and will be studied further in future work.
The advantage of this initialization by the previous converged segmentation
is speedy computation. For 200 images, the time taken to run ACWE with ini-
tialization from the previous image and using percentage change in area as the
32
stopping criterion is approximately 180 minutes (average of 1 minute per image),
whereas if the initial mask is defined for every image via thresholding it takes
approximately 600 minutes (average of 3 minutes per image).
4.3.3 Stopping Criterion
In ACWE, the stopping criterion is number of iterations. Once the evolving curve
converges to the boundary, the resultant segementation will not change even with
increasing number of iterations. Although there is not much impact to have large
number of iterations on the result of segmentation, more iterations will affect the
computational time taken to obtain the final image.
Thus, in our current work, a stopping criterion is chosen based on the measure
of percentage change in area between subsequent iterations. Change in percentage
of area for each iteration is calcuated with respect to the previous iteration and the
iteration is stopped if the relative change is less than 5% using the same measure
as Equation 5. The average number of iterations to first converge is approximately
300, and it takes much fewer iterations of about 40-60 to converge on subsequent
images when initialized with the output of previous image.
4.3.4 Segementation Results
This section shows the results obtained by applying the ACWE algorithm for
datasets of different periods discussed in Section 3.2 and summarized in Table
33
1. Figure 17(a) shows the first AIA image of the data sequence from 06-01-
2012 to 06-07-2012 and (b) shows the final segemented image overlaid on the
histogram equalized image for better visibility of detected coronal holes. Figures
17 (c) and (d) show similar images for alter day in the image sequence. Similarly
Figures 18-21 show the segmented outputs for other datasets. Validation of these
segementations will be considered in Chapter 6.
34
06−01−2012 AIA 193
(a)
06−01−2012 segmented output
(b)
06−07−2012 AIA 193
(c)
06−07−2012 segmented output
(d)
Figure 17: (a), (b) AIA 193Å and segmented output for 06-01-2012 (c), (d) AIA
193Å and segmented output for 06-07-2012.
35
01−01−2011 AIA 193
(a)
01−01−2011 segmented output
(b)
01−10−2011 AIA 193
(c)
01−10−2011 segmented output
(d)
Figure 18: (a), (b) AIA 193Å and segmented output for 01-01-2011 (c), (d) AIA
193Å and segmented output for 01-10-2011.
36
02−27−2013 AIA 193
(a)
02−27−2013 segmented output
(b)
03−05−2013 AIA 193
(c)
03−05−2013 segmented output
(d)
Figure 19: (a), (b) AIA 193Å and segmented output for 02-27-2013 (c), (d) AIA
193Å and segmented output for 03-05-2013.
37
08−22−2012 AIA 211
(a)
08−22−2012 segmented output
(b)
08−26−2012 AIA 211
(c)
08−26−2012 segmented output
(d)
Figure 20: (a), (b) AIA 211Å and segmented output for 08-22-2012 (c), (d) AIA
211Å and segmented output for 08-26-2012.
38
01−25−2012 AIA 193
(a)
01−25−2012 segmented output
(b)
01−29−2012 AIA 193
(c)
01−29−2012 segmented output
(d)
Figure 21: (a), (b) AIA 193Å and segmented output for 01-25-2012 (c), (d) AIA
193Å and segmented output for 01-29-2012.
39
5 DETECTION OF BOUNDARY FLASHES
Flashes are the small brightening events happening on the entire Sun. This
chapter details the importance of flashes in the detection of coronal holes and an
algorithm for automated CH boundary flash detection. Also, the characteristics
of these boundary flashes are studied.
5.1 Theoretical Background
There were studies in late 1970’s showing that the small scale and and short
term evolution of CH boundaries [39], [12] is strongly connected to bright point
(flash) occurences [29]. Earlier studies on these flashes [15] indicate that they
have uniform distribution over the surface of the Sun. In recent years, there are a
number of studies using high resolution observations, detailing small scale changes
in the coronal hole boundaries [32], [49]. The process of interaction between the
open magnetic fields of the coronal hole and closed fields of the quiet and active
sun is called reconnection which could be a means of flux transportation and
diffusion of the open flux [39].
A more in-depth discussion on reconnection at coronal hole boundaries was
provided by Muallan [35], who proposed that reconnection was also a driver of
the high speed solar wind emanating from the coronal holes. Flashes are hypoth-
esized to be the small scale reconnection events occuring at the boundaries of the
40
coronal holes. These reconnection events are expected to manifest themselves as
spatially small and temporally short increases in EUV intensity at the coronal
hole boundary. Flashes are widely distributed especially in polar coronal holes
and coronal hole boundaries. Flashes are associated with small loop structures
at coronal hole boundaries which also contribute to the small-scale evolution of
coronal hole boundaries [57], [49]. Spatial and temporal variations of these flashes
have been studied and these studies indicate that the typical life time of these
flashes varies on several time scales [19], [9].
A closer look at shape of coronal holes indicate that their day-by-day and even
hour-by-hour evolution demonstrates a significant dynamics [32]. Thus the study
of these flashes are important in confirming the boundaries of the coronal holes
and for further determination of evolution of the coronal holes. Figure 22 shows
the flashes around a coronal hole in an AIA image; the rectangular box highlights
the flashes. The next section discusses the algorithm that is used in this work to
identify the flashes.
5.2 Flash Detection Algorithm
Small flashes present throughout the Sun are detected and characteristics of these
flashes present at the coronal hole boudnaries are analyzed. AIA data of 12
second cadence for the same time period as for the ACWE algorithm are used. As
mentioned in Section 5.1, detecting these flashes aids in confirming the accuracy
41
(a) (b)
Figure 22: (a) shows histogram equalized image and (b) shows the individual
flashes. Rectangular box highlights the flashes
of the detected segmented coronal hole boundary. The main steps in the flash
detection algorithm are :
1. Finding difference images
2. Threshold the difference images
3. Mask the thresholded difference images with region of interest (ROI)
4. Count number of flashes occuring in the resultant ROI images
5. Repeat steps 3 and 4 for different regions of interest
Flashes are initially detected by taking the difference of two subseqent images
(subseqent in the sense of cadence). Difference images are obtained by pixel-
by-pixel subtraction. This difference image will contain positive values in regions
42
where the intensity has increased over time and negative values where the intensity
has decreased.
Difference images need to be thresholded to remove small changes that are
occuring over the entire Sun. So, an appropriate threshold level should be deter-
mined. The threshold level after which there is not much change in the number
of flashes visually observed is selected.
Output of the thresholding will highlight flashes occurring across the entire
solar disk. So certain regions of interest (i.e., near the detected coronal hole
boundary) are selected and flashes in those areas are obtained by masking the
thresholded difference image with the selected region of interest (ROI).
As described in the algorithm, the number of flashes in each region of in-
terest are counted. Individual flashes are defined as 8-connected regions in the
thresholded difference image. An 8-connected region is the component having 8
neighbors (4 horizontal and vertical and 4 diagonal neighbors) around it.
In our work, we applied the flash detection algorithm on four different regions of
the solar image to verify the segmented coronal hole boundary. The first region is
a region 20 pixels wide centered at the segmented coronal hole boundary obtained
by applying ACWE to the solar imagery, where more flashes are expected due
to reconnection events. The second region is the inner coronal hole region i.e.,
the region within the segmented coronal hole boundary excluding any pixels in
Region1. The third region is the one which is 10 pixels wide just outside the first
43
region. The fouth region is the region somewhere in the quiet sun (QS) where we
anticipate relatively fewer flashes compared to all other regions. Figure 23 shows
these four regions of interest for the segmented coronal hole boundary in Figure
9. We will use the number of flashes in each region as a quantitative verification
of correct coronal hole segmentation in Chapter 6.
5.3 Flash Characteristics
As discussed previously, flashes are the small dynamic structures that are observed
all over the solar corona and more densely around the coronal hole boundaries. As
these flashes are important in confirming the boundaries of the detected coronal
hole, certain characteristics of flashes like the time period, size, and brightness
are analyzed in this section. Analyzing these characteristics may help validate
theories of temporal evolution of the coronal hole boundary and may be used to
help tune models of solar evolution.
5.3.1 Time Period of the Flashes
The average time period of flashes occuring around the boundary of the segmented
coronal hole (region 1) in each of the AIA images is calculated and plotted as
shown in Figure 24. Below we summarize the steps in the algorithm used to find
the average time period of the flashes. Initial steps in this algorithm are similar
to those of the flash detection algorithm as we need to obtain the flashes first to
44
Region 1
(a) Region 1.
Region 2
(b) Region 2.
Region 3
(c) Region 3.
Region 4
(d) Region 4.
Figure 23: Shows different regions of interest described in Section 5.2. (a) Region
1 which is 20 pixels wide centered at the segmented coronal hole boundary, (b)
Region 2 is inner coronal hole, (c) Region 3 is 10 pixels outside region 1 and (d)
Region 4 is in quiet Sun.
45
0 1000 2000 3000 4000 50001
2
3
4
5
6
7
8
9
10Flashes average time period
No of Images
Ave
rage
No
of fr
ames
eac
h fla
sh la
sts
Figure 24: Average time period of the flashes for dataset 01-01-2011 to 01-10-2011
calculate their average time period.
1. Obtain flashes from each difference image by following the steps detailed in
Section 5.2
2. Centroid of each flash is calculated
3. Centroids are compared with the centroids of flashes obtained from subse-
qent difference images
4. Each flash in an image is compared with flashes for 15 frames
5. Average of the obtained flash period is calculated
6. Above steps are repeated for each image
Firstly, flashes are obtained from the difference images by thresholding and
then masking with the Region 1 ROI. Then, the centroid of each of the flash is
46
0 1000 2000 3000 4000 5000 60000
20
40
60
80
100
120
140Average size of flashes
No of Images
Ave
rage
siz
e in
pix
els
Figure 25: Average size of the flashes for dataset 01-01-2011 to 01-10-2011
calculated. The centroid is defined as the arithematic mean of all points in the
region weighted by its area. Centroids in the image are then compared to those
for 15 subseqent frames and the period of each flash is noted. The mean of the
periods gives the average period of the flashes. Centroids are compared until 15
frames, as we hypothesized that flashes will not last more than few minutes.
From Figure 24 it can be inferred that on an average each flash lasts for
aproximately 2 frames (24 seconds). However there are some flashes that last as
long as 9 frames (108 seconds). Figures shown are obtained by applying these
algorithms to data of 10 days period (i.e., from 01-01-2011 to 01-10-2011).
5.3.2 Size of Flashes
The size of a flash is defined as the area of each flash. In this work, we compute
the average area of flashes in an image. Figure 25 shows the plot of the average
47
0 1000 2000 3000 4000 5000 60000
100
200
300
400
500
600
700
800Average Brightness of flashes
No of Images
Ave
rage
inte
nsity
Figure 26: Average brightness of the flashes for dataset 01-01-2011 to 01-10-2011
size of the flashes for AIA images, for one data set. It can be inferred from the
plot that the average size of a flash is ∼ 5 pixels (corresponding to ∼ 3.625Mm2).
5.3.3 Brightness of Flashes
The average intensity of the flashes in AIA images are calculated and plotted as
shown in Figure 26. Mostly, average brightness varies around 100 photon counts.
5.4 Conclusions
Table 2 summarizes the characteristics of flashes for each dataset considered in this
work. These characteristics can be used to understand more about the evolution
of the boundaries of the coronal hole. These values may also be used to validate
or drive models of solar evolution. Future work will compare these characteristics
to characteristics of flashes in different regions of the Sun (QS or AR).
48
Starting day Period Ave. Size Ave. Brightness Ave. Period (seconds)
06-01-2012 7 days 6.8±2.7 98.6±43.4 15.0±3.0
01-01-2011 10 days 5.0±2.5 94.2±27.6 18.8±7.5
02-27-2013 7 days 5.3±2.2 106.6±37.1 21.6±9.8
08-22-2011 5 days 6.3±2.48 120.8±72.2 13.3±4.0
01-25-2012 5 days 4.6±2.6 97.2±32.4 14.6±4.0
Table 2: Average flash characteristics for each dataset, plus or minus standard
deviation.
Along with the count of flashes in each of the region, modeling the characteris-
tics of the flashes are also important for analyzing the evolution of the boundaries
of coronal holes. Figures 27-29, show the histogram of each of the flash charac-
teristics like brightness, time period, and size. These histograms are computed
by considering flashes from all the datasets. From these figures, it can be inferred
that the average period that a flash lasts is 1-2 frames which is 12-24 seconds, the
average size of flashes is 4-7 pixels corresponding to 2.9Mm2 to 5.075Mm2 and
the average brightness of the flashes is approximately 100 photon counts.
49
Figure 27: Histogram of average period of flashes averaged over images from all
datasets.
Figure 28: Histogram of average size of flashes averaged over images from all
datasets.
50
Figure 29: Histogram of average brightness of flashes averaged over images from
all datasets.
51
6 VALIDATION OF CORONAL HOLE SEGMENTATION
This section details the results obtained by applying the ACWE algorithm to
solar imagery and validates the segmentation results using some quantitative mea-
surements like skewness of the magnetogram data, speed of ACE data, boundary
flashes, and compared to a current existing method [28].
6.1 Validation with Magnetogram Data
There are strong indirect evidences that magnetic fields in coronal holes are always
open [20]. Thus, measurement of skewness of the magnetic field in magnetograms
underlying coronal holes serves as an important metric for the verification of the
detected coronal hole boundary. The magnetogram that is closest to the AIA
observation time is overplotted with the resulting active contour coronal hole
boundaries. Thus, we use the active contour segmentation to mask the coincident
magnetogram. The flux imbalance is measured by skewness of the flux distribution
within the coronal hole. Coronal holes are well known to show one dominant
polarity either dominantly poistive or dominantly negative.
The skewness of the field strength distribution for the data considered are
tabulated in Table 3. The results from the table strongly indicates the existence of
a unipolar magnetic field which implies that the obtained segmented boundaries
are the actual coronal holes. Figure 30 shows the plot obtained by calculating
52
Starting day Period Average Skewness
01-01-2011 10 days 4.92±0.83
06-01-2012 7 days 5.53±0.83
02-27-2013 7 days 7.67±0.86
08-22-2011 5 days 6.05±1.44
01-25-2012 5 days 3.77±0.42
Table 3: Average skewness values plus or minus standard deviation for each of the
datasets.
skewness of the magnetic flux distribution, by overplotting segmented image from
ACWE algorithm on to magnetogram. The plot shown is for one data set for a
period of 10 days (i.e. from 01-01-2011 to 01-10-2011). A skewness value above
2.5 and below -2.5 are considered to be having dominant uni-polarity [28] and so
from Figure 30 it can be seen that the average skewness is around 5 and even the
lowest value is above 2.5 which proves that the segmented boundaries are coronal
hole boundaries.
6.2 Validation with ACE data
As coronal holes are sources of high speed solar winds [11], [56], [30], the obtained
segmented results are compared with the solar wind stream samples at the same
period of time. The main aim of this study is to link the properties of coronal holes
with the high speed solar wind streams measured with the Advanced Composition
53
0 50 100 150 2002.5
3
3.5
4
4.5
5
5.5
6
6.5
7Skewness of Magnetogram
No of segmented images
skew
ness
Figure 30: Skewness of magnetic field distribution obtained using segmented im-
ages from ACWE algorithm and magnetograms for one dataset.
Explorer (ACE). Knowing the exact location of the coronal holes enables us to
make more accurate estimates of arrival times and duration of high speed solar
wind streams at the Earth.
Figure 31 shows the solar wind measurements for the period 01-01-2011 to
01-10-2011 which is one of the data sequence considered. Figure 32 shows the
segmented coronal hole boundary for the days 01-03-2011, 01-05-2011, 01-07-2011.
As a coronal hole rotates through the right hemisphere, the solar wind speed at
earth should increase approximately 2 days later. Thus, we want to look for
the segmented coronal hole boundary to be on the right side of the solar disk
approximately 2 days before the rise in the solar wind measurements. From Figure
31, it can be seen that there is rise in the solar wind measurement around 2011-
01-07, and from Figure 32, segmented coronal hole boundary is in the left side of
54
Figure 31: Solar wind measurement profile from ACE
01−03−2011
(a) segmented output for 01-
03-2011 .
01−05−2011
(b) segmented output for 01-
05-2011 .
segmented output 01−07−2011
(c) segmented output for 01-
07-2011 .
Figure 32: (a) segmented output for 01-03-2011 (b) segmented output for 01-05-
2011 and (c) segmented output for 01-07-2011.
solar disk on 01-03-2011 as seen in Figure 32(a) and started moving towards right
on 01-05-2011 seen in Figure 32(b). The segmented coronal hole was on the right
for 01-07-2011 where the solar wind measurements are high in Figure 31. These
plots provide additional confirmation of the accuracy of the detection of coronal
hole boundaries.
55
6.3 Validation using Flashes
As mentioned in Chapter 5, flashes are the brightenings that occur along the
boundary of the coronal hole and can serve as an important metric for the ver-
ification of the segmented coronal hole boundary. As described in Section 5.2,
different regions around the detected coronal hole boundary are chosen and the
number of flashes normalized with area of each region are counted and plotted.
Figure 33 shows the plot of number of flashes in each region of interest. Since
each of the four regions has different areas (sizes), the number of flashes in each
region are normalized with respect to areas. It can be observed from Figure 33
that number of flashes are relatively high in Region 1 which is 20 pixels wide
around the predicted coronal hole boundary. The other regions have less than
1/2 the number of flashes. This provides evidence supporting the hypothesis of
reconnection events at the CH boundaries.
6.4 Validation Compared to Previous Standard Detection Method
The results of our algorithm using ACWE applied to solar imagery are compared
with the output of CHARM algoritm [28] which is a standard detection method
used in National Oceanic and Atmospheric Administration (NOAA) for solar wind
forecast purposes.
The Coronal Hole Automated Recognition and Monitoring (CHARM) algo-
rithm uses a Lambertian equal area projection (LEAP) to project a spherical
56
0 1000 2000 3000 4000 5000 60000
1000
2000
3000
4000
5000
6000
7000
8000No of flashes in region1
No of Images
No
of fl
ashe
s
(a) Number of flashes in Region 1.
0 1000 2000 3000 4000 5000 60000
500
1000
1500
2000
2500
3000
3500No of flashes in region2
No of Images
No
of fl
ashe
s(b) Number of flashes in Region 2.
0 1000 2000 3000 4000 5000 60000
200
400
600
800
1000
1200
1400
1600
1800
2000No of flashes in region3
No of Images
No
of fl
ashe
s
(c) Number of flashes in Region 3.
0 1000 2000 3000 4000 5000 60000
50
100
150
200
250
300No of flashes in region4
No of Images
No
of fl
ashe
s
(d) Number of flashes in Region 4.
Figure 33: plot for the count of flashes in each of the four regions of interest
discussed in section 5.2.(a) number of flashes in Region 1, (b) number of flashes
in Region 2 (c) number of flashes in Region 3 and (d) number of flashes in Region
4 for dataset from 01-01-2011 to 01-10-2011.
57
Figure 34: Output of CHARM algorithm which is a standard detection method
surface to a cylindrical surface. Then, the solar image is partioned into sub-
images and a threshold is obtained by taking the intensity histogram for each of
the sub-images. The obtained threshold is then used to obtain segmented coronal
hole boundaries. The CHARM algorithm uses LEAP as it divides the images into
sub-images of equal sizes and so projection of a spherical surface to a cylindrical
surface is required. In our current algorithm, a Lambertian equal area projection
is not neccesary as we are not concerned with areas.
Figure 34 shows the output of the CHARM algoritm for the day 11-28-2012.
Figure 35 shows the output of ACWE algorithm for the same date. From these
figures it can be seen that, both the outputs are mostly similar in detecting the
boundaries of the coronal hole.
58
ACWE output
Figure 35: Output of ACWE for the same day as in Figure 34
6.5 Summary
From all the above sections, it can be summarized that the detected coronal hole
boundary is validated with several quantitative metrics, and the results prove that
the segmented region is actual coronal hole boundary. An important property of
coronal holes are their dominant unipolar nature which is confirmed by calculating
the skewness values of the detected coronal hole areas which are summarized in
Table 3 and Figure 30. Solar wind measurements provides an accurate way to
validate the obtained coronal hole boundaries. From Figures 31 and 32 it can
be confirmed that the segmented coronal hole boundaries are in accordance with
the solar wind measurements. Counts of flashes in each region of interest shown
in Figure 33 clearly indicate that the detected coronal hole boundaries are the
actual coronal holes. Finally, comaparision of the proposed algorithm output to
59
a standard method [28] output gives affirmation of the accuracy of the current
work. Although, accuracy of the algorithm is verified with several quantitative
measurements and to the previous existing techniques lack of ground truth for the
comparision of the output makes the study incomplete.
60
7 CONCLUSION
In this work, we proposed an algorithm to segment the coronal hole boundaries
in automated manner as the main goal of this thesis is to improve the coronal
hole detection method compared to the existing threshold based techniques. For
this study, data for > 7 days of time is collected for different dates and output is
verified using various measurement techniques and parameters.
The segmentation algorithm first identifies coronal hole boundaries using ACWE
energies. Critical parameters of ACWE like length of the contour, interior and
exterior homogenity parameters, initialization and stopping criterion are chosen
by measuring the skewness of the underlying magnetogram. After obtaining the
segmented coronal hole boundaries, small scale changes happening at the bound-
aries are analyzed using a flash detection algorithm and various characteristics
of these flashes like average size, average brightness and average time period are
observed. Additionally, the flux imbalance was determined using HMI magne-
tograms, to establish whether the detected region was actually a coronal hole.
Results are validated with flashes, ACE solar wind speed plots, and by comparing
to a standard detection method.
The developed algorithm is fast, robust, and allows use of data from different
instruments and for different wavelengths. As opposed to previous methods, where
threshold based techniques were chosen, here, the method uses image energies
61
based on intensity homogenity to obtain the coronal hole boundaries.
Due to the fast and automated approach of this method, it allows analysis of
large datasets and can be used to study evolution of coronal holes. On a smaller
scale, the flash detection algorithm can also be applied to understand small scale
changes in boundaries of coronal holes.
Although robust, the proposed automated approch is by no means complete,
and it should be considered complementary to other published approches as there
is no ground truth to do the actual comparision. We conclude that an extensive
study of the connection between the coronal hole morphology, physical properties,
and the solar wind profile is needed to have a better understanding of coronal holes
and their interplanetary effects.
62
8 FUTURE WORK
There are several considerations that might lead to a better and more significant
automation in future studies. Firstly, the ACWE algorithm can be improved by
having the energy term related to flashes within itself, so that the intial curve will
evolve to the exact coronal hole boundaries based on the number of flashes. Also,
along with the term related to flashes, another energy term related to skewness of
the magnetogram can also be added. Secondly, although, the ACWE algorithm is
not dependent on the defined initial curve, it is initialized using basic threshold-
ing whose threshold value is chosen based on histogram and visualization. This
threshold can be selected using more quantatively apt techniques rather than just
visualizing the histogram, so that ACWE algorithm will get to the exact con-
tour with less number of iterations. Thirdly, also the threshold value chosen in
the flash detection algorithm was arbitrarily chosen based on visualization of the
histogram. Further analysis needs to be carried out to justify this value.
Although AIA data is analysed for around 10 days, it would be more benefi-
cial to carry out a long-term study to observe the evolution of the coronal hole
boundary. Also, this work can be applied to other wavelengths like 171Å, 304Å,
and 335Å. Possible extension of this work is in filament detection. Filaments are
dark ribbon-like elements that are generally located in the upper chromosphere
and the lower corona. Although filaments are dark structures like coronal holes,
63
they have bi-polar distribution of polarities [45], whereas coronal holes have one
dominant polarity of the magnetic field. Flux imbalance can be determined from
the magnetogram and filaments can be seperated from coronal holes.
The ultimate goal of detecting the coronal holes using segmentation techniques
is for solar wind forecast purposes. Thus, a short term goal of this work would
be to find the changes in evolution of the coronal hole. These temporal changes
in the coronal hole boundary can be used to build a model for the prediction of
solar winds. A long term plan is to extend the analysis of temporal evolution for a
solar cycle and link all the major coronal holes to solar wind speed rises. This will
allow us to build a relationship between coronal hole properties and high-speed
solar wind profiles.
64
APPENDICES
APPENDIX A
MATLAB CODE
A MATLAB CODE
A.1 Get Datasets Code
base_directory = ’/home/meghala/AIA_data ’;
year= 2011;
month = 01;
day = 01;
5 num_days = 10;
for k = 1: num_days *24
current_time = datenum(year ,month ,day ,k-1,0,0);
date_str = [datestr(current_time ,10),’.’,datestr(current_time ,5),’.’,...
10 datestr(current_time ,7),’_’,datestr(current_time ,15)];
jsoc_str = [’’’aia.lev1_euv_12s[’,date_str ,’/5m][193]{ image}’’’];
directory_str = [datestr(current_time ,10),’_’,datestr(current_time ,5),...
’_’,datestr(current_time ,7)];
i f isempty(dir(directory_str ))
15 system ([’mkdir ’,directory_str ]);
end
directory_str = [directory_str ,’/’,datestr(current_time ,30)];
i f isempty(dir(directory_str ))
system ([’mkdir ’,directory_str ]);
20 end
i f ~isempty(dir(directory_str ))
system ([’cp exportfile.csh url_escape.pl ’,base_directory ,’/’,directory_str ]);
eval([’cd ’,base_directory ,’/’,directory_str ]);
system ([’./ exportfile.csh ’,jsoc_str ]);
25 system ([’rm -f exportfile.csh url_escape.pl’]);
% s y s t e m ([ ’ f o r i in ∗. f i t s ; do mv " $i " " $i ". fz ; done ’ ] ) ;
eval([’cd ’,base_directory ]);
end
67
end
68
A.2 Active Contours Without Edges Calling Program Code
clc ;
clear a l l ;
close a l l ;
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
5 % T h i s is t h e m a i n p r o g r a m w h i c h r e a d s A I A d a t a f o r g i v e n p e r i o d a n d t h e n
% s e n d s e a c h i m a g e to a c t i v e c o n t o u r s w i t h o u t e d g e s a l g o r i t h m , o b t a i n s t h e
% s e g m e n t e d i m a g e a n d s a v e s f i n a l s e g m e n t e d e a c h f o r e a c h h o u r on to a
% s t r u c t u r e w h i c h is f i n a l l y s a v e d in to a m a t f i l e t h a t c a n be a c c e s s e d
% l a t e r f o r f l a s h d e t e c t i o n , p a r a m e t e r s e l e c t i o n e t c .
10 %
% P a t h s to be t a k e n c a r e of : p a t h f o r b a s e _ d i e c t o r y ( b a s e _ d i r e c t o r y )
% p a t h f o r m a t f i l e ( m a t f i l e p a t h )
%
% A u t h o r : M e g h a l a v a l l u r i ( m e g h a l a 9 @ n m s u . e d u )
15 %
% C r e a t i o n D a t a : 26 J a n 2 0 1 2
%
% N o t e s :
%
20 % R e v i s i o n H i s t o r y :
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
% C o d e f o r r e a d i n g f i l e n a m e s f r o m a l l t h e d i r e c t o r i e s i n t o a s i n g l e s t r u c t u r e
25 base_directory = ’/home/meghala/AIA_data/’;
matfilepath1 = ’/media/Meghala/Uni desktop/DSP Project ’;
mtfilepath2 = ’/DSP Project/ACWE/thesis final folder ’;
matfilepath = strcat(matfilepath1 , matfilepath2 );
30
69
directories = dir(base_directory );
k = 1;
field = ’name’;
35 value = ’’;
files = struct(field ,value);
l = 1;
field1 = ’image ’;
40 value1 = ’’;
seg_im_hr = struct(field1 , value1 );
for i = 1: length(directories)
folder = directories(i).name;
45 folderpath = [base_directory ,folder ];
i f ( isdir(folderpath ))
directories_folder = dir(folderpath );
for j = 3: length(directories_folder)
data_directory = directories_folder(j).name;
50 filenames = dir ([folderpath ,’/’,data_directory ,’/*. fits’]);
for j = 1: length(filenames)
files(k).name = [folderpath ,’/’,data_directory ,’/’,filenames(j).name];
k= k+1;
end
55 end
end
end
% c o d e f o r r e a d i n g e a c h f i l e in t h e s t r u c t u r e f i l e s a n d s e n d i n g it to t h e
60 % A C W E a l g o r i t h m
70
for n = 1: length(files)
i f ( n== 1) % F o r t h e 1 st i m a g e m a s k is c r e a t e d f r o m t h e i m a g e
I = fitsread(files(n).name);
65 im_size= s ize (I); % f i n d t h e s i z e of t h e i m a g e
min_intensity=min(min(I)); % f i n d t h e m a x i n t e n s i t y v a l u e in A
max_intensity=max(max(I)); % f i n d t h e m i n i n t e n s i t y v a l u e in A
I_full =(I-double(min_intensity ))
*(255.0/( double(max_intensity)-double(min_intensity ))); % i m a g e s c a l i n g
70 I_scaled = I_full *(1/255); % I m a g e in r a n g e 0−255
% h i s t o g r a m e q u a l i z a t i o n f o r i m p r o v i n g c o n t r a s t
eq_image = histeq(I_scaled );
alpha = 0.2 ; % f a c t o r f o r p e r c e n t a g e t h r e s h o l d i n g
I_max = max(max(eq_image ));
75 I_min = min(min(eq_image ));
level = alpha*(I_max -I_min)+I_min; % 2 0 % t h r e s h o l d i n g
% C o n v e r s i o n to b i n a r y i m a g e u s i n g t h r e s h o l d v a l u e
m = 1-im2bw(eq_image ,level);
m = imclearborder(m); % r e m o v a l of t h e b o u n d a r y
80 % m = i m 2 b w ( m , 0 . 4 ) ;
s = strel(ones (5 ,5));
m = imerode(m,s);
imshow(m);
I = imresize(I,.5); %−− m a k e i m a g e s m a l l e r
85 m = imresize(m,.5); %−−f o r f a s t c o m p u t a t i o n
subplot(2,2,1); imagesc(I); t i t l e (’Input Image’);
subplot(2,2,2); imagesc(m); t i t l e (’Initialization ’);
subplot(2,2,3); t i t l e (’Segmentation ’);
% s e g = r e g i o n _ s e g ( I , m , 400 ,0 , true , 2 , 0 . 2 ) ; %−− R u n s e g m e n t a t i o n
90 seg = acflashesv2(I, m, 200,0,true ,5,5,0,1,1); %−− R u n s e g m e n t a t i o n
subplot(2,2,4); imagesc(seg); t i t l e (’Global Region -Based Segmentation ’);
seg = imresize(seg , 2);
71
else
% % R e g i o n 1 a n d r e g i o n 2 f l a s h e s a r e g i v e n as i n p u t to s e g m e n t a t i o n
95 % % a l g o r i t h m by c a l c u l a t i n g t h e m f r o m t h e p r e v i o u s l y o b t a i n e d
% % s e g m e n t e d i m a g e
% s e 1 = s t r e l ( o n e s ( 1 0 , 1 0 ) ) ;
% s _ i m 1 = i m d i l a t e ( seg , s e 1 ) − i m e r o d e ( seg , s e 1 );
% a r e a 1 = s u m ( t r a p z ( s _ i m 1 ) ) ;
100 % s _ i m 2 = z e r o s ( s i z e ( s e g ) ) ;
% s _ i m 2 = i m e r o d e ( seg , s e 1 );
% a r e a 2 = s u m ( t r a p z ( s _ i m 2 ) ) ;
% f i l e n a m e 1 = f i l e s ( i ). n a m e ; % r e a d e a c h f i l e
% f i l e n a m e 2 = f i l e s ( i + 1 ) . n a m e ; % R e a d s u b s e q u e n t f i l e
105 I1 = fitsread(filename1 );
I2 = fitsread(filename2 );
%
Diff_im = I2-I1;
% % m a s k e d i m a g e w i t h 20 p i x e l s w i d e s t r i p at t h e b o u n d a r y of c o r o n a l h o l e
110 masked_image1 = Diff_im .*s_im1;
thresh_im1 = masked_image1 >60;
[l1 , labelnum1 ] = bwlabel(thresh_im1 );
% % m a s k e d i m a g e w i t h t h e b o u n d a r y of t h e c o r o n a l h o l e
% m a s k e d _ i m a g e 2 = D i f f _ i m .∗ s _ i m 2 ;
115 % t h r e s h _ i m 2 = m a s k e d _ i m a g e 2 > 6 0 ;
% [ l2 , l a b e l n u m 2 ] = b w l a b e l ( t h r e s h _ i m 2 );
% % m a s k is t h e s e g m e n t e d i m a g e o b t a i n e d by s e g m e n t i n g p r e v i o u s i m a g e
m = seg;
I2 = imresize(I2 ,.5); %−− m a k e i m a g e s m a l l e r
120 m = imresize(m,.5); %−−f o r f a s t c o m p u t a t i o n
subplot(2,2,1); imagesc(I2); t i t l e (’Input Image’);
subplot(2,2,2); imagesc(m); t i t l e (’Initialization ’);
subplot(2,2,3); t i t l e (’Segmentation ’);
72
% %
125 % % s e g = r e g i o n _ s e g ( I , m , 400 ,0 , true , 2 , 0 . 2 ) ; %−− R u n s e g m e n t a t i o n
seg = acflashesv2(I2 , m, 300,0,true ,15,0.2,0, labelnum1 ,labelnum2 );
subplot(2,2,4); imagesc(seg); t i t l e (’Global Region -Based Segmentation ’);
seg = imresize(seg , 2);
end
130 % c o d e f o r s a v i n g s e g m e t e d i m a g e i n t o a s t r u c t u r e f o r e v e r y o n e h o u r
i f ( rem(n,25) == 0)
seg_im_hr(l).image = seg;
l = l+1;
end
135 n
end
% s a v i n g s e g m e n t e d i m a g e s to s e g _ i m . m a t f i l e
save([ matfilepath , ’data.mat’], ’seg_im_hr ’);
73
A.3 Active Contour Without Edges Function Code
% R e g i o n B a s e d A c t i v e C o n t o u r S e g m e n t a t i o n
%
% s e g = r e g i o n _ s e g ( I , i n i t _ m a s k , m a x _ i t s , alpha , d i s p l a y )
%
5 % I n p u t s : I 2 D i m a g e
% i n i t _ m a s k I n i t i a l i z a t i o n (1 = f o r e g r o u n d , 0 = bg )
% m a x _ i t s N u m b e r of i t e r a t i o n s to r u n s e g m e n t a t i o n f o r
% a l p h a ( o p t i o n a l ) W e i g h t of s m o o t h i n g t e r m
% h i g e r = s m o o t h e r . d e f a u l t = 0 . 2
10 % d i s p l a y ( o p t i o n a l ) d i s p l a y s i n t e r m e d i a t e o u t p u t s
% d e f a u l t = t r u e
%
% O u t p u t s : s e g F i n a l s e g m e n t a t i o n m a s k ( 1 = fg , 0= bg )
%
15 % D e s c r i p t i o n : T h i s c o d e i m p l e m e n t s t h e p a p e r : " A c t i v e C o n t o u r s W i t h o u t
% E d g e s " By C h a n V e s e . T h i s is a n i c e w a y to s e g m e n t i m a g e s w h o s e
% f o r e g r o u n d s a n d b a c k g r o u n d s a r e s t a t i s t i c a l l y d i f f e r e n t a n d h o m o g e n e o u s .
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
function seg = acflashesv2(I,init_mask ,max_its ,alpha,display ,lambda1 ...
20 ,lambda2 ,lambda3 ,nr1 ,nr2)
a=lambda1
%−− d e f a u l t v a l u e f o r p a r a m e t e r a l p h a is .1
i f (~ exist (’alpha’,’var’))
25 alpha = .2;
end
%−− d e f a u l t b e h a v i o r is to d i s p l a y i n t e r m e d i a t e o u t p u t s
i f (~ exist (’display ’,’var’))
display = true;
30 end
74
%−− e n s u r e s i m a g e is 2 D d o u b l e m a t r i x
I = im2graydouble(I);
35
%−− C r e a t e a s i g n e d d i s t a n c e m a p ( S D F ) f r o m m a s k
phi = mask2phi(init_mask );
phip = zeros( s ize (phi ));
40
no_flashes = nr1+nr2;
total_flashes = (1-(nr1/no_flashes ))+( nr2/no_flashes)
45 %−−m a i n l o o p
for its = 1: max_its % N o t e : no a u t o m a t i c c o n v e r g e n c e t e s t
idx = find(phi <= 1.2 & phi >= -1.2); % g e t t h e curve ’ s n a r r o w b a n d
50 %−− f i n d i n t e r i o r a n d e x t e r i o r m e a n
upts = find(phi <=0); % i n t e r i o r p o i n t s
vpts = find(phi >0); % e x t e r i o r p o i n t s
u = sum(I(upts ))/( length(upts)+eps); % i n t e r i o r m e a n
v = sum(I(vpts ))/( length(vpts)+eps); % e x t e r i o r m e a n
55 % f o r c e f r o m i m a g e i n f o r m a t i o n
F = (lambda1 *(I(idx)-u).^2) -( lambda2 *(I(idx)-v).^2) -( lambda3*total_flashes );
a = lambda1 *(I(idx)-u).^2;
b = lambda2 *(I(idx)-v).^2;
c = lambda3*total_flashes;
60 curvature = get_curvature(phi ,idx); % f o r c e f r o m c u r v a t u r e p e n a l t y
75
sf = s ize (F);
i f (sf(1) ~= 0)
65 % g r a d i e n t d e s c e n t to m i n i m i z e e n e r g y
dphidt = F./max(abs(F)) + alpha*curvature;
%−− m a i n t a i n t h e C F L c o n d i t i o n
dt = .45/(max(dphidt )+eps);
70 % % % % %
sdt = s ize (dt);
sdphidt = s ize (dphidt );
75 %−− e v o l v e t h e c u r v e
phi(idx) = phi(idx) + dt.* dphidt;
%−− K e e p S D F s m o o t h
phi = sussman(phi , .5);
80
%−− i n t e r m e d i a t e o u t p u t
i f ((display >0)&&( mod(its ,20) == 0))
showCurveAndPhi(I,phi ,its);
85 % d i s p ( ’ a = ’);
% a
% d i s p ( ’ b = ’)
% b
% d i s p ( ’ c = ’);
90 % c
% S t o p p i n g c r i t e r i o n l o g i c
m1 = phi <=0;
76
m2 = phip <=0;
perc_change = sum(sum(abs(m2 -m1 )))*100/sum(sum(m1))
95
% c o n t = c o n t o u r ( p h i );
% p r e v _ c o n t = c o n t o u r ( p h i p );
% x _ v a l = c o n t ( 1 , : ) ;
% y _ v a l = c o n t ( 2 , : ) ;
100 % p r e v _ x _ v a l = p r e v _ c o n t ( 1 , : ) ;
% p r e v _ y _ v a l = p r e v _ c o n t ( 2 , : ) ;
% bw = p o l y 2 m a s k ( x_val , y_val , rows , c o l s );
% b w _ p = p o l y 2 m a s k ( p r e v _ x _ v a l , p r e v _ y _ v a l , rows , c o l s );
105 % f i g u r e , i m s h o w ( bw );
% f i g u r e , i m s h o w ( b w _ p );
% m a s k _ d i f f = bw−b w _ p ;
110 % a r e a = p o l y a r e a ( x _ v a l , y _ v a l );
% p r e v _ a r e a = p o l y a r e a ( p r e v _ x _ v a l , p r e v _ y _ v a l );
% a r e a = t r a p z ( x _ v a l , y _ v a l );
% p r e v _ a r e a = t r a p z ( p r e v _ x _ v a l , p r e v _ y _ v a l );
115
% p e r c _ c h a n g e = ( p r e v _ a r e a −a r e a ) ∗ 1 0 0 / a r e a
i f (perc_change <= 4)
break;
120 else
phip = phi;
end
end
77
end
125 end
%−− f i n a l o u t p u t
i f (display)
130 showCurveAndPhi(I,phi ,its);
end
max_its
%−− m a k e m a s k f r o m S D F
seg = phi <=0; %−− G e t m a s k f r o m l e v e l s e t
135
%
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
%−− A U X I L I A R Y F U N C T I O N S −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
140 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
%−− d i s p l a y s t h e i m a g e w i t h c u r v e s u p e r i m p o s e d
145 function showCurveAndPhi(I, phi , i)
imshow(I,’initialmagnification ’ ,200,’displayrange ’ ,[0 400]); hold on;
contour(phi , [0 0], ’g’,’LineWidth ’ ,4);
contour(phi , [0 0], ’k’,’LineWidth ’ ,2);
150 hold off; t i t l e ([num2str(i) ’ Iterations ’]); drawnow;
%−− c o n v e r t s a m a s k to a S D F
function phi = mask2phi(init_a)
phi=bwdist(init_a)-bwdist(1-init_a )+ im2double(init_a )-.5;
78
155
%−− c o m p u t e c u r v a t u r e a l o n g S D F
function curvature = get_curvature(phi ,idx)
[dimy , dimx] = s ize (phi);
[y x] = ind2sub ([dimy ,dimx],idx); % g e t s u b s c r i p t s
160
%−− g e t s u b s c r i p t s of n e i g h b o r s
ym1 = y-1; xm1 = x-1; yp1 = y+1; xp1 = x+1;
%−− b o u n d s c h e c k i n g
165 ym1(ym1 <1) = 1; xm1(xm1 <1) = 1;
yp1(yp1 >dimy)=dimy; xp1(xp1 >dimx) = dimx;
%−− g e t i n d e x e s f o r 8 n e i g h b o r s
idup = sub2ind( s ize (phi),yp1 ,x);
170 iddn = sub2ind( s ize (phi),ym1 ,x);
idlt = sub2ind( s ize (phi),y,xm1);
idrt = sub2ind( s ize (phi),y,xp1);
idul = sub2ind( s ize (phi),yp1 ,xm1);
idur = sub2ind( s ize (phi),yp1 ,xp1);
175 iddl = sub2ind( s ize (phi),ym1 ,xm1);
iddr = sub2ind( s ize (phi),ym1 ,xp1);
%−− g e t c e n t r a l d e r i v a t i v e s of S D F at x , y
phi_x = -phi(idlt)+phi(idrt);
180 phi_y = -phi(iddn)+phi(idup);
phi_xx = phi(idlt)-2*phi(idx)+phi(idrt);
phi_yy = phi(iddn)-2*phi(idx)+phi(idup);
phi_xy = -0.25* phi(iddl ) -0.25* phi(idur)...
+0.25* phi(iddr )+0.25* phi(idul);
185 phi_x2 = phi_x .^2;
79
phi_y2 = phi_y .^2;
%−− c o m p u t e c u r v a t u r e ( K a p p a )
curvature = (( phi_x2 .* phi_yy + phi_y2 .* phi_xx - 2*phi_x.* phi_y.* phi_xy )./ ...
190 (phi_x2 + phi_y2 +eps).^(3/2)).*( phi_x2 + phi_y2 ).^(1/2);
%−− C o n v e r t s i m a g e to o n e c h a n n e l ( g r a y s c a l e ) d o u b l e
function img = im2graydouble(img)
[dimy , dimx , c] = s ize (img);
195 i f (isfloat(img)) % i m a g e is a d o u b l e
i f (c==3)
img = rgb2gray(uint8(img));
end
else % i m a g e is a i n t
200 i f (c==3)
img = rgb2gray(img);
end
img = double(img);
end
205
%−− l e v e l s e t re−i n i t i a l i z a t i o n by t h e s u s s m a n m e t h o d
function D = sussman(D, dt)
% f o r w a r d / b a c k w a r d d i f f e r e n c e s
a = D - shiftR(D); % b a c k w a r d
210 b = shiftL(D) - D; % f o r w a r d
c = D - shiftD(D); % b a c k w a r d
d = shiftU(D) - D; % f o r w a r d
a_p = a; a_n = a; % a + a n d a−
215 b_p = b; b_n = b;
c_p = c; c_n = c;
80
d_p = d; d_n = d;
a_p(a < 0) = 0;
220 a_n(a > 0) = 0;
b_p(b < 0) = 0;
b_n(b > 0) = 0;
c_p(c < 0) = 0;
c_n(c > 0) = 0;
225 d_p(d < 0) = 0;
d_n(d > 0) = 0;
dD = zeros( s ize (D));
D_neg_ind = find(D < 0);
230 D_pos_ind = find(D > 0);
dD(D_pos_ind) = sqrt(max(a_p(D_pos_ind ).^2, b_n(D_pos_ind ).^2) ...
+ max(c_p(D_pos_ind ).^2, d_n(D_pos_ind ).^2)) - 1;
dD(D_neg_ind) = sqrt(max(a_n(D_neg_ind ).^2, b_p(D_neg_ind ).^2) ...
+ max(c_n(D_neg_ind ).^2, d_p(D_neg_ind ).^2)) - 1;
235
D = D - dt .* sussman_sign(D) .* dD;
%−− w h o l e m a t r i x d e r i v a t i v e s
function shift = shiftD(M)
240 shift = shiftR(M’)’;
function shift = shiftL(M)
shift = [ M(:,2: s ize (M,2)) M(:, s ize (M,2)) ];
245 function shift = shiftR(M)
shift = [ M(:,1) M(:,1: s ize (M,2) -1) ];
81
function shift = shiftU(M)
shift = shiftL(M’)’;
250
function S = sussman_sign(D)
S = D ./ sqrt(D.^2 + 1);
82
A.4 Flash Detection Algorithm Code
clc ;
clear a l l ;
close a l l ;
5 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
% T h i s p r o g r a m w h i c h r e a d s A C W E f i n a l s e g m e n t e d i m a g e s f o r e a c h h o u r f r o m
% t h e m a t f i l e a n d u s e s t h e m to c a l c u l a t e t h e f l a s h e s in e a c h of t h e f o u r
% d e f i n e d ROI ’ s a n d a l s o g e n e r a t e p l o t s f o r f l a s h c h a r a c t e r i s t i c s l i k e
% a v e r a g e a r e a of f l a s h e s in a d i f f e r e n c e image , a v e r a g e i n t e n s i t y of f l a s h e s
10 % in a d i f f e r e n c e i m a g e
%
% P a t h s to be t a k e n c a r e of : p a t h f o r b a s e _ d i e c t o r y ( b a s e _ d i r e c t o r y )
% p a t h f o r m a t f i l e ( m a t f i l e p a t h )
%
15 % A u t h o r : M e g h a l a v a l l u r i ( m e g h a l a 9 @ n m s u . e d u )
%
% C r e a t i o n D a t a : 26 J a n 2 0 1 2
%
% N o t e s :
20 %
% R e v i s i o n H i s t o r y :
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
matfilepath1 = ’/media/Meghala/Uni desktop/DSP Project ’;
25 mtfilepath2 = ’/DSP Project/ACWE/thesis final folder/’;
matfilepath = strcat(matfilepath1 , matfilepath2 );
% M a t f i l e w i t h s e g m e n t e d i m a g e s o b t a i n e d by a p p l y i n g A C W E a l g o r i t h m
30 load([ matfilepath , ’acwe_seg_im_1.mat’]);
83
base_directory = ’/home/meghala/AIA_data/’;
directories = dir(base_directory );
35
k = 1;
field = ’name’;
value = ’’;
files = struct(field ,value);
40
l = 1;
field1 = ’image ’;
value1 = ’’;
seg_im_hr = struct(field1 , value1 );
45
for i = 1: length(directories)
folder = directories(i).name;
folderpath = [base_directory ,folder ];
i f ( isdir(folderpath ))
50 directories_folder = dir(folderpath );
for j = 3: length(directories_folder)
data_directory = directories_folder(j).name;
filenames = dir ([folderpath ,’/’,data_directory ,’/*. fits’]);
for j = 1: length(filenames)
55 files(k).name = [folderpath ,’/’,data_directory ,’/’...
,filenames(j).name];
k= k+1;
end
end
60 end
end
84
seg_im = all_seg_im_hr (1).image;
65 se1 = strel(ones (10 ,10));
se2 = strel(ones (10 ,10));
se3 = strel(ones (20 ,20));
sum_diff_im1 = zeros( s ize (seg_im ));
sum_diff_im2 = zeros( s ize (seg_im ));
70 sum_diff_im3 = zeros( s ize (seg_im ));
sum_diff_im4 = zeros( s ize (seg_im ));
i = 1;
c =3;
for a = 1: length(files)
75 seg_im = all_seg_im_hr(a).image;
b = bwboundaries(seg_im );
i f ( length(b) == 0)
a = a+1;
continue;
80 else
s_im1 = imdilate(seg_im , se1) - imerode(seg_im , se1);
area1 = sum(trapz(s_im1 ));
% s _ i m 1 a = i m d i l a t e ( s e g _ i m , s e 1 ) − s e g _ i m ;
85 % M a s k f o r t h e r e g i o n i n s i d e t h e c o r o n a l h o l e b o u n d a r y
s_im2 = zeros( s ize (seg_im ));
[size_x size_y] = s ize (seg_im );
% f o r i = 1: n u m e l ( b )
% a = b { i } ( : , 2 ) ;
90 % a1 = b { i } ( : , 1 ) ;
% p1 = p o l y 2 m a s k ( a , a1 , s i z e _ x , s i z e _ y );
% s _ i m 2 = s _ i m 2 + p1 ;
85
% e n d
s_im2 = imerode(seg_im ,se1);
95 area2 = sum(trapz(s_im2 ));
% m a s k w i t h r i b b o n of 10 p i x e l s w i d e o u t s i d e t h e b o u n d a r y of t h e c o r o n a l h o l e .
s_im3 = imdilate(seg_im , se3) - imdilate(seg_im , se1);
area3 = sum(trapz(s_im3 ));
s_im4 = zeros( s ize (seg_im ));
100 s_im4 (1000:1100 , 1000:1100) = 1;
area4 = sum(trapz(s_im4 ));
d = 25*a;
for k = c:d % l e n g t h ( f i l e n a m e s ) −1
105 I1 = fitsread(files(k).name);
I2 = fitsread(files(k+1). name);
Diff_im = I2-I1;
% m a s k e d i m a g e w i t h 20 p i x e l s w i d e s t r i p a r o u n d t h e b o u n d a r y of c o r o n a l h o l e
110 masked_image1 = Diff_im .*s_im1;
thresh_im1 = masked_image1 >90;
[l1 , labelnum11(i) ] = bwlabel(thresh_im1 );
% C o d e f o r c a l c u l a t i n g a v g a r e a of f l a s h e s
flash_area = regionprops(thresh_im1 ,’area’);
115 total_flash_area = 0;
l = length(flash_area) ;
for j = 1:l
total_flash_area = total_flash_area+flash_area(j).Area;
end
120 avg_flash_area(k) = total_flash_area/l;
no_flashes(k) = l;
% c o d e f o r c a l u l a i n g a v g b r i g h t n e s s of t h e f l a s h e s
86
total_intensity = 0;
125 brightness_im = thresh_im1 .* Diff_im;
cc = bwconncomp(brightness_im );
indarray = cc.PixelIdxList;
n = length(indarray );
130 for m = 1: n
intensity = brightness_im(indarray{m});
i f ( length(intensity) == 1)
total_intensity = total_intensity+intensity;
else
135 total_intensity = total_intensity +(sum(intensity )/n);
end
end
avg_intensity(k) = total_intensity/n;
140 % m a s k e d i m a g e w i t h t h e b o u n d a r y of t h e c o r o n a l h o l e
masked_image2 = Diff_im .*s_im2;
thresh_im2 = masked_image2 > 90;
[l2 , labelnum2(i)] = bwlabel(thresh_im2 );
145 % m a s k e d i m a g e w i t h t h e b o u n d a r y o u t s i d e t h e c o r o n a l h o l e b o u n a r y
masked_image3 = Diff_im .*s_im3;
thresh_im3 = masked_image3 > 90;
[l3 , labelnum3(i)] = bwlabel(thresh_im3 );
150 % m a s k e d i m a g e w i t h r e c t a n g l e o u t s i d e t h e c o r o n a l h o l e b o u n a r y
masked_image4 = Diff_im .*s_im4;
thresh_im4 = masked_image4 > 90;
[l4 , labelnum4(i)] = bwlabel(thresh_im4 );
87
155 i = i+1;
imagesc(Diff_im ); colormap(gray);
% i m a g e s c ( s _ i m ); c o l o r m a p ( g r a y );
% i m a g e s c ( t h r e s h _ i m 3 ) , c o l o r m a p ( g r a y );
160 sum_diff_im1 = sum_diff_im1 + thresh_im1;
sum_diff_im2 = sum_diff_im2 + thresh_im2;
sum_diff_im3 = sum_diff_im3 + thresh_im3;
sum_diff_im4 = sum_diff_im4 + thresh_im4;
end
165 c = (25*a)+1
end
end
170
figure , imagesc(sum_diff_im1 );
t i t l e (’sum of difference images masked with region 1’);
figure , imagesc(sum_diff_im2 );
t i t l e (’sum of difference images masked with region 2’);
175 figure , imagesc(sum_diff_im3 );
t i t l e (’sum of difference images masked with region 3’);
figure , imagesc(sum_diff_im4 );
t i t l e (’sum of difference images masked with region 4’);
180
figure , plot(labelnum11 ); t i t l e (’Number of flashes in region1 ’);
figure , plot(labelnum2 ); t i t l e (’Number of flashes in region2 ’);
figure , plot(labelnum3 ); t i t l e (’Number of flashes in region3 ’);
figure , plot(labelnum4 ); t i t l e (’Number of flashes in region4 ’);
88
A.5 Flash Time Period Code
clc ;
clear a l l ;
close a l l ;
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
5 % T h i s p r o g r a m r e a d s s a v e d m a t f i l e f o r t h e s e g m e n t e d
% i m a g e s a n d r u n t h e f l a s h d e t e c t i o n a l g o r i t h m to c a l c u l a t e t h e n u m b e r of
% f l a s h e s in e a c h of t h e 4 d e f i n e d ROI ’ s a n d a l s o p l o t s s o m e f l a s h
% c h a r a c t e r i s t i c s l i k e a v e r a g e a r e a of t h e f l a s h e s , a v e r a g e i n t e n s i t y or
% b r i g h n t n e s s of t h e f l a s h e s .
10 %
% P a t h s to be t a k e n c a r e of : p a t h f o r b a s e _ d i e c t o r y ( b a s e _ d i r e c t o r y )
% p a t h f o r m a t f i l e ( m a t f i l e p a t h )
%
% A u t h o r : M e g h a l a v a l l u r i ( m e g h a l a 9 @ n m s u . e d u )
15 %
% C r e a t i o n D a t a : 26 J a n 2 0 1 2
%
% N o t e s :
%
20 % R e v i s i o n H i s t o r y :
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
matfilepath1 = ’/media/Meghala/Uni desktop/DSP Project ’;
mtfilepath2 = ’/DSP Project/ACWE/thesis final folder/’;
matfilepath = strcat(matfilepath1 , matfilepath2 );
25
% M a t f i l e h a v i n g t h e s e g m e n t e d i m a g e s o b t a i n e d by a p p l y i n g A C W E a l g o r i t h m
load([ matfilepath , ’acwe_seg_im_1.mat’]);
base_directory = ’/home/meghala/AIA_data/’;
30
89
directories = dir(base_directory );
k = 1;
field = ’name’;
35 value = ’’;
files = struct(field ,value);
l = 1;
field1 = ’image ’;
40 value1 = ’’;
seg_im_hr = struct(field1 , value1 );
for i = 1: length(directories)
folder = directories(i).name;
45 folderpath = [base_directory ,folder ];
i f ( isdir(folderpath ))
directories_folder = dir(folderpath );
for j = 3: length(directories_folder)
data_directory = directories_folder(j).name;
50 filenames = dir ([folderpath ,’/’,data_directory ,’/*. fits’]);
for j = 1: length(filenames)
files(k).name = [folderpath ,’/’,data_directory ,’/’...
,filenames(j).name];
k= k+1;
55 end
end
end
end
se1 = strel(ones (10 ,10));
60 c1 = 1;
for a = 1: length(all_seg_im_hr)
90
seg_im = all_seg_im_hr(a).image;
bb = bwboundaries(seg_im );
i f ( length(bb) == 0)
65 a = a+1;
continue;
else
s_im1 = imdilate(seg_im , se1) - imerode(seg_im , se1);
d1 = 25*a;
70 for im = c1:d1 % l e n g t h ( f i l e n a m e s ) −1
I1 = fitsread(files(im).name);
I2 = fitsread(files(im+1). name);
I3 = fitsread(files(im+2). name);
D1 = I2-I1;
75 % m a s k e d i m a g e w i t h 20 p i x e l s w i d e s t r i p a r o u n d t h e b o u n d a r y of c o r o n a l h o l e
masked_image1 = D1.*s_im1;
thresh_im1 = masked_image1 >90;
conn_comp1 = bwconncomp(thresh_im1 );
S1 = regionprops(conn_comp1 ,’Centroid ’);
80
D2 = I2-I3;
masked_image2 = D2.*s_im1;
thresh_im2 = masked_image2 > 90;
conn_comp2 = bwconncomp(thresh_im2 );
85 S2 = regionprops(conn_comp2 ,’Centroid ’);
l = length(S1);
m = length(S2);
d = 1;
90 for b = 1:l
for c = 1:m
i f (S1(b). Centroid == S2(c). Centroid)
91
exclude(d,:) = S1(b). Centroid;
d = d+1;
95 break,
end
end
end
for e = 1:l
100 f(e,:) = S1(e). Centroid;
end
g = setdiff(f,exclude ,’rows’);
k = length(exclude );
period1 = 1*k;
105 period2 = 0;
p = 0;
for h = 1:15
i = length(g);
i f (i>1)
110
I3 = fitsread(files(im+2+h).name);
% I4 = f i t s r e a d ( file4 , ’ image ’ ) ;
D3 = I2-I3;
115 masked_image3 = D3.*s_im1;
thresh_im3 = masked_image3 > 90;
conn_comp3 = bwconncomp(thresh_im3 );
S3 = regionprops(conn_comp3 ,’Centroid ’);
exclude1 = zeros (1,2);
120 l = length(S3);
m = length(g);
d = 1;
for e = 1:l
92
j(e,:) = S3(e). Centroid;
125 end
for b = 1:l
for c = 1:m
i f (j(b,:)== g(c,:))
exclude1(d,:) = j(b,:);
130 d = d+1;
break,
end
end
end
135
g = setdiff(g,exclude1 ,’rows’);
end
i f (exclude1 ==0)
n = 0;
140 else
q = s ize (exclude1 );
n = q(1);
end
period2 = period2 +((h+1)*n)
145 p = p+n
end
flash_time(im) = (period1+period2 )/(p+k);
end
c1 = (25*a)+1;
150 end
end
figure ,
plot(flash_time)
t i t l e (’Period of flashes ’);
93
A.6 Skewness Calculation Code
clc ;
clear a l l ;
close a l l ;
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
5 % T h i s is t h e p r o g r a m w h i c h r e a d s o n e A I A i m a g e f o r a n d t h e n
% s e n d s t h a t i m a g e to a c t i v e c o n t o u r s w i t h o u t e d g e s a l g o r i t h m , by e a c h t i m e
% v a r y i n g t h e l a m b d a 1 a n d l a m b d a 2 v a l u e s , t h e n c a l c u l a t e s t h e
% a r e a of t h e s e g m e n t e d h o l e a n d s k e w n e s s of t h e m a g n e t o g r a m a n d
% p l o t l a m b d a 1 / l a m b d a 2 vs a r e a a n d l a m b d a 1 / l a m b d a 2 vs s k e w n e s s
10 %
% P a t h s to be t a k e n c a r e of : p a t h f o r b a s e _ d i e c t o r y ( b a s e _ d i r e c t o r y )
% p a t h f o r m a t f i l e ( m a t f i l e p a t h )
%
% A u t h o r : M e g h a l a v a l l u r i ( m e g h a l a 9 @ n m s u . e d u )
15 %
% C r e a t i o n D a t a : 26 J a n 2 0 1 2
%
% N o t e s :
%
20 % R e v i s i o n H i s t o r y :
%−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
% C o d e f o r r e a d i n g f i l e n a m e s f r o m a l l t h e d i r e c t o r i e s i n t o a s i n g l e s t r u c t u r e
25 matfilepath1 = ’/media/Meghala/Uni desktop/DSP Project ’;
mtfilepath2 = ’/DSP Project/ACWE/thesis final folder/’;
matfilepath = strcat(matfilepath1 , matfilepath2 );
% M a t f i l e w i t h s e g m e n t e d i m a g e s o b t a i n e d by a p p l y i n g A C W E a l g o r i t h m
30 load([ matfilepath , ’acwe_seg_im_1.mat’]);
94
base_directory = ’/home/meghala/Magnetogram_data/’;
directories = dir(base_directory );
35
k = 1;
field = ’name’;
value = ’’;
files = struct(field ,value);
40
% l = 1;
% f i e l d 1 = ’ image ’;
% v a l u e 1 = ’ ’;
% s e g _ i m _ h r = s t r u c t ( f i e l d 1 , v a l u e 1 );
45
for i = 3: length(directories)
folder = directories(i).name;
folderpath = [base_directory ,folder ];
i f ( isdir(folderpath ))
50 directories_folder = dir(folderpath );
for j = 3: length(directories_folder)
data_directory = directories_folder(j).name;
filenames = dir ([folderpath ,’/’,data_directory ,’/*. fits’]);
for j = 1: length(filenames)
55 mag_files(k).name = [folderpath ,’/’,data_directory ...
,’/’,filenames(j).name];
k= k+1;
end
end
60 end
end
95
j = 1;
65 for i = 1: length(mag_files)
mag = fitsread(mag_files(i).name);
im_size1= s ize (mag); % f i n d t h e s i z e of t h e i m a g e
seg = all_seg_im_hr(j).image;
b = bwboundaries(seg);
70 i f ( length(b) == 0)
j = j+1;
end
seg = all_seg_im_hr(j).image;
j = j+1
75 DD = double(seg ).*( mag);
% f i g u r e , i m a g e s c ( DD ); c o l o r m a p ( ’ gray ’ ) ;
[size_x , size_y] = s ize (DD);
% C o n v e r t m a t r i x i n t o v e c t o r of s a m e s i z e
D = reshape(DD , size_x*size_y , 1);
80 S = skewness(double(DD));
% f i g u r e , i m h i s t ( S ); % H i s t o g r a m of s k e w n e s s
Smeasured(i) = skewness(double(D)); % c a l c u l a t e d S k e w n e s s
end
85 figure ,
plot(Smeasured );
t i t l e (’skewness of magnetogram ’);
96
REFERENCES
[1] Atmospheric imaging assembly team home page. http://aia.lmsal.com/.Accessed: 2013-06-28.
[2] Coronal hole of the sun. http://www.universetoday.com/. Accessed: 2013-06-28.
[3] Hinode mission of the sun homepage. http://www.nasa.gov/. Accessed:2013-06-28.
[4] MDI website homepage. http://soi.stanford.edu/. Accessed: 2013-06-28.
[5] M. D. Altschuler, D. E. Trotter, and F. Q. Orrall. Coronal holes. SolarPhysics, 26:354–365, October 1972.
[6] J. D. Bohlin. The physical properties of coronal holes. In Proceedings ofthe International Symposium on Solar Terrestrial Physics, volume 1, pages114–128, 1976.
[7] J. D. Bohlin and N. R. Sheeley Jr. Extreme ultraviolet observations of coronalholes. Solar Physics, 56:125–151, January 1978.
[8] R. P. Briggs and R. J. Carlisle. Solar physics and terrestrial effects. SpaceEnvironment Center, 2:101–104, 1996.
[9] D. S. Brown, C. E. Parnell, E.E. Deluca, L. Golub, and R.A. McMullen. Themagnetic structure of a coronal x-ray bright point. Solar Physics, 201:305–321, July 2001.
[10] T. F. Chan and L. A. Vese. Active contours without edges. IEEE Transactionson Image Processing, 10:266–277, February 2001.
[11] S. R. Cranmer. Coronal holes and the high-speed solar wind. Space ScienceReviews, 101:229–294, August 2002.
[12] J. M. Davis. X-ray bright points and the sunspot cycle: Further results andpredictions. Solar Physics, 88:337–342, October 1983.
[13] L. A. Fisk and T. H. Zurbuchen. Distribution and properties of open magneticflux outside of coronal holes. Journal of Geophysical Research, 111:1–10,September 2006.
[14] D. Freedman and T. Zhang. Active contours for tracking distributions. IEEETranscations on Image Processing, 13:518–526, April 2004.
97
[15] L. Golub, A. S. Krieger, J. K. Silk, A. F. Timothy, and G. S. Vaiana. Solarx-ray bright points. The Astrophysical Journal Letters, 189:L93–L97, April1974.
[16] R. C. Gonzalez and R. E. Woods. Digital Image Processing. Addison-Wesley,August 2007.
[17] R. C. Gonzalez, R. E. Woods, and S. L. Eddins. Digital Image ProcessingUsing MATLAB. Addison-Wesley, December 2003.
[18] J. T. Gosling, J. R. Asbridge, S. J. Bame, and W. C. Feldman. Solar windspeed variations: 1962–1974. Journal of Geophysical Research, 81:5061–5070,January 1976.
[19] S. R. Habbal and G. L. Withbroe. Spatial and temporal variations of EUVcoronal bright points. Solar Physics, 69:77–97, January 1981.
[20] J. W. Harvey and Jr. N. R. Sheeley. Coronal holes and solar magnetic fields.Space Science Reviews, 23:139–158, April 1979.
[21] K. L. Harvey and F. Recely. Polar coronal holes during cycles 22 and 23.Solar Physics, 211:31–52, December 2002.
[22] C. J. Henney and J. W. Harvey. Automated coronal hole detection usingHe I 1083 nm spectroheliograms and photospheric magnetograms. In ASPConference Series, volume 346, pages 261–268, 2005.
[23] A. Hilal, P. Beauseroy, and B. Daya. Real shape inner iris boundary seg-mentation using active contour without edges. Audio, Language and ImageProcessing, pages 14–19, July 2012.
[24] M. Kass, A. Witkin, and D. Terzopoulos. Snakes: Active contour models.International Journal of Computer Vision, 1:321–331, 1988.
[25] M. S. Kirk, W. D. Pesnell, C. A. Young, and S. A. Hess Webber. Automateddetection of EUV polar coronal holes during solar cycle 23. Solar Physics,257:99–112, June 2009.
[26] A. S. Krieger, A. F. Timothy, and E. C. Roelof. A coronal hole and itsidentification as the source of a high velocity solar wind stream. Solar Physics,29:505–525, April 1973.
[27] L. D. Krista. The Evolution and Space Weather Effects of Solar CoronalHoles. PhD thesis, School of Physics, University of Dublin, Trinity College,2011.
98
[28] L. D. Krista and P. T. Gallagher. Automated coronal hole detection usinglocal intensity thresholding techniques. Solar Physics, 256:87–100, May 2009.
[29] L. D. Krista, P. T. Gallagher, and D. S. Bloomfield. Short-term evolutionof coronal hole boundaries. The Astrophysical Journal Letters, 731:L26–L31,April 2011.
[30] R. H. Levine, M. D. Altschuler, and J. W. Harvey. Solar sources of the in-terplanetary magnetic field and solar wind. Journal of Geophysical Research,82:1061–1065, March 1977.
[31] J. G. Luhmann, Y. Li, X. Zhao, and Seiji Yashiro. Coronal magnetic fieldcontext of simple cme’s inferred from global potential models. Solar Physics,213:367–386, 2003.
[32] M. S. Madjarska and T. Wiegelmann. Coronal hole boundaries evolution atsmall scales: I EIT 195 Å and TRACE 171 Å. Astronomy & Astrophysics,503:991–997, 2009.
[33] O. El Meslouhi, M. Kardouchi, H. Allali, and T. Gadi. Semi-automatic cervi-cal cancer segmentation using active contours without edges. In Fifth Inter-national Conference on Signal Image Technology and Internet Based Systems,pages 54–58, 2009.
[34] Z. Mikić, J. A. Linker, D. D. Schnack, R. Lionello, and A. Tarditi. Mag-netohydrodynamic modeling of the global solar corona. Physics of Plasmas,6:2217–2223, 1999.
[35] D. J. Mullan and I. A. Ahmad. Coronal holes: Mass loss driven by magneticreconnection. Solar Physics, 75:347–350, January 1982.
[36] D. Mumford and J. Shah. Optimal approximation by piecewise smooth func-tions and associated variational problems. Communications on Pure andApplied Math, 42:577–685, 1989.
[37] R. H. Munro and G. L. Withbroe. Properties of a coronal hole derived fromextreme-ultraviolet observations. The Astrophysical Journal, 176:511–520,September 1972.
[38] S. Ni. DNA microarray image segmentation using active contours withoutedges method. PhD thesis, 2011.
[39] J. T. Nolte, J. M. Davis, M. Gerassimenko, A. S. Krieger, C. V. Solodyna, andL. Golub. The relationship between solar activity and coronal hole evolution.Solar Physics, 60:143–153, November 1978.
99
[40] J. T. Nolte, A. S. Krieger, A. F. Timothy, R. E. Gold, E. C. Roelof, G. Vaiana,A. J. Lazarus, J. D. Sullivan, and P. S. McIntosh. Coronal holes as sourcesof solar wind. Solar Physics, 46:303–322, February 1976.
[41] I. G. Persiantsev, A. Yu., J. Ryazanov, and S. Shugai. The automatic pro-cessing and analysis of solar image sequences. Pattern Recognition and ImageAnalysis, 16:30–32, January 2006.
[42] H. Peter. On the nature of the transition region from the chromosphere tothe corona of the sun. Astronomy and Astrophysics, 374:1108–1120, 2001.
[43] M. T. Rotter, A. Veronig, and M. Temmer. Automated detection of coronalhole areas. In 38th COSPAR Scientific Assembly, 2010.
[44] C. Sagiv, N. A. Sochen, and Y. Y. Zeevi. Integrated active contours fortexture segmentation. IEEE Transactions on Image Processing, 15:1633–1646, June 2006.
[45] I. F. Scholl and S. R. Habbal. Automatic detection and classification ofcoronal holes and filaments based on EUV and magnetogram observations ofthe solar disk. Solar Physics, 248:425–439, 2008.
[46] S. Shah, A. Abaza, A. Ross, and H. Ammar. Automatic tooth segmentationusing active contour without edges. In Biometric Consortium Conference,pages 1–6, August 2006.
[47] C. V. Solodyna, A. S. Krieger, and J. T. Nolte. Observations of the birth ofa small coronal hole. Solar Physics, 54:123–134, September 1977.
[48] E. C. Stone, A. M. Frandsen, R. A. Mewaldt, E. R. Christian, D. Margolies,J. F. Ormes, and F. Snow. The advanced composition explorer. In TheAdvanced Composition Explorer Mission, pages 1–22, 1998.
[49] S. Subramanian, M. S. Madjarska, and J. G. Doyle. Coronal hole boundariesevolution at small scales: II XRT can small-scale outflows at CHBs be asource of the slow solar wind. Astronomy & Astrophysics, 1002:545–553,2010.
[50] T. K. Suzuki and S.-I. Inutsuka. Solar winds driven by nonlinear low-frequency alfvén waves from the photosphere: Parametric study for fast/slowwinds and disappearance of solar winds. Journal of Geophysical Research:Space Physics, 111:A06101–A06120, June 2006.
[51] A. F. Timothy, A. S. Krieger, and G. S. Vaiana. The structure and evolutionof coronal holes. Solar Physics, 42:135–156, May 1975.
100
[52] G. S. Vaiana, A. S. Krieger, A. F. Timothy, and M. Zombeck. Atm obser-vations, x-ray results. Astrophysics and Space Science, 39:75–101, January1976.
[53] A. Verdini, M. Vellia, W. H. Matthaeus, S. Oughton, and P. Dmitruk. Aturbulance-driven model for heating and acceleration of the fast wind in coro-nal holes. The Astrophysical Journal Letters, 708:1–5, December 2009.
[54] M. Waldmeier. The coronal hole at the 7 march 1970 solar eclipse. SolarPhysics, 40:351–358, 1975.
[55] Y.-M. Wang, S. H. Hawley, and Jr. N. R. Sheeley. The magnetic nature ofcoronal holes. The Smithsonian/NASA Astrophysics Data System, 271:464–469, 1996.
[56] R. Woo, S. R. Habbal, and U. Feldman. Role of closed magnetic fields insolar wind flow. The Astrophysical Journal, 612:1171–1174, May 2004.
[57] S. H. Yang, J. Zhang, and T. Li. Evolution of coronal hole boundaries ob-served by SDO. EAS Publications Series, 55:29–34, January 2012.
[58] A. Yazdanpanah, G. Hamarneh, B. R. Smith, and M. V. Sarunic. Segmenta-tion of intra-retinal layers from optical coherence tomography images usingan active contour approach. IEEE Transactions on Medical Imaging, 30:pp484–496, February 2011.
[59] J. B. Zirker. Coronal holes and high-speed wind streams. Reviews of Geo-physics, 15:257–269, January 1977.
101