@@ -0,0 +1,2334 @@
+%22%22%22%0A=================================%0AFinding Local Peaks in Solar Data%0A=================================%0A%0AHow to find regions of local maxima%0A%22%22%22%0Aimport astropy.units as u%0A%0Aimport scipy.signal%0Aimport matplotlib.pyplot as plt%0Aimport numpy as np%0A%0Aimport sunpy.map%0Afrom sunpy.data.sample import AIA_193_IMAGE%0A%0A#########################################################%0A# We first create the Map using the sample data and then %0Aaiamap = sunpy.map.Map(AIA_193_IMAGE)%0A%0A#########################################################%0A# Now we do a plot%0Aplt.figure()%0Aaiamap.plot()%0Aplt.colorbar()%0Aplt.show()%0A%0A%0A####################################################################%0A# We now plot the aiamap data to see the distribution of the data.%0A# We store the data values in y %0Ayvalues = (aiamap.data).reshape(-1)%0Axvalues = %5Bi for i in range(len(yvalues))%5D%0A%0A# We simply plot the data%0Aplt.figure(figsize=(10,6))%0Aplt.plot(xvalues, yvalues)%0Aplt.show()%0A%0A%0A###################################################################################################%0A# Next we check for the position in the aiamap data where we get local maxima.%0A# Using the below function we take the window width of 2000 at an interval of 100 to use for calculating the CWT matrix.%0A%0Aindexes = scipy.signal.find_peaks_cwt(yvalues, np.arange(1,2000,100), noise_perc=0.1)%0A%0A%0A##################################################################################################%0A# We now check for the indices at which we get such a local maxima and plot those positions marked 'x'%0A# in the aiamap data%0Aprint(indexes)%0Aprint(xvalues, yvalues%5Bindexes%5D)%0Aplt.figure(figsize=(10,6))%0Aplt.plot(np.array(xvalues), yvalues)%0Aplt.plot(indexes,yvalues%5Bindexes%5D,'bx',c='r')%0Aplt.title('First estimate')%0Aplt.show()%0A%0A%0A%0A%0A###################################################################################################%0A# We therefore import the coordinate functionality.%0Amax_indices = np.unravel_index(indexes, aiamap.data.shape) * u.pixel%0Ahpc_max = aiamap.pixel_to_data(max_indices%5B1%5D, max_indices%5B0%5D)%0A%0A%0A################################################################################%0A# Finally we do an aia plot to check for the specified locations (marked x)%0A# corresponding to local peaks.%0Afig = plt.figure()%0Aax = plt.subplot(projection=aiamap)%0Aaiamap.plot()%0Aax.plot_coord(hpc_max, 'bx')%0Aplt.show()%0A

Create Finding_Local_Peaks_in_Solar_Data.py