Dropsondes#

Dropsondes were launched from Polar 5 providing profiles of air temperature, humidity, pressure, and the horizontal wind vector between flight altitude (3-4 km) and the surface. The full dataset is available on PANGAEA for ACLOUD, AFLUX, and MOSAiC-ACA. Each NetCDF file contains dropsondes of a single flight ordered into groups.

Data access#

  • To analyse the data they first have to be loaded by importing the (AC)³airborne meta data catalogue. To do so the ac3airborne package has to be installed. More information on how to do that and about the catalog can be found here.

Get data#

import ac3airborne

List of flights, where dropsondes are available:

cat = ac3airborne.get_intake_catalog()

datasets = []
for campaign in ['ACLOUD', 'AFLUX','MOSAiC-ACA','HALO-AC3']:
    datasets.extend(list(cat[campaign]['P5']['DROPSONDES']))
datasets
['ACLOUD_P5_RF05',
 'ACLOUD_P5_RF06',
 'ACLOUD_P5_RF07',
 'ACLOUD_P5_RF10',
 'ACLOUD_P5_RF11',
 'ACLOUD_P5_RF13',
 'ACLOUD_P5_RF14',
 'ACLOUD_P5_RF16',
 'ACLOUD_P5_RF17',
 'ACLOUD_P5_RF18',
 'ACLOUD_P5_RF19',
 'ACLOUD_P5_RF20',
 'ACLOUD_P5_RF21',
 'ACLOUD_P5_RF22',
 'ACLOUD_P5_RF23',
 'AFLUX_P5_RF02',
 'AFLUX_P5_RF04',
 'AFLUX_P5_RF05',
 'AFLUX_P5_RF06',
 'AFLUX_P5_RF07',
 'AFLUX_P5_RF08',
 'AFLUX_P5_RF09',
 'AFLUX_P5_RF10',
 'AFLUX_P5_RF15',
 'MOSAiC-ACA_P5_RF05',
 'MOSAiC-ACA_P5_RF06',
 'MOSAiC-ACA_P5_RF07',
 'MOSAiC-ACA_P5_RF08',
 'MOSAiC-ACA_P5_RF09',
 'MOSAiC-ACA_P5_RF10',
 'MOSAiC-ACA_P5_RF11',
 'HALO-AC3_P5_RF01',
 'HALO-AC3_P5_RF02',
 'HALO-AC3_P5_RF03',
 'HALO-AC3_P5_RF04',
 'HALO-AC3_P5_RF05',
 'HALO-AC3_P5_RF07',
 'HALO-AC3_P5_RF08',
 'HALO-AC3_P5_RF09',
 'HALO-AC3_P5_RF10',
 'HALO-AC3_P5_RF11',
 'HALO-AC3_P5_RF12',
 'HALO-AC3_P5_RF13']

Dataset#

To get an overview of the variables recorded by the dropsondes, we load the first dropsonde released during ACLOUD_P5_RF05.

ds_dsd = cat['ACLOUD']['P5']['DROPSONDES']['ACLOUD_P5_RF05'](i_sonde=1).to_dask()
ds_dsd
<xarray.Dataset>
Dimensions:     (z: 529)
Dimensions without coordinates: z
Data variables:
    GPS_Alt     (z) float32 2.725e+03 2.723e+03 2.72e+03 ... 20.91 16.24 8.88
    Baro_Alt    (z) float32 2.853e+03 2.846e+03 2.838e+03 ... 12.64 7.71 0.0
    Time        (z) float32 9.153 9.153 9.153 9.154 ... 9.227 9.227 9.227 9.227
    Lat         (z) float32 79.68 79.68 79.68 79.68 ... 79.66 79.66 79.66 79.66
    Lon         (z) float32 8.531 8.531 8.531 8.531 ... 8.513 8.513 8.513 8.513
    Pressure    (z) float32 700.9 701.6 702.2 ... 1.017e+03 1.018e+03 1.019e+03
    Temp        (z) float32 nan nan nan nan nan ... -9.76 -9.67 -9.59 -9.54
    Temp_recon  (z) float32 nan nan nan nan nan ... -9.55 -9.48 -9.41 -9.32 -9.2
    RHum        (z) float32 nan nan nan nan nan ... 83.59 83.55 83.63 83.67
    RHum_recon  (z) float32 nan nan nan nan nan ... 81.89 81.38 81.14 80.85
    Wind_vel    (z) float32 nan nan nan nan nan nan ... 8.51 8.41 8.26 8.11 nan
    Wind_dir    (z) float32 nan nan nan nan nan nan ... 7.55 8.11 8.28 8.48 nan
Attributes:
    Dropsonde_number_of_flight:  1
    Launch_Time_UTC:             09:09:10
    Sonde_ID:                    162715269/RS904

View variables#

Below are vertical profiles of temperature, relative humidity, wind velocity and wind direction of that dropsonde shown.

%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
plt.style.use("../../mplstyle/book")
fig, ax = plt.subplots(1, 4, sharey=True)

var_names = ['Temp_recon', 'RHum_recon', 'Wind_vel', 'Wind_dir']
labels = ['T [°C]', 'RH [%]', 'U [m/s]', 'D [°]']

kwargs = dict(s=1, color='k')
for i, var_name in enumerate(var_names):
    
    ax[i].scatter(ds_dsd[var_name], ds_dsd.GPS_Alt, **kwargs)
    
    ax[i].set_xlabel(labels[i])

ax[0].set_ylabel('GPS altitude [m]')
    
plt.show()
../../_images/dropsondes_9_0.png

Load Polar 5 flight phase information#

Polar 5 flights are divided into segments to easily access start and end times of flight patterns. For more information have a look at the respective github repository.

At first we want to load the flight segments of (AC)³airborne

meta = ac3airborne.get_flight_segments() 

Create a list with all dropsondes during the campaigns:

ds_dict = {'ACLOUD': {}, 'AFLUX': {}, 'MOSAiC-ACA': {},'HALO-AC3': {}}
for campaign in meta.values():
    for platform in campaign.values():
        for flight in platform.values():
            for segment in flight['segments']:
                if 'dropsondes' in segment.keys() and segment['dropsondes']:
                    for sonde in segment['dropsondes']:
                        params = {'segment_id': segment['segment_id'],
                                  'flight_id': flight['flight_id'],
                                  'date': flight['date'],
                                  'name': flight['name'],
                                 }
                        ds_dict[flight['mission']][sonde] = params
                        print(sonde)
ACLOUD_P5_RF05_DS01
ACLOUD_P5_RF05_DS02
ACLOUD_P5_RF05_DS03
ACLOUD_P5_RF05_DS04
ACLOUD_P5_RF05_DS05
ACLOUD_P5_RF05_DS06
ACLOUD_P5_RF05_DS07
ACLOUD_P5_RF06_DS01
ACLOUD_P5_RF06_DS02
ACLOUD_P5_RF06_DS03
ACLOUD_P5_RF07_DS01
ACLOUD_P5_RF07_DS02
ACLOUD_P5_RF07_DS03
ACLOUD_P5_RF10_DS01
ACLOUD_P5_RF10_DS02
ACLOUD_P5_RF11_DS01
ACLOUD_P5_RF11_DS02
ACLOUD_P5_RF11_DS03
ACLOUD_P5_RF13_DS01
ACLOUD_P5_RF13_DS02
ACLOUD_P5_RF13_DS03
ACLOUD_P5_RF14_DS01
ACLOUD_P5_RF14_DS02
ACLOUD_P5_RF14_DS03
ACLOUD_P5_RF14_DS04
ACLOUD_P5_RF14_DS05
ACLOUD_P5_RF14_DS06
ACLOUD_P5_RF16_DS01
ACLOUD_P5_RF17_DS01
ACLOUD_P5_RF17_DS02
ACLOUD_P5_RF17_DS03
ACLOUD_P5_RF18_DS01
ACLOUD_P5_RF18_DS02
ACLOUD_P5_RF18_DS03
ACLOUD_P5_RF18_DS04
ACLOUD_P5_RF18_DS05
ACLOUD_P5_RF18_DS06
ACLOUD_P5_RF18_DS07
ACLOUD_P5_RF19_DS01
ACLOUD_P5_RF19_DS02
ACLOUD_P5_RF19_DS03
ACLOUD_P5_RF19_DS04
ACLOUD_P5_RF19_DS05
ACLOUD_P5_RF20_DS01
ACLOUD_P5_RF20_DS02
ACLOUD_P5_RF20_DS03
ACLOUD_P5_RF20_DS04
ACLOUD_P5_RF21_DS01
ACLOUD_P5_RF21_DS02
ACLOUD_P5_RF22_DS01
ACLOUD_P5_RF22_DS02
ACLOUD_P5_RF22_DS03
ACLOUD_P5_RF22_DS04
ACLOUD_P5_RF23_DS01
ACLOUD_P5_RF23_DS02
AFLUX_P5_RF02_DS01
AFLUX_P5_RF04_DS01
AFLUX_P5_RF04_DS02
AFLUX_P5_RF04_DS03
AFLUX_P5_RF04_DS04
AFLUX_P5_RF04_DS05
AFLUX_P5_RF05_DS01
AFLUX_P5_RF05_DS02
AFLUX_P5_RF05_DS03
AFLUX_P5_RF05_DS04
AFLUX_P5_RF06_DS01
AFLUX_P5_RF06_DS02
AFLUX_P5_RF06_DS03
AFLUX_P5_RF06_DS04
AFLUX_P5_RF06_DS05
AFLUX_P5_RF07_DS01
AFLUX_P5_RF07_DS02
AFLUX_P5_RF07_DS03
AFLUX_P5_RF08_DS01
AFLUX_P5_RF08_DS02
AFLUX_P5_RF08_DS03
AFLUX_P5_RF08_DS04
AFLUX_P5_RF09_DS01
AFLUX_P5_RF09_DS02
AFLUX_P5_RF09_DS03
AFLUX_P5_RF09_DS04
AFLUX_P5_RF09_DS05
AFLUX_P5_RF10_DS01
AFLUX_P5_RF10_DS02
AFLUX_P5_RF10_DS03
AFLUX_P5_RF15_DS01
AFLUX_P5_RF15_DS02
AFLUX_P5_RF15_DS03
HALO-AC3_HALO_RF02_DS01
HALO-AC3_HALO_RF02_DS02
HALO-AC3_HALO_RF02_DS03
HALO-AC3_HALO_RF02_DS04
HALO-AC3_HALO_RF02_DS05
HALO-AC3_HALO_RF02_DS06
HALO-AC3_HALO_RF02_DS07
HALO-AC3_HALO_RF02_DS08
HALO-AC3_HALO_RF02_DS09
HALO-AC3_HALO_RF02_DS10
HALO-AC3_HALO_RF02_DS11
HALO-AC3_HALO_RF02_DS12
HALO-AC3_HALO_RF02_DS13
HALO-AC3_HALO_RF02_DS14
HALO-AC3_HALO_RF02_DS15
HALO-AC3_HALO_RF02_DS16
HALO-AC3_HALO_RF02_DS17
HALO-AC3_HALO_RF02_DS18
HALO-AC3_HALO_RF03_DS01
HALO-AC3_HALO_RF03_DS02
HALO-AC3_HALO_RF03_DS03
HALO-AC3_HALO_RF03_DS04
HALO-AC3_HALO_RF03_DS05
HALO-AC3_HALO_RF03_DS06
HALO-AC3_HALO_RF03_DS07
HALO-AC3_HALO_RF03_DS08
HALO-AC3_HALO_RF03_DS09
HALO-AC3_HALO_RF03_DS10
HALO-AC3_HALO_RF03_DS11
HALO-AC3_HALO_RF03_DS12
HALO-AC3_HALO_RF03_DS13
HALO-AC3_HALO_RF03_DS14
HALO-AC3_HALO_RF03_DS15
HALO-AC3_HALO_RF03_DS16
HALO-AC3_HALO_RF03_DS17
HALO-AC3_HALO_RF03_DS18
HALO-AC3_HALO_RF03_DS19
HALO-AC3_HALO_RF03_DS20
HALO-AC3_HALO_RF03_DS21
HALO-AC3_HALO_RF04_DS01
HALO-AC3_HALO_RF04_DS02
HALO-AC3_HALO_RF04_DS03
HALO-AC3_HALO_RF04_DS04
HALO-AC3_HALO_RF04_DS05
HALO-AC3_HALO_RF04_DS06
HALO-AC3_HALO_RF04_DS07
HALO-AC3_HALO_RF04_DS08
MOSAiC-ACA_P5_RF05_DS01
MOSAiC-ACA_P5_RF05_DS02
MOSAiC-ACA_P5_RF05_DS03
MOSAiC-ACA_P5_RF05_DS04
MOSAiC-ACA_P5_RF05_DS05
MOSAiC-ACA_P5_RF05_DS06
MOSAiC-ACA_P5_RF06_DS01
MOSAiC-ACA_P5_RF06_DS02
MOSAiC-ACA_P5_RF06_DS03
MOSAiC-ACA_P5_RF06_DS04
MOSAiC-ACA_P5_RF06_DS05
MOSAiC-ACA_P5_RF07_DS01
MOSAiC-ACA_P5_RF07_DS02
MOSAiC-ACA_P5_RF07_DS03
MOSAiC-ACA_P5_RF07_DS04
MOSAiC-ACA_P5_RF07_DS05
MOSAiC-ACA_P5_RF07_DS06
MOSAiC-ACA_P5_RF07_DS07
MOSAiC-ACA_P5_RF07_DS08
MOSAiC-ACA_P5_RF07_DS09
MOSAiC-ACA_P5_RF07_DS10
MOSAiC-ACA_P5_RF07_DS11
MOSAiC-ACA_P5_RF07_DS12
MOSAiC-ACA_P5_RF07_DS13
MOSAiC-ACA_P5_RF07_DS14
MOSAiC-ACA_P5_RF08_DS01
MOSAiC-ACA_P5_RF08_DS02
MOSAiC-ACA_P5_RF08_DS03
MOSAiC-ACA_P5_RF08_DS04
MOSAiC-ACA_P5_RF08_DS05
MOSAiC-ACA_P5_RF08_DS06
MOSAiC-ACA_P5_RF08_DS07
MOSAiC-ACA_P5_RF09_DS01
MOSAiC-ACA_P5_RF09_DS02
MOSAiC-ACA_P5_RF09_DS03
MOSAiC-ACA_P5_RF09_DS04
MOSAiC-ACA_P5_RF09_DS05
MOSAiC-ACA_P5_RF09_DS06
MOSAiC-ACA_P5_RF09_DS07
MOSAiC-ACA_P5_RF09_DS08
MOSAiC-ACA_P5_RF09_DS09
MOSAiC-ACA_P5_RF09_DS10
MOSAiC-ACA_P5_RF09_DS11
MOSAiC-ACA_P5_RF10_DS01
MOSAiC-ACA_P5_RF10_DS02
MOSAiC-ACA_P5_RF10_DS03
MOSAiC-ACA_P5_RF10_DS04
MOSAiC-ACA_P5_RF10_DS05
MOSAiC-ACA_P5_RF10_DS06
MOSAiC-ACA_P5_RF10_DS07
MOSAiC-ACA_P5_RF10_DS08
MOSAiC-ACA_P5_RF10_DS09
MOSAiC-ACA_P5_RF10_DS10
MOSAiC-ACA_P5_RF11_DS01
MOSAiC-ACA_P5_RF11_DS02
MOSAiC-ACA_P5_RF11_DS03
MOSAiC-ACA_P5_RF11_DS04
MOSAiC-ACA_P5_RF11_DS05
MOSAiC-ACA_P5_RF11_DS06
MOSAiC-ACA_P5_RF11_DS07

Get total number of dropsondes during the campaigns:

for mission, sondes in ds_dict.items():
    n = len(sondes.values())
    print('{n} dropsondes are available from {mission}.'.format(
        n=n, mission=mission))
55 dropsondes are available from ACLOUD.
33 dropsondes are available from AFLUX.
60 dropsondes are available from MOSAiC-ACA.
47 dropsondes are available from HALO-AC3.
for it in ds_dict['ACLOUD'].items():
    print(it)
('ACLOUD_P5_RF05_DS01', {'segment_id': 'ACLOUD_P5_RF05_hl02', 'flight_id': 'ACLOUD_P5_RF05', 'date': datetime.date(2017, 5, 25), 'name': 'RF05'})
('ACLOUD_P5_RF05_DS02', {'segment_id': 'ACLOUD_P5_RF05_hl02', 'flight_id': 'ACLOUD_P5_RF05', 'date': datetime.date(2017, 5, 25), 'name': 'RF05'})
('ACLOUD_P5_RF05_DS03', {'segment_id': 'ACLOUD_P5_RF05_hl03', 'flight_id': 'ACLOUD_P5_RF05', 'date': datetime.date(2017, 5, 25), 'name': 'RF05'})
('ACLOUD_P5_RF05_DS04', {'segment_id': 'ACLOUD_P5_RF05_hl05', 'flight_id': 'ACLOUD_P5_RF05', 'date': datetime.date(2017, 5, 25), 'name': 'RF05'})
('ACLOUD_P5_RF05_DS05', {'segment_id': 'ACLOUD_P5_RF05_hl07', 'flight_id': 'ACLOUD_P5_RF05', 'date': datetime.date(2017, 5, 25), 'name': 'RF05'})
('ACLOUD_P5_RF05_DS06', {'segment_id': 'ACLOUD_P5_RF05_hl09', 'flight_id': 'ACLOUD_P5_RF05', 'date': datetime.date(2017, 5, 25), 'name': 'RF05'})
('ACLOUD_P5_RF05_DS07', {'segment_id': 'ACLOUD_P5_RF05_hl10', 'flight_id': 'ACLOUD_P5_RF05', 'date': datetime.date(2017, 5, 25), 'name': 'RF05'})
('ACLOUD_P5_RF06_DS01', {'segment_id': 'ACLOUD_P5_RF06_hl03', 'flight_id': 'ACLOUD_P5_RF06', 'date': datetime.date(2017, 5, 27), 'name': 'RF06'})
('ACLOUD_P5_RF06_DS02', {'segment_id': 'ACLOUD_P5_RF06_hl03', 'flight_id': 'ACLOUD_P5_RF06', 'date': datetime.date(2017, 5, 27), 'name': 'RF06'})
('ACLOUD_P5_RF06_DS03', {'segment_id': 'ACLOUD_P5_RF06_hl04', 'flight_id': 'ACLOUD_P5_RF06', 'date': datetime.date(2017, 5, 27), 'name': 'RF06'})
('ACLOUD_P5_RF07_DS01', {'segment_id': 'ACLOUD_P5_RF07_hl03', 'flight_id': 'ACLOUD_P5_RF07', 'date': datetime.date(2017, 5, 27), 'name': 'RF07'})
('ACLOUD_P5_RF07_DS02', {'segment_id': 'ACLOUD_P5_RF07_hl03', 'flight_id': 'ACLOUD_P5_RF07', 'date': datetime.date(2017, 5, 27), 'name': 'RF07'})
('ACLOUD_P5_RF07_DS03', {'segment_id': 'ACLOUD_P5_RF07_hl03', 'flight_id': 'ACLOUD_P5_RF07', 'date': datetime.date(2017, 5, 27), 'name': 'RF07'})
('ACLOUD_P5_RF10_DS01', {'segment_id': 'ACLOUD_P5_RF10_hl01', 'flight_id': 'ACLOUD_P5_RF10', 'date': datetime.date(2017, 5, 31), 'name': 'RF10'})
('ACLOUD_P5_RF10_DS02', {'segment_id': 'ACLOUD_P5_RF10_hl01', 'flight_id': 'ACLOUD_P5_RF10', 'date': datetime.date(2017, 5, 31), 'name': 'RF10'})
('ACLOUD_P5_RF11_DS01', {'segment_id': 'ACLOUD_P5_RF11_hl06', 'flight_id': 'ACLOUD_P5_RF11', 'date': datetime.date(2017, 6, 2), 'name': 'RF11'})
('ACLOUD_P5_RF11_DS02', {'segment_id': 'ACLOUD_P5_RF11_hl08', 'flight_id': 'ACLOUD_P5_RF11', 'date': datetime.date(2017, 6, 2), 'name': 'RF11'})
('ACLOUD_P5_RF11_DS03', {'segment_id': 'ACLOUD_P5_RF11_hl09', 'flight_id': 'ACLOUD_P5_RF11', 'date': datetime.date(2017, 6, 2), 'name': 'RF11'})
('ACLOUD_P5_RF13_DS01', {'segment_id': 'ACLOUD_P5_RF13_hl01', 'flight_id': 'ACLOUD_P5_RF13', 'date': datetime.date(2017, 6, 5), 'name': 'RF13'})
('ACLOUD_P5_RF13_DS02', {'segment_id': 'ACLOUD_P5_RF13_hl02', 'flight_id': 'ACLOUD_P5_RF13', 'date': datetime.date(2017, 6, 5), 'name': 'RF13'})
('ACLOUD_P5_RF13_DS03', {'segment_id': 'ACLOUD_P5_RF13_hl03', 'flight_id': 'ACLOUD_P5_RF13', 'date': datetime.date(2017, 6, 5), 'name': 'RF13'})
('ACLOUD_P5_RF14_DS01', {'segment_id': 'ACLOUD_P5_RF14_hl02', 'flight_id': 'ACLOUD_P5_RF14', 'date': datetime.date(2017, 6, 8), 'name': 'RF14'})
('ACLOUD_P5_RF14_DS02', {'segment_id': 'ACLOUD_P5_RF14_hl03', 'flight_id': 'ACLOUD_P5_RF14', 'date': datetime.date(2017, 6, 8), 'name': 'RF14'})
('ACLOUD_P5_RF14_DS03', {'segment_id': 'ACLOUD_P5_RF14_hl03', 'flight_id': 'ACLOUD_P5_RF14', 'date': datetime.date(2017, 6, 8), 'name': 'RF14'})
('ACLOUD_P5_RF14_DS04', {'segment_id': 'ACLOUD_P5_RF14_hl04', 'flight_id': 'ACLOUD_P5_RF14', 'date': datetime.date(2017, 6, 8), 'name': 'RF14'})
('ACLOUD_P5_RF14_DS05', {'segment_id': 'ACLOUD_P5_RF14_hl05', 'flight_id': 'ACLOUD_P5_RF14', 'date': datetime.date(2017, 6, 8), 'name': 'RF14'})
('ACLOUD_P5_RF14_DS06', {'segment_id': 'ACLOUD_P5_RF14_hl07', 'flight_id': 'ACLOUD_P5_RF14', 'date': datetime.date(2017, 6, 8), 'name': 'RF14'})
('ACLOUD_P5_RF16_DS01', {'segment_id': 'ACLOUD_P5_RF16_np01', 'flight_id': 'ACLOUD_P5_RF16', 'date': datetime.date(2017, 6, 13), 'name': 'RF16'})
('ACLOUD_P5_RF17_DS01', {'segment_id': 'ACLOUD_P5_RF17_hl01', 'flight_id': 'ACLOUD_P5_RF17', 'date': datetime.date(2017, 6, 14), 'name': 'RF17'})
('ACLOUD_P5_RF17_DS02', {'segment_id': 'ACLOUD_P5_RF17_ld01', 'flight_id': 'ACLOUD_P5_RF17', 'date': datetime.date(2017, 6, 14), 'name': 'RF17'})
('ACLOUD_P5_RF17_DS03', {'segment_id': 'ACLOUD_P5_RF17_hl03', 'flight_id': 'ACLOUD_P5_RF17', 'date': datetime.date(2017, 6, 14), 'name': 'RF17'})
('ACLOUD_P5_RF18_DS01', {'segment_id': 'ACLOUD_P5_RF18_hl02', 'flight_id': 'ACLOUD_P5_RF18', 'date': datetime.date(2017, 6, 16), 'name': 'RF18'})
('ACLOUD_P5_RF18_DS02', {'segment_id': 'ACLOUD_P5_RF18_hl02', 'flight_id': 'ACLOUD_P5_RF18', 'date': datetime.date(2017, 6, 16), 'name': 'RF18'})
('ACLOUD_P5_RF18_DS03', {'segment_id': 'ACLOUD_P5_RF18_hl03', 'flight_id': 'ACLOUD_P5_RF18', 'date': datetime.date(2017, 6, 16), 'name': 'RF18'})
('ACLOUD_P5_RF18_DS04', {'segment_id': 'ACLOUD_P5_RF18_hl05', 'flight_id': 'ACLOUD_P5_RF18', 'date': datetime.date(2017, 6, 16), 'name': 'RF18'})
('ACLOUD_P5_RF18_DS05', {'segment_id': 'ACLOUD_P5_RF18_hl05', 'flight_id': 'ACLOUD_P5_RF18', 'date': datetime.date(2017, 6, 16), 'name': 'RF18'})
('ACLOUD_P5_RF18_DS06', {'segment_id': 'ACLOUD_P5_RF18_hl05', 'flight_id': 'ACLOUD_P5_RF18', 'date': datetime.date(2017, 6, 16), 'name': 'RF18'})
('ACLOUD_P5_RF18_DS07', {'segment_id': 'ACLOUD_P5_RF18_hl06', 'flight_id': 'ACLOUD_P5_RF18', 'date': datetime.date(2017, 6, 16), 'name': 'RF18'})
('ACLOUD_P5_RF19_DS01', {'segment_id': 'ACLOUD_P5_RF19_hl02', 'flight_id': 'ACLOUD_P5_RF19', 'date': datetime.date(2017, 6, 17), 'name': 'RF19'})
('ACLOUD_P5_RF19_DS02', {'segment_id': 'ACLOUD_P5_RF19_hl07', 'flight_id': 'ACLOUD_P5_RF19', 'date': datetime.date(2017, 6, 17), 'name': 'RF19'})
('ACLOUD_P5_RF19_DS03', {'segment_id': 'ACLOUD_P5_RF19_hl13', 'flight_id': 'ACLOUD_P5_RF19', 'date': datetime.date(2017, 6, 17), 'name': 'RF19'})
('ACLOUD_P5_RF19_DS04', {'segment_id': 'ACLOUD_P5_RF19_hl14', 'flight_id': 'ACLOUD_P5_RF19', 'date': datetime.date(2017, 6, 17), 'name': 'RF19'})
('ACLOUD_P5_RF19_DS05', {'segment_id': 'ACLOUD_P5_RF19_hl15', 'flight_id': 'ACLOUD_P5_RF19', 'date': datetime.date(2017, 6, 17), 'name': 'RF19'})
('ACLOUD_P5_RF20_DS01', {'segment_id': 'ACLOUD_P5_RF20_rt01', 'flight_id': 'ACLOUD_P5_RF20', 'date': datetime.date(2017, 6, 18), 'name': 'RF20'})
('ACLOUD_P5_RF20_DS02', {'segment_id': 'ACLOUD_P5_RF20_rt02', 'flight_id': 'ACLOUD_P5_RF20', 'date': datetime.date(2017, 6, 18), 'name': 'RF20'})
('ACLOUD_P5_RF20_DS03', {'segment_id': 'ACLOUD_P5_RF20_rt03', 'flight_id': 'ACLOUD_P5_RF20', 'date': datetime.date(2017, 6, 18), 'name': 'RF20'})
('ACLOUD_P5_RF20_DS04', {'segment_id': 'ACLOUD_P5_RF20_hl05', 'flight_id': 'ACLOUD_P5_RF20', 'date': datetime.date(2017, 6, 18), 'name': 'RF20'})
('ACLOUD_P5_RF21_DS01', {'segment_id': 'ACLOUD_P5_RF21_hl01', 'flight_id': 'ACLOUD_P5_RF21', 'date': datetime.date(2017, 6, 20), 'name': 'RF21'})
('ACLOUD_P5_RF21_DS02', {'segment_id': 'ACLOUD_P5_RF21_hl02', 'flight_id': 'ACLOUD_P5_RF21', 'date': datetime.date(2017, 6, 20), 'name': 'RF21'})
('ACLOUD_P5_RF22_DS01', {'segment_id': 'ACLOUD_P5_RF22_cr01', 'flight_id': 'ACLOUD_P5_RF22', 'date': datetime.date(2017, 6, 23), 'name': 'RF22'})
('ACLOUD_P5_RF22_DS02', {'segment_id': 'ACLOUD_P5_RF22_hl02', 'flight_id': 'ACLOUD_P5_RF22', 'date': datetime.date(2017, 6, 23), 'name': 'RF22'})
('ACLOUD_P5_RF22_DS03', {'segment_id': 'ACLOUD_P5_RF22_hl04', 'flight_id': 'ACLOUD_P5_RF22', 'date': datetime.date(2017, 6, 23), 'name': 'RF22'})
('ACLOUD_P5_RF22_DS04', {'segment_id': 'ACLOUD_P5_RF22_hl06', 'flight_id': 'ACLOUD_P5_RF22', 'date': datetime.date(2017, 6, 23), 'name': 'RF22'})
('ACLOUD_P5_RF23_DS01', {'segment_id': 'ACLOUD_P5_RF23_hl01', 'flight_id': 'ACLOUD_P5_RF23', 'date': datetime.date(2017, 6, 25), 'name': 'RF23'})
('ACLOUD_P5_RF23_DS02', {'segment_id': 'ACLOUD_P5_RF23_la01', 'flight_id': 'ACLOUD_P5_RF23', 'date': datetime.date(2017, 6, 25), 'name': 'RF23'})
for sonde_id, params in ds_dict['ACLOUD'].items():
    print(sonde_id[-2:])
01
02
03
04
05
06
07
01
02
03
01
02
03
01
02
01
02
03
01
02
03
01
02
03
04
05
06
01
01
02
03
01
02
03
04
05
06
07
01
02
03
04
05
01
02
03
04
01
02
01
02
03
04
01
02
fig, axes = plt.subplots(1, 3, sharey=True, sharex=True)

ax = {'ACLOUD': axes[0], 'AFLUX': axes[1], 'MOSAiC-ACA': axes[2]}

kwargs = dict(s=1, color='red', alpha=0.4)
for mission, sondes in ds_dict.items():
    
    if mission != 'HALO-AC3':
        ax[mission].set_title(mission)

        for sonde_id, params in ds_dict[mission].items():

            # read dropsonde data
            i_sonde = int(sonde_id[-2:])
            ds = cat[mission]['P5']['DROPSONDES'][params['flight_id']](i_sonde=i_sonde).to_dask()

            ax[mission].scatter(ds.Temp_recon, ds.GPS_Alt, **kwargs)

axes[0].set_ylabel('Altitude [m]')
axes[0].set_xlabel('Temperature [°C]')
   
plt.show()
../../_images/dropsondes_18_0.png

Humidity profile#

fig, axes = plt.subplots(1, 3, sharey=True, sharex=True)

ax = {'ACLOUD': axes[0], 'AFLUX': axes[1], 'MOSAiC-ACA': axes[2]}

kwargs = dict(s=1, color='blue', alpha=0.4)
for mission, sondes in ds_dict.items():

    if mission != 'HALO-AC3':
        ax[mission].set_title(mission)

        for sonde_id, params in ds_dict[mission].items():

            # read dropsonde data
            i_sonde = int(sonde_id[-2:])
            ds = cat[mission]['P5']['DROPSONDES'][params['flight_id']](i_sonde=i_sonde).to_dask()

            ax[mission].scatter(ds.RHum_recon, ds.GPS_Alt, **kwargs)

axes[0].set_ylabel('Altitude [m]')
axes[0].set_xlabel('Relative humidity [%]')

plt.show()
../../_images/dropsondes_20_0.png

Wind profile#

fig, axes = plt.subplots(1, 3, sharey=True)

ax = {'ACLOUD': axes[0], 'AFLUX': axes[1], 'MOSAiC-ACA': axes[2]}

kwargs = dict(s=1, color='green', alpha=0.4)
for mission, sondes in ds_dict.items():

    if mission != 'HALO-AC3':
        ax[mission].set_title(mission)
        ax[mission].set_xlim(0, 25)

        for sonde_id, params in ds_dict[mission].items():

            # read dropsonde data
            i_sonde = int(sonde_id[-2:])
            ds = cat[mission]['P5']['DROPSONDES'][params['flight_id']](i_sonde=i_sonde).to_dask()

            ax[mission].scatter(ds.Wind_vel, ds.GPS_Alt, **kwargs)

axes[0].set_ylabel('Altitude [m]')
axes[0].set_xlabel('Wind velocity [m/s]')

plt.show()
../../_images/dropsondes_22_0.png