diff --git a/Temp_test_notebook.ipynb b/Temp_test_notebook.ipynb
new file mode 100644
index 0000000..7683135
--- /dev/null
+++ b/Temp_test_notebook.ipynb
@@ -0,0 +1,2970 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "id": "ea414770-9f9a-42f8-a7d8-25ac6983d76c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import dask.dataframe as dd\n",
+ "\n",
+ "import numpy as np\n",
+ "import yaml\n",
+ "import matplotlib.pyplot as plt\n",
+ "from sp2xr.toolkit_legacy import read_xr_ini_file, bin_lims_to_ctrs, process_hist_and_dist\n",
+ "from sp2xr.calibration import polynomial, powerlaw"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c80d37dc-f526-426c-8083-a78e791821f9",
+ "metadata": {},
+ "source": [
+ "# Old processing"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "5dd8ee52-9032-4f3b-8327-a0561ac3576e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "new_config_run = yaml.safe_load(open('tests/run_config.yaml'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "8d7cc57e-5b88-4388-9303-7777bad73e7f",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "dir_path_pbp = '/data/user/bertoz_b/merlin6data/SP2XR_code/tests/data/pbp_files_test/date=2019-05-07'\n",
+ "dir_path_hk = '/data/user/bertoz_b/merlin6data/SP2XR_code/tests/data/hk_files_test/date=2019-05-07'\n",
+ "\n",
+ "config_path = '/data/user/bertoz_b/merlin6data/SP2XR_code/meta_files/20190417210227 Calibration 20181005.ini'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "id": "0225b191-7066-4840-8acb-ecac239d66d0",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "dt=1\n",
+ "rho_eff=1800\n",
+ "BC_type=\"constant_effective_density\"\n",
+ "inc_calib_curve=new_config_run['calibration']['incandescence']['curve_type']\n",
+ "inc_calib_params=new_config_run['calibration']['incandescence']['parameters']\n",
+ "scatt_calib_curve=new_config_run['calibration']['scattering']['curve_type']\n",
+ "scatt_calib_params=new_config_run['calibration']['scattering']['parameters']\n",
+ "config_file_dir=config_path\n",
+ "minM=0.3\n",
+ "maxM=400\n",
+ "n_incbins=50\n",
+ "minOptD=100\n",
+ "maxOptD=500\n",
+ "n_scattbins=20\n",
+ "minTL=-10\n",
+ "maxTL=400\n",
+ "n_timelag=100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "id": "e01462f6-3f2f-44f5-967a-6e63fd2df3c1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'polynomial'"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "inc_calib_curve"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "id": "c29a6acb-581b-415f-8f41-e5a7447654e9",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "polynomial curve applied\n"
+ ]
+ }
+ ],
+ "source": [
+ "read_dir_pbp = dir_path_pbp\n",
+ "read_dir_hk = dir_path_hk\n",
+ "ddf_pbp = pd.read_parquet(\n",
+ " read_dir_pbp\n",
+ ") # , calculate_divisions=True)#.repartition(freq='1h')\n",
+ "ddf_hk = pd.read_parquet(\n",
+ " read_dir_hk\n",
+ ") # , calculate_divisions=True)#.repartition(freq='1h')\n",
+ "\n",
+ "ini_params = read_xr_ini_file(config_path)\n",
+ "ini_params[\"IncSatPoint\"] = (\n",
+ " 1.7e9 # 2e9 # Guess for now, need to see where to obtain this from. 2e9 is probably better guess\n",
+ ")\n",
+ "ini_params[\"ScattSatPoint\"] = (\n",
+ " 1.7e9 # Guess for now, need to see where to obtain this from. 1.85e9 is probably better\n",
+ ")\n",
+ "ini_params[\"DelayTimeThresh\"] = 200 # Also a guess for now, to be updated\n",
+ "\n",
+ "inc_mass_bin_lims = np.logspace(np.log10(minM), np.log10(maxM), n_incbins)\n",
+ "inc_mass_bin_lims_for_pd_cut = np.logspace(\n",
+ " np.log10(minM), np.log10(maxM + 0.01), n_incbins\n",
+ ")\n",
+ "inc_mass_bin_ctrs = bin_lims_to_ctrs(inc_mass_bin_lims)\n",
+ "\n",
+ "dt_str = f\"{dt}s\"\n",
+ "\n",
+ "# ***** ***** *****\n",
+ "# Apply calibration\n",
+ "# ***** ***** *****\n",
+ "\n",
+ "if inc_calib_curve:\n",
+ " if inc_calib_curve == \"polynomial\":\n",
+ " print('polynomial curve applied')\n",
+ " ddf_pbp[\"BC mass\"] = ddf_pbp[\"Incand relPeak\"].apply(\n",
+ " lambda x: polynomial(x, *inc_calib_params)\n",
+ " ) # , meta=('BC mass', 'float64'))\n",
+ " # minM_timelag = polynomial(5e6, *inc_calib_params)\n",
+ " elif inc_calib_curve == \"powerlaw\":\n",
+ " ddf_pbp[\"BC mass\"] = ddf_pbp[\"Incand relPeak\"].apply(\n",
+ " lambda x: powerlaw(x, inc_calib_params)\n",
+ " ) # , meta=('BC mass', 'float64'))\n",
+ " # minM_timelag = powerlaw(5e6, inc_calib_params)\n",
+ "else:\n",
+ " ddf_pbp[\"BC mass\"] = ddf_pbp[\"Incand Mass (fg)\"]\n",
+ " # minM_timelag = ddf_pbp.loc[\n",
+ " # (ddf_pbp[\"Incand relPeak\"] <= 5.05e6)\n",
+ " # & (ddf_pbp[\"Incand relPeak\"] >= 4.95e6),\n",
+ " # \"Incand Mass (fg)\",\n",
+ " # ].mean() # this could create problems if there are no incandescence signals in the selected range\n",
+ "\n",
+ "ddf_pbp.loc[ddf_pbp[\"Incand relPeak\"] == 0, \"BC mass\"] = np.nan\n",
+ "\n",
+ "ddf_pbp[\"BC mass bin\"], mass_bins = pd.cut(\n",
+ " ddf_pbp[\"BC mass\"],\n",
+ " bins=inc_mass_bin_lims_for_pd_cut,\n",
+ " right=False,\n",
+ " include_lowest=True,\n",
+ " retbins=True,\n",
+ ")\n",
+ "\n",
+ "if scatt_calib_curve:\n",
+ " if scatt_calib_curve == \"polynomial\":\n",
+ " ddf_pbp[\"Opt diam\"] = ddf_pbp[\"Scatter relPeak\"].apply(\n",
+ " lambda x: polynomial(x, *scatt_calib_params)\n",
+ " ) # , meta=('Opt diam', 'float64'))\n",
+ " elif scatt_calib_curve == \"powerlaw\":\n",
+ " ddf_pbp[\"Opt diam\"] = ddf_pbp[\"Scatter relPeak\"].apply(\n",
+ " lambda x: powerlaw(x, *scatt_calib_params)\n",
+ " ) # , meta=('Opt diam', 'float64'))\n",
+ "else:\n",
+ " ddf_pbp[\"Opt diam\"] = ddf_pbp[\"Scatter Size (nm)\"]\n",
+ "\n",
+ "ddf_pbp.loc[ddf_pbp[\"Scatter relPeak\"] == 0, \"Opt diam\"] = np.nan\n",
+ "\n",
+ "ddf_pbp[\"time_lag_new\"] = ddf_pbp[\"Incand Peak Time\"] - ddf_pbp[\"Scatter Peak Time\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "id": "6bb7dc88-4fa7-4f4e-a86a-1b5fd4eba1bf",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/data/user/bertoz_b/merlin6data/SP2XR_code/.venv/lib/python3.9/site-packages/pandas/core/arraylike.py:399: RuntimeWarning: divide by zero encountered in log10\n",
+ " result = getattr(ufunc, method)(*inputs, **kwargs)\n"
+ ]
+ }
+ ],
+ "source": [
+ "# ***** ***** ***** *****\n",
+ "# Set flags\n",
+ "# ***** ***** ***** *****\n",
+ "flag_inc_transit_time = (\n",
+ " ddf_pbp[\"Incand Transit Time\"] >= ini_params[\"IncTransitMin\"]\n",
+ ") & (ddf_pbp[\"Incand Transit Time\"] <= ini_params[\"IncTransitMax\"])\n",
+ "flag_inc_fwhm = (ddf_pbp[\"Incand FWHM\"] >= ini_params[\"IncFWHMMin\"]) & (\n",
+ " ddf_pbp[\"Incand FWHM\"] <= ini_params[\"IncFWHMMax\"]\n",
+ ")\n",
+ "# flag_inc_not_sat = ddf_pbp[\"Incand relPeak\"] < ini_params[\"IncSatPoint\"]\n",
+ "\n",
+ "flag_scatt_transit_time = (\n",
+ " ddf_pbp[\"Scatter Transit Time\"] >= ini_params[\"ScattTransitMin\"]\n",
+ ") & (ddf_pbp[\"Scatter Transit Time\"] <= ini_params[\"ScattTransitMax\"])\n",
+ "flag_scatt_fwhm = (ddf_pbp[\"Scatter FWHM\"] >= ini_params[\"ScattFWHMMin\"]) & (\n",
+ " ddf_pbp[\"Scatter FWHM\"] <= ini_params[\"ScattFWHMMax\"]\n",
+ ")\n",
+ "flag_scatt_not_sat = ddf_pbp[\"Scatter relPeak\"] < ini_params[\"ScattSatPoint\"]\n",
+ "\n",
+ "flag_inc = flag_inc_transit_time & flag_inc_fwhm\n",
+ "flag_inc_in_range = (\n",
+ " flag_inc & (ddf_pbp[\"BC mass\"] >= minM) & (ddf_pbp[\"BC mass\"] <= maxM)\n",
+ ")\n",
+ "# flag_inc_in_range_tl_analysis = (\n",
+ "# flag_inc & (ddf_pbp[\"BC mass\"] >= minM_timelag) & (ddf_pbp[\"BC mass\"] <= maxM)\n",
+ "# )\n",
+ "\n",
+ "flag_scatt = flag_scatt_transit_time & flag_scatt_fwhm\n",
+ "flag_scatt_in_range = (\n",
+ " flag_scatt & (ddf_pbp[\"Opt diam\"] >= minOptD) & (ddf_pbp[\"Opt diam\"] <= maxOptD)\n",
+ ")\n",
+ "\n",
+ "flag_negative_timelag = ddf_pbp[\"time_lag_new\"] < -10\n",
+ "flag_extreme_positive_timelag = ddf_pbp[\"time_lag_new\"] >= 400\n",
+ "flag_timelag_0_50 = (ddf_pbp[\"time_lag_new\"] < 50) & (\n",
+ " ddf_pbp[\"time_lag_new\"] >= -10\n",
+ ")\n",
+ "flag_timelag_greater_50 = (ddf_pbp[\"time_lag_new\"] >= 50) & (\n",
+ " ddf_pbp[\"time_lag_new\"] < 400\n",
+ ")\n",
+ "\n",
+ "ddf_pbp[\"ratio_inc_scatt\"] = np.log10(ddf_pbp[\"Incand relPeak\"]) / np.log10(\n",
+ " ddf_pbp[\"Scatter relPeak\"]\n",
+ ")\n",
+ "flag_low_ratio_inc_scatt = ddf_pbp[\"ratio_inc_scatt\"] < 1.1\n",
+ "\n",
+ "# ***** ***** ***** ***** ***** ***** *****\n",
+ "# Create column for purely scattering particle analysis\n",
+ "# ***** ***** ***** ***** ***** ***** *****\n",
+ "ddf_pbp[\"Opt diam scatt only\"] = ddf_pbp[\"Opt diam\"].where(\n",
+ " flag_scatt & ~flag_inc, np.nan\n",
+ ") # ddf_pbp['Opt diam'].mask(ddf_pbp['BC mass'].notnull(), np.nan)\n",
+ "\n",
+ "# ***** ***** *****\n",
+ "# Set flag for thin/thick\n",
+ "# ***** ***** *****\n",
+ "\n",
+ "ddf_pbp[\"cnts_thin\"] = 0\n",
+ "ddf_pbp[\"cnts_thin_noScatt\"] = 0\n",
+ "ddf_pbp[\"cnts_thick\"] = 0\n",
+ "ddf_pbp[\"cnts_thick_sat\"] = 0\n",
+ "ddf_pbp[\"cnts_thin_sat\"] = 0\n",
+ "ddf_pbp[\"cnts_ntl_sat\"] = 0\n",
+ "ddf_pbp[\"cnts_ntl\"] = 0\n",
+ "ddf_pbp[\"cnts_extreme_positive_timelag\"] = 0\n",
+ "ddf_pbp[\"cnts_thin_low_inc_scatt_ratio\"] = 0\n",
+ "ddf_pbp[\"cnts_particles_for_tl_dist\"] = (\n",
+ " 0 # this flag is used for the calculation of time lag distributions below (it includes the particles classfified as \"thin\" or \"thick\")\n",
+ ")\n",
+ "\n",
+ "ddf_pbp.loc[~flag_scatt & flag_inc_in_range, \"cnts_thin_noScatt\"] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt\n",
+ " & flag_scatt_not_sat\n",
+ " & flag_inc_in_range\n",
+ " & flag_timelag_0_50\n",
+ " & ~flag_low_ratio_inc_scatt,\n",
+ " \"cnts_thin\",\n",
+ "] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt\n",
+ " & flag_scatt_not_sat\n",
+ " & flag_inc_in_range\n",
+ " & flag_timelag_0_50\n",
+ " & flag_low_ratio_inc_scatt,\n",
+ " \"cnts_thin_low_inc_scatt_ratio\",\n",
+ "] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt\n",
+ " & flag_scatt_not_sat\n",
+ " & flag_inc_in_range\n",
+ " & flag_timelag_greater_50\n",
+ " & ~flag_extreme_positive_timelag,\n",
+ " \"cnts_thick\",\n",
+ "] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt\n",
+ " & ~flag_scatt_not_sat\n",
+ " & flag_inc_in_range\n",
+ " & flag_timelag_greater_50\n",
+ " & ~flag_extreme_positive_timelag,\n",
+ " \"cnts_thick_sat\",\n",
+ "] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt & ~flag_scatt_not_sat & flag_inc_in_range & flag_timelag_0_50,\n",
+ " \"cnts_thin_sat\",\n",
+ "] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt & ~flag_scatt_not_sat & flag_inc_in_range & flag_negative_timelag,\n",
+ " \"cnts_ntl_sat\",\n",
+ "] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt & flag_scatt_not_sat & flag_inc_in_range & flag_negative_timelag,\n",
+ " \"cnts_ntl\",\n",
+ "] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt & flag_inc_in_range & flag_extreme_positive_timelag,\n",
+ " \"cnts_extreme_positive_timelag\",\n",
+ "] = 1\n",
+ "ddf_pbp.loc[\n",
+ " flag_scatt\n",
+ " & flag_scatt_not_sat\n",
+ " & flag_inc_in_range\n",
+ " & (\n",
+ " (flag_timelag_0_50 & ~flag_low_ratio_inc_scatt)\n",
+ " | (flag_timelag_greater_50 & ~flag_extreme_positive_timelag)\n",
+ " ),\n",
+ " \"cnts_particles_for_tl_dist\",\n",
+ "] = 1\n",
+ "\n",
+ "ddf_pbp[\"cnts_thin_total\"] = ddf_pbp[\"cnts_thin\"] + ddf_pbp[\"cnts_thin_noScatt\"]\n",
+ "ddf_pbp[\"cnts_thick_total\"] = (\n",
+ " ddf_pbp[\"cnts_thick\"]\n",
+ " + ddf_pbp[\"cnts_thick_sat\"]\n",
+ " + ddf_pbp[\"cnts_ntl_sat\"]\n",
+ " + ddf_pbp[\"cnts_ntl\"]\n",
+ " + ddf_pbp[\"cnts_thin_sat\"]\n",
+ ")\n",
+ "ddf_pbp[\"cnts_unclassified\"] = (\n",
+ " ddf_pbp[\"cnts_extreme_positive_timelag\"]\n",
+ " + ddf_pbp[\"cnts_thin_low_inc_scatt_ratio\"]\n",
+ ")\n",
+ "\n",
+ "ddf_pbp[\"temporary_col\"] = (\n",
+ " 1 # this is to keep track of time stamps that are not originally in the file but are added when i do the resampling\n",
+ ")\n",
+ "\n",
+ "# Create two new columns where the particles out of range are changed to np.nan (!! do not change them to 0, otherwise below where we resample and count, the 0s would be counted being a not null value!!)\n",
+ "ddf_pbp[\"BC mass within range\"] = ddf_pbp[\"BC mass\"].where(\n",
+ " flag_inc_in_range, np.nan\n",
+ ") # ddf_pbp['BC mass'].mask(mask_BC_within_range)\n",
+ "ddf_pbp[\"Opt diam scatt only within range\"] = ddf_pbp[\"Opt diam scatt only\"].where(\n",
+ " flag_scatt_in_range & ~flag_inc, np.nan\n",
+ ")\n",
+ "\n",
+ "ddf_pbp_1s = (\n",
+ " ddf_pbp[\n",
+ " [\n",
+ " \"Dropped Records\",\n",
+ " \"Incand Mass (fg)\", # This is the original column from the file, the calibration applied is the one uploaded in the software\n",
+ " \"BC mass\", # If calibration parameters are provided, this is the mass calculated form those parameters. If calib param are not provided this is equal to 'Incand Mass (fg)'\n",
+ " \"BC mass within range\", # In this column only the masses within the range specified by the user are considered\n",
+ " \"cnts_thin\",\n",
+ " \"cnts_thin_noScatt\",\n",
+ " \"cnts_thick\",\n",
+ " \"cnts_thick_sat\",\n",
+ " \"cnts_thin_sat\",\n",
+ " \"cnts_ntl_sat\",\n",
+ " \"cnts_ntl\",\n",
+ " \"cnts_extreme_positive_timelag\",\n",
+ " \"cnts_thin_low_inc_scatt_ratio\",\n",
+ " \"cnts_thin_total\",\n",
+ " \"cnts_thick_total\",\n",
+ " \"cnts_unclassified\",\n",
+ " ]\n",
+ " ]\n",
+ " .resample(dt_str)\n",
+ " .sum()\n",
+ ")\n",
+ "\n",
+ "ddf_pbp_1s[\n",
+ " [\n",
+ " \"BC numb from file\", # number of BC particles counted from the column 'Incand Mass (fg)'\n",
+ " \"BC numb\", # number of BC particles counted from the column 'BC mass'\n",
+ " \"BC numb within range\", # number of BC particles counted from the column 'BC mass within range'\n",
+ " \"scatter numb from file\", # number of scattering particles counted from the column 'Scatter Size (nm)'\n",
+ " \"Scatt numb\", # number of purely scattering particles counted from the column 'Opt diam'\n",
+ " \"Scatt numb within range\", # number of purely scattering particles counted from the column 'Opt diam within range'\n",
+ " \"original_idx\",\n",
+ " ]\n",
+ "] = (\n",
+ " ddf_pbp[\n",
+ " [\n",
+ " \"Incand Mass (fg)\",\n",
+ " \"BC mass\",\n",
+ " \"BC mass within range\",\n",
+ " \"Scatter Size (nm)\",\n",
+ " \"Opt diam scatt only\",\n",
+ " \"Opt diam scatt only within range\",\n",
+ " \"temporary_col\",\n",
+ " ]\n",
+ " ]\n",
+ " .resample(dt_str)\n",
+ " .count()\n",
+ ")\n",
+ "\n",
+ "ddf_pbp_1s[[\"Secs_2GB_mean\"]] = ddf_pbp[[\"Secs_2GB\"]].resample(dt_str).mean()\n",
+ "\n",
+ "# ddf_pbp_1s = ddf_pbp_1s.map_partitions(add_date_column)\n",
+ "ddf_pbp_1s[\"date\"] = ddf_pbp_1s.index.normalize()\n",
+ "ddf_pbp_1s[\"hour\"] = ddf_pbp_1s.index.hour\n",
+ "\n",
+ "ddf_pbp_1s = ddf_pbp_1s[ddf_pbp_1s[\"original_idx\"] != 0]\n",
+ "ddf_pbp_1s = ddf_pbp_1s.drop(\"original_idx\", axis=1) # .persist()\n",
+ "\n",
+ "# **** **** **** **** **** **** ****\n",
+ "# Create a 1s ddf for the hk file\n",
+ "# **** **** **** **** **** **** ****\n",
+ "\n",
+ "ddf_hk[\"temporary_col\"] = 1\n",
+ "\n",
+ "ddf_hk_1s = (\n",
+ " ddf_hk[\n",
+ " [\"Sample Flow Controller Read (sccm)\", \"Sample Flow Controller Read (vccm)\"]\n",
+ " ]\n",
+ " .resample(dt_str)\n",
+ " .mean()\n",
+ ") # do i need a fill na here?\n",
+ "ddf_hk_1s[[\"original_idx\"]] = ddf_hk[[\"temporary_col\"]].resample(dt_str).count()\n",
+ "\n",
+ "ddf_hk_1s = ddf_hk_1s[ddf_hk_1s[\"original_idx\"] != 0]\n",
+ "ddf_hk_1s = ddf_hk_1s.drop(\"original_idx\", axis=1) # .persist()\n",
+ "\n",
+ "# **** **** **** **** **** **** ****\n",
+ "# Create a 1s join ddf for the pbp_1s and hk_1s data\n",
+ "# **** **** **** **** **** **** ****\n",
+ "\n",
+ "ddf_pbp_hk = pd.merge(\n",
+ " ddf_pbp_1s, ddf_hk_1s, how=\"left\", left_index=True, right_index=True\n",
+ ")\n",
+ "# ddf_pbp_hk = ddf_pbp_hk.map_partitions(calculate_concentrations, t=dt)\n",
+ "ddf_pbp_hk[\"BC_massConc_std\"] = (\n",
+ " ddf_pbp_hk[\"BC mass\"]\n",
+ " * 1e-9\n",
+ " / (ddf_pbp_hk[\"Sample Flow Controller Read (sccm)\"] * (dt / 60) * 1e-6)\n",
+ ")\n",
+ "ddf_pbp_hk[\"BC_massConc_vol\"] = (\n",
+ " ddf_pbp_hk[\"BC mass\"]\n",
+ " * 1e-9\n",
+ " / (ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"] * (dt / 60) * 1e-6)\n",
+ ")\n",
+ "\n",
+ "ddf_pbp_hk[\"BC_numConc_std\"] = ddf_pbp_hk[\"BC numb\"] / (\n",
+ " ddf_pbp_hk[\"Sample Flow Controller Read (sccm)\"] * (dt / 60)\n",
+ ")\n",
+ "ddf_pbp_hk[\"BC_numConc_vol\"] = ddf_pbp_hk[\"BC numb\"] / (\n",
+ " ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"] * (dt / 60)\n",
+ ")\n",
+ "\n",
+ "ddf_pbp_hk[\"BC_massConc_within_range_std\"] = (\n",
+ " ddf_pbp_hk[\"BC mass within range\"]\n",
+ " * 1e-9\n",
+ " / (ddf_pbp_hk[\"Sample Flow Controller Read (sccm)\"] * (dt / 60) * 1e-6)\n",
+ ")\n",
+ "ddf_pbp_hk[\"BC_massConc_within_range_vol\"] = (\n",
+ " ddf_pbp_hk[\"BC mass within range\"]\n",
+ " * 1e-9\n",
+ " / (ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"] * (dt / 60) * 1e-6)\n",
+ ")\n",
+ "\n",
+ "ddf_pbp_hk[\"BC_numConc_within_range_std\"] = ddf_pbp_hk[\"BC numb within range\"] / (\n",
+ " ddf_pbp_hk[\"Sample Flow Controller Read (sccm)\"] * (dt / 60)\n",
+ ")\n",
+ "ddf_pbp_hk[\"BC_numConc_within_range_vol\"] = ddf_pbp_hk[\"BC numb within range\"] / (\n",
+ " ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"] * (dt / 60)\n",
+ ")\n",
+ "\n",
+ "ddf_pbp_hk[\"S_numConc_std\"] = ddf_pbp_hk[\"Scatt numb\"] / (\n",
+ " ddf_pbp_hk[\"Sample Flow Controller Read (sccm)\"] * (dt / 60)\n",
+ ")\n",
+ "ddf_pbp_hk[\"S_numConc_vol\"] = ddf_pbp_hk[\"Scatt numb\"] / (\n",
+ " ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"] * (dt / 60)\n",
+ ")\n",
+ "\n",
+ "ddf_pbp_hk[\"S_numConc_within_range_std\"] = ddf_pbp_hk[\"Scatt numb within range\"] / (\n",
+ " ddf_pbp_hk[\"Sample Flow Controller Read (sccm)\"] * (dt / 60)\n",
+ ")\n",
+ "ddf_pbp_hk[\"S_numConc_within_range_vol\"] = ddf_pbp_hk[\"Scatt numb within range\"] / (\n",
+ " ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"] * (dt / 60)\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "id": "807231f0-9925-4f41-8dec-e17ffa62dd93",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Calculate histograms of different classifications/flags:\n",
+ "ddf_pbp[\"temporary_col\"] = 1\n",
+ "\n",
+ "dNdlogDmev, dMdlogDmev = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " None,\n",
+ " None,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_thin, dMdlogDmev_thin = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_thin\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_thin_noScatt, dMdlogDmev_thin_noScatt = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_thin_noScatt\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_thick, dMdlogDmev_thick = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_thick\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_thick_sat, dMdlogDmev_thick_sat = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_thick_sat\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_thin_sat, dMdlogDmev_thin_sat = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_thin_sat\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_ntl_sat, dMdlogDmev_ntl_sat = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_ntl_sat\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_ntl, dMdlogDmev_ntl = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_ntl\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_extreme_positive_timelag, dMdlogDmev_extreme_positive_timelag = (\n",
+ " process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_extreme_positive_timelag\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ " )\n",
+ ")\n",
+ "dNdlogDmev_thin_low_inc_scatt_ratio, dMdlogDmev_thin_low_inc_scatt_ratio = (\n",
+ " process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_thin_low_inc_scatt_ratio\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ " )\n",
+ ")\n",
+ "dNdlogDmev_thin_total, dMdlogDmev_thin_total = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_thin_total\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_thick_total, dMdlogDmev_thick_total = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_thick_total\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "dNdlogDmev_unclassified, dMdlogDmev_unclassified = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"BC mass within range\",\n",
+ " \"cnts_unclassified\",\n",
+ " 1,\n",
+ " inc_mass_bin_lims,\n",
+ " inc_mass_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=rho_eff,\n",
+ " BC_type=BC_type,\n",
+ " t=dt,\n",
+ ")\n",
+ "\n",
+ "scatt_bin_lims = np.logspace(np.log10(minOptD), np.log10(maxOptD), n_scattbins)\n",
+ "scatt_bin_ctrs = bin_lims_to_ctrs(scatt_bin_lims)\n",
+ "\n",
+ "dNdlogDsc, _ = process_hist_and_dist(\n",
+ " ddf_pbp,\n",
+ " \"Opt diam scatt only\",\n",
+ " None,\n",
+ " None,\n",
+ " scatt_bin_lims,\n",
+ " scatt_bin_ctrs,\n",
+ " dt_str,\n",
+ " flow=ddf_pbp_hk[\"Sample Flow Controller Read (vccm)\"],\n",
+ " rho_eff=None,\n",
+ " BC_type=None,\n",
+ " t=dt,\n",
+ ")\n",
+ "\n",
+ "timelag_bins_lims = np.linspace(minTL, maxTL, n_timelag)\n",
+ "timelag_bin_ctrs = bin_lims_to_ctrs(timelag_bins_lims)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 83,
+ "id": "c51a8764-cf93-4150-baac-ec76e77064ad",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "final_df = pd.concat(\n",
+ " [\n",
+ " ddf_pbp_hk,\n",
+ " dNdlogDmev,\n",
+ " dMdlogDmev,\n",
+ " dNdlogDmev_thin,\n",
+ " dMdlogDmev_thin,\n",
+ " dNdlogDmev_thin_noScatt,\n",
+ " dMdlogDmev_thin_noScatt,\n",
+ " dNdlogDmev_thick,\n",
+ " dMdlogDmev_thick,\n",
+ " dNdlogDmev_thick_sat,\n",
+ " dMdlogDmev_thick_sat,\n",
+ " dNdlogDmev_thin_sat,\n",
+ " dMdlogDmev_thin_sat,\n",
+ " dNdlogDmev_ntl_sat,\n",
+ " dMdlogDmev_ntl_sat,\n",
+ " dNdlogDmev_ntl,\n",
+ " dMdlogDmev_ntl,\n",
+ " dNdlogDmev_extreme_positive_timelag,\n",
+ " dMdlogDmev_extreme_positive_timelag,\n",
+ " dNdlogDmev_thin_low_inc_scatt_ratio,\n",
+ " dMdlogDmev_thin_low_inc_scatt_ratio,\n",
+ " dNdlogDmev_thin_total,\n",
+ " dMdlogDmev_thin_total,\n",
+ " dNdlogDmev_thick_total,\n",
+ " dMdlogDmev_thick_total,\n",
+ " dNdlogDmev_unclassified,\n",
+ " dMdlogDmev_unclassified,\n",
+ " dNdlogDsc,\n",
+ " ],\n",
+ " axis=1,\n",
+ " )\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 65,
+ "id": "3fd14901-a2b5-4e81-801c-1c2593c9c627",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['Dropped Records', 'Incand Mass (fg)', 'BC mass',\n",
+ " 'BC mass within range', 'cnts_thin', 'cnts_thin_noScatt', 'cnts_thick',\n",
+ " 'cnts_thick_sat', 'cnts_thin_sat', 'cnts_ntl_sat', 'cnts_ntl',\n",
+ " 'cnts_extreme_positive_timelag', 'cnts_thin_low_inc_scatt_ratio',\n",
+ " 'cnts_thin_total', 'cnts_thick_total', 'cnts_unclassified',\n",
+ " 'BC numb from file', 'BC numb', 'BC numb within range',\n",
+ " 'scatter numb from file', 'Scatt numb', 'Scatt numb within range',\n",
+ " 'Secs_2GB_mean', 'date', 'hour', 'Sample Flow Controller Read (sccm)',\n",
+ " 'Sample Flow Controller Read (vccm)', 'BC_massConc_std',\n",
+ " 'BC_massConc_vol', 'BC_numConc_std', 'BC_numConc_vol',\n",
+ " 'BC_massConc_within_range_std', 'BC_massConc_within_range_vol',\n",
+ " 'BC_numConc_within_range_std', 'BC_numConc_within_range_vol',\n",
+ " 'S_numConc_std', 'S_numConc_vol', 'S_numConc_within_range_std',\n",
+ " 'S_numConc_within_range_vol'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 65,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ddf_pbp_hk.columns"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "59d7f603-6a83-402b-98c1-e8e279a19167",
+ "metadata": {},
+ "source": [
+ "# New code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "ac398f9f-e0a9-4798-b6d9-99d61ab4bb62",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sp2xr.helpers import load_yaml_cfg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "859a5acc-8038-4cf3-bc5d-256a2539042e",
+ "metadata": {
+ "jupyter": {
+ "source_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def apply_sets(cfg, sets):\n",
+ " def coerce(v):\n",
+ " if v.lower() in (\"true\", \"false\"):\n",
+ " return v.lower() == \"true\"\n",
+ " try:\n",
+ " if \".\" in v:\n",
+ " return float(v)\n",
+ " return int(v)\n",
+ " except (ValueError, TypeError):\n",
+ " return v\n",
+ "\n",
+ " for item in sets:\n",
+ " key, _, val = item.partition(\"=\")\n",
+ " if not _:\n",
+ " raise ValueError(f\"--set needs key=value, got: {item}\")\n",
+ " parts = key.split(\".\")\n",
+ " cur = cfg\n",
+ " for p in parts[:-1]:\n",
+ " cur = cur.setdefault(p, {})\n",
+ " cur[parts[-1]] = coerce(val)\n",
+ " return cfg\n",
+ "\n",
+ "\n",
+ "def get(cfg, dotted, default=None):\n",
+ " cur = cfg\n",
+ " for part in dotted.split(\".\"):\n",
+ " if not isinstance(cur, dict) or part not in cur:\n",
+ " return default\n",
+ " cur = cur[part]\n",
+ " return cur\n",
+ "\n",
+ "\n",
+ "def choose(cli_val, cfg, dotted, default=None):\n",
+ " return cli_val if cli_val is not None else get(cfg, dotted, default)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "4d65613e-50a5-4a12-a4b3-06bf1f1852d6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "base = load_yaml_cfg(\"tests/run_config.yaml\")\n",
+ "a = get(base, \"calibration.incandescence.curve_type\", None)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "id": "7701756a-ed84-4ee6-b2e1-64a98c8d646b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "pbp_raw = dd.read_parquet('/data/user/bertoz_b/merlin6data/SP2XR_code/tests/data/pbp_files_test/date=2019-05-07')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 114,
+ "id": "707f20e0-1f79-4d68-b632-f887afb7994a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "pbp_calib = pd.read_parquet('/data/user/bertoz_b/merlin6data/SP2XR_code/tests/data3/pbp_calibrated/date=2019-05-07 00:00:00')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 115,
+ "id": "ed06bd1c-2dae-46b8-b08f-c0507fa00674",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Time (sec) | \n",
+ " Packet Time Stamp | \n",
+ " Flag | \n",
+ " Dropped Records | \n",
+ " Record Count | \n",
+ " Record Size | \n",
+ " Particle Time Stamp | \n",
+ " Particle Flags | \n",
+ " Scatter relPeak | \n",
+ " Scatter Transit Time | \n",
+ " ... | \n",
+ " cnts_particles_for_tl_dist | \n",
+ " cnts_thin_total | \n",
+ " cnts_thick_total | \n",
+ " cnts_unclassified | \n",
+ " BC mass within range | \n",
+ " Opt diam scatt only within range | \n",
+ " temporary_col | \n",
+ " Sample Flow Controller Read (vccm) | \n",
+ " BC mass bin | \n",
+ " hour | \n",
+ "
\n",
+ " \n",
+ " | calculated_time | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 2019-05-07 00:00:00 | \n",
+ " 2.246402e+06 | \n",
+ " 2246430.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 47.0 | \n",
+ " 32.0 | \n",
+ " 2246429.75 | \n",
+ " 1.0 | \n",
+ " 8814524.0 | \n",
+ " 1157.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 255.719130 | \n",
+ " 1 | \n",
+ " 33.400002 | \n",
+ " NaN | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:00 | \n",
+ " 2.246402e+06 | \n",
+ " 2246430.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 47.0 | \n",
+ " 32.0 | \n",
+ " 2246429.75 | \n",
+ " 1.0 | \n",
+ " 58048.0 | \n",
+ " 310.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 108.520037 | \n",
+ " 1 | \n",
+ " 33.400002 | \n",
+ " NaN | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:00 | \n",
+ " 2.246402e+06 | \n",
+ " 2246430.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 47.0 | \n",
+ " 32.0 | \n",
+ " 2246429.75 | \n",
+ " 1.0 | \n",
+ " 20283240.0 | \n",
+ " 1332.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 294.642287 | \n",
+ " 1 | \n",
+ " 33.400002 | \n",
+ " NaN | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:00 | \n",
+ " 2.246402e+06 | \n",
+ " 2246430.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 47.0 | \n",
+ " 32.0 | \n",
+ " 2246429.75 | \n",
+ " 1.0 | \n",
+ " 17956730.0 | \n",
+ " 1407.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 288.604383 | \n",
+ " 1 | \n",
+ " 33.400002 | \n",
+ " NaN | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:00 | \n",
+ " 2.246402e+06 | \n",
+ " 2246430.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 47.0 | \n",
+ " 32.0 | \n",
+ " 2246429.75 | \n",
+ " 1.0 | \n",
+ " 1770382.0 | \n",
+ " 914.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 194.579235 | \n",
+ " 1 | \n",
+ " 33.400002 | \n",
+ " NaN | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 09:59:59 | \n",
+ " 2.282400e+06 | \n",
+ " 2282429.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 48.0 | \n",
+ " 32.0 | \n",
+ " 2282429.50 | \n",
+ " 1.0 | \n",
+ " 19365740.0 | \n",
+ " 1357.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 292.333517 | \n",
+ " 1 | \n",
+ " 33.299999 | \n",
+ " NaN | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 09:59:59 | \n",
+ " 2.282400e+06 | \n",
+ " 2282429.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 48.0 | \n",
+ " 32.0 | \n",
+ " 2282429.50 | \n",
+ " 1.0 | \n",
+ " 1585856.0 | \n",
+ " 874.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 190.963786 | \n",
+ " 1 | \n",
+ " 33.299999 | \n",
+ " NaN | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 09:59:59 | \n",
+ " 2.282400e+06 | \n",
+ " 2282429.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 48.0 | \n",
+ " 32.0 | \n",
+ " 2282429.50 | \n",
+ " 1.0 | \n",
+ " 1547770.0 | \n",
+ " 877.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 190.174346 | \n",
+ " 1 | \n",
+ " 33.299999 | \n",
+ " NaN | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 09:59:59 | \n",
+ " 2.282400e+06 | \n",
+ " 2282429.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 48.0 | \n",
+ " 32.0 | \n",
+ " 2282429.50 | \n",
+ " 1.0 | \n",
+ " 663630.0 | \n",
+ " 774.0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " NaN | \n",
+ " 164.603875 | \n",
+ " 1 | \n",
+ " 33.299999 | \n",
+ " NaN | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 09:59:59 | \n",
+ " 2.282400e+06 | \n",
+ " 2282429.75 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 48.0 | \n",
+ " 32.0 | \n",
+ " 2282429.75 | \n",
+ " 3.0 | \n",
+ " 314938.0 | \n",
+ " 373.0 | \n",
+ " ... | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2.679357 | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 33.299999 | \n",
+ " 14.0 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
3432203 rows × 65 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Time (sec) Packet Time Stamp Flag Dropped Records \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 2.246402e+06 2246430.75 0.0 0.0 \n",
+ "2019-05-07 00:00:00 2.246402e+06 2246430.75 0.0 0.0 \n",
+ "2019-05-07 00:00:00 2.246402e+06 2246430.75 0.0 0.0 \n",
+ "2019-05-07 00:00:00 2.246402e+06 2246430.75 0.0 0.0 \n",
+ "2019-05-07 00:00:00 2.246402e+06 2246430.75 0.0 0.0 \n",
+ "... ... ... ... ... \n",
+ "2019-05-07 09:59:59 2.282400e+06 2282429.75 0.0 0.0 \n",
+ "2019-05-07 09:59:59 2.282400e+06 2282429.75 0.0 0.0 \n",
+ "2019-05-07 09:59:59 2.282400e+06 2282429.75 0.0 0.0 \n",
+ "2019-05-07 09:59:59 2.282400e+06 2282429.75 0.0 0.0 \n",
+ "2019-05-07 09:59:59 2.282400e+06 2282429.75 0.0 0.0 \n",
+ "\n",
+ " Record Count Record Size Particle Time Stamp \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 47.0 32.0 2246429.75 \n",
+ "2019-05-07 00:00:00 47.0 32.0 2246429.75 \n",
+ "2019-05-07 00:00:00 47.0 32.0 2246429.75 \n",
+ "2019-05-07 00:00:00 47.0 32.0 2246429.75 \n",
+ "2019-05-07 00:00:00 47.0 32.0 2246429.75 \n",
+ "... ... ... ... \n",
+ "2019-05-07 09:59:59 48.0 32.0 2282429.50 \n",
+ "2019-05-07 09:59:59 48.0 32.0 2282429.50 \n",
+ "2019-05-07 09:59:59 48.0 32.0 2282429.50 \n",
+ "2019-05-07 09:59:59 48.0 32.0 2282429.50 \n",
+ "2019-05-07 09:59:59 48.0 32.0 2282429.75 \n",
+ "\n",
+ " Particle Flags Scatter relPeak Scatter Transit Time \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 1.0 8814524.0 1157.0 \n",
+ "2019-05-07 00:00:00 1.0 58048.0 310.0 \n",
+ "2019-05-07 00:00:00 1.0 20283240.0 1332.0 \n",
+ "2019-05-07 00:00:00 1.0 17956730.0 1407.0 \n",
+ "2019-05-07 00:00:00 1.0 1770382.0 914.0 \n",
+ "... ... ... ... \n",
+ "2019-05-07 09:59:59 1.0 19365740.0 1357.0 \n",
+ "2019-05-07 09:59:59 1.0 1585856.0 874.0 \n",
+ "2019-05-07 09:59:59 1.0 1547770.0 877.0 \n",
+ "2019-05-07 09:59:59 1.0 663630.0 774.0 \n",
+ "2019-05-07 09:59:59 3.0 314938.0 373.0 \n",
+ "\n",
+ " ... cnts_particles_for_tl_dist cnts_thin_total \\\n",
+ "calculated_time ... \n",
+ "2019-05-07 00:00:00 ... 0 0 \n",
+ "2019-05-07 00:00:00 ... 0 0 \n",
+ "2019-05-07 00:00:00 ... 0 0 \n",
+ "2019-05-07 00:00:00 ... 0 0 \n",
+ "2019-05-07 00:00:00 ... 0 0 \n",
+ "... ... ... ... \n",
+ "2019-05-07 09:59:59 ... 0 0 \n",
+ "2019-05-07 09:59:59 ... 0 0 \n",
+ "2019-05-07 09:59:59 ... 0 0 \n",
+ "2019-05-07 09:59:59 ... 0 0 \n",
+ "2019-05-07 09:59:59 ... 1 1 \n",
+ "\n",
+ " cnts_thick_total cnts_unclassified \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0 0 \n",
+ "2019-05-07 00:00:00 0 0 \n",
+ "2019-05-07 00:00:00 0 0 \n",
+ "2019-05-07 00:00:00 0 0 \n",
+ "2019-05-07 00:00:00 0 0 \n",
+ "... ... ... \n",
+ "2019-05-07 09:59:59 0 0 \n",
+ "2019-05-07 09:59:59 0 0 \n",
+ "2019-05-07 09:59:59 0 0 \n",
+ "2019-05-07 09:59:59 0 0 \n",
+ "2019-05-07 09:59:59 0 0 \n",
+ "\n",
+ " BC mass within range Opt diam scatt only within range \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN 255.719130 \n",
+ "2019-05-07 00:00:00 NaN 108.520037 \n",
+ "2019-05-07 00:00:00 NaN 294.642287 \n",
+ "2019-05-07 00:00:00 NaN 288.604383 \n",
+ "2019-05-07 00:00:00 NaN 194.579235 \n",
+ "... ... ... \n",
+ "2019-05-07 09:59:59 NaN 292.333517 \n",
+ "2019-05-07 09:59:59 NaN 190.963786 \n",
+ "2019-05-07 09:59:59 NaN 190.174346 \n",
+ "2019-05-07 09:59:59 NaN 164.603875 \n",
+ "2019-05-07 09:59:59 2.679357 NaN \n",
+ "\n",
+ " temporary_col Sample Flow Controller Read (vccm) \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 1 33.400002 \n",
+ "2019-05-07 00:00:00 1 33.400002 \n",
+ "2019-05-07 00:00:00 1 33.400002 \n",
+ "2019-05-07 00:00:00 1 33.400002 \n",
+ "2019-05-07 00:00:00 1 33.400002 \n",
+ "... ... ... \n",
+ "2019-05-07 09:59:59 1 33.299999 \n",
+ "2019-05-07 09:59:59 1 33.299999 \n",
+ "2019-05-07 09:59:59 1 33.299999 \n",
+ "2019-05-07 09:59:59 1 33.299999 \n",
+ "2019-05-07 09:59:59 1 33.299999 \n",
+ "\n",
+ " BC mass bin hour \n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN 0 \n",
+ "2019-05-07 00:00:00 NaN 0 \n",
+ "2019-05-07 00:00:00 NaN 0 \n",
+ "2019-05-07 00:00:00 NaN 0 \n",
+ "2019-05-07 00:00:00 NaN 0 \n",
+ "... ... ... \n",
+ "2019-05-07 09:59:59 NaN 9 \n",
+ "2019-05-07 09:59:59 NaN 9 \n",
+ "2019-05-07 09:59:59 NaN 9 \n",
+ "2019-05-07 09:59:59 NaN 9 \n",
+ "2019-05-07 09:59:59 14.0 9 \n",
+ "\n",
+ "[3432203 rows x 65 columns]"
+ ]
+ },
+ "execution_count": 115,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pbp_calib"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "id": "807ed973-226a-4d43-b3bc-65623e06c3e2",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "pbp_conc = pd.read_parquet('/data/user/bertoz_b/merlin6data/SP2XR_code/tests/data3/conc_1s/date=2019-05-07 00:00:00')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 110,
+ "id": "7aa989a0-2ea7-4084-8718-7623345a17ef",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "pbp_hist = pd.read_parquet('/data/user/bertoz_b/merlin6data/SP2XR_code/tests/data3/hists_1s/date=2019-05-07 00:00:00')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 112,
+ "id": "ac9cc244-5dae-407c-8b28-21f25bd1e786",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dNdlogDmev_all_700.33 | \n",
+ " dNdlogDmev_all_735.46 | \n",
+ " dNdlogDmev_all_772.36 | \n",
+ " dNdlogDmev_all_811.10 | \n",
+ " dNdlogDmev_all_851.79 | \n",
+ " dNdlogDmev_all_894.53 | \n",
+ " dNdlogDmev_all_939.40 | \n",
+ " dNdlogDmev_all_986.53 | \n",
+ " dNdlogDmev_all_1036.02 | \n",
+ " dNdlogDmev_all_1087.99 | \n",
+ " ... | \n",
+ " dNdlogDmev_0.32_timelag_360.66 | \n",
+ " dNdlogDmev_0.32_timelag_364.80 | \n",
+ " dNdlogDmev_0.32_timelag_368.94 | \n",
+ " dNdlogDmev_0.32_timelag_373.08 | \n",
+ " dNdlogDmev_0.32_timelag_377.22 | \n",
+ " dNdlogDmev_0.32_timelag_381.36 | \n",
+ " dNdlogDmev_0.32_timelag_385.51 | \n",
+ " dNdlogDmev_0.32_timelag_389.65 | \n",
+ " dNdlogDmev_0.32_timelag_393.79 | \n",
+ " dNdlogDmev_0.32_timelag_397.93 | \n",
+ "
\n",
+ " \n",
+ " | calculated_time | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 2019-05-07 00:00:00 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 169.009294 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.00000 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:01 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:02 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 84.75842 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:03 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 84.75842 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:04 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 84.758420 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.00000 | \n",
+ " 84.75842 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:55 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:56 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 85.013713 | \n",
+ " 0.00000 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:57 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:58 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 85.013713 | \n",
+ " 0.0 | \n",
+ " 85.013713 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.00000 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:59 | \n",
+ " 82.932638 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.00000 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
82568 rows × 1392 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dNdlogDmev_all_700.33 dNdlogDmev_all_735.46 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.000000 0.0 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.000000 0.0 \n",
+ "2019-05-07 00:00:03 0.000000 0.0 \n",
+ "2019-05-07 00:00:04 0.000000 0.0 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.000000 0.0 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.000000 0.0 \n",
+ "2019-05-07 23:59:59 82.932638 0.0 \n",
+ "\n",
+ " dNdlogDmev_all_772.36 dNdlogDmev_all_811.10 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.000000 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.000000 \n",
+ "2019-05-07 00:00:03 0.0 0.000000 \n",
+ "2019-05-07 00:00:04 0.0 0.000000 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.000000 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 85.013713 \n",
+ "2019-05-07 23:59:59 0.0 0.000000 \n",
+ "\n",
+ " dNdlogDmev_all_851.79 dNdlogDmev_all_894.53 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 169.009294 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.000000 \n",
+ "2019-05-07 00:00:03 0.0 0.000000 \n",
+ "2019-05-07 00:00:04 0.0 84.758420 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.000000 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 85.013713 \n",
+ "2019-05-07 23:59:59 0.0 0.000000 \n",
+ "\n",
+ " dNdlogDmev_all_939.40 dNdlogDmev_all_986.53 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.000000 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.000000 \n",
+ "2019-05-07 00:00:03 0.0 0.000000 \n",
+ "2019-05-07 00:00:04 0.0 0.000000 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 85.013713 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 0.000000 \n",
+ "2019-05-07 23:59:59 0.0 0.000000 \n",
+ "\n",
+ " dNdlogDmev_all_1036.02 dNdlogDmev_all_1087.99 ... \\\n",
+ "calculated_time ... \n",
+ "2019-05-07 00:00:00 0.00000 0.00000 ... \n",
+ "2019-05-07 00:00:01 NaN NaN ... \n",
+ "2019-05-07 00:00:02 84.75842 0.00000 ... \n",
+ "2019-05-07 00:00:03 84.75842 0.00000 ... \n",
+ "2019-05-07 00:00:04 0.00000 84.75842 ... \n",
+ "... ... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN ... \n",
+ "2019-05-07 23:59:56 0.00000 0.00000 ... \n",
+ "2019-05-07 23:59:57 NaN NaN ... \n",
+ "2019-05-07 23:59:58 0.00000 0.00000 ... \n",
+ "2019-05-07 23:59:59 0.00000 0.00000 ... \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_360.66 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_364.80 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_368.94 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_373.08 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_377.22 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_381.36 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_385.51 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_389.65 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_393.79 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ " dNdlogDmev_0.32_timelag_397.93 \n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 NaN \n",
+ "2019-05-07 00:00:01 NaN \n",
+ "2019-05-07 00:00:02 NaN \n",
+ "2019-05-07 00:00:03 NaN \n",
+ "2019-05-07 00:00:04 NaN \n",
+ "... ... \n",
+ "2019-05-07 23:59:55 NaN \n",
+ "2019-05-07 23:59:56 NaN \n",
+ "2019-05-07 23:59:57 NaN \n",
+ "2019-05-07 23:59:58 NaN \n",
+ "2019-05-07 23:59:59 NaN \n",
+ "\n",
+ "[82568 rows x 1392 columns]"
+ ]
+ },
+ "execution_count": 112,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pbp_hist.sort_index()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 108,
+ "id": "181df639-d16e-44b9-9354-abfb1786f0f1",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['dNdlogDmev_thick_700.33',\n",
+ " 'dNdlogDmev_thick_735.46',\n",
+ " 'dNdlogDmev_thick_772.36',\n",
+ " 'dNdlogDmev_thick_811.10',\n",
+ " 'dNdlogDmev_thick_851.79',\n",
+ " 'dNdlogDmev_thick_894.53',\n",
+ " 'dNdlogDmev_thick_939.40',\n",
+ " 'dNdlogDmev_thick_986.53',\n",
+ " 'dNdlogDmev_thick_1036.02',\n",
+ " 'dNdlogDmev_thick_1087.99',\n",
+ " 'dNdlogDmev_thick_1142.57',\n",
+ " 'dNdlogDmev_thick_1199.89',\n",
+ " 'dNdlogDmev_thick_1260.08',\n",
+ " 'dNdlogDmev_thick_1323.30',\n",
+ " 'dNdlogDmev_thick_1389.68',\n",
+ " 'dNdlogDmev_thick_1459.40',\n",
+ " 'dNdlogDmev_thick_1532.61',\n",
+ " 'dNdlogDmev_thick_1609.50',\n",
+ " 'dNdlogDmev_thick_1690.24',\n",
+ " 'dNdlogDmev_thick_1775.03',\n",
+ " 'dNdlogDmev_thick_1864.08',\n",
+ " 'dNdlogDmev_thick_1957.59',\n",
+ " 'dNdlogDmev_thick_2055.80',\n",
+ " 'dNdlogDmev_thick_2158.93',\n",
+ " 'dNdlogDmev_thick_2267.23',\n",
+ " 'dNdlogDmev_thick_2380.97',\n",
+ " 'dNdlogDmev_thick_2500.42',\n",
+ " 'dNdlogDmev_thick_2625.85',\n",
+ " 'dNdlogDmev_thick_2757.58',\n",
+ " 'dNdlogDmev_thick_2895.92',\n",
+ " 'dNdlogDmev_thick_3041.20',\n",
+ " 'dNdlogDmev_thick_3193.77',\n",
+ " 'dNdlogDmev_thick_3353.98',\n",
+ " 'dNdlogDmev_thick_3522.24',\n",
+ " 'dNdlogDmev_thick_3698.94',\n",
+ " 'dNdlogDmev_thick_3884.50',\n",
+ " 'dNdlogDmev_thick_4079.37',\n",
+ " 'dNdlogDmev_thick_4284.02',\n",
+ " 'dNdlogDmev_thick_4498.93',\n",
+ " 'dNdlogDmev_thick_4724.63',\n",
+ " 'dNdlogDmev_thick_4961.65',\n",
+ " 'dNdlogDmev_thick_5210.55',\n",
+ " 'dNdlogDmev_thick_5471.95',\n",
+ " 'dNdlogDmev_thick_5746.45',\n",
+ " 'dNdlogDmev_thick_6034.73',\n",
+ " 'dNdlogDmev_thick_6337.47',\n",
+ " 'dNdlogDmev_thick_6655.40',\n",
+ " 'dNdlogDmev_thick_6989.28',\n",
+ " 'dNdlogDmev_thick_7339.90',\n",
+ " 'dNdlogDmev_thick_sat_700.33',\n",
+ " 'dNdlogDmev_thick_sat_735.46',\n",
+ " 'dNdlogDmev_thick_sat_772.36',\n",
+ " 'dNdlogDmev_thick_sat_811.10',\n",
+ " 'dNdlogDmev_thick_sat_851.79',\n",
+ " 'dNdlogDmev_thick_sat_894.53',\n",
+ " 'dNdlogDmev_thick_sat_939.40',\n",
+ " 'dNdlogDmev_thick_sat_986.53',\n",
+ " 'dNdlogDmev_thick_sat_1036.02',\n",
+ " 'dNdlogDmev_thick_sat_1087.99',\n",
+ " 'dNdlogDmev_thick_sat_1142.57',\n",
+ " 'dNdlogDmev_thick_sat_1199.89',\n",
+ " 'dNdlogDmev_thick_sat_1260.08',\n",
+ " 'dNdlogDmev_thick_sat_1323.30',\n",
+ " 'dNdlogDmev_thick_sat_1389.68',\n",
+ " 'dNdlogDmev_thick_sat_1459.40',\n",
+ " 'dNdlogDmev_thick_sat_1532.61',\n",
+ " 'dNdlogDmev_thick_sat_1609.50',\n",
+ " 'dNdlogDmev_thick_sat_1690.24',\n",
+ " 'dNdlogDmev_thick_sat_1775.03',\n",
+ " 'dNdlogDmev_thick_sat_1864.08',\n",
+ " 'dNdlogDmev_thick_sat_1957.59',\n",
+ " 'dNdlogDmev_thick_sat_2055.80',\n",
+ " 'dNdlogDmev_thick_sat_2158.93',\n",
+ " 'dNdlogDmev_thick_sat_2267.23',\n",
+ " 'dNdlogDmev_thick_sat_2380.97',\n",
+ " 'dNdlogDmev_thick_sat_2500.42',\n",
+ " 'dNdlogDmev_thick_sat_2625.85',\n",
+ " 'dNdlogDmev_thick_sat_2757.58',\n",
+ " 'dNdlogDmev_thick_sat_2895.92',\n",
+ " 'dNdlogDmev_thick_sat_3041.20',\n",
+ " 'dNdlogDmev_thick_sat_3193.77',\n",
+ " 'dNdlogDmev_thick_sat_3353.98',\n",
+ " 'dNdlogDmev_thick_sat_3522.24',\n",
+ " 'dNdlogDmev_thick_sat_3698.94',\n",
+ " 'dNdlogDmev_thick_sat_3884.50',\n",
+ " 'dNdlogDmev_thick_sat_4079.37',\n",
+ " 'dNdlogDmev_thick_sat_4284.02',\n",
+ " 'dNdlogDmev_thick_sat_4498.93',\n",
+ " 'dNdlogDmev_thick_sat_4724.63',\n",
+ " 'dNdlogDmev_thick_sat_4961.65',\n",
+ " 'dNdlogDmev_thick_sat_5210.55',\n",
+ " 'dNdlogDmev_thick_sat_5471.95',\n",
+ " 'dNdlogDmev_thick_sat_5746.45',\n",
+ " 'dNdlogDmev_thick_sat_6034.73',\n",
+ " 'dNdlogDmev_thick_sat_6337.47',\n",
+ " 'dNdlogDmev_thick_sat_6655.40',\n",
+ " 'dNdlogDmev_thick_sat_6989.28',\n",
+ " 'dNdlogDmev_thick_sat_7339.90',\n",
+ " 'dNdlogDmev_thick_total_700.33',\n",
+ " 'dNdlogDmev_thick_total_735.46',\n",
+ " 'dNdlogDmev_thick_total_772.36',\n",
+ " 'dNdlogDmev_thick_total_811.10',\n",
+ " 'dNdlogDmev_thick_total_851.79',\n",
+ " 'dNdlogDmev_thick_total_894.53',\n",
+ " 'dNdlogDmev_thick_total_939.40',\n",
+ " 'dNdlogDmev_thick_total_986.53',\n",
+ " 'dNdlogDmev_thick_total_1036.02',\n",
+ " 'dNdlogDmev_thick_total_1087.99',\n",
+ " 'dNdlogDmev_thick_total_1142.57',\n",
+ " 'dNdlogDmev_thick_total_1199.89',\n",
+ " 'dNdlogDmev_thick_total_1260.08',\n",
+ " 'dNdlogDmev_thick_total_1323.30',\n",
+ " 'dNdlogDmev_thick_total_1389.68',\n",
+ " 'dNdlogDmev_thick_total_1459.40',\n",
+ " 'dNdlogDmev_thick_total_1532.61',\n",
+ " 'dNdlogDmev_thick_total_1609.50',\n",
+ " 'dNdlogDmev_thick_total_1690.24',\n",
+ " 'dNdlogDmev_thick_total_1775.03',\n",
+ " 'dNdlogDmev_thick_total_1864.08',\n",
+ " 'dNdlogDmev_thick_total_1957.59',\n",
+ " 'dNdlogDmev_thick_total_2055.80',\n",
+ " 'dNdlogDmev_thick_total_2158.93',\n",
+ " 'dNdlogDmev_thick_total_2267.23',\n",
+ " 'dNdlogDmev_thick_total_2380.97',\n",
+ " 'dNdlogDmev_thick_total_2500.42',\n",
+ " 'dNdlogDmev_thick_total_2625.85',\n",
+ " 'dNdlogDmev_thick_total_2757.58',\n",
+ " 'dNdlogDmev_thick_total_2895.92',\n",
+ " 'dNdlogDmev_thick_total_3041.20',\n",
+ " 'dNdlogDmev_thick_total_3193.77',\n",
+ " 'dNdlogDmev_thick_total_3353.98',\n",
+ " 'dNdlogDmev_thick_total_3522.24',\n",
+ " 'dNdlogDmev_thick_total_3698.94',\n",
+ " 'dNdlogDmev_thick_total_3884.50',\n",
+ " 'dNdlogDmev_thick_total_4079.37',\n",
+ " 'dNdlogDmev_thick_total_4284.02',\n",
+ " 'dNdlogDmev_thick_total_4498.93',\n",
+ " 'dNdlogDmev_thick_total_4724.63',\n",
+ " 'dNdlogDmev_thick_total_4961.65',\n",
+ " 'dNdlogDmev_thick_total_5210.55',\n",
+ " 'dNdlogDmev_thick_total_5471.95',\n",
+ " 'dNdlogDmev_thick_total_5746.45',\n",
+ " 'dNdlogDmev_thick_total_6034.73',\n",
+ " 'dNdlogDmev_thick_total_6337.47',\n",
+ " 'dNdlogDmev_thick_total_6655.40',\n",
+ " 'dNdlogDmev_thick_total_6989.28',\n",
+ " 'dNdlogDmev_thick_total_7339.90']"
+ ]
+ },
+ "execution_count": 108,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "[col for col in pbp_hist.columns if 'dNdlogDmev_thick' in col]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 86,
+ "id": "c3d4c259-1d26-48fa-8047-6c34066da6f3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DatetimeIndex([], dtype='datetime64[us]', name='calculated_time', freq=None)"
+ ]
+ },
+ "execution_count": 86,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "final_df.index.difference(pbp_hist.sort_index().index)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 92,
+ "id": "69fb2933-4d6d-4263-8837-2224a17968fb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "82568"
+ ]
+ },
+ "execution_count": 92,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(pbp_conc)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 93,
+ "id": "ac25441f-a387-486b-9910-ca08ddd35e1e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "83634"
+ ]
+ },
+ "execution_count": 93,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(pbp_hist)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 91,
+ "id": "074f9bcd-d4fe-4c0a-8b55-e7e926fb4b28",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dNdlogDmev_all_700.33 | \n",
+ " dNdlogDmev_all_735.46 | \n",
+ " dNdlogDmev_all_772.36 | \n",
+ " dNdlogDmev_all_811.10 | \n",
+ " dNdlogDmev_all_851.79 | \n",
+ " dNdlogDmev_all_894.53 | \n",
+ " dNdlogDmev_all_939.40 | \n",
+ " dNdlogDmev_all_986.53 | \n",
+ " dNdlogDmev_all_1036.02 | \n",
+ " dNdlogDmev_all_1087.99 | \n",
+ " ... | \n",
+ " dNdlogDmev_0.32_timelag_360.66 | \n",
+ " dNdlogDmev_0.32_timelag_364.80 | \n",
+ " dNdlogDmev_0.32_timelag_368.94 | \n",
+ " dNdlogDmev_0.32_timelag_373.08 | \n",
+ " dNdlogDmev_0.32_timelag_377.22 | \n",
+ " dNdlogDmev_0.32_timelag_381.36 | \n",
+ " dNdlogDmev_0.32_timelag_385.51 | \n",
+ " dNdlogDmev_0.32_timelag_389.65 | \n",
+ " dNdlogDmev_0.32_timelag_393.79 | \n",
+ " dNdlogDmev_0.32_timelag_397.93 | \n",
+ "
\n",
+ " \n",
+ " | calculated_time | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0 rows × 1392 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ "Empty DataFrame\n",
+ "Columns: [dNdlogDmev_all_700.33, dNdlogDmev_all_735.46, dNdlogDmev_all_772.36, dNdlogDmev_all_811.10, dNdlogDmev_all_851.79, dNdlogDmev_all_894.53, dNdlogDmev_all_939.40, dNdlogDmev_all_986.53, dNdlogDmev_all_1036.02, dNdlogDmev_all_1087.99, dNdlogDmev_all_1142.57, dNdlogDmev_all_1199.89, dNdlogDmev_all_1260.08, dNdlogDmev_all_1323.30, dNdlogDmev_all_1389.68, dNdlogDmev_all_1459.40, dNdlogDmev_all_1532.61, dNdlogDmev_all_1609.50, dNdlogDmev_all_1690.24, dNdlogDmev_all_1775.03, dNdlogDmev_all_1864.08, dNdlogDmev_all_1957.59, dNdlogDmev_all_2055.80, dNdlogDmev_all_2158.93, dNdlogDmev_all_2267.23, dNdlogDmev_all_2380.97, dNdlogDmev_all_2500.42, dNdlogDmev_all_2625.85, dNdlogDmev_all_2757.58, dNdlogDmev_all_2895.92, dNdlogDmev_all_3041.20, dNdlogDmev_all_3193.77, dNdlogDmev_all_3353.98, dNdlogDmev_all_3522.24, dNdlogDmev_all_3698.94, dNdlogDmev_all_3884.50, dNdlogDmev_all_4079.37, dNdlogDmev_all_4284.02, dNdlogDmev_all_4498.93, dNdlogDmev_all_4724.63, dNdlogDmev_all_4961.65, dNdlogDmev_all_5210.55, dNdlogDmev_all_5471.95, dNdlogDmev_all_5746.45, dNdlogDmev_all_6034.73, dNdlogDmev_all_6337.47, dNdlogDmev_all_6655.40, dNdlogDmev_all_6989.28, dNdlogDmev_all_7339.90, dMdlogDmev_all_700.33, dMdlogDmev_all_735.46, dMdlogDmev_all_772.36, dMdlogDmev_all_811.10, dMdlogDmev_all_851.79, dMdlogDmev_all_894.53, dMdlogDmev_all_939.40, dMdlogDmev_all_986.53, dMdlogDmev_all_1036.02, dMdlogDmev_all_1087.99, dMdlogDmev_all_1142.57, dMdlogDmev_all_1199.89, dMdlogDmev_all_1260.08, dMdlogDmev_all_1323.30, dMdlogDmev_all_1389.68, dMdlogDmev_all_1459.40, dMdlogDmev_all_1532.61, dMdlogDmev_all_1609.50, dMdlogDmev_all_1690.24, dMdlogDmev_all_1775.03, dMdlogDmev_all_1864.08, dMdlogDmev_all_1957.59, dMdlogDmev_all_2055.80, dMdlogDmev_all_2158.93, dMdlogDmev_all_2267.23, dMdlogDmev_all_2380.97, dMdlogDmev_all_2500.42, dMdlogDmev_all_2625.85, dMdlogDmev_all_2757.58, dMdlogDmev_all_2895.92, dMdlogDmev_all_3041.20, dMdlogDmev_all_3193.77, dMdlogDmev_all_3353.98, dMdlogDmev_all_3522.24, dMdlogDmev_all_3698.94, dMdlogDmev_all_3884.50, dMdlogDmev_all_4079.37, dMdlogDmev_all_4284.02, dMdlogDmev_all_4498.93, dMdlogDmev_all_4724.63, dMdlogDmev_all_4961.65, dMdlogDmev_all_5210.55, dMdlogDmev_all_5471.95, dMdlogDmev_all_5746.45, dMdlogDmev_all_6034.73, dMdlogDmev_all_6337.47, dMdlogDmev_all_6655.40, dMdlogDmev_all_6989.28, dMdlogDmev_all_7339.90, dNdlogDmev_thin_700.33, dNdlogDmev_thin_735.46, ...]\n",
+ "Index: []\n",
+ "\n",
+ "[0 rows x 1392 columns]"
+ ]
+ },
+ "execution_count": 91,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pbp_hist.loc[pbp_hist.sort_index().index.difference(final_df.index)].dropna()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 81,
+ "id": "66009bf3-4d84-4f55-97b7-6d50a8de834d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "calculated_time\n",
+ "2019-05-07 00:00:00 0.000000\n",
+ "2019-05-07 00:00:02 0.000000\n",
+ "2019-05-07 00:00:03 0.000000\n",
+ "2019-05-07 00:00:04 0.000000\n",
+ "2019-05-07 00:00:05 0.000000\n",
+ " ... \n",
+ "2019-05-07 23:59:53 0.000000\n",
+ "2019-05-07 23:59:54 82.932638\n",
+ "2019-05-07 23:59:56 0.000000\n",
+ "2019-05-07 23:59:58 0.000000\n",
+ "2019-05-07 23:59:59 82.932638\n",
+ "Name: dNdlogDmev_all_700.33, Length: 61682, dtype: float64"
+ ]
+ },
+ "execution_count": 81,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pbp_hist.sort_index()['dNdlogDmev_all_700.33'].dropna()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 96,
+ "id": "9770a008-a532-4cea-a6c7-7df8ada8bc30",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "calculated_time\n",
+ "2019-05-07 00:00:00 0.000000\n",
+ "2019-05-07 00:00:01 NaN\n",
+ "2019-05-07 00:00:02 0.000000\n",
+ "2019-05-07 00:00:03 0.000000\n",
+ "2019-05-07 00:00:04 0.000000\n",
+ " ... \n",
+ "2019-05-07 23:59:55 NaN\n",
+ "2019-05-07 23:59:56 0.000000\n",
+ "2019-05-07 23:59:57 NaN\n",
+ "2019-05-07 23:59:58 0.000000\n",
+ "2019-05-07 23:59:59 82.932638\n",
+ "Name: dNdlogDmev_all_70.03, Length: 82568, dtype: float64"
+ ]
+ },
+ "execution_count": 96,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "final_df['dNdlogDmev_all_70.03']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 109,
+ "id": "c3075bf4-d25c-47d1-b87f-3983276755f3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 109,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAiYElEQVR4nO3dfXCU5cHv8d+GkOUtu2mAZJMSMOALRl60qDGjUi05SRAZUTojmjrgcOBIE08hiDQ9CqXtM6G0Yzs4KM/0tMQ+Fd/OiA60MicFE441gEQYBDEPYaKBJpsgmeyGKElIrvOHD1tXAmRDNntt/H5m7hly39durr0as9/eu3vHYYwxAgAAsEhMpCcAAADwTQQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOvERnoCfdHd3a36+nrFx8fL4XBEejoAAKAXjDFqbW1VamqqYmIuf44kKgOlvr5eaWlpkZ4GAADog5MnT2rcuHGXHROVgRIfHy/pqwfocrkiPBsAANAbfr9faWlpgefxy4nKQLnwso7L5SJQAACIMr15ewZvkgUAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYJyov1AYAAMKjq9tof22zmlrPKSl+mG5PT9SQmIH/u3cECgAAkCTtPNKgdds/VoPvXGBfinuY1s7NUN6UlAGdCy/xAAAA7TzSoGV/+TAoTiTJ6zunZX/5UDuPNAzofAgUAAC+5bq6jdZt/1imh2MX9q3b/rG6unsaER4ECgAA33L7a5svOnPydUZSg++c9tc2D9icCBQAAL7lmlovHSd9GdcfCBQAAL7lkuKH9eu4/hBSoJSUlOi2225TfHy8kpKSNG/ePFVXVweNueeee+RwOIK2J554ImhMXV2d5syZoxEjRigpKUmrVq3S+fPnr/7RAACAkN2enqgU9zBd6sPEDn31aZ7b0xMHbE4hBUpFRYUKCgq0d+9elZWVqbOzUzk5OWprawsat2TJEjU0NAS2DRs2BI51dXVpzpw56ujo0Pvvv6+XXnpJpaWlWrNmTf88IgAAEJIhMQ6tnZshSRdFyoWv187NGNDroTiMMX1+S+7p06eVlJSkiooKzZw5U9JXZ1Buvvlm/f73v+/xNu+8847uv/9+1dfXKzk5WZK0efNmrV69WqdPn1ZcXNwVv6/f75fb7ZbP55PL5err9AEAwNeE+zoooTx/X9WF2nw+nyQpMTH4lM/LL7+sv/zlL/J4PJo7d66effZZjRgxQpJUWVmpqVOnBuJEknJzc7Vs2TIdPXpUt9xyy0Xfp729Xe3t7YGv/X7/1UwbAAD0IG9Kiv5bhie6ryTb3d2t5cuX684779SUKVMC+x999FFNmDBBqampOnz4sFavXq3q6mq9+eabkiSv1xsUJ5ICX3u93h6/V0lJidatW9fXqQIAgF4aEuNQ1qTRkZ5G3wOloKBAR44c0XvvvRe0f+nSpYF/T506VSkpKZo1a5ZOnDihSZMm9el7FRcXq6ioKPC13+9XWlpa3yYOAACs16ePGRcWFmrHjh169913NW7cuMuOzczMlCTV1NRIkjwejxobG4PGXPja4/H0eB9Op1MulytoAwAAg1dIgWKMUWFhobZt26bdu3crPT39irc5dOiQJCkl5as312RlZemjjz5SU1NTYExZWZlcLpcyMjJCmQ4AABikQnqJp6CgQFu3btXbb7+t+Pj4wHtG3G63hg8frhMnTmjr1q267777NHr0aB0+fFgrVqzQzJkzNW3aNElSTk6OMjIy9Nhjj2nDhg3yer165plnVFBQIKfT2f+PEAAARJ2QPmbscPT8Lt4tW7Zo0aJFOnnypH70ox/pyJEjamtrU1pamh588EE988wzQS/LfPbZZ1q2bJnKy8s1cuRILVy4UOvXr1dsbO96iY8ZAwAQfUJ5/r6q66BECoECAED0CeX5m7/FAwAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6IQVKSUmJbrvtNsXHxyspKUnz5s1TdXV10Jhz586poKBAo0eP1qhRozR//nw1NjYGjamrq9OcOXM0YsQIJSUladWqVTp//vzVPxoAADAohBQoFRUVKigo0N69e1VWVqbOzk7l5OSora0tMGbFihXavn273njjDVVUVKi+vl4PPfRQ4HhXV5fmzJmjjo4Ovf/++3rppZdUWlqqNWvW9N+jAgAAUc1hjDF9vfHp06eVlJSkiooKzZw5Uz6fT2PHjtXWrVv1wx/+UJL0ySef6MYbb1RlZaXuuOMOvfPOO7r//vtVX1+v5ORkSdLmzZu1evVqnT59WnFxcVf8vn6/X263Wz6fTy6Xq6/TBwAAAyiU5++reg+Kz+eTJCUmJkqSqqqq1NnZqezs7MCYyZMna/z48aqsrJQkVVZWaurUqYE4kaTc3Fz5/X4dPXq0x+/T3t4uv98ftAEAgMGrz4HS3d2t5cuX684779SUKVMkSV6vV3FxcUpISAgam5ycLK/XGxjz9Ti5cPzCsZ6UlJTI7XYHtrS0tL5OGwAARIE+B0pBQYGOHDmiV199tT/n06Pi4mL5fL7AdvLkybB/TwAAEDmxfblRYWGhduzYoT179mjcuHGB/R6PRx0dHWppaQk6i9LY2CiPxxMYs3///qD7u/ApnwtjvsnpdMrpdPZlqgAAIAqFdAbFGKPCwkJt27ZNu3fvVnp6etDxGTNmaOjQodq1a1dgX3V1terq6pSVlSVJysrK0kcffaSmpqbAmLKyMrlcLmVkZFzNYwEAAINESGdQCgoKtHXrVr399tuKj48PvGfE7XZr+PDhcrvdWrx4sYqKipSYmCiXy6Unn3xSWVlZuuOOOyRJOTk5ysjI0GOPPaYNGzbI6/XqmWeeUUFBAWdJAACApBA/ZuxwOHrcv2XLFi1atEjSVxdqW7lypV555RW1t7crNzdXL7zwQtDLN5999pmWLVum8vJyjRw5UgsXLtT69esVG9u7XuJjxgAARJ9Qnr+v6jookUKgAAAQfQbsOigAAADhQKAAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALBObKQnAAAIXY33rLJ/XxH4euRQh/7vinv13cThEZwV0H8IFACIMuk//avMN/a1dRrduWG34oY49J//dl9E5gX0J17iAYAock0PcfJ1HV1G1/+vvw3YfIBwIVAAIEo89dqBXo3r6DL6Z/OXYZ4NEF4ECgBEgY7z3fo/Bxt7PX72xoorDwIsRqAAQBT4j8pPQxrf1t4VnokAA4RAAYAo8FnzFyGNH+kcEqaZAAODQAGAKDAhcURI49/5n98P00yAgUGgAEAUeCzrGsU4ejc2boiD66Eg6hEoABAF4mJjtOTu9CuP4zooGCS4UBsARIni+zIkSX/4f7Xq/sbFUIZI2vP0DzhzgkHDYYy53DV/rOT3++V2u+Xz+eRyuSI9HQAYUB3nu/UflZ/qs+YvNCFxhB7LukZxsZwQh/1Cef7mDAoARJm42BgtvntipKcBhBXJDQAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA64QcKHv27NHcuXOVmpoqh8Oht956K+j4okWL5HA4gra8vLygMc3NzcrPz5fL5VJCQoIWL16ss2fPXtUDAQAAg0fIgdLW1qbp06dr06ZNlxyTl5enhoaGwPbKK68EHc/Pz9fRo0dVVlamHTt2aM+ePVq6dGnoswcAAINSbKg3mD17tmbPnn3ZMU6nUx6Pp8djx44d086dO/XBBx/o1ltvlSQ9//zzuu+++/Tb3/5WqampoU4JAAAMMmF5D0p5ebmSkpJ0ww03aNmyZTpz5kzgWGVlpRISEgJxIknZ2dmKiYnRvn37ery/9vZ2+f3+oA0AAAxe/R4oeXl5+vOf/6xdu3bp17/+tSoqKjR79mx1dXVJkrxer5KSkoJuExsbq8TERHm93h7vs6SkRG63O7ClpaX197QBAIBFQn6J50oWLFgQ+PfUqVM1bdo0TZo0SeXl5Zo1a1af7rO4uFhFRUWBr/1+P5ECAMAgFvaPGU+cOFFjxoxRTU2NJMnj8aipqSlozPnz59Xc3HzJ9604nU65XK6gDQAADF5hD5RTp07pzJkzSklJkSRlZWWppaVFVVVVgTG7d+9Wd3e3MjMzwz0dAAAQBUJ+iefs2bOBsyGSVFtbq0OHDikxMVGJiYlat26d5s+fL4/HoxMnTujpp5/Wtddeq9zcXEnSjTfeqLy8PC1ZskSbN29WZ2enCgsLtWDBAj7BAwAAJEkOY4wJ5Qbl5eW69957L9q/cOFCvfjii5o3b54OHjyolpYWpaamKicnR7/85S+VnJwcGNvc3KzCwkJt375dMTExmj9/vjZu3KhRo0b1ag5+v19ut1s+n4+XewAAiBKhPH+HHCg2IFAAAIg+oTx/87d4AACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFgn5EDZs2eP5s6dq9TUVDkcDr311ltBx40xWrNmjVJSUjR8+HBlZ2fr+PHjQWOam5uVn58vl8ulhIQELV68WGfPnr2qBwIAAAaPkAOlra1N06dP16ZNm3o8vmHDBm3cuFGbN2/Wvn37NHLkSOXm5urcuXOBMfn5+Tp69KjKysq0Y8cO7dmzR0uXLu37owAAAIOKwxhj+nxjh0Pbtm3TvHnzJH119iQ1NVUrV67UU089JUny+XxKTk5WaWmpFixYoGPHjikjI0MffPCBbr31VknSzp07dd999+nUqVNKTU294vf1+/1yu93y+XxyuVx9nT4AABhAoTx/9+t7UGpra+X1epWdnR3Y53a7lZmZqcrKSklSZWWlEhISAnEiSdnZ2YqJidG+fft6vN/29nb5/f6gDQAADF79Giher1eSlJycHLQ/OTk5cMzr9SopKSnoeGxsrBITEwNjvqmkpERutzuwpaWl9ee0AQCAZaLiUzzFxcXy+XyB7eTJk5GeEgAACKN+DRSPxyNJamxsDNrf2NgYOObxeNTU1BR0/Pz582pubg6M+San0ymXyxW0AQCAwatfAyU9PV0ej0e7du0K7PP7/dq3b5+ysrIkSVlZWWppaVFVVVVgzO7du9Xd3a3MzMz+nA4AAIhSsaHe4OzZs6qpqQl8XVtbq0OHDikxMVHjx4/X8uXL9atf/UrXXXed0tPT9eyzzyo1NTXwSZ8bb7xReXl5WrJkiTZv3qzOzk4VFhZqwYIFvfoEDwAAGPxCDpQDBw7o3nvvDXxdVFQkSVq4cKFKS0v19NNPq62tTUuXLlVLS4vuuusu7dy5U8OGDQvc5uWXX1ZhYaFmzZqlmJgYzZ8/Xxs3buyHhwMAAAaDq7oOSqRwHRQAAKJPxK6DAgAA0B8IFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWCflKsgBCc81P/3rRvtJHb9U905IjMBsAiA6cQQHCqKc4kaRFWw9c8hgAgEABwqY3AUKkAEDPCBQgDEIJj/LDjWGcCQBEJwIF6Gf//d9DOyuyaOuBMM0EAKIXgQL0s7/XRnoGABD9CBQAAGAdAgWIsNJHb430FADAOgQK0M+y00Mbz/VQAOBiBArQz/73/5jT67Gfru/9WAD4NiFQgDC4Unjk3jCCOAGAyyBQgDD5dP2ci17uuTZB+s9fzda/P35vROYEANGCv8UDhFEoL/cAAP6FMygAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwTr8Hys9//nM5HI6gbfLkyYHj586dU0FBgUaPHq1Ro0Zp/vz5amxs7O9pAACAKBaWMyg33XSTGhoaAtt7770XOLZixQpt375db7zxhioqKlRfX6+HHnooHNMAAABRKjYsdxobK4/Hc9F+n8+nP/7xj9q6dat+8IMfSJK2bNmiG2+8UXv37tUdd9wRjukAAIAoE5YzKMePH1dqaqomTpyo/Px81dXVSZKqqqrU2dmp7OzswNjJkydr/PjxqqysvOT9tbe3y+/3B20AAGDw6vdAyczMVGlpqXbu3KkXX3xRtbW1uvvuu9Xa2iqv16u4uDglJCQE3SY5OVler/eS91lSUiK32x3Y0tLS+nvaAADAIv3+Es/s2bMD/542bZoyMzM1YcIEvf766xo+fHif7rO4uFhFRUWBr/1+P5ECAMAgFvaPGSckJOj6669XTU2NPB6POjo61NLSEjSmsbGxx/esXOB0OuVyuYI2AAAweIU9UM6ePasTJ04oJSVFM2bM0NChQ7Vr167A8erqatXV1SkrKyvcUwEAAFGi31/ieeqppzR37lxNmDBB9fX1Wrt2rYYMGaJHHnlEbrdbixcvVlFRkRITE+VyufTkk08qKyuLT/AAAICAfg+UU6dO6ZFHHtGZM2c0duxY3XXXXdq7d6/Gjh0rSfrd736nmJgYzZ8/X+3t7crNzdULL7zQ39MAAABRzGGMMZGeRKj8fr/cbrd8Ph/vRwEAIEqE8vzN3+IBAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABYh0ABAADWIVAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHViIz0Bm1zz079etO/T9XMiMBMAAL7dInoGZdOmTbrmmms0bNgwZWZmav/+/RGbS09xcrn9AAAgfCIWKK+99pqKioq0du1affjhh5o+fbpyc3PV1NQ04HO5UoQQKQAADKyIBcpzzz2nJUuW6PHHH1dGRoY2b96sESNG6E9/+tOAzqO38UGkAAAwcCISKB0dHaqqqlJ2dva/JhITo+zsbFVWVl40vr29XX6/P2gDAACDV0QC5fPPP1dXV5eSk5OD9icnJ8vr9V40vqSkRG63O7ClpaUN1FQBAEAERMXHjIuLi+Xz+QLbyZMnIz0lAAAQRhH5mPGYMWM0ZMgQNTY2Bu1vbGyUx+O5aLzT6ZTT6Ryo6QEAgAiLyBmUuLg4zZgxQ7t27Qrs6+7u1q5du5SVlTWgc+ntdU64HgoAAAMnYi/xFBUV6Q9/+INeeuklHTt2TMuWLVNbW5sef/zxAZ/LleKDOAEAYGBF7EqyDz/8sE6fPq01a9bI6/Xq5ptv1s6dOy964+xA+XT9HK4kCwCAJRzGGBPpSYTK7/fL7XbL5/PJ5XJFejoAAKAXQnn+jopP8QAAgG8XAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgnYhd6v5qXLj4rd/vj/BMAABAb1143u7NReyjMlBaW1slSWlpaRGeCQAACFVra6vcbvdlx0Tl3+Lp7u5WfX294uPj5XA4+vW+/X6/0tLSdPLkSf7OTxiwvuHHGocfaxxerG/4RWqNjTFqbW1VamqqYmIu/y6TqDyDEhMTo3HjxoX1e7hcLv7DCCPWN/xY4/BjjcOL9Q2/SKzxlc6cXMCbZAEAgHUIFAAAYB0C5RucTqfWrl0rp9MZ6akMSqxv+LHG4ccahxfrG37RsMZR+SZZAAAwuHEGBQAAWIdAAQAA1iFQAACAdQgUAABgHQLlazZt2qRrrrlGw4YNU2Zmpvbv3x/pKUWtn//853I4HEHb5MmTA8fPnTungoICjR49WqNGjdL8+fPV2NgYwRnbbc+ePZo7d65SU1PlcDj01ltvBR03xmjNmjVKSUnR8OHDlZ2drePHjweNaW5uVn5+vlwulxISErR48WKdPXt2AB+F3a60xosWLbroZzovLy9oDGt8aSUlJbrtttsUHx+vpKQkzZs3T9XV1UFjevN7oa6uTnPmzNGIESOUlJSkVatW6fz58wP5UKzVmzW+5557Lvo5fuKJJ4LG2LLGBMp/ee2111RUVKS1a9fqww8/1PTp05Wbm6umpqZITy1q3XTTTWpoaAhs7733XuDYihUrtH37dr3xxhuqqKhQfX29HnrooQjO1m5tbW2aPn26Nm3a1OPxDRs2aOPGjdq8ebP27dunkSNHKjc3V+fOnQuMyc/P19GjR1VWVqYdO3Zoz549Wrp06UA9BOtdaY0lKS8vL+hn+pVXXgk6zhpfWkVFhQoKCrR3716VlZWps7NTOTk5amtrC4y50u+Frq4uzZkzRx0dHXr//ff10ksvqbS0VGvWrInEQ7JOb9ZYkpYsWRL0c7xhw4bAMavW2MAYY8ztt99uCgoKAl93dXWZ1NRUU1JSEsFZRa+1a9ea6dOn93ispaXFDB061LzxxhuBfceOHTOSTGVl5QDNMHpJMtu2bQt83d3dbTwej/nNb34T2NfS0mKcTqd55ZVXjDHGfPzxx0aS+eCDDwJj3nnnHeNwOMw///nPAZt7tPjmGhtjzMKFC80DDzxwyduwxqFpamoykkxFRYUxpne/F/72t7+ZmJgY4/V6A2NefPFF43K5THt7+8A+gCjwzTU2xpjvf//75ic/+cklb2PTGnMGRVJHR4eqqqqUnZ0d2BcTE6Ps7GxVVlZGcGbR7fjx40pNTdXEiROVn5+vuro6SVJVVZU6OzuD1nvy5MkaP348690HtbW18nq9QevpdruVmZkZWM/KykolJCTo1ltvDYzJzs5WTEyM9u3bN+Bzjlbl5eVKSkrSDTfcoGXLlunMmTOBY6xxaHw+nyQpMTFRUu9+L1RWVmrq1KlKTk4OjMnNzZXf79fRo0cHcPbR4ZtrfMHLL7+sMWPGaMqUKSouLtYXX3wROGbTGkflHwvsb59//rm6urqC/geRpOTkZH3yyScRmlV0y8zMVGlpqW644QY1NDRo3bp1uvvuu3XkyBF5vV7FxcUpISEh6DbJycnyer2RmXAUu7BmPf38Xjjm9XqVlJQUdDw2NlaJiYmseS/l5eXpoYceUnp6uk6cOKGf/exnmj17tiorKzVkyBDWOATd3d1avny57rzzTk2ZMkWSevV7wev19vhzfuEY/qWnNZakRx99VBMmTFBqaqoOHz6s1atXq7q6Wm+++aYku9aYQEFYzJ49O/DvadOmKTMzUxMmTNDrr7+u4cOHR3BmQN8sWLAg8O+pU6dq2rRpmjRpksrLyzVr1qwIziz6FBQU6MiRI0HvS0P/utQaf/09UVOnTlVKSopmzZqlEydOaNKkSQM9zcviJR5JY8aM0ZAhQy56t3hjY6M8Hk+EZjW4JCQk6Prrr1dNTY08Ho86OjrU0tISNIb17psLa3a5n1+Px3PRG77Pnz+v5uZm1ryPJk6cqDFjxqimpkYSa9xbhYWF2rFjh959912NGzcusL83vxc8Hk+PP+cXjuErl1rjnmRmZkpS0M+xLWtMoEiKi4vTjBkztGvXrsC+7u5u7dq1S1lZWRGc2eBx9uxZnThxQikpKZoxY4aGDh0atN7V1dWqq6tjvfsgPT1dHo8naD39fr/27dsXWM+srCy1tLSoqqoqMGb37t3q7u4O/IJCaE6dOqUzZ84oJSVFEmt8JcYYFRYWatu2bdq9e7fS09ODjvfm90JWVpY++uijoBAsKyuTy+VSRkbGwDwQi11pjXty6NAhSQr6ObZmjQf0LbkWe/XVV43T6TSlpaXm448/NkuXLjUJCQlB72RG761cudKUl5eb2tpa849//MNkZ2ebMWPGmKamJmOMMU888YQZP3682b17tzlw4IDJysoyWVlZEZ61vVpbW83BgwfNwYMHjSTz3HPPmYMHD5rPPvvMGGPM+vXrTUJCgnn77bfN4cOHzQMPPGDS09PNl19+GbiPvLw8c8stt5h9+/aZ9957z1x33XXmkUceidRDss7l1ri1tdU89dRTprKy0tTW1pq///3v5nvf+5657rrrzLlz5wL3wRpf2rJly4zb7Tbl5eWmoaEhsH3xxReBMVf6vXD+/HkzZcoUk5OTYw4dOmR27txpxo4da4qLiyPxkKxzpTWuqakxv/jFL8yBAwdMbW2tefvtt83EiRPNzJkzA/dh0xoTKF/z/PPPm/Hjx5u4uDhz++23m71790Z6SlHr4YcfNikpKSYuLs5897vfNQ8//LCpqakJHP/yyy/Nj3/8Y/Od73zHjBgxwjz44IOmoaEhgjO227vvvmskXbQtXLjQGPPVR42fffZZk5ycbJxOp5k1a5aprq4Ouo8zZ86YRx55xIwaNcq4XC7z+OOPm9bW1gg8Gjtdbo2/+OILk5OTY8aOHWuGDh1qJkyYYJYsWXLR/4FhjS+tp7WVZLZs2RIY05vfC59++qmZPXu2GT58uBkzZoxZuXKl6ezsHOBHY6crrXFdXZ2ZOXOmSUxMNE6n01x77bVm1apVxufzBd2PLWvs+K8HBQAAYA3egwIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6BAoAALDO/wdzWoTeO1U8ngAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(pbp_hist.sort_index()['dNdlogDmev_thick_1323.30'], final_df['dNdlogDmev_thick_132.33'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "id": "8363ab72-511d-4e8e-92a1-1a285b3e7d6a",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dNdlogDmev_all_70.03 | \n",
+ " dNdlogDmev_all_73.55 | \n",
+ " dNdlogDmev_all_77.24 | \n",
+ " dNdlogDmev_all_81.11 | \n",
+ " dNdlogDmev_all_85.18 | \n",
+ " dNdlogDmev_all_89.45 | \n",
+ " dNdlogDmev_all_93.94 | \n",
+ " dNdlogDmev_all_98.65 | \n",
+ " dNdlogDmev_all_103.60 | \n",
+ " dNdlogDmev_all_108.80 | \n",
+ " ... | \n",
+ " dNdlogDmev_all_472.46 | \n",
+ " dNdlogDmev_all_496.16 | \n",
+ " dNdlogDmev_all_521.06 | \n",
+ " dNdlogDmev_all_547.19 | \n",
+ " dNdlogDmev_all_574.65 | \n",
+ " dNdlogDmev_all_603.47 | \n",
+ " dNdlogDmev_all_633.75 | \n",
+ " dNdlogDmev_all_665.54 | \n",
+ " dNdlogDmev_all_698.93 | \n",
+ " dNdlogDmev_all_733.99 | \n",
+ "
\n",
+ " \n",
+ " | calculated_time | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 2019-05-07 00:00:00 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 169.009294 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.00000 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:01 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:02 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 84.75842 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:03 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 84.75842 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 00:00:04 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 84.758420 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.00000 | \n",
+ " 84.75842 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:55 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:56 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 85.013713 | \n",
+ " 0.00000 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:57 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:58 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 85.013713 | \n",
+ " 0.0 | \n",
+ " 85.013713 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.00000 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 2019-05-07 23:59:59 | \n",
+ " 82.932638 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.0 | \n",
+ " 0.000000 | \n",
+ " 0.00000 | \n",
+ " 0.00000 | \n",
+ " ... | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
82568 rows × 49 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dNdlogDmev_all_70.03 dNdlogDmev_all_73.55 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.000000 0.0 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.000000 0.0 \n",
+ "2019-05-07 00:00:03 0.000000 0.0 \n",
+ "2019-05-07 00:00:04 0.000000 0.0 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.000000 0.0 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.000000 0.0 \n",
+ "2019-05-07 23:59:59 82.932638 0.0 \n",
+ "\n",
+ " dNdlogDmev_all_77.24 dNdlogDmev_all_81.11 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.000000 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.000000 \n",
+ "2019-05-07 00:00:03 0.0 0.000000 \n",
+ "2019-05-07 00:00:04 0.0 0.000000 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.000000 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 85.013713 \n",
+ "2019-05-07 23:59:59 0.0 0.000000 \n",
+ "\n",
+ " dNdlogDmev_all_85.18 dNdlogDmev_all_89.45 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 169.009294 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.000000 \n",
+ "2019-05-07 00:00:03 0.0 0.000000 \n",
+ "2019-05-07 00:00:04 0.0 84.758420 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.000000 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 85.013713 \n",
+ "2019-05-07 23:59:59 0.0 0.000000 \n",
+ "\n",
+ " dNdlogDmev_all_93.94 dNdlogDmev_all_98.65 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.000000 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.000000 \n",
+ "2019-05-07 00:00:03 0.0 0.000000 \n",
+ "2019-05-07 00:00:04 0.0 0.000000 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 85.013713 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 0.000000 \n",
+ "2019-05-07 23:59:59 0.0 0.000000 \n",
+ "\n",
+ " dNdlogDmev_all_103.60 dNdlogDmev_all_108.80 ... \\\n",
+ "calculated_time ... \n",
+ "2019-05-07 00:00:00 0.00000 0.00000 ... \n",
+ "2019-05-07 00:00:01 NaN NaN ... \n",
+ "2019-05-07 00:00:02 84.75842 0.00000 ... \n",
+ "2019-05-07 00:00:03 84.75842 0.00000 ... \n",
+ "2019-05-07 00:00:04 0.00000 84.75842 ... \n",
+ "... ... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN ... \n",
+ "2019-05-07 23:59:56 0.00000 0.00000 ... \n",
+ "2019-05-07 23:59:57 NaN NaN ... \n",
+ "2019-05-07 23:59:58 0.00000 0.00000 ... \n",
+ "2019-05-07 23:59:59 0.00000 0.00000 ... \n",
+ "\n",
+ " dNdlogDmev_all_472.46 dNdlogDmev_all_496.16 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.0 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.0 \n",
+ "2019-05-07 00:00:03 0.0 0.0 \n",
+ "2019-05-07 00:00:04 0.0 0.0 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.0 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 0.0 \n",
+ "2019-05-07 23:59:59 0.0 0.0 \n",
+ "\n",
+ " dNdlogDmev_all_521.06 dNdlogDmev_all_547.19 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.0 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.0 \n",
+ "2019-05-07 00:00:03 0.0 0.0 \n",
+ "2019-05-07 00:00:04 0.0 0.0 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.0 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 0.0 \n",
+ "2019-05-07 23:59:59 0.0 0.0 \n",
+ "\n",
+ " dNdlogDmev_all_574.65 dNdlogDmev_all_603.47 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.0 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.0 \n",
+ "2019-05-07 00:00:03 0.0 0.0 \n",
+ "2019-05-07 00:00:04 0.0 0.0 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.0 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 0.0 \n",
+ "2019-05-07 23:59:59 0.0 0.0 \n",
+ "\n",
+ " dNdlogDmev_all_633.75 dNdlogDmev_all_665.54 \\\n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.0 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.0 \n",
+ "2019-05-07 00:00:03 0.0 0.0 \n",
+ "2019-05-07 00:00:04 0.0 0.0 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.0 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 0.0 \n",
+ "2019-05-07 23:59:59 0.0 0.0 \n",
+ "\n",
+ " dNdlogDmev_all_698.93 dNdlogDmev_all_733.99 \n",
+ "calculated_time \n",
+ "2019-05-07 00:00:00 0.0 0.0 \n",
+ "2019-05-07 00:00:01 NaN NaN \n",
+ "2019-05-07 00:00:02 0.0 0.0 \n",
+ "2019-05-07 00:00:03 0.0 0.0 \n",
+ "2019-05-07 00:00:04 0.0 0.0 \n",
+ "... ... ... \n",
+ "2019-05-07 23:59:55 NaN NaN \n",
+ "2019-05-07 23:59:56 0.0 0.0 \n",
+ "2019-05-07 23:59:57 NaN NaN \n",
+ "2019-05-07 23:59:58 0.0 0.0 \n",
+ "2019-05-07 23:59:59 0.0 0.0 \n",
+ "\n",
+ "[82568 rows x 49 columns]"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dNdlogDmev"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "id": "ee4d505d-9353-4aa9-9027-0cf31264f07f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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q666Sjt37tSCBQs0derUEFcXfV5//XW9+uqrWrRoka644gpt375ds2bNUlZWFtc7ynDrR1Lnzp0VGxt7wRMPpaWlstlsIaoq+sycOVPLly/X+++/r65du3o+t9lsqq2tVUVFhdd4rn/rbd26VWVlZRo0aJDi4uIUFxendevW6YUXXlBcXJwyMjK45n6WmZmp3Nxcr8/69u2rI0eOSJLnuvLvjH888MADevDBB3XHHXeof//+mjx5smbPnq2ioiJJXO9A8+X62mw2lZWVeR2vr69XeXl5i/5nQFCRlJCQoMGDB2v16tWez9xut1avXi273R7CyqKDYRiaOXOmli5dqjVr1ignJ8fr+ODBgxUfH+91/fft26cjR45w/Vtp1KhR2rFjh7Zv3+55DRkyRJMmTfL8N9fcv0aMGHHBY/eff/65unfvLknKycmRzWbzuuZOp1ObNm3imrfCmTNnFBPj/ScsNjZWbrdbEtc70Hy5vna7XRUVFdq6datnzJo1a+R2uzVs2DDfT9bmpcBRYvHixYbZbDYWLlxo7N6925g+fbqRmppqOByOUJcW8WbMmGFYrVZj7dq1RklJied15swZz5h7773X6Natm7FmzRrj448/Nux2u2G320NYdfQ5/6kfw+Ca+9vmzZuNuLg44+mnnza++OIL49VXXzWSkpKMV155xTPm2WefNVJTU4233nrL+Oyzz4zvf//7PC7bSlOnTjUuvfRSz+PJS5YsMTp37mz87Gc/84zherfNqVOnjG3bthnbtm0zJBn/9V//ZWzbts348ssvDcPw7fqOHTvWuOqqq4xNmzYZH374odG7d28eT26LX//610a3bt2MhIQEY+jQocbGjRtDXVJUkNTo66WXXvKMOXv2rPGv//qvxiWXXGIkJSUZt912m1FSUhK6oqPQt4MK19z/li1bZvTr188wm81Gnz59jN///vdex91ut/HII48YGRkZhtlsNkaNGmXs27cvRNVGNqfTadx///1Gt27djMTEROOyyy4zfv7znxs1NTWeMVzvtnn//fcb/bd76tSphmH4dn1Pnjxp3HnnnUZycrJhsViMu+++2zh16lSL6jAZxnlt/AAAAMIIa1QAAEDYIqgAAICwRVABAABhi6ACAADCFkEFAACELYIKAAAIWwQVAAAQtggqAAAgbBFUAABA2CKoAACAsEVQAQAAYYugAgAAwtb/B23OVkFYFuX3AAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(pbp_calib[\"Incand Mass (fg)\"], pbp_calib[\"BC mass\"])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "id": "1548f1ad-f80b-4db2-b9cc-ddb37336ef63",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 68,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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ADCEBHWL5/7779fChQs1btw4HT9+XMXFxYqLi9Ott94qu92upUuXauXKlUpNTZXNZtPdd98tl8ul2bNnS5LmzZunnJwc3X777Vq3bp3cbrcefvhhFRUVKSkpaUAuEAAARJ6gAsqHH36oW2+9VX/+8581ZswYzZkzR/v27dOYMWMkSU899ZRiY2O1aNEidXR0KD8/X88884z//XFxcdq+fbsKCwvlcrk0YsQILVmyRI899lhorwoAAES0GGOMCXcnguX1emW32+XxeHgeBQCACBHM9ze/xQMAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACyHgAIAACynXwFl7dq1iomJ0YoVK/zn2tvbVVRUpLS0NI0cOVKLFi1SU1NTwPsaGhpUUFCg4cOHKz09XQ888IDOnDnTn64AAIAhpM8BZf/+/fqP//gPTZkyJeD8vffeq23btumll15SeXm5jh8/rhtvvNFf3tXVpYKCAnV2dmrv3r16/vnntWnTJq1evbrvVwEAAIaUPgWUkydPavHixfrxj3+siy66yH/e4/HoJz/5iZ588kldc801mjFjhp577jnt3btX+/btkyS9/vrrqq2t1ebNmzVt2jQtWLBA3//+9/X000+rs7MzNFcFAAAiWp8CSlFRkQoKCpSXlxdwvrq6WqdPnw44P2HCBI0dO1YVFRWSpIqKCk2ePFkOh8NfJz8/X16vV0eOHOn173V0dMjr9QYcAABg6IoP9g1btmzRwYMHtX///h5lbrdbiYmJSklJCTjvcDjkdrv9dT4ZTrrLu8t6U1JSojVr1gTbVQAAEKGCmkE5duyY7rnnHr3wwgtKTk4eqD71sGrVKnk8Hv9x7NixQfvbAABg8AUVUKqrq9Xc3Kzp06crPj5e8fHxKi8v1/r16xUfHy+Hw6HOzk61trYGvK+pqUlOp1OS5HQ6e6zq6X7dXedcSUlJstlsAQcAABi6ggooc+fO1eHDh3Xo0CH/MXPmTC1evNj/3wkJCSorK/O/p66uTg0NDXK5XJIkl8ulw4cPq7m52V9n165dstlsysnJCdFlAQCASBbUMyijRo3SpEmTAs6NGDFCaWlp/vNLly7VypUrlZqaKpvNprvvvlsul0uzZ8+WJM2bN085OTm6/fbbtW7dOrndbj388MMqKipSUlJSiC4LAABEsqAfkv0sTz31lGJjY7Vo0SJ1dHQoPz9fzzzzjL88Li5O27dvV2FhoVwul0aMGKElS5boscceC3VXAABAhIoxxphwdyJYXq9XdrtdHo+H51EAAIgQwXx/81s8AADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcggoAADAcoIKKBs2bNCUKVNks9lks9nkcrm0Y8cOf3l7e7uKioqUlpamkSNHatGiRWpqagpoo6GhQQUFBRo+fLjS09P1wAMP6MyZM6G5GgAAMCQEFVAuueQSrV27VtXV1Tpw4ICuueYafeUrX9GRI0ckSffee6+2bduml156SeXl5Tp+/LhuvPFG//u7urpUUFCgzs5O7d27V88//7w2bdqk1atXh/aqAABARIsxxpj+NJCamqof/vCHuummmzRmzBi9+OKLuummmyRJ77zzjiZOnKiKigrNnj1bO3bs0PXXX6/jx4/L4XBIkjZu3KgHH3xQJ06cUGJi4gX9Ta/XK7vdLo/HI5vN1p/uAwCAQRLM93efn0Hp6urSli1bdOrUKblcLlVXV+v06dPKy8vz15kwYYLGjh2riooKSVJFRYUmT57sDyeSlJ+fL6/X65+F6U1HR4e8Xm/AAQAAhq6gA8rhw4c1cuRIJSUl6a677tLWrVuVk5Mjt9utxMREpaSkBNR3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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(pbp_conc.sort_index()['S_numConc_within_range_std'], ddf_pbp_hk['S_numConc_within_range_std'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "id": "0b68202c-05bb-4439-a5cd-a0611dee7132",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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5GSNGDFCUVFRXu08cOCAjhw5EnbtTE1Nld1u92qLy+XStm3bPG1xOBw6fvy4du7c6Tln06ZNcrvdnn98wskXX3yhY8eOKTk5WVLots8wDOXm5mr16tXatGmTUlNTvY635O/Q4XBo7969XgFsw4YNslqtni75YGmufY0pKiqSJK97F6rtO5fb7VZNTU3Y37fGNLStMeF0zzIzM7V3714VFRV5XldeeaVmzpzp+Tks711QhuaGoFWrVhkxMTHGihUrjP379xt33nmnERcX5zWiORzcd999xubNm42SkhLj/fffN7KysoyEhASjoqLCMIyzU8169+5tbNq0yfjoo48Mh8NhOByOINe6cSdOnDB2795t7N6925Bk/Nd//Zexe/du4/PPPzcM4+w047i4OOPNN9809uzZY1x//fWNTjO+4oorjG3bthnvvfeeMWDAgKBPw21wofadOHHC+OlPf2oUFhYaJSUlxjvvvGMMHz7cGDBggFFdXe0pIxTbN3fuXMNmsxmbN2/2mrJ5+vRpzznN/R02THmcMGGCUVRUZBQUFBg9e/YMiSmdzbXv0KFDxmOPPWZ89NFHRklJifHmm28al156qTFu3DhPGaHavgceeMDYsmWLUVJSYuzZs8d44IEHDIvFYvzlL38xDCO879uF2hbO96wp585KCsd7R0D5lt/85jdG7969jejoaGPkyJHGhx9+GOwq+eyHP/yhkZycbERHRxsXX3yx8cMf/tA4dOiQ5/g333xj3H333cZFF11kxMbGGj/4wQ+MsrKyINa4aX/9618NSee9Zs2aZRjG2anGDz/8sJGUlGTExMQYmZmZxoEDB7zKOHbsmDFjxgyjW7duhtVqNe644w7jxIkTQWjN+S7UvtOnTxsTJkwwevbsaURFRRl9+vQx5syZc15gDsX2NdYmScaLL77oOaclf4efffaZMXnyZKNLly5GQkKCcd999xlnzpxp49acr7n2HTlyxBg3bpwRHx9vxMTEGP379zfuv/9+rzU1DCM02/ejH/3I6NOnjxEdHW307NnTyMzM9IQTwwjv+3ahtoXzPWvKuQElHO+dxTAMo+36awAAAJrHGBQAABByCCgAACDkEFAAAEDIIaAAAICQQ0ABAAAhh4ACAABCDgEFAACEHAIKAAAIOQQUAAAQcggoAAAg5BBQAABAyCGgAACAkPP/AdgU3vmkFG51AAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(pbp_calib[\"BC mass\"], ddf_pbp[\"BC mass\"])"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": ".venv",
+ "language": "python",
+ "name": ".venv"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.19"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}