helikite.instruments.pops

  1. POPS -> HK_20220929x001.csv (has pressure)

The POPS is an optical particle counter. It provides information on the particle number concentration (how many particles per cubic centimeter) and the size distribution for particles larger than 180 nm roughly. Resolution: 1 sec

Important variables to keep: DateTime, P, POPS_Flow, b0 -> b15

PartCon needs to be re-calculated by adding b3 to b15 and deviding by averaged POPS_Flow (b0 -> b15 can be converted to dN/dlogDp values with conversion factors I have)

Housekeeping variables to look at: POPS_flow -> flow should be just below 3, and check for variability increase

The code has been updated to the processing of the new POPS462: all bins are kept. If needed, “pops_old” contains the code for the old POPS (101, 105) where only bins 3 to 16 are kept.

Attributes

pops

Classes

POPS

Module Contents

class helikite.instruments.pops.POPS(*args, **kwargs)

Bases: helikite.instruments.base.Instrument

__repr__()
property has_size_distribution: bool
set_time_as_index(df: pandas.DataFrame) pandas.DataFrame

Set the DateTime as index of the dataframe and correct if needed

Using values in the time_offset variable, correct DateTime index

data_corrections(df: pandas.DataFrame, *args, **kwargs) pandas.DataFrame
read_data() pandas.DataFrame
calculate_derived(df: pandas.DataFrame, verbose: bool, *args, **kwargs) pandas.DataFrame

This function calculates the total concentration of POPS particles and adds it to the dataframe.

Parameters: - df: DataFrame with POPS data and altitude.

Returns: - df: Updated DataFrame with POPS total concentration and dNdlogDp for each bin.

normalize(df: pandas.DataFrame, reference_instrument: helikite.instruments.base.Instrument, verbose: bool, *args, **kwargs) pandas.DataFrame

Normalize POPS concentrations to STP conditions.

Parameters: df (pd.DataFrame): DataFrame containing POPS measurements and necessary metadata

like ‘flight_computer_pressure’ and ‘Average_Temperature’.

Returns: df (pd.DataFrame): Updated DataFrame with new STP-normalized columns added.

plot_raw_and_normalized(df: pandas.DataFrame, verbose: bool, *args, **kwargs)

Plots POPS concentration, raw and normalized to STP conditions, against altitude

plot_distribution(df: pandas.DataFrame, verbose: bool, time_start: datetime.datetime, time_end: datetime.datetime, subplot: tuple[matplotlib.pyplot.Figure, matplotlib.pyplot.Axes] | None = None)

This function generates a contour plot for POPS size distribution and total concentration.

Parameters: - df: DataFrame with the POPS data. - time_start: Optional, start time for the x-axis (datetime formatted). - time_end: Optional, end time for the x-axis (datetime formatted).

static _dNdlogDp_calculation(df_pops, dp_notes)
helikite.instruments.pops.pops