PMS probes and Nevzorov#
The following example presents the data collected by the PMS and Nevzorov probes on Polar 5 during the AFLUX and MOSAiC-ACA campaigns. The PMS probes where attached to the wings of the aircraft and operated by the group at DLR e.V. and JGU Mainz namely: C. Voigt, M. Moser, Yvonne Boose, and V. Hahn. If you have questions or if you would like to use the data for a publication, please get in contact with the dataset authors as stated above and in the dataset attributes contact
or author
. The data has been uploaded to the PANGAEA data base for both campaigns: AFLUX and MOSAiC-ACA.
Data access#
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'
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 ac3airborne
cat = ac3airborne.get_intake_catalog()
Nevzorov#
First, we load the data collected by the Nevzorov.
datasets = []
for campaign in ['MOSAiC-ACA']:
datasets.extend(list(cat[campaign]['P5']['NEVZOROV']))
datasets
['MOSAiC-ACA_P5_RF03',
'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']
Note
Have a look at the attributes of the xarray dataset ds_nevzorov
for all relevant information on the dataset, such as author, contact, or citation information.
flight_id = 'MOSAiC-ACA_P5_RF11' # id of flight we work on
ds_nevzorov = cat['MOSAiC-ACA']['P5']['NEVZOROV'][flight_id].to_dask()
ds_nevzorov
Invalid MIT-MAGIC-COOKIE-1 key
<xarray.Dataset> Dimensions: (time: 20801) Coordinates: * time (time) datetime64[ns] 2020-09-13T09:20:14 ... 2020-09-13T1... Data variables: twc (time) float64 0.0002671 0.00016 9.64e-05 ... 1.5e-06 1e-07 lwc (time) float64 -8.39e-05 -0.000236 ... 3.71e-05 2.41e-05 twc_corrected (time) float64 0.0002378 0.0001506 8.69e-05 ... 0.0 0.0 0.0 lwc_corrected (time) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 Attributes: (12/14) version: 0.1 contact: christiane.voigt@dlr.de, manuel.moser@dlr.de, valerian.hahn... institution: DLR e.V., JGU Mainz author: Prof. Dr. Christiane Voigt, Manuel Moser, Valerian Hahn, Jo... Convention: CF-1.8 featureType: trajectory ... ... instruments: Nevzorov probe mission: MOSAiC-ACA platform: AWI-Polar 5, BT-67 C-GAWI uncertainty: contact PI flight_id: RF11 history: acquired by Polar 5 during MOSAiC-ACA campaign and quality ...
- time: 20801
- time(time)datetime64[ns]2020-09-13T09:20:14 ... 2020-09-...
- standard_name :
- time
- long_name :
- time in seconds since epoch
array(['2020-09-13T09:20:14.000000000', '2020-09-13T09:20:15.000000000', '2020-09-13T09:20:16.000000000', ..., '2020-09-13T15:06:52.000000000', '2020-09-13T15:06:53.000000000', '2020-09-13T15:06:54.000000000'], dtype='datetime64[ns]')
- twc(time)float64...
- standard_name :
- total_water_content
- long_name :
- total water content
- units :
- kg/m^3
array([ 2.671e-04, 1.600e-04, 9.640e-05, ..., -7.700e-06, 1.500e-06, 1.000e-07])
- lwc(time)float64...
- standard_name :
- liquid_water_content
- long_name :
- liquid water content
- units :
- kg/m^3
array([-8.390e-05, -2.360e-04, -2.072e-04, ..., 3.520e-05, 3.710e-05, 2.410e-05])
- twc_corrected(time)float64...
- standard_name :
- total_water_content
- long_name :
- total water content (collection efficiency corrected and noise filtered)
- units :
- kg/m^3
array([2.378e-04, 1.506e-04, 8.690e-05, ..., 0.000e+00, 0.000e+00, 0.000e+00])
- lwc_corrected(time)float64...
- standard_name :
- liquid_water_content
- long_name :
- liquid water content (collection efficiency corrected and noise filtered)
- units :
- kg/m^3
array([0., 0., 0., ..., 0., 0., 0.])
- version :
- 0.1
- contact :
- christiane.voigt@dlr.de, manuel.moser@dlr.de, valerian.hahn@dlr.de, johannes.lucke@dlr.de
- institution :
- DLR e.V., JGU Mainz
- author :
- Prof. Dr. Christiane Voigt, Manuel Moser, Valerian Hahn, Johannes Lucke
- Convention :
- CF-1.8
- featureType :
- trajectory
- title :
- In-situ measurements with the Nevzorov Probe on Polar 5
- description :
- Nevzorov recorded total water content (twc) and liquid water content (lwc)
- instruments :
- Nevzorov probe
- mission :
- MOSAiC-ACA
- platform :
- AWI-Polar 5, BT-67 C-GAWI
- uncertainty :
- contact PI
- flight_id :
- RF11
- history :
- acquired by Polar 5 during MOSAiC-ACA campaign and quality checked and processed by Manuel Moser, DLR
The dataset includes the liquid water content (lwc
) and total water content (twc
).
PMS#
Next, we load the data from the different instruments of the PMS to determine total number concentration, particle size distributions and water contents.
Cloud Droplet Probe (CDP) with 2 to 50 microns
Cloud Imaging Probe (CIP) with 7.5 to 967.5 microns
Precipitation Imaging Probe (PIP) with 51.5 to 6643.5 microns
ds_cdp = cat['MOSAiC-ACA']['P5']['CDP'][flight_id].to_dask()
ds_cip = cat['MOSAiC-ACA']['P5']['CIP'][flight_id].to_dask()
ds_pip = cat['MOSAiC-ACA']['P5']['PIP'][flight_id].to_dask()
ds_pms_combined = cat['MOSAiC-ACA']['P5']['PMS_COMBINED'][flight_id].to_dask()
ds_pms_combined
<xarray.Dataset> Dimensions: (bins: 93, time: 20132) Coordinates: * time (time) datetime64[ns] 2020-09-13T09:20:01 ... 2020-09-13T14:59:12 * bins (bins) int32 1 2 3 4 5 6 7 8 9 10 ... 85 86 87 88 89 90 91 92 93 Data variables: bin_min (bins) float64 2.8 4.8 7.6 10.1 ... 6.334e+03 6.438e+03 6.54e+03 bin_max (bins) float64 4.8 7.6 10.1 11.7 ... 6.438e+03 6.54e+03 6.644e+03 bin_mid (bins) float64 3.8 6.2 8.85 ... 6.386e+03 6.489e+03 6.592e+03 bin_width (bins) float64 2.0 2.8 2.5 1.6 1.9 ... 103.0 103.0 103.0 103.0 N (time) float64 9.375e+04 0.07137 21.95 231.9 ... 0.0 0.0 0.0 0.0 CWC (time) float64 7.931e-07 4.168e-10 1.282e-07 ... 0.0 0.0 0.0 ED (time) float64 0.0005536 0.0003785 0.0003785 ... 0.0 0.0 0.0 MVD (time) float64 0.0006904 0.0003785 0.0003785 ... 0.0 0.0 0.0 dNdD (time, bins) float64 ... Attributes: (12/14) version: 0.1 contact: christiane.voigt@dlr.de, manuel.moser@dlr.de, valerian.hahn... institution: DLR e.V., JGU Mainz author: Prof. Dr. Christiane Voigt, Manuel Moser, Valerian Hahn Convention: CF-1.8 featureType: trajectory ... ... instruments: CDP, CIP, PIP - combined mission: MOSAiC-ACA platform: AWI-Polar 5, BT-67 C-GAWI uncertainty: contact PI flight_id: RF11 history: acquired by Polar 5 during MOSAiC-ACA campaign and quality ...
- bins: 93
- time: 20132
- time(time)datetime64[ns]2020-09-13T09:20:01 ... 2020-09-...
- standard_name :
- time
- long_name :
- time in seconds since epoch
array(['2020-09-13T09:20:01.000000000', '2020-09-13T09:20:02.000000000', '2020-09-13T09:20:03.000000000', ..., '2020-09-13T14:59:10.000000000', '2020-09-13T14:59:11.000000000', '2020-09-13T14:59:12.000000000'], dtype='datetime64[ns]')
- bins(bins)int321 2 3 4 5 6 7 ... 88 89 90 91 92 93
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], dtype=int32)
- bin_min(bins)float64...
- standard_name :
- diameter_of_lower_edge_of_size_bin
- long_name :
- lower edge of size bin
- units :
- m^-6
array([2.8000e+00, 4.8000e+00, 7.6000e+00, 1.0100e+01, 1.1700e+01, 1.3600e+01, 1.6000e+01, 1.7300e+01, 1.8700e+01, 2.0700e+01, 2.2900e+01, 2.4600e+01, 2.7600e+01, 2.9700e+01, 3.2000e+01, 3.4500e+01, 5.2500e+01, 6.7500e+01, 8.2500e+01, 9.7500e+01, 1.1250e+02, 1.2750e+02, 1.4250e+02, 1.5750e+02, 1.7250e+02, 1.8750e+02, 2.0250e+02, 2.1750e+02, 2.3250e+02, 2.4750e+02, 2.6250e+02, 2.7750e+02, 2.9350e+02, 4.6350e+02, 5.6650e+02, 6.6950e+02, 7.7250e+02, 8.7550e+02, 9.7850e+02, 1.0815e+03, 1.1845e+03, 1.2875e+03, 1.3905e+03, 1.4935e+03, 1.5965e+03, 1.6995e+03, 1.8025e+03, 1.9055e+03, 2.0085e+03, 2.1115e+03, 2.2145e+03, 2.3175e+03, 2.4205e+03, 2.5235e+03, 2.6265e+03, 2.7295e+03, 2.8325e+03, 2.9355e+03, 3.0385e+03, 3.1415e+03, 3.2445e+03, 3.3475e+03, 3.4505e+03, 3.5535e+03, 3.6565e+03, 3.7595e+03, 3.8625e+03, 3.9655e+03, 4.0685e+03, 4.1715e+03, 4.2745e+03, 4.3775e+03, 4.4805e+03, 4.5835e+03, 4.6865e+03, 4.7895e+03, 4.8925e+03, 4.9955e+03, 5.0985e+03, 5.2015e+03, 5.3045e+03, 5.4075e+03, 5.5105e+03, 5.6135e+03, 5.7165e+03, 5.8195e+03, 5.9225e+03, 6.0255e+03, 6.1285e+03, 6.2315e+03, 6.3345e+03, 6.4375e+03, 6.5405e+03])
- bin_max(bins)float64...
- standard_name :
- diameter_of_upper_edge_of_size_bin
- long_name :
- upper edge of size bin
- units :
- m^-6
array([4.8000e+00, 7.6000e+00, 1.0100e+01, 1.1700e+01, 1.3600e+01, 1.6000e+01, 1.7300e+01, 1.8700e+01, 2.0700e+01, 2.2900e+01, 2.4600e+01, 2.7600e+01, 2.9700e+01, 3.2000e+01, 3.4000e+01, 5.2500e+01, 6.7500e+01, 8.2500e+01, 9.7500e+01, 1.1250e+02, 1.2750e+02, 1.4250e+02, 1.5750e+02, 1.7250e+02, 1.8750e+02, 2.0250e+02, 2.1750e+02, 2.3250e+02, 2.4750e+02, 2.6250e+02, 2.7750e+02, 2.9250e+02, 4.6350e+02, 5.6650e+02, 6.6950e+02, 7.7250e+02, 8.7550e+02, 9.7850e+02, 1.0815e+03, 1.1845e+03, 1.2875e+03, 1.3905e+03, 1.4935e+03, 1.5965e+03, 1.6995e+03, 1.8025e+03, 1.9055e+03, 2.0085e+03, 2.1115e+03, 2.2145e+03, 2.3175e+03, 2.4205e+03, 2.5235e+03, 2.6265e+03, 2.7295e+03, 2.8325e+03, 2.9355e+03, 3.0385e+03, 3.1415e+03, 3.2445e+03, 3.3475e+03, 3.4505e+03, 3.5535e+03, 3.6565e+03, 3.7595e+03, 3.8625e+03, 3.9655e+03, 4.0685e+03, 4.1715e+03, 4.2745e+03, 4.3775e+03, 4.4805e+03, 4.5835e+03, 4.6865e+03, 4.7895e+03, 4.8925e+03, 4.9955e+03, 5.0985e+03, 5.2015e+03, 5.3045e+03, 5.4075e+03, 5.5105e+03, 5.6135e+03, 5.7165e+03, 5.8195e+03, 5.9225e+03, 6.0255e+03, 6.1285e+03, 6.2315e+03, 6.3345e+03, 6.4375e+03, 6.5405e+03, 6.6435e+03])
- bin_mid(bins)float64...
- standard_name :
- diameter_of_mid_of_size_bin
- long_name :
- mid of size bin
- units :
- m^-6
array([3.800e+00, 6.200e+00, 8.850e+00, 1.090e+01, 1.265e+01, 1.480e+01, 1.665e+01, 1.800e+01, 1.970e+01, 2.180e+01, 2.375e+01, 2.610e+01, 2.865e+01, 3.085e+01, 3.300e+01, 4.350e+01, 6.000e+01, 7.500e+01, 9.000e+01, 1.050e+02, 1.200e+02, 1.350e+02, 1.500e+02, 1.650e+02, 1.800e+02, 1.950e+02, 2.100e+02, 2.250e+02, 2.400e+02, 2.550e+02, 2.700e+02, 2.850e+02, 3.785e+02, 5.150e+02, 6.180e+02, 7.210e+02, 8.240e+02, 9.270e+02, 1.030e+03, 1.133e+03, 1.236e+03, 1.339e+03, 1.442e+03, 1.545e+03, 1.648e+03, 1.751e+03, 1.854e+03, 1.957e+03, 2.060e+03, 2.163e+03, 2.266e+03, 2.369e+03, 2.472e+03, 2.575e+03, 2.678e+03, 2.781e+03, 2.884e+03, 2.987e+03, 3.090e+03, 3.193e+03, 3.296e+03, 3.399e+03, 3.502e+03, 3.605e+03, 3.708e+03, 3.811e+03, 3.914e+03, 4.017e+03, 4.120e+03, 4.223e+03, 4.326e+03, 4.429e+03, 4.532e+03, 4.635e+03, 4.738e+03, 4.841e+03, 4.944e+03, 5.047e+03, 5.150e+03, 5.253e+03, 5.356e+03, 5.459e+03, 5.562e+03, 5.665e+03, 5.768e+03, 5.871e+03, 5.974e+03, 6.077e+03, 6.180e+03, 6.283e+03, 6.386e+03, 6.489e+03, 6.592e+03])
- bin_width(bins)float64...
- standard_name :
- width_of_diameter_size_bin
- long_name :
- width of size bin
- units :
- m^-6
array([ 2. , 2.8, 2.5, 1.6, 1.9, 2.4, 1.3, 1.4, 2. , 2.2, 1.7, 3. , 2.1, 2.3, 2. , 18. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 15. , 170. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. , 103. ])
- N(time)float64...
- standard_name :
- total_number_concentration
- long_name :
- total number concentration
- units :
- 1/m^3
array([9.375072e+04, 7.137177e-02, 2.194876e+01, ..., 0.000000e+00, 0.000000e+00, 0.000000e+00])
- CWC(time)float64...
- standard_name :
- cloud_water_content
- long_name :
- cloud water content (particles smaller 50 microns assumed as droplets; particles larger 50 microns: mass-dimension relation by Brown and Francis, 1995 - assuming ice)
- units :
- kg/m^3
array([7.930543e-07, 4.168323e-10, 1.281872e-07, ..., 0.000000e+00, 0.000000e+00, 0.000000e+00])
- ED(time)float64...
- standard_name :
- effective_diameter_of_cloud_particles
- long_name :
- effective diameter (ratio of the 3rd and 2nd moments of the distribution of the particles maximum dimension)
- units :
- m
array([0.000554, 0.000378, 0.000378, ..., 0. , 0. , 0. ])
- MVD(time)float64...
- standard_name :
- median_volume_diameter
- long_name :
- median volume diameter
- units :
- m
array([0.00069 , 0.000378, 0.000378, ..., 0. , 0. , 0. ])
- dNdD(time, bins)float64...
- standard_name :
- number_concentration_of_cloud_particles
- long_name :
- particle number concentration per bin
- units :
- 1/m^4
[1872276 values with dtype=float64]
- version :
- 0.1
- contact :
- christiane.voigt@dlr.de, manuel.moser@dlr.de, valerian.hahn@dlr.de
- institution :
- DLR e.V., JGU Mainz
- author :
- Prof. Dr. Christiane Voigt, Manuel Moser, Valerian Hahn
- Convention :
- CF-1.8
- featureType :
- trajectory
- title :
- Combined in-situ measurements on Polar 5
- description :
- Combined in-situ file: Cloud Droplet Probe, Cloud Imaging Probe and Precipitation Imaging Probe. Switchover size is 34 - 52 micrometer and 293 - 463 micrometer: in between mean value is given.
- instruments :
- CDP, CIP, PIP - combined
- mission :
- MOSAiC-ACA
- platform :
- AWI-Polar 5, BT-67 C-GAWI
- uncertainty :
- contact PI
- flight_id :
- RF11
- history :
- acquired by Polar 5 during MOSAiC-ACA campaign and quality checked and processed by Manuel Moser, DLR
The dataset ds_pms_combined
combines the measurements from the different instruments of the PMS and hence includes
total number concentration (N
),
median volume diameter (MVD
), liquid water content (LWC
), ice water content (IWC
) and particle number concentration (dNdD
).
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()
flight = meta['MOSAiC-ACA']['P5'][flight_id]
Here, we want to have a look on the size distributions measured during different legs of a racetrack_pattern
. In order to simplify things we can import the module flightphase
from the ac3airborne.tools
.
from ac3airborne.tools import flightphase
We can now select only the racetrack_pattern
. This kind of pattern is available two times.
flight_query = flightphase.FlightPhaseFile(flight)
queried = flight_query.selectKind(['racetrack_pattern'])
len(queried)
/home/mech/.local/lib/python3.8/site-packages/ac3airborne/tools/flightphase.py:27: UserWarning: the segment MOSAiC-ACA_P5_RF11_rt01 contains following irregularities: first leg begins far away from starting point of the other legs and is therefore longer
warnings.warn(str)
2
Plots#
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
plt.style.use("../../mplstyle/book")
fig, (ax1, ax2, ax3, ax4) = plt.subplots(4, 1, sharex=True, gridspec_kw=dict(height_ratios=(1, 1, 1, 1)))
ax1.semilogy(ds_cdp.time, ds_cdp.N, color='k')
ax1.set_title('CDP')
ax2.semilogy(ds_cip.time, ds_cip.N, color='b')
ax2.set_title('CIP')
ax3.semilogy(ds_pip.time, ds_pip.N, color='g')
ax3.set_title('PIP')
ax4.plot(ds_nevzorov.time, ds_nevzorov.lwc, '--', color='g', label='LWC')
ax4.plot(ds_nevzorov.time, ds_nevzorov.twc, '--', color='b', label='TWC')
ax4.set_title('Nevzorov')
ax1.set_ylabel('N [$1/m^3$]')
ax2.set_ylabel('N [$1/m^3$]')
ax3.set_ylabel('N [$1/m^3$]')
ax4.set_ylabel('water content [kg/m^3]')
ax4.legend(frameon=False, loc='upper right')
ax4.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
plt.show()
from matplotlib import cm
import numpy as np
def colors(n):
"""Creates set of random colors of length n"""
cmap = cm.get_cmap('gist_rainbow')
rnd = np.random.uniform(low=0, high=1, size=n)
cols = cmap(rnd)
return cols
titles = ['ice','ocean']
fig, axs = plt.subplots(1, 2, gridspec_kw=dict())
for i, rtp in enumerate(queried):
col_segments = colors(len(rtp['parts']))
for j,part in enumerate(rtp['parts']):
if 'leg' in part['name']:
ds_sel = ds_pms_combined.sel(time=slice(part['start'],part['end']))
axs[i].loglog(ds_sel.bin_mid, ds_sel.dNdD.mean(dim='time'), 'o',color=col_segments[j],label=part['levels'][0])
axs[i].legend(frameon=False)
axs[i].set_xlabel('D[$\mu m$]')
axs[i].set_ylabel('N[$m^{-4}$]')
axs[i].set_title('Over '+titles[i])