COMPEX

COMPEX#

Clouds over cOMPlEX environment COMPEX (blog, wiki) - Polar 5 campaign out of Longyearbyen (13.3.-15.4.2026).

Detailed flight logs#

RF#

Date

Description

TO

TD

HH

Track (png)

Track (KML)

RF01

15.03.2026

Investigate advected clouds over sea ice west of Svalbard.

10:10

14:00

03:50

png

KML

RF02

16.03.2026

Clouds over sea ice and ocean (south east of Svalbard) #1

9:17

13:33

04:16

png

KML

RF03

17.03.2026

Statistics of clouds over sea ice.

9:28

14:06

04:38

png

KML

RF04

19.03.2026

Kongsfjorden survey to investigate sublimation processes.

9:54

14:41

04:47

png

KML

RF05

24.03.2026

Investigate the place of origin of an cold air outbreak

9:55

14:14

04:16

png

KML

RF06

25.03.2026

Ny-Alesund overflight, MPCs northwest of Svalbard and EarthCARE overpass

12:17

16:55

04:48

png

KML

RF07

26.03.2026

Capture developing cloud streets during CAOs using quasi-lagrangian approach

09:58

13:47

03:49

png

KML

RF08

27.03.2026

Radiation square, CAOs and EarthCARE overpass

12:03

16:13

04:10

png

KML

RF09

30.03.2026

Lagrangian sampling of WAI clouds (for Manfred)

10:54

14:35

03:41

png

KML

RF10

31.03.2026

Spatial variability of clouds over Kongsfjorden, convergence line NW of Svalbard

08:00

13:02

05:02

png

KML

RF11

02.04.2026

Lead experiment to measure profiles up- and downstream of lead #1

07:52

11:45

03:53

png

KML

RF12

04.04.2026

Investigate the place of origin of an cold air outbreak along marginal sea ice zone

07:47

12:20

04:33

png

KML

RF13

11.04.2026

Spatial and temporal variability of clouds over Kongsfjorden with approaching front

06:52

09:36

02:44

png

KML

RF14

13.04.2026

Lead experiment to measure profiles up- and downstream of lead #2

07:50

12:03

04:13

png

KML

RF15

14.04.2026

Clouds over sea ice and ocean (south east of Svalbard) #2

07:30

09:33

02:03

png

KML

COMPEX flight tracks

Fig. 4 Flight tracks of the COMPEX campaign.#

%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
    """
    flights = list(filter(lambda d: meta[mission][platform][d]['mission'] == mission,  meta[mission][platform]))
    flights_dc = dict(filter(lambda d: mission == meta[mission][platform][d[0]]['mission'],  meta[mission][platform].items()))
    # store data availability in a matrix
    # data_availability = np.zeros(shape=(len(list(cat[mission][platform])),
    #                                     len(list(meta[mission][platform]))))
    data_availability = np.zeros(shape=(len(list(cat[mission][platform])),
                                        len(flights)))
    for i, dataset in enumerate(list(cat[mission][platform])):
        # data_availability[i, :] = np.isin(list(meta[mission][platform]), 
        #                                   list(cat[mission][platform][dataset]))
        data_availability[i, :] = np.isin(flights, 
                                          list(cat[mission][platform][dataset]))

    # plot data availability
    yscale = data_availability.shape[1]
    fig, ax = plt.subplots(1, 1, figsize=(5, 2+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()]
    y_labels = [flight_id+', '+flight['date'].strftime('%Y-%m-%d') 
                for flight_id, flight in flights_dc.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()

Polar 5#

data_availability(mission='COMPEX', platform='P5')
../_images/7316238aaf01f7e565a3eacfae86efa59ab88d35daa47ca91648f4b4a1bc66f6.png