Skip to content

Synchronic & Quality Maps

Synchronic maps are a standard data product from the CHMAP pipeline. These are instantaneous full-sun maps created by combining co-temporal images from multiple spacecraft (e.g. STEREO-A, STEREO-B, & AIA).

More examples of synchronic maps can be found on our Coronal Hole Detection page.

Each synchronic map has an accompanying "quality" map. The goal of a quality maps is to display where data at each pixel came from, and the cosine of the center-to-limb angle (mu) of the origin image at that point.

The code for these maps is found here.

Example Maps

Synchronic Maps on June 18, 2011

EUV Map Quality EUV Map
EUV Map Quality EUV Map
CHD Map Quality CHD Map
CHD Map Quality CHD Map
Full CR EUV Map Quality CR EUV Map
Full CR EUV Map Quality CR EUV Map

Code Outline

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def quality_map(db_session, map_data_dir, inst_list, query_pd, euv_combined, chd_combined=None, color_list=None):
    euv_origin_image = euv_combined.origin_image
    euv_origins = np.unique(euv_origin_image)
    euv_image = np.empty(euv_origin_image.shape, dtype=object)
    for euv_id in euv_origins:
        query_ind = np.where(query_pd['data_id'] == euv_id)
        instrument = query_pd['instrument'].iloc[query_ind[0]]
        if len(instrument) != 0:
            euv_image = np.where(euv_origin_image != euv_id, euv_image, instrument.iloc[0])
    Plotting.PlotQualityMap(euv_combined, euv_image, inst_list, color_list, nfig='EUV Quality Map ' + str(euv_combined.image_info.date_obs[0]),
                            title='EUV Quality Map: Mu Dependent\n' + str(euv_combined.image_info.date_obs[0]))
    if chd_combined is not None:
        chd_origin_image = chd_combined.origin_image
        chd_origins = np.unique(chd_origin_image)
        chd_image = np.empty(chd_origin_image.shape, dtype=object)
        for chd_id in chd_origins:
            query_ind = np.where(query_pd['data_id'] == chd_id)
            instrument = query_pd['instrument'].iloc[query_ind[0]]
            if len(instrument) != 0:
                chd_image = np.where(euv_origin_image != chd_id, chd_image, instrument.iloc[0])
        Plotting.PlotQualityMap(chd_combined, chd_image, inst_list, color_list, nfig='CHD Quality Map ' + str(chd_combined.image_info.date_obs[0]),
                                title='CHD Quality Map: Mu Dependent\n' + str(chd_combined.image_info.date_obs[0]), map_type='CHD')
    # save these maps to database
    return None
  • 1.) query_ind = np.where(query_pd['image_id'] == euv_id)
    • loop through the unique list of image ids and determine at what indices they are present
  • 2.) euv_image = np.where(euv_origin_image != euv_id, euv_image, instrument.iloc[0])
    • add instrument name to array in correct pixel position
  • 3.) Plotting.PlotQualityMap
    • plot a quality map based off instrument and mu value of the final map