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.
import os
from dotenv import load_dotenv
load_dotenv()
ac3cloud_username = os.environ['AC3_USER']
ac3cloud_password = os.environ['AC3_PASSWORD']
credentials = dict(user=ac3cloud_username, password=ac3cloud_password)
# local caching
kwds = {'simplecache': dict(
cache_storage=os.environ['INTAKE_CACHE'],
same_names=True
)}
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[1], line 2
1 import os
----> 2 from dotenv import load_dotenv
4 load_dotenv()
6 ac3cloud_username = os.environ['AC3_USER']
ModuleNotFoundError: No module named 'dotenv'
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']
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
Invalid MIT-MAGIC-COOKIE-1 key
<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
- z: 529
- GPS_Alt(z)float32...
- long_name :
- GPS Altitude
- units :
- m
array([2725.4 , 2722.74, 2720.09, ..., 20.91, 16.24, 8.88], dtype=float32)
- Baro_Alt(z)float32...
- long_name :
- Barometric altitude
- units :
- m
array([2853.11, 2845.55, 2838.38, ..., 12.64, 7.71, 0. ], dtype=float32)
- Time(z)float32...
- long_name :
- Time UTC
- units :
- decimal hours
array([9.153178, 9.153317, 9.153456, ..., 9.227137, 9.227276, 9.227494], dtype=float32)
- Lat(z)float32...
- long_name :
- Latitude (North positive)
- units :
- degree
array([79.67851, 79.67851, 79.67851, ..., 79.66181, 79.66178, 79.66178], dtype=float32)
- Lon(z)float32...
- long_name :
- Longitude (East positive)
- units :
- degree
array([8.530977, 8.530977, 8.530977, ..., 8.512594, 8.512569, 8.512569], dtype=float32)
- Pressure(z)float32...
- long_name :
- Air pressure
- units :
- hPa
array([ 700.9 , 701.58, 702.23, ..., 1017.28, 1017.93, 1018.95], dtype=float32)
- Temp(z)float32...
- long_name :
- Air temperarure
- units :
- degC
- comment :
- as processed by ASPEN software V.3.3-543 (config: research-dropsonde)
array([ nan, nan, nan, ..., -9.67, -9.59, -9.54], dtype=float32)
- Temp_recon(z)float32...
- long_name :
- Air temperature reconstructed
- units :
- degC
- comment :
- reconstructed temperature following Miloshevich et al. (2004) with tau=4.0 sek
array([ nan, nan, nan, ..., -9.41, -9.32, -9.2 ], dtype=float32)
- RHum(z)float32...
- long_name :
- Relative humidity
- units :
- %
- comment :
- as processed by ASPEN software V.3.3-543 (config: research-dropsonde)
array([ nan, nan, nan, ..., 83.55, 83.63, 83.67], dtype=float32)
- RHum_recon(z)float32...
- long_name :
- Relative humidity reconstructed
- units :
- %
- comment :
- reconstructed relative humidity following Miloshevich et al. (2004) with tau=5.0 sek
array([ nan, nan, nan, ..., 81.38, 81.14, 80.85], dtype=float32)
- Wind_vel(z)float32...
- long_name :
- Horizontal wind velocity
- units :
- m s-1
- comment :
- as processed by ASPEN software V.3.3-543 (config: research-dropsonde)
array([ nan, nan, nan, ..., 8.26, 8.11, nan], dtype=float32)
- Wind_dir(z)float32...
- long_name :
- Horizontal wind direction
- units :
- degree
- comment :
- as processed by ASPEN software V.3.3-543 (config: research-dropsonde)
array([ nan, nan, nan, ..., 8.28, 8.48, nan], dtype=float32)
- 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()
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()
ACLOUD ACLOUD_P5_RF05 1
ACLOUD ACLOUD_P5_RF05 2
ACLOUD ACLOUD_P5_RF05 3
ACLOUD ACLOUD_P5_RF05 4
ACLOUD ACLOUD_P5_RF05 5
ACLOUD ACLOUD_P5_RF05 6
ACLOUD ACLOUD_P5_RF05 7
ACLOUD ACLOUD_P5_RF06 1
ACLOUD ACLOUD_P5_RF06 2
ACLOUD ACLOUD_P5_RF06 3
ACLOUD ACLOUD_P5_RF07 1
ACLOUD ACLOUD_P5_RF07 2
ACLOUD ACLOUD_P5_RF07 3
ACLOUD ACLOUD_P5_RF10 1
ACLOUD ACLOUD_P5_RF10 2
ACLOUD ACLOUD_P5_RF11 1
ACLOUD ACLOUD_P5_RF11 2
ACLOUD ACLOUD_P5_RF11 3
ACLOUD ACLOUD_P5_RF13 1
ACLOUD ACLOUD_P5_RF13 2
ACLOUD ACLOUD_P5_RF13 3
ACLOUD ACLOUD_P5_RF14 1
ACLOUD ACLOUD_P5_RF14 2
ACLOUD ACLOUD_P5_RF14 3
ACLOUD ACLOUD_P5_RF14 4
ACLOUD ACLOUD_P5_RF14 5
ACLOUD ACLOUD_P5_RF14 6
ACLOUD ACLOUD_P5_RF16 1
ACLOUD ACLOUD_P5_RF17 1
ACLOUD ACLOUD_P5_RF17 2
ACLOUD ACLOUD_P5_RF17 3
ACLOUD ACLOUD_P5_RF18 1
ACLOUD ACLOUD_P5_RF18 2
ACLOUD ACLOUD_P5_RF18 3
ACLOUD ACLOUD_P5_RF18 4
ACLOUD ACLOUD_P5_RF18 5
ACLOUD ACLOUD_P5_RF18 6
ACLOUD ACLOUD_P5_RF18 7
ACLOUD ACLOUD_P5_RF19 1
ACLOUD ACLOUD_P5_RF19 2
ACLOUD ACLOUD_P5_RF19 3
ACLOUD ACLOUD_P5_RF19 4
ACLOUD ACLOUD_P5_RF19 5
ACLOUD ACLOUD_P5_RF20 1
ACLOUD ACLOUD_P5_RF20 2
ACLOUD ACLOUD_P5_RF20 3
ACLOUD ACLOUD_P5_RF20 4
ACLOUD ACLOUD_P5_RF21 1
ACLOUD ACLOUD_P5_RF21 2
ACLOUD ACLOUD_P5_RF22 1
ACLOUD ACLOUD_P5_RF22 2
ACLOUD ACLOUD_P5_RF22 3
ACLOUD ACLOUD_P5_RF22 4
ACLOUD ACLOUD_P5_RF23 1
ACLOUD ACLOUD_P5_RF23 2
AFLUX AFLUX_P5_RF02 1
AFLUX AFLUX_P5_RF04 1
AFLUX AFLUX_P5_RF04 2
AFLUX AFLUX_P5_RF04 3
AFLUX AFLUX_P5_RF04 4
AFLUX AFLUX_P5_RF04 5
AFLUX AFLUX_P5_RF05 1
AFLUX AFLUX_P5_RF05 2
AFLUX AFLUX_P5_RF05 3
AFLUX AFLUX_P5_RF05 4
AFLUX AFLUX_P5_RF06 1
AFLUX AFLUX_P5_RF06 2
AFLUX AFLUX_P5_RF06 3
AFLUX AFLUX_P5_RF06 4
AFLUX AFLUX_P5_RF06 5
AFLUX AFLUX_P5_RF07 1
AFLUX AFLUX_P5_RF07 2
AFLUX AFLUX_P5_RF07 3
AFLUX AFLUX_P5_RF08 1
AFLUX AFLUX_P5_RF08 2
AFLUX AFLUX_P5_RF08 3
AFLUX AFLUX_P5_RF08 4
AFLUX AFLUX_P5_RF09 1
AFLUX AFLUX_P5_RF09 2
AFLUX AFLUX_P5_RF09 3
AFLUX AFLUX_P5_RF09 4
AFLUX AFLUX_P5_RF09 5
AFLUX AFLUX_P5_RF10 1
AFLUX AFLUX_P5_RF10 2
AFLUX AFLUX_P5_RF10 3
AFLUX AFLUX_P5_RF15 1
AFLUX AFLUX_P5_RF15 2
AFLUX AFLUX_P5_RF15 3
MOSAiC-ACA MOSAiC-ACA_P5_RF05 1
MOSAiC-ACA MOSAiC-ACA_P5_RF05 2
MOSAiC-ACA MOSAiC-ACA_P5_RF05 3
MOSAiC-ACA MOSAiC-ACA_P5_RF05 4
MOSAiC-ACA MOSAiC-ACA_P5_RF05 5
MOSAiC-ACA MOSAiC-ACA_P5_RF05 6
MOSAiC-ACA MOSAiC-ACA_P5_RF06 1
MOSAiC-ACA MOSAiC-ACA_P5_RF06 2
MOSAiC-ACA MOSAiC-ACA_P5_RF06 3
MOSAiC-ACA MOSAiC-ACA_P5_RF06 4
MOSAiC-ACA MOSAiC-ACA_P5_RF06 5
MOSAiC-ACA MOSAiC-ACA_P5_RF07 1
MOSAiC-ACA MOSAiC-ACA_P5_RF07 2
MOSAiC-ACA MOSAiC-ACA_P5_RF07 3
MOSAiC-ACA MOSAiC-ACA_P5_RF07 4
MOSAiC-ACA MOSAiC-ACA_P5_RF07 5
MOSAiC-ACA MOSAiC-ACA_P5_RF07 6
MOSAiC-ACA MOSAiC-ACA_P5_RF07 7
MOSAiC-ACA MOSAiC-ACA_P5_RF07 8
MOSAiC-ACA MOSAiC-ACA_P5_RF07 9
MOSAiC-ACA MOSAiC-ACA_P5_RF07 10
MOSAiC-ACA MOSAiC-ACA_P5_RF07 11
MOSAiC-ACA MOSAiC-ACA_P5_RF07 12
MOSAiC-ACA MOSAiC-ACA_P5_RF07 13
MOSAiC-ACA MOSAiC-ACA_P5_RF07 14
MOSAiC-ACA MOSAiC-ACA_P5_RF08 1
MOSAiC-ACA MOSAiC-ACA_P5_RF08 2
MOSAiC-ACA MOSAiC-ACA_P5_RF08 3
MOSAiC-ACA MOSAiC-ACA_P5_RF08 4
MOSAiC-ACA MOSAiC-ACA_P5_RF08 5
MOSAiC-ACA MOSAiC-ACA_P5_RF08 6
MOSAiC-ACA MOSAiC-ACA_P5_RF08 7
MOSAiC-ACA MOSAiC-ACA_P5_RF09 1
MOSAiC-ACA MOSAiC-ACA_P5_RF09 2
MOSAiC-ACA MOSAiC-ACA_P5_RF09 3
MOSAiC-ACA MOSAiC-ACA_P5_RF09 4
MOSAiC-ACA MOSAiC-ACA_P5_RF09 5
MOSAiC-ACA MOSAiC-ACA_P5_RF09 6
MOSAiC-ACA MOSAiC-ACA_P5_RF09 7
MOSAiC-ACA MOSAiC-ACA_P5_RF09 8
MOSAiC-ACA MOSAiC-ACA_P5_RF09 9
MOSAiC-ACA MOSAiC-ACA_P5_RF09 10
MOSAiC-ACA MOSAiC-ACA_P5_RF09 11
MOSAiC-ACA MOSAiC-ACA_P5_RF10 1
MOSAiC-ACA MOSAiC-ACA_P5_RF10 2
MOSAiC-ACA MOSAiC-ACA_P5_RF10 3
MOSAiC-ACA MOSAiC-ACA_P5_RF10 4
MOSAiC-ACA MOSAiC-ACA_P5_RF10 5
MOSAiC-ACA MOSAiC-ACA_P5_RF10 6
MOSAiC-ACA MOSAiC-ACA_P5_RF10 7
MOSAiC-ACA MOSAiC-ACA_P5_RF10 8
MOSAiC-ACA MOSAiC-ACA_P5_RF10 9
MOSAiC-ACA MOSAiC-ACA_P5_RF10 10
MOSAiC-ACA MOSAiC-ACA_P5_RF11 1
MOSAiC-ACA MOSAiC-ACA_P5_RF11 2
MOSAiC-ACA MOSAiC-ACA_P5_RF11 3
MOSAiC-ACA MOSAiC-ACA_P5_RF11 4
MOSAiC-ACA MOSAiC-ACA_P5_RF11 5
MOSAiC-ACA MOSAiC-ACA_P5_RF11 6
MOSAiC-ACA MOSAiC-ACA_P5_RF11 7
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()
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()