Datasets#

During the campaigns different instruments have been operated on various platforms in the framework of (AC)3. As platforms the Polar 5 and Polar 6 aircraft of the Alfred-Wegener-Institute for Polar- and Marine research and the HALO aircraft operated by the DLR have been used. More information on the aircaft can be found on HALO-AC3.

The overview below shows the datasets available via the intake catalog for each research flight.

%matplotlib inline
import ac3airborne
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np
plt.style.use("mplstyle/book")

# load intake catalog and flight segments
cat = ac3airborne.get_intake_catalog()
meta = ac3airborne.get_flight_segments()

ancillary = ['AMSR2_SIC']


def data_availability(mission, platform):
    """
    Plot data availability matrix
    """
    
    # store data availability in a matrix
    data_availability = np.zeros(shape=(len(list(cat[mission][platform])),
                                        len(list(meta[mission][platform]))))
    for i, dataset in enumerate(list(cat[mission][platform])):
        data_availability[i, :] = np.isin(list(meta[mission][platform]), 
                                          list(cat[mission][platform][dataset]))

    # plot data availability
    yscale = data_availability.shape[1]
    fig, ax = plt.subplots(1, 1, figsize=(10, 3+0.4*yscale))
    
    ax.pcolormesh(range(data_availability.shape[0]), 
                  range(data_availability.shape[1]), 
                  data_availability.T, 
                  shading='nearest',
                  vmin=0, 
                  vmax=1, 
                  cmap='RdYlGn', 
                  edgecolors='#eeeeee')

    ax.set_xticks(range(data_availability.shape[0]))
    ax.set_yticks(range(data_availability.shape[1]))

    xlabels = []
    for ds_name in list(cat[mission][platform]):
        if ds_name in ancillary:
            ds_name += '\n(ancillary)'
        xlabels.append(ds_name)

    ax.set_xticklabels(xlabels, rotation=90)
    y_labels = [flight_id+', '+flight['date'].strftime('%Y-%m-%d') 
                for flight_id, flight in meta[mission][platform].items()]
    ax.set_yticklabels(y_labels)

    ax.tick_params(labeltop=True)
    ax.invert_yaxis()

    available = mpatches.Patch(color='green', label='Data available')
    not_flown = mpatches.Patch(color='red', label='Data missing or\ninstrument failed')

    ax.legend(handles=[available, not_flown], ncol=1,
              bbox_to_anchor=(0, 1.01), loc='lower right')

    plt.show()

COMPEX-EC#

data_availability(mission='COMPEX-EC', platform='P5')
_images/09ce651edc507a7f08741385d2834fe6ab6c51697886f94d223e4dbaa5cd042b.png

HAMAG#

P6#

data_availability(mission='HAMAG', platform='P6')
_images/1ad2e19bec32704d88e45426ca2887b2d307618eb14f27cb941022357f872da8.png

HALO-AC3#

P5#

data_availability(mission='HALO-AC3', platform='P5')
_images/342850107b2afd73b0242e1109be64906e751b9549d42dfe8d19548fa0aa3f3a.png

P6#

data_availability(mission='HALO-AC3', platform='P6')
_images/7bcdf17d30465874eb08454b6c0ea367f8fc28989a21f9d909ab8cff0cf20c79.png

HALO#

data_availability(mission='HALO-AC3', platform='HALO')
_images/3b62f83cacded70fee5ca8dce1e88fde286e44e9410aa913df40caaa4d04493d.png

MOSAiC-ACA#

P5#

data_availability(mission='MOSAiC-ACA', platform='P5')
_images/f0d411023d9808402a57d0abf37df30d204d51040fec6d3780dee8ff048c52f5.png

AFLUX#

P5#

data_availability(mission='AFLUX', platform='P5')
_images/0d89ab99a8643b0c6573345a91ba2680e06b1d4829a6e8ed17d33123923392f7.png

PAMARCMiP#

P5#

data_availability(mission='PAMARCMiP', platform='P5')
_images/0765afbc07d084b9ded7305638504aeb629ef99c3ea0b876cb0b161e4ec31909.png

ACLOUD#

P5#

data_availability(mission='ACLOUD', platform='P5')
_images/a6454a4da186015d6de5dc6012062466dfe252c1a52bbb892beb393572ce92f5.png

P6#

data_availability(mission='ACLOUD', platform='P6')
_images/5141554774c3df5fdbb36f0cd3dafe2644208e64c11fbd59fe4bfa9b21ebf802.png