diff --git a/docs/_toc.yml b/docs/_toc.yml index 111d14f2e..14e3230a7 100644 --- a/docs/_toc.yml +++ b/docs/_toc.yml @@ -13,6 +13,7 @@ parts: - file: examples/distribution_evolution - file: examples/distribution_ambient - file: examples/ionparticle_coagulation + - file: examples/loading_data_part1 - caption: Documentation numbered: false chapters: diff --git a/docs/examples/loading_data_part1.ipynb b/docs/examples/loading_data_part1.ipynb index 3b571e987..7886615bd 100644 --- a/docs/examples/loading_data_part1.ipynb +++ b/docs/examples/loading_data_part1.ipynb @@ -4,11 +4,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - " # Loading Data from a File\n", + " # Loading Data from a File Part 1\n", "\n", - " This example shows how to load data from a file into a Stream object. These\n", - " are usufull for doing some automated analysis, but you can just pull\n", - " data from a file and do whatever you want with it." + " This example shows how to load data from a file and automate the cleaning, \n", + " formatting, and processing of the data.\n", + "\n", + " If you have a lot of data and repetitive tasks, you can use the scripts at\n", + " the end of this example to clean up you import process." ] }, { @@ -40,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -308,6 +310,7 @@ "filename_regex: *.csv\n", "MIN_SIZE_BYTES: 10\n", "data_loading_function: general_1d_load\n", + "header_row: 0\n", "data_checks: {'characters': [10, 100], 'char_counts': {',': 4}, 'skip_rows': 0, 'skip_end': 0}\n", "data_column: [1, 2]\n", "data_header: ['data 1', 'data 2']\n", @@ -364,7 +367,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -389,6 +392,7 @@ " 'filename_regex': '*.csv',\n", " 'MIN_SIZE_BYTES': 10,\n", " 'data_loading_function':'general_1d_load',\n", + " 'header_row': 0,\n", " 'data_checks': {'characters': [\n", " 10,\n", " 100],\n", @@ -417,7 +421,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -441,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -465,12 +469,24 @@ " linestyle=\"none\",\n", " marker=\".\",)\n", "plt.tick_params(rotation=-35)\n", - "ax.set_xlabel(\"Time (epoch)\")\n", + "ax.set_xlabel(\"Time (UTC)\")\n", "ax.set_ylabel(\"Data\")\n", "ax.legend()\n", "plt.show()\n", "fig.tight_layout()" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "We covered how to load data from a file and automate the cleaning, formatting,\n", + "and processing of the data. We then showed how to generate a settings\n", + "dictionary and use that to load the data into a `Stream` object. This is\n", + "useful if you have a lot of data and repetitive tasks. Doing this method also loads and combines multiple files into one `Stream` object.\n" + ] } ], "metadata": { diff --git a/docs/examples/loading_data_part2.ipynb b/docs/examples/loading_data_part2.ipynb new file mode 100644 index 000000000..33ce0791e --- /dev/null +++ b/docs/examples/loading_data_part2.ipynb @@ -0,0 +1,714 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " # Loading Data from a File Part 2\n", + "\n", + " This example continues from the previous example, so if you haven't already\n", + " done so, please go through the previous example first.\n", + "\n", + " This example covers data in 2 dimensions, such as a size distributions.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " ## Working path\n", + "\n", + " Set the working path where the data is stored. For now we'll use the\n", + " provided example data in this current directory.\n", + "\n", + " But the path could be any where on your computer. For example, if you have a\n", + " folder called \"data\" in your home directory, you could set the path to:\n", + " `path = \"U:\\\\data\\\\processing\\\\Campgain2023_of_aswsome\\\\data\"`" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# all the imports, but we'll go through them one by one as we use them\n", + "import os\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from particula.data import loader, loader_interface, settings_generator\n", + "from particula.data.tests.example_data.get_example_data import get_data_folder" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Current path for this script:\n", + "\\particula\\docs\\examples\n", + "Path to data folder:\n", + "\\particula\\particula\\data\\tests\\example_data\n" + ] + } + ], + "source": [ + "# set the parent directory of the data folder, for now this is the same as the\n", + "# current working directory, but this can be a completely different path\n", + "#\n", + "# imports os to get the current working directory\n", + "import os\n", + "from particula.data.tests.example_data.get_example_data import get_data_folder\n", + "\n", + "current_path = os.getcwd()\n", + "print('Current path for this script:')\n", + "# print the path from particula/ onwards\n", + "print(current_path.split('GitHub')[1])\n", + "\n", + "path = get_data_folder()\n", + "print('Path to data folder:')\n", + "print(path.split('GitHub')[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " # Load the data\n", + "\n", + " With the working directory set, we can now load the data. For this we use\n", + " the `loader` module and call loader.data_raw_loader() with the file path as\n", + " argument." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Units,dW/dlogDp\n", + "Weight,Number\n", + "Sample #,Date,Start Time,Sample Temp (C),Sample Pressure (kPa),Relative Humidity (%),Mean Free Path (m),Gas Viscosity (Pa*s),Diameter Midpoint (nm),20.72,21.10,21.48,21.87,22.27,22.67,23.08,23.50,23.93,24.36,24.80,25.25,25.71,26.18,26.66,27.14,27.63,28.13,28.64,29.16,29.69,30.23,30.78,31.34,31.91,32.49,33.08,33.68,34.29,34.91,35.55,36.19,36.85,37.52,38.20,38.89,39.60,40.32,41.05,41.79,42.55,43.32,44.11,44.91,45.73,46.56,47.40,48.26,49.14,50.03,50.94,51.86,52.80,53.76,54.74,55.73,56.74,57.77,58.82,59.89,60.98,62.08,63.21,64.36,65.52,66.71,67.93,69.16,70.41,71.69,72.99,74.32,75.67,77.04,78.44,79.86,81.31,82.79,84.29,85.82,87.38,88.96,90.58,92.22,93.90,95.60,97.34,99.10,100.90,102.74,104.60,106.50,108.43,110.40,112.40,114.44,116.52,118.64,120.79,122.98,125.21,127.49,129.80,132.16,134.56,137.00,139.49,142.02,144.60,147.22,149.89,152.61,155.38,158.20,161.08,164.00,166.98,170.01,173.09,176.24,179.43,182.69,186.01,189.38,192.82,196.32,199.89,203.51,207.21,210.97,214.80,218.70,222.67,226.71,230.82,235.01,239.28,243.62,248.05,252.55,257.13,261.80,266.55,271.39,276.32,281.33,286.44,291.64,296.93,302.32,307.81,313.40,319.08,324.88,330.77,336.78,342.89,349.12,355.45,361.90,368.47,375.16,381.97,388.91,395.96,403.15,410.47,417.92,425.51,433.23,441.09,449.10,457.25,465.55,474.00,482.61,491.37,500.29,509.37,518.61,528.03,537.61,547.37,557.31,567.42,577.72,588.21,598.89,609.76,620.82,632.09,643.57,655.25,667.14,679.25,691.58,704.14,716.92,729.93,743.18,756.67,770.40,784.39,Scan Time (s),Retrace Time (s),Scan Resolution (Hz),Scans Per Sample,HV Polarity,Sheath Flow (L/min),Aerosol Flow (L/min),Bypass Flow (L/min),Low Voltage (V),High Voltage (V),Lower Size (nm),Upper Size (nm),Density (g/cm³),td + 0.5 (s),tf (s),D50 (nm),Median (nm),Mean (nm),Geo. Mean (nm),Mode (nm),Geo. Std. Dev.,Total Conc. (#/cm³),Neutralizer Status,Dilution Factor,Test Name,Test Description,Dataset Name,Dataset Description,Instrument Errors\n", + "1,07/07/2022,08:49:17,23.7,101.2,61.9,6.75690e-8,1.83579e-5,,6103.186,2832.655,4733.553,4765.944,5960.964,4475.806,4412.044,5853.069,4832.167,3781.343,3675.830,3271.549,3084.392,3668.269,4116.143,3310.157,3978.368,4151.566,2515.995,3755.837,2776.663,5032.745,3775.426,2818.553,2641.302,2636.806,3079.759,2606.094,2317.234,3192.346,2226.703,2484.878,3394.395,1762.834,3172.359,2919.533,2452.013,3403.780,2360.277,2543.386,2563.290,2649.769,1375.374,1364.046,1446.529,2068.167,1336.070,1542.077,1707.249,1482.481,2272.182,1754.409,2472.438,1191.563,2221.825,1635.293,2548.571,1991.926,2546.956,1790.114,2115.075,1138.769,1934.746,2163.955,1613.179,2132.750,1654.348,1698.154,2403.529,1222.983,1829.254,1197.162,1638.797,1248.565,2417.521,1130.421,1429.423,1694.923,1658.378,1443.393,1731.346,1277.799,1089.149,1072.630,1205.387,1693.146,1109.648,915.428,491.529,881.028,1218.297,755.658,714.301,686.247,790.943,398.805,1043.226,1298.495,1548.704,1070.899,846.596,938.241,232.947,926.941,837.452,794.492,254.455,392.637,353.144,872.576,693.986,1544.164,657.340,546.445,311.890,365.934,616.794,610.810,938.786,815.964,593.441,939.634,188.115,1077.429,1213.142,737.913,1876.626,735.779,996.521,1098.601,1166.494,962.551,1392.535,947.504,655.459,993.819,682.087,852.503,601.057,733.860,529.122,960.578,687.512,839.973,652.820,289.921,623.835,453.604,588.057,856.253,283.994,282.839,365.801,200.382,365.756,146.548,306.730,373.162,114.272,0.000,182.692,260.788,164.857,19.851,89.612,0.000,181.974,0.000,53.276,20.016,0.000,0.000,95.433,96.222,0.000,0.000,197.307,0.000,100.336,0.000,102.072,0.000,0.000,209.529,0.000,213.227,107.561,0.000,218.965,220.930,111.453,0.000,113.460,0.000,115.513,0.000,0.000,0.000,0.000,28.221,93.413,122.992,0.000,75,4,50,1,Negative,2.000,0.300,0.00,10.07,9863.01,20.5,791.5,1.0,1.81,10.79,1000.0,41.562,74.959,52.078,20.721,2.179,2.16900e+3,ON,1,TRACER-CAT,,2022 07 07 09_51,,Detector aerosol flow rate error;Incomplete Scan\n", + "2,07/07/2022,08:50:48,23.6,101.2,61.7,6.75401e-8,1.83531e-5,,5621.118,5867.747,6233.403,3453.156,4484.307,5468.148,4725.052,4689.983,3661.759,4356.725,4292.911,7728.414,5112.679,4746.084,3957.005,3472.977,3496.697,4674.202,4188.868,2868.559,3375.113,4306.112,5191.077,4732.512,4566.029,3514.167,5172.877,3825.270,5323.756,2327.737,3846.602,2347.097,3182.011,1876.273,2952.863,2831.255,2497.869,4158.061,3828.510,3199.720,2309.195,2462.550,3060.240,1086.744,1476.289,2069.774,1727.787,2710.631,2067.327,2619.082,2345.026,2362.235,1429.749,2557.408,2660.327,1209.933,1590.320,1696.569,2236.773,1499.046,1922.632,1650.213,3147.351,2201.919,1622.954,2198.739,1800.998,1429.621,1426.761,1923.931,1262.939,1745.284,1458.571,1523.548,1920.108,1382.558,2211.525,2571.277,1979.297,1562.697,1741.573,1307.680,967.481,838.919,1502.136,1301.401,1011.619,829.770,973.269,1100.004,1152.808,749.250,1187.900,806.256,111.008,297.062,809.059,1361.412,779.536,535.087,881.522,1307.518,800.804,1053.953,182.381,1042.830,673.021,646.171,825.612,963.187,748.743,540.954,769.157,788.222,825.566,236.537,865.009,289.185,803.098,398.510,446.847,439.645,1118.961,1003.003,924.180,745.149,430.134,415.522,805.970,790.348,998.975,1043.136,604.082,1004.545,1082.455,1312.781,1447.390,872.420,398.380,695.719,857.412,645.872,691.129,623.007,471.728,641.049,1023.693,394.611,475.599,446.076,657.686,313.003,136.395,248.550,579.894,336.126,485.938,298.810,0.000,227.571,104.550,157.583,289.697,0.229,0.000,0.000,217.592,67.816,24.067,0.000,0.000,0.000,0.000,0.000,97.009,0.000,0.000,0.000,0.000,0.000,0.000,205.900,0.000,104.761,0.000,0.000,0.000,108.509,0.000,110.461,0.000,0.000,0.000,114.471,115.506,116.540,0.000,118.660,0.000,0.000,0.000,0.000,75.377,75,4,50,1,Negative,2.000,0.300,0.00,10.07,9863.01,20.5,791.5,1.0,1.81,10.79,1000.0,39.458,69.080,49.198,25.255,2.101,2.39408e+3,ON,1,TRACER-CAT,,2022 07 07 09_51,,Detector aerosol flow rate error;Incomplete Scan\n", + "3,07/07/2022,08:52:19,23.7,101.2,61.5,6.75690e-8,1.83579e-5,,5165.139,4969.987,4312.386,6939.394,4680.764,3224.473,4999.149,3653.002,4241.532,3928.137,2718.607,3363.947,4863.410,5338.452,4659.515,3430.329,3997.386,4644.421,4943.511,3883.970,3212.310,4445.981,2349.435,3605.419,4366.557,4969.924,4880.573,3186.281,3089.412,2724.537,3195.740,4277.947,4864.436,4263.532,2100.807,1967.634,3283.337,3268.660,3001.917,2781.549,1879.354,1376.083,2051.524,2165.874,2012.210,2923.129,1575.515,1544.252,1610.635,1572.609,1299.370,1549.832,1145.100,2897.864,1839.992,2351.579,2102.027,1543.106,953.811,2073.610,2317.378,2087.617,1586.363,1897.860,2456.722,1647.781,1013.534,1734.023,1633.021,1841.697,2193.442,2714.856,1396.336,2264.046,1671.363,1538.012,1257.148,1423.316,1217.281,1745.437,1787.473,1284.774,1534.815,1274.852,1438.025,1199.602,964.066,862.098,685.995,679.146,879.775,806.703,979.672,894.103,1379.499,1112.031,744.999,580.777,1241.262,960.784,750.484,908.236,957.901,652.265,1200.515,429.487,347.453,552.393,617.871,652.163,709.227,788.963,1499.238,627.895,1315.208,976.800,555.360,440.680,1182.819,863.800,362.530,942.047,460.380,1222.507,678.820,1006.555,319.371,91.941,761.841,205.384,449.120,751.217,572.530,350.734,295.089,413.379,612.088,474.457,678.504,490.408,751.536,400.656,585.567,676.707,364.052,124.385,631.790,788.487,566.062,390.904,141.751,256.369,366.589,528.781,512.078,257.120,393.412,350.601,361.659,65.138,348.203,326.629,329.714,175.810,111.365,74.091,103.212,0.000,0.000,47.532,0.000,166.826,0.000,96.217,388.070,97.832,98.649,99.490,200.678,202.399,0.000,102.953,0.000,0.000,105.683,106.611,33.630,183.108,2.602,218.305,222.901,0.000,226.925,0.000,0.000,116.553,0.000,118.661,119.732,120.801,0.000,122.992,124.085,75,4,50,1,Negative,2.000,0.300,0.00,10.07,9863.01,20.5,791.5,1.0,1.81,10.79,1000.0,39.324,72.102,50.019,21.870,2.136,2.27861e+3,ON,1,TRACER-CAT,,2022 07 07 09_51,,Detector aerosol flow rate error;Incomplete Scan\n", + "4,07/07/2022,08:53:50,23.8,101.2,61.4,6.75979e-8,1.83627e-5,,5814.745,5937.421,5542.118,7127.484,5341.069,4793.690,4938.844,5721.541,4877.746,5900.250,5104.984,4914.366,4891.892,6655.579,4431.173,3389.961,4947.809,3115.245,4138.126,5421.474,4589.063,4007.156,2524.137,5009.064,4780.963,4959.096,3648.285,4148.676,4270.099,2229.465,3043.487,5618.376,3689.188,4700.549,2535.915,1754.223,2560.335,2853.385,2454.711,2515.907,3015.370,1502.864,2344.161,2761.448,2047.076,1542.531,2151.757,2365.884,2330.816,2585.566,1431.955,2391.335,2097.717,1891.014,2211.815,2071.479,2188.302,2475.058,1906.364,1781.793,2356.998,1527.723,2609.446,1644.771,1917.624,1843.984,2418.197,1385.516,1263.621,2155.939,2083.223,1765.167,957.777,2077.747,1667.811,1122.065,1579.113,1709.471,1604.406,686.151,390.075,1194.313,1657.144,1462.232,1870.846,1012.132,847.165,1248.528,1039.604,779.076,1375.101,1058.272,1013.378,1211.420,1641.490,979.146,835.539,763.524,951.720,1270.393,1308.492,1056.486,1715.924,657.112,1475.767,235.866,827.129,1266.089,1080.958,1246.249,1147.116,840.719,1560.246,1201.554,1743.366,1233.526,1166.422,1068.551,1047.492,787.018,759.836,491.419,714.111,460.361,681.068,767.815,654.715,501.038,357.016,575.937,613.281,851.029,583.739,475.691,431.584,616.144,744.932,409.334,984.682,371.750,613.130,757.474,637.077,441.004,609.132,380.961,595.419,565.033,566.955,332.402,450.524,139.761,430.419,443.058,558.628,158.467,271.708,346.807,57.637,148.050,226.825,353.827,77.661,0.000,0.000,74.100,0.000,250.296,117.433,93.156,187.816,0.000,95.443,0.000,0.000,293.505,0.000,99.496,100.342,0.000,102.078,102.959,0.000,0.000,0.000,106.622,322.709,0.000,328.474,0.000,67.473,44.378,0.000,0.000,115.519,0.000,0.000,118.668,0.000,0.000,0.000,0.000,0.000,75,4,50,1,Negative,2.000,0.300,0.00,10.07,9863.01,20.5,791.5,1.0,1.81,10.79,1000.0,37.995,68.796,48.896,21.870,2.107,2.51144e+3,ON,1,TRACER-CAT,,2022 07 07 09_51,,Detector aerosol flow rate error;Incomplete Scan\n", + "5,07/07/2022,08:55:21,24.0,101.1,61.4,6.77227e-8,1.83722e-5,,8034.425,6317.981,6972.600,4577.324,6488.519,4985.397,5484.518,7295.312,3449.590,4261.716,4259.456,6124.670,4418.824,5418.742,3311.293,3548.897,4940.747,6738.536,3377.823,3309.433,5322.339,4148.187,3387.285,3967.636,5064.382,4573.259,3896.245,4006.531,3769.030,4129.946,4678.454,3121.839,3888.625,2443.782,1947.617,2321.130,1845.465,2833.269,2745.881,3262.145,4055.876,2319.187,3397.282,2596.623,2935.256,1508.733,1555.232,3184.200,2683.631,2158.530,2303.663,2739.336,2714.276,2536.377,2051.076,2063.667,2074.972,2852.267,2366.702,2135.668,1500.801,2228.817,2220.527,1501.131,2354.567,2072.434,2547.917,2111.890,1474.809,1561.614,1334.889,1100.318,1077.335,1470.618,1377.825,1684.933,1093.441,1596.409,1456.255,1543.298,1116.499,984.258,1294.805,1586.816,723.664,1709.369,1060.965,1415.310,1611.158,1791.258,1098.238,1513.790,1335.019,1178.572,1538.772,477.803,1130.380,1596.999,652.664,1098.951,1384.104,772.285,788.185,1432.363,773.331,729.470,819.882,979.684,925.309,753.771,706.255,659.741,1026.707,818.647,1205.428,940.460,906.655,758.763,811.344,1123.245,520.356,1009.392,651.265,735.336,209.657,549.624,537.181,841.849,483.705,713.011,497.248,743.196,556.459,953.140,847.692,614.097,423.810,816.193,627.059,453.998,976.898,592.170,548.197,535.480,667.837,312.390,476.781,369.028,451.687,432.520,1001.512,312.053,498.408,198.771,399.968,363.778,403.848,381.782,223.839,227.667,212.819,101.097,164.909,359.326,285.450,0.000,44.177,0.000,158.441,220.559,81.404,49.687,95.468,0.000,194.095,391.452,98.679,0.000,0.000,0.000,0.000,102.990,103.881,104.800,0.000,106.644,0.000,108.554,0.000,110.496,0.000,112.492,113.494,0.000,115.548,0.000,0.000,0.000,239.531,241.683,0.000,0.000,248.252,75,4,50,1,Negative,2.000,0.300,0.00,10.07,9863.01,20.5,791.5,1.0,1.81,10.79,1000.0,39.214,69.960,48.959,20.721,2.123,2.56068e+3,ON,1,TRACER-CAT,,2022 07 07 09_51,,Detector aerosol flow rate error;Incomplete Scan\n" + ] + } + ], + "source": [ + "data_file = os.path.join(\n", + " path,\n", + " 'SMPS_data',\n", + " '2022-07-07_095151_SMPS.csv')\n", + "\n", + "# print the file path\n", + "# print(data_file)\n", + "\n", + "# load the data\n", + "raw_data = loader.data_raw_loader(data_file)\n", + "\n", + "# print the interesting bits\n", + "for row in raw_data[22:30]:\n", + " print(row)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " # Now to format the data\n", + "\n", + " This is a little more complicated than the 1d data, because we have to\n", + " pull out the sizes bins, and read them in as our headers. This is done by\n", + " specifiying the start and end keywords for the size bins. In this case\n", + " the start keyword is \"Date Time\" and the end keyword is \"Total Conc\"." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch time:\n", + "[1.65718376e+09 1.65718385e+09 1.65718394e+09 1.65718403e+09\n", + " 1.65718412e+09]\n", + "Data shape:\n", + "(2854, 203)\n", + "Header:\n", + "['20.72', '21.10', '21.48', '21.87', '22.27', '22.67', '23.08', '23.50', '23.93', '24.36']\n" + ] + } + ], + "source": [ + "# This is done by the general_data_formatter function for timeseries data\n", + "# 2d data is a separate function\n", + "\n", + "epoch_time, data, header = loader.sizer_data_formatter(\n", + " data=raw_data,\n", + " data_checks={\n", + " \"characters\": [250],\n", + " \"skip_rows\": 25,\n", + " \"skip_end\": 0,\n", + " \"char_counts\": {\"/\": 2, \":\": 2}\n", + " },\n", + " data_sizer_reader={\n", + " 'Dp_start_keyword': 'Diameter Midpoint (nm)',\n", + " 'Dp_end_keyword': 'Scan Time (s)',\n", + " 'convert_scale_from': 'dw/dlogdp'\n", + " },\n", + " time_column=[1, 2],\n", + " time_format=\"%m/%d/%Y %H:%M:%S\",\n", + " delimiter=\",\",\n", + " header_row=24)\n", + "\n", + "# print the first bit of the data\n", + "print('Epoch time:')\n", + "print(epoch_time[:5])\n", + "print('Data shape:')\n", + "print(data.shape)\n", + "print('Header:')\n", + "print(header[:10])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " ## Pause to Plot\n", + "\n", + " Now that we have the data and time, we can plot it to see what it looks\n", + " like." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot the data\n", + "fig, ax = plt.subplots()\n", + "ax.plot(epoch_time,\n", + " data[:, 50],\n", + " label=f'Bin {header[50]} nm',\n", + ")\n", + "ax.set_xlabel(\"Time (epoch)\")\n", + "ax.set_ylabel(\"Bin Concentration (#/cm³)\")\n", + "ax.legend()\n", + "plt.show()\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dates in Plots\n", + "\n", + "If you want dates on the x-axis, you need to convert the dates to\n", + "matplotlib dates, or use np.datetime64. This is done in the `convert.datetime64_from_epoch_array` function.\n", + "\n", + "Then it is usually best to rotate the x-axis labels so they don't overlap.\n", + "This is done with the `plt.xticks(rotation=45)` function." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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//032rVrhxEjRsDd3R2tW7fGhg0bxP0PHjxAbGws+vTpI25zcXFBx44dERgYCAAIDAyEq6urmEwBQJ8+fWBhYYGLFy9qfd2srCwkJydr/BARkSau3UcknVETqvv372P9+vVo2LAhjhw5gmnTpmHWrFnYsmULACA2NhYA4OHhofE8Dw8PcV9sbCzc3d019ltZWaFKlSriMfmtWLECLi4u4k/t2rUN/daIiIjIjBg1oVIqlWjTpg0+//xztG7dGlOmTMHkyZPx448/lurrLliwAElJSeJPVFRUqb4eEVFFwBorosIZNaGqXr06fHx8NLY1bdoUkZGRAABPT08AQFxcnMYxcXFx4j5PT0/Ex8dr7JfL5UhISBCPyc/W1hbOzs4aP0REREQlZdSEqkuXLoiIiNDYdvv2bXh7ewMA6tatC09PT5w4cULcn5ycjIsXL8LPzw8A4Ofnh8TERAQFBYnHnDx5EkqlEh07diyDd0FEVDEVGOXHCiqiQhl1HQF/f3907twZn3/+Od544w1cunQJP/30E3766ScAgEwmw+zZs/HZZ5+hYcOGqFu3Lj755BPUqFEDQ4cOBZBbo9W/f3+xqTAnJwczZszAyJEjJY3wIyIiItKXUROq9u3bY8+ePViwYAGWLl2KunXr4ptvvsGYMWPEY+bPn4+0tDRMmTIFiYmJ6Nq1Kw4fPgw7OzvxmG3btmHGjBno3bs3LCwsMHz4cKxdu9YYb4mIiIjMkFHnoTIVpjSPBRGRqQiJSsSQdefEx5YWMiiUubcMzkNFpsCU7t9GX3qGiIhMk9l/2ybSARMqIiKShA0aRIVjQkVERESkJyZUREQkCeuniArHhIqIiLRiEx+RdEyoiIiIiPTEhIqIiLTKXz/FCiuiwjGhIiIiItITEyoiIiIiPTGhIiIiItITEyoiItKKfaaIpGNCRURERKQnJlREREREemJCRURERKQnJlRERFQIdqIikooJFREREZGemFARERER6YkJFREREZGemFAREZFWnIeKSDomVERERER6YkJFREREpCcmVERERER6YkJFRERasQsVkXRMqIiIiIj0xISKiIi04ig/IumYUBERERHpiQkVERERkZ6YUBERERHpiQkVERFpJbATFZFkTKiIiIiI9MSEioiIiEhPTKiIiIiI9GRVkifl5OQgNjYW6enpqFatGqpUqWLouIiI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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from particula.util.convert import datetime64_from_epoch_array\n", + "\n", + "# convert the epoch time to datetime64\n", + "time_in_datetime64 = datetime64_from_epoch_array(epoch_time)\n", + "\n", + "# plot the data\n", + "fig, ax = plt.subplots()\n", + "ax.plot(time_in_datetime64,\n", + " data[:, 50],\n", + " label=f'Bin {header[50]} nm',\n", + " )\n", + "plt.xticks(rotation=45)\n", + "ax.set_xlabel(\"Time (epoch)\")\n", + "ax.set_ylabel(\"Bin Concentration (#/cm³)\")\n", + "ax.legend()\n", + "plt.show()\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " ## Contour plot of data\n", + "\n", + " We can also plot the data as a contour plot, which is useful for seeing\n", + " how the data changes over time." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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hvoe+7e//S0BQP7wD/9Q2P7Wt76VvPvd78783v33308AkOeffz712U9/+lMCgDzxxBPC9tHRUeI4jnDdjuMQAKTRaBBCCPnv//5vcuSRR5JcLkcKhQK54ooryKmnnpp6DjUOHmiOjobGPOK8887D7bffLmxbtGiR8H7VqlWp9+vXrwcQZaqcfPLJKJVK7POzzz4b3W4XmzZtQi6Xw4svvojzzz+/53WcdNJJ7P9SqYRqtTqnTJVBwJ9jfHwcAHDiiSemtk1OTmLp0qX45S9/iQ0bNuDOO+9k+xBC0O12sWXLFrzmNa85oNenkY21a9fiXe96F3t/+eWX49JLL8U73vEOtm1iYmKfjj06OgrDMHD88ccL21/zmtf0DBedeeaZAIDnn38+xef56le/ilNOOQWnnXaasL1er+Pmm28WrpuCEp/f9KY3YfPmzdi9ezcMw8Dw8DCWLl2KI488cp9+n8b8Qxs6GhrziFKplAojHUgMSgo2TVN4n8vlDniWCX+OXC6XuY2et16v40//9E/xoQ99KHWsFStWHNBr0+iNRYsWCQa467oYGxs7IH3Xsiycfvrp2LRpk7D9ueeew+GHH575PWrsL1u2TNher9fx7//+77j11ltT3zn11FOxadOmga57dHQUAPDAAw9gcnISb3vb2/p+R+OVCW3oaGi8wvGzn/0MV155pfD+d37ndwBEq95169ah0Wgwr86jjz6KfD6PY489FpVKBStXrsT999+P8847b16uf19x6qmnYuPGjS+pIahx4LF161ZMTU1h69at6HQ6zCA5+uijUS6XAQDHHXccbr31VlxyySUAgOuvvx6XXXYZzjnnHJx33nm499578V//9V946KGHAER8rX/7t3/DxRdfjMWLF2PDhg34yEc+gnPOOUfwFALAXXfdhTAMlfydT33qU/i93/s9rFixAu985zuRz+fxy1/+Es888ww+97nPAQDuuOMOvOY1r8GSJUvw2GOP4brrrsNHPvIRHHvssS9Ri2m81NCGjobGPKLdbmPHjh3CNsMw2GoSAL71rW/hda97Hd7whjfgzjvvxOOPP85SZi+//HLcdNNNWLNmDT796U9j165d+OAHP4j3vve9LBT06U9/GmvXrsXY2Bje/OY3o1ar4dFHH8UHP/jBl++H7gM+9rGP4ayzzsK1116L97///SiVSti4cSPuu+8+/OM//uN8X55GBj71qU/hG9/4BntPjfIHH3wQ5557LgBg06ZNmJmZYftccskl+PKXv4xbb70VH/rQh3DsscfiP/7jP/CGN7wBQOT1+fGPf4wvfvGLaDQaWL58OS699FJ84hOfSJ3/a1/7Gt7xjncoxQpXr16N733ve/jMZz6Dv/7rv4ZpmjjuuOPw/ve/n+2zadMm3HDDDZiamsLKlStx44034iMf+ciBaBqN+cJ8k4Q0NBYq1qxZQwCkXsceeyzbBwC57bbbyIUXXkhs2yYrV64kd911l3CcDRs2kPPOO484jkMWLVpErrrqKlKr1YR9vvzlL5Njjz2WmKZJli1bRj74wQ8K57j77ruF/YeGhsgdd9zR9zfMhYz8hS98QdhHPu+WLVsIAPLUU0+xbY8//ji58MILSblcJqVSiZx00kkCWVtDQ0OjH3KExLmcGhoarzjkcjncfffdePvb3z7fl6KhoaFxUELr6GhoaGhoaGgcstCGjoaGhoaGhsYhC01G1tB4BUNHljU0NDT2D9qjo6GhoaGhoXHIQhs6GhoaGhoaGocstKGjoaGhoaGhcchCGzoaGhoaGhoahyy0oaOhoaGhoaFxyEIbOhoaGhoaGhqHLLSho6GhoaGhoXHIQhs6GhoaGhoaGocstKGjoaGhoaGhccji/wOtzafIkucQ5AAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# settin limits helps to see the data better, you can also use np.log10()\n", + "# to plot the concentration in log space\n", + "concentration = data\n", + "concentration = np.where(concentration < 1e-5, 1e-5, concentration)\n", + "concentration = np.where(concentration > 10**2.5, 10**2.5, concentration)\n", + "# concentration = np.log10(concentration)\n", + "\n", + "fig, ax = plt.subplots(1, 1)\n", + "plt.contourf(\n", + " epoch_time,\n", + " np.array(header).astype(float),\n", + " concentration.T,\n", + " cmap=plt.cm.PuBu_r, levels=50)\n", + "plt.yscale('log')\n", + "ax.set_xlabel('Epoch Time')\n", + "ax.set_ylabel('Diameter (nm)')\n", + "plt.colorbar(label='Concentration dN/dlogDp [#/cm3]', ax=ax)\n", + "plt.show()\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " ## Settings Generator for 1d and 2d data\n", + "\n", + " Just like with the 1d data, we can use the settings generator to generate\n", + " the settings dictionary for importing the data. This is done by calling the\n", + " `settings_generator.for_general_sizer_1d_2d_load()` function.\n", + "\n", + " This function has a lot of arguments, but remember, if you just want the\n", + " default settings, you don't need to pass any arguments. The defaults are\n", + " set to the example data provided." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Settings 1d data dictionary:\n", + "relative_data_folder: SMPS_data\n", + "filename_regex: *.csv\n", + "MIN_SIZE_BYTES: 10\n", + "data_loading_function: general_1d_load\n", + "header_row: 24\n", + "data_checks: {'characters': [250], 'skip_rows': 25, 'skip_end': 0, 'char_counts': {'/': 2, ':': 2}}\n", + "data_column: ['Lower Size (nm)', 'Upper Size (nm)', 'Sample Temp (C)', 'Sample Pressure (kPa)', 'Relative Humidity (%)', 'Median (nm)', 'Mean (nm)', 'Geo. Mean (nm)', 'Mode (nm)', 'Geo. Std. Dev.', 'Total Conc. (#/cm³)']\n", + "data_header: ['Lower_Size_(nm)', 'Upper_Size_(nm)', 'Sample_Temp_(C)', 'Sample_Pressure_(kPa)', 'Relative_Humidity_(%)', 'Median_(nm)', 'Mean_(nm)', 'Geo_Mean_(nm)', 'Mode_(nm)', 'Geo_Std_Dev.', 'Total_Conc_(#/cc)']\n", + "time_column: [1, 2]\n", + "time_format: %m/%d/%Y %H:%M:%S\n", + "delimiter: ,\n", + "time_shift_seconds: 0\n", + "timezone_identifier: UTC\n", + "\n", + "Settings 2d data dictionary:\n", + "relative_data_folder: SMPS_data\n", + "filename_regex: *.csv\n", + "MIN_SIZE_BYTES: 10\n", + "data_loading_function: general_2d_load\n", + "header_row: 24\n", + "data_checks: {'characters': [250], 'skip_rows': 25, 'skip_end': 0, 'char_counts': {'/': 2, ':': 2}}\n", + "data_sizer_reader: {'Dp_start_keyword': 'Diameter Midpoint (nm)', 'Dp_end_keyword': 'Scan Time (s)', 'convert_scale_from': 'dw/dlogdp'}\n", + "time_column: [1, 2]\n", + "time_format: %m/%d/%Y %H:%M:%S\n", + "delimiter: ,\n", + "time_shift_seconds: 0\n", + "timezone_identifier: UTC\n" + ] + } + ], + "source": [ + "# Settings to load 1d and 2d data from the sizer or any other instrument\n", + "# that has a 1d and 2d data in the same file.\n", + "\n", + "settings_1d, settings_2d = settings_generator.for_general_sizer_1d_2d_load(\n", + " relative_data_folder='SMPS_data',\n", + " filename_regex='*.csv',\n", + " file_min_size_bytes=10,\n", + " header_row=24,\n", + " data_checks={\n", + " \"characters\": [250],\n", + " \"skip_rows\": 25,\n", + " \"skip_end\": 0,\n", + " \"char_counts\": {\"/\": 2, \":\": 2}\n", + " },\n", + " data_1d_column=[\n", + " \"Lower Size (nm)\",\n", + " \"Upper Size (nm)\",\n", + " \"Sample Temp (C)\",\n", + " \"Sample Pressure (kPa)\",\n", + " \"Relative Humidity (%)\",\n", + " \"Median (nm)\",\n", + " \"Mean (nm)\",\n", + " \"Geo. Mean (nm)\",\n", + " \"Mode (nm)\",\n", + " \"Geo. Std. Dev.\",\n", + " \"Total Conc. (#/cm³)\"],\n", + " data_1d_header=[\n", + " \"Lower_Size_(nm)\",\n", + " \"Upper_Size_(nm)\",\n", + " \"Sample_Temp_(C)\",\n", + " \"Sample_Pressure_(kPa)\",\n", + " \"Relative_Humidity_(%)\",\n", + " \"Median_(nm)\",\n", + " \"Mean_(nm)\",\n", + " \"Geo_Mean_(nm)\",\n", + " \"Mode_(nm)\",\n", + " \"Geo_Std_Dev.\",\n", + " \"Total_Conc_(#/cc)\"],\n", + " data_2d_dp_start_keyword=\"Diameter Midpoint (nm)\",\n", + " data_2d_dp_end_keyword=\"Scan Time (s)\",\n", + " data_2d_convert_concentration_from=\"dw/dlogdp\",\n", + " time_column=[1, 2],\n", + " time_format=\"%m/%d/%Y %H:%M:%S\",\n", + " delimiter=\",\",\n", + " time_shift_seconds=0,\n", + " timezone_identifier=\"UTC\",\n", + ")\n", + "\n", + "# print and format the settings dictionary\n", + "print('Settings 1d data dictionary:')\n", + "for key, value in settings_1d.items():\n", + " print(f'{key}: {value}')\n", + "\n", + "print('')\n", + "print('Settings 2d data dictionary:')\n", + "for key, value in settings_2d.items():\n", + " print(f'{key}: {value}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " ## Load the data with the interface\n", + "\n", + " Now that we have the settings dictionary, we can use an interface\n", + " that will take the settings and locations and do all those steps from above.\n", + " Calling the relevant functions." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading data from: 2022-07-07_095151_SMPS.csv\n", + "Loading data from: 2022-07-10_094659_SMPS.csv\n", + "Loading data from: 2022-07-07_095151_SMPS.csv\n", + "Loading data from: 2022-07-10_094659_SMPS.csv\n" + ] + } + ], + "source": [ + "# import the interface\n", + "\n", + "working_path = get_data_folder()\n", + "\n", + "# settings from above\n", + "\n", + "# no call the loader interface\n", + "data_stream_1d = loader_interface.load_files_interface(\n", + " path=working_path,\n", + " settings=settings_1d,\n", + ")\n", + "\n", + "data_stream_2d = loader_interface.load_files_interface(\n", + " path=working_path,\n", + " settings=settings_2d,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Data stream 1d summary:\n", + "Stream(header=['Lower_Size_(nm)', 'Upper_Size_(nm)', 'Sample_Temp_(C)', 'Sample_Pressure_(kPa)', 'Relative_Humidity_(%)', 'Median_(nm)', 'Mean_(nm)', 'Geo_Mean_(nm)', 'Mode_(nm)', 'Geo_Std_Dev.', 'Total_Conc_(#/cc)'], data=array([[2.05000e+01, 2.05000e+01, 2.05000e+01, ..., 2.05000e+01,\n", + " 2.05000e+01, 2.05000e+01],\n", + " [7.91500e+02, 7.91500e+02, 7.91500e+02, ..., 7.91500e+02,\n", + " 7.91500e+02, 7.91500e+02],\n", + " [2.37000e+01, 2.36000e+01, 2.37000e+01, ..., 2.35000e+01,\n", + " 2.33000e+01, 2.35000e+01],\n", + " ...,\n", + " [2.07210e+01, 2.52550e+01, 2.18700e+01, ..., 2.07210e+01,\n", + " 2.10970e+01, 2.07210e+01],\n", + " [2.17900e+00, 2.10100e+00, 2.13600e+00, ..., 2.31800e+00,\n", + " 2.31800e+00, 2.24800e+00],\n", + " [2.16900e+03, 2.39408e+03, 2.27861e+03, ..., 2.08056e+03,\n", + " 2.10616e+03, 2.45781e+03]]), time=array([1.65718376e+09, 1.65718385e+09, 1.65718394e+09, ...,\n", + " 1.65753440e+09, 1.65753450e+09, 1.65753459e+09]), files=[['2022-07-07_095151_SMPS.csv', 5620804], ['2022-07-10_094659_SMPS.csv', 2004838]])\n", + "\n", + "Data stream 2d summary:\n", + "Stream(header=['20.72', '21.10', '21.48', '21.87', '22.27', '22.67', '23.08', '23.50', '23.93', '24.36', '24.80', '25.25', '25.71', '26.18', '26.66', '27.14', '27.63', '28.13', '28.64', '29.16', '29.69', '30.23', '30.78', '31.34', '31.91', '32.49', '33.08', '33.68', '34.29', '34.91', '35.55', '36.19', '36.85', '37.52', '38.20', '38.89', '39.60', '40.32', '41.05', '41.79', '42.55', '43.32', '44.11', '44.91', '45.73', '46.56', '47.40', '48.26', '49.14', '50.03', '50.94', '51.86', '52.80', '53.76', '54.74', '55.73', '56.74', '57.77', '58.82', '59.89', '60.98', '62.08', '63.21', '64.36', '65.52', '66.71', '67.93', '69.16', '70.41', '71.69', '72.99', '74.32', '75.67', '77.04', '78.44', '79.86', '81.31', '82.79', '84.29', '85.82', '87.38', '88.96', '90.58', '92.22', '93.90', '95.60', '97.34', '99.10', '100.90', '102.74', '104.60', '106.50', '108.43', '110.40', '112.40', '114.44', '116.52', '118.64', '120.79', '122.98', '125.21', '127.49', '129.80', '132.16', '134.56', '137.00', '139.49', '142.02', '144.60', '147.22', '149.89', '152.61', '155.38', '158.20', '161.08', '164.00', '166.98', '170.01', '173.09', '176.24', '179.43', '182.69', '186.01', '189.38', '192.82', '196.32', '199.89', '203.51', '207.21', '210.97', '214.80', '218.70', '222.67', '226.71', '230.82', '235.01', '239.28', '243.62', '248.05', '252.55', '257.13', '261.80', '266.55', '271.39', '276.32', '281.33', '286.44', '291.64', '296.93', '302.32', '307.81', '313.40', '319.08', '324.88', '330.77', '336.78', '342.89', '349.12', '355.45', '361.90', '368.47', '375.16', '381.97', '388.91', '395.96', '403.15', '410.47', '417.92', '425.51', '433.23', '441.09', '449.10', '457.25', '465.55', '474.00', '482.61', '491.37', '500.29', '509.37', '518.61', '528.03', '537.61', '547.37', '557.31', '567.42', '577.72', '588.21', '598.89', '609.76', '620.82', '632.09', '643.57', '655.25', '667.14', '679.25', '691.58', '704.14', '716.92', '729.93', '743.18', '756.67', '770.40', '784.39'], data=array([[ 48.61238578, 44.77267394, 41.14076315, ..., 79.34844804,\n", + " 69.82018511, 114.54210553],\n", + " [ 22.15597542, 45.89533787, 38.87339256, ..., 62.46996336,\n", + " 87.41141628, 90.13918579],\n", + " [ 37.32620324, 49.15319788, 34.00511123, ..., 68.46352554,\n", + " 64.25811167, 107.50020941],\n", + " ...,\n", + " [ 0.73615212, 0. , 0. , ..., 0. ,\n", + " 0. , 0. ],\n", + " [ 0.97000629, 0. , 0.97000629, ..., 0. ,\n", + " 0. , 0. ],\n", + " [ 0. , 0.59493286, 0.9793736 , ..., 0.97991031,\n", + " 2.93952571, 0. ]]), time=array([1.65718376e+09, 1.65718385e+09, 1.65718394e+09, ...,\n", + " 1.65753440e+09, 1.65753450e+09, 1.65753459e+09]), files=[['2022-07-07_095151_SMPS.csv', 5620804], ['2022-07-10_094659_SMPS.csv', 2004838]])\n" + ] + } + ], + "source": [ + "# print data stream summary\n", + "\n", + "print('')\n", + "print('Data stream 1d summary:')\n", + "print(data_stream_1d)\n", + "\n", + "print('')\n", + "print('Data stream 2d summary:')\n", + "print(data_stream_2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on Stream in module particula.data.stream object:\n", + "\n", + "class Stream(builtins.object)\n", + " | Stream(header: List[str] = , data: numpy.ndarray = , time: numpy.ndarray = , files: List[str] = ) -> None\n", + " | \n", + " | A class for consistent data storage and format.\n", + " | \n", + " | Attributes:\n", + " | ---------\n", + " | header : List[str]\n", + " | A list of strings representing the header of the data stream.\n", + " | data : np.ndarray\n", + " | A numpy array representing the data stream.\n", + " | time : np.ndarray\n", + " | A numpy array representing the time stream.\n", + " | files : List[str]\n", + " | A list of strings representing the files containing the data stream.\n", + " | \n", + " | Methods:\n", + " | -------\n", + " | validate_inputs\n", + " | Validates the inputs to the Stream class.\n", + " | datetime64 -> np.ndarray\n", + " | Returns an array of datetime64 objects representing the time stream.\n", + " | Useful for plotting, with matplotlib.dates.\n", + " | return_header_dict -> dict\n", + " | Returns the header as a dictionary with keys as header elements and\n", + " | values as their indices.\n", + " | \n", + " | Methods defined here:\n", + " | \n", + " | __eq__(self, other)\n", + " | \n", + " | __init__(self, header: List[str] = , data: numpy.ndarray = , time: numpy.ndarray = , files: List[str] = ) -> None\n", + " | \n", + " | __post_init__(self)\n", + " | \n", + " | __repr__(self)\n", + " | \n", + " | validate_inputs(self)\n", + " | Validates the inputs for the DataStream object.\n", + " | \n", + " | Raises:\n", + " | TypeError: If header is not a list.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Readonly properties defined here:\n", + " | \n", + " | datetime64\n", + " | Returns an array of datetime64 objects representing the time stream.\n", + " | Useful for plotting, with matplotlib.dates.\n", + " | \n", + " | return_header_dict\n", + " | Returns the header as a dictionary with index (0, 1) as the keys\n", + " | and the names as values.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data descriptors defined here:\n", + " | \n", + " | __dict__\n", + " | dictionary for instance variables (if defined)\n", + " | \n", + " | __weakref__\n", + " | list of weak references to the object (if defined)\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data and other attributes defined here:\n", + " | \n", + " | __annotations__ = {'data': , 'files': typing.Li...\n", + " | \n", + " | __dataclass_fields__ = {'data': Field(name='data',type=" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# settin limits helps to see the data better, you can also use np.log10()\n", + "# to plot the concentration in log space\n", + "concentration = data_stream_2d.data\n", + "concentration = np.where(concentration < 1e-5, 1e-5, concentration)\n", + "concentration = np.where(concentration > 10**2.5, 10**2.5, concentration)\n", + "# concentration = np.log10(concentration)\n", + "\n", + "fig, ax = plt.subplots(1, 1)\n", + "plt.contourf(\n", + " data_stream_2d.datetime64,\n", + " np.array(data_stream_2d.header).astype(float),\n", + " concentration,\n", + " cmap=plt.cm.PuBu_r, levels=50)\n", + "plt.yscale('log')\n", + "plt.tick_params(rotation=35) # rotate the x axis labels\n", + "ax.set_xlabel(\"Time (UTC)\")\n", + "ax.set_ylabel('Diameter (nm)')\n", + "plt.colorbar(label='Concentration dN/dlog(Dp) [#/cm3]', ax=ax)\n", + "plt.show()\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " ## Summary\n", + "\n", + " This example covered loading data from a file that has 2 dimensions, such\n", + " as a size distribution. It covered the following:\n", + "\n", + " - Setting the working path\n", + " - Loading the data\n", + " - Formatting the data\n", + " - Plotting the data\n", + " - Generating the settings dictionary\n", + " - Loading the data with the interface\n", + " - Plotting the data stream" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ParticulaDev_py39", + "language": "python", + "name": "python3" + }, + "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.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/particula/data/loader.py b/particula/data/loader.py index 4338c2236..bc65f9b2c 100644 --- a/particula/data/loader.py +++ b/particula/data/loader.py @@ -351,6 +351,7 @@ def general_data_formatter( time_column: Union[int, List[int]], time_format: str, delimiter: str = ',', + header_row: int = 0, date_offset: str = None, seconds_shift: int = 0, timezone_identifier: str = 'UTC' @@ -383,6 +384,14 @@ def general_data_formatter( A tuple containing two np.array objects: the first contains the epoch times, and the second contains the data. """ + + # find str matching in header row and gets index + if isinstance(data_column[0], str): + data_header = data[header_row].split(delimiter) + # Get data column indices + data_column = [data_header.index(x) + for x in data_column] + # Check the data format data = data_format_checks(data, data_checks) @@ -408,6 +417,7 @@ def sizer_data_formatter( time_column: int, time_format: str, delimiter: str = ',', + header_row: int = 0, date_offset: str = None, seconds_shift: int = 0, timezone_identifier: str = 'UTC' @@ -443,25 +453,33 @@ def sizer_data_formatter( """ # Get Dp range and columns - data_header = data[data_sizer_reader["header_rows"]].split(delimiter) + data_header = data[header_row].split(delimiter) + # check if start and end keywords are in the header + if data_sizer_reader["Dp_start_keyword"] not in data_header: + # rise error with snip of data header + raise ValueError( + f"Cannot find '{data_sizer_reader['Dp_start_keyword']}' in header"\ + + f" {data_header[:20]}..." + ) + if data_sizer_reader["Dp_end_keyword"] not in data_header: + # rise error with snip of data header + raise ValueError( + f"Cannot find '{data_sizer_reader['Dp_end_keyword']}' in header"\ + + f" {data_header[:20]}..." + ) dp_range = [ data_header.index(data_sizer_reader["Dp_start_keyword"]), data_header.index(data_sizer_reader["Dp_end_keyword"]) ] dp_columns = list(range(dp_range[0]+1, dp_range[1])) - dp_header = [data_header[i] for i in dp_columns] + header = [data_header[i] for i in dp_columns] # change from np.array - # Get data columns - data_column = [ - data_header.index(x) for x in data_sizer_reader["list_of_data_headers"] - ] - # Format data data = data_format_checks(data, data_checks) # Get data arrays - epoch_time, data_smps_2d = sample_data( + epoch_time, data_2d = sample_data( data, time_column, time_format, @@ -471,16 +489,6 @@ def sizer_data_formatter( seconds_shift=seconds_shift, timezone_identifier=timezone_identifier ) - epoch_time, data_smps_1d = sample_data( - data, - time_column, - time_format, - data_column, - delimiter, - date_offset, - seconds_shift=seconds_shift, - timezone_identifier=timezone_identifier - ) if "convert_scale_from" in data_sizer_reader: if data_sizer_reader["convert_scale_from"] == "dw": @@ -493,13 +501,13 @@ def sizer_data_formatter( " Either dw/dlogdp or dw must be specified." ) for i in range(len(epoch_time)): - data_smps_2d[i, :] = convert.convert_sizer_dn( - diameter=np.array(dp_header).astype(float), - dn_dlogdp=data_smps_2d[i, :], + data_2d[i, :] = convert.convert_sizer_dn( + diameter=np.array(header).astype(float), + dn_dlogdp=data_2d[i, :], inverse=inverse ) - return epoch_time, dp_header, data_smps_2d, data_smps_1d + return epoch_time, data_2d, header def non_standard_date_location( diff --git a/particula/data/loader_interface.py b/particula/data/loader_interface.py index 3930cabf3..28ad4ebfd 100644 --- a/particula/data/loader_interface.py +++ b/particula/data/loader_interface.py @@ -141,13 +141,19 @@ def load_files_interface( stream.files.append(file_info[file_i]) # add file info as loaded first_pass = False - # elif (self.settings[key]['data_loading_function'] == - # 'general_2d_sizer_load'): - # self.initialise_2d_datastream(key, path, first_pass) - # first_pass = False + elif settings['data_loading_function'] == 'general_2d_load': + stream = get_2d_stream( + file_path=file_path, + first_pass=first_pass, + settings=settings, + stream=stream + ) + stream.files.append(file_info[file_i]) # add file info as loaded + first_pass = False + # elif (self.settings[key]['data_loading_function'] == # 'netcdf_load'): - # self.initialise_netcdf_datastream(key, path, first_pass) + # self.initialise_netcdf_stream(key, path, first_pass) # first_pass = False else: raise ValueError('Data loading function not recognized', @@ -205,16 +211,17 @@ def get_1d_stream( time=np.array([]), files=[] ) - # Input validation + # Input validation, should it be abstracted? if not isinstance(settings, dict): raise TypeError("The setting parameters must be in a dictionary.") required_keys = ['data_checks', 'data_column', 'time_column', 'time_format', 'delimiter', 'time_shift_seconds', - 'timezone_identifier', 'data_header'] + 'timezone_identifier', 'data_header', 'header_row'] if any(key not in settings for key in required_keys): - raise KeyError(f"The settings dictionary is missing required keys: \ - {required_keys}") + missing_key = [key for key in required_keys if key not in settings] + raise KeyError( + f"The settings dictionary is missing required keys: {missing_key}") if not os.path.isfile(file_path): raise FileNotFoundError(f"The file path specified does not exist: \ @@ -241,6 +248,7 @@ def get_1d_stream( time_column=settings['time_column'], time_format=settings['time_format'], delimiter=settings['delimiter'], + header_row=settings['header_row'], date_offset=date_offset, seconds_shift=settings['time_shift_seconds'], timezone_identifier=settings['timezone_identifier'] @@ -266,65 +274,108 @@ def get_1d_stream( return stream -# def initialise_2d_datastream( -# self, -# key: str, -# path: str, -# first_pass: bool -# ) -> None: -# """ -# Initializes a 2D datastream using the settings in the DataLake object. +def get_2d_stream( + file_path: str, + settings: dict, + first_pass: bool = True, + stream: Optional[object] = None, +) -> object: + """ + Initializes a 2D stream using the settings in the DataLake object. -# Parameters: -# ---------- -# key (str): The key of the datastream to initialise. -# path (str): The path of the file to load data from. -# first_pass (bool): Whether this is the first time loading data. + Parameters: + ---------- + key (str): The key of the stream to initialise. + path (str): The path of the file to load data from. + first_pass (bool): Whether this is the first time loading data. -# Returns: -# ---------- -# None. -# """ -# epoch_time, dp_header, data_2d, data_1d = self.import_sizer_data( -# path=path, -# key=key -# ) -# if first_pass: -# self.datastreams[ -# self.settings[key]['data_stream_name'][0]] = DataStream( -# header_list=self.settings[key]['data_header'], -# average_times=[600], -# average_base=self.settings[key]['base_interval_sec'] -# ) -# self.datastreams[ -# self.settings[key]['data_stream_name'][1]] = DataStream( -# header_list=dp_header, -# average_times=[600], -# average_base=self.settings[key]['base_interval_sec'] -# ) -# self.datastreams[self.settings[key]['data_stream_name'][0]].add_data( -# time_stream=epoch_time, -# data_stream=data_1d, -# ) -# self.datastreams[self.settings[key]['data_stream_name'][1]].add_data( -# time_stream=epoch_time, -# data_stream=data_2d, -# header_check=True, -# header=dp_header -# ) -# def initialise_netcdf_datastream( + Returns: + ---------- + None. + """ + if stream is None: + stream = Stream( + header=[], + data=np.array([]), + time=np.array([]), + files=[] + ) + # Input validation + if not isinstance(settings, dict): + raise TypeError("The setting parameters must be in a dictionary.") + + required_keys = ['data_checks', 'time_column', + 'time_format', 'delimiter', 'time_shift_seconds', + 'timezone_identifier', 'data_sizer_reader', + 'header_row'] + if any(key not in settings for key in required_keys): + missing_key = [key for key in required_keys if key not in settings] + raise KeyError( + f"The settings dictionary is missing required keys: {missing_key}") + + if not os.path.isfile(file_path): + raise FileNotFoundError(f"The file path specified does not exist: \ + {file_path}") + + if not isinstance(first_pass, bool): + raise TypeError("The first_pass parameter must be a boolean.") + + # should should consolidate and abstract this + data = loader.data_raw_loader(file_path=file_path) + if 'date_location' in settings: + date_offset = loader.non_standard_date_location( + data=data, + date_location=settings['date_location'] + ) + else: + date_offset = None + + epoch_time, data, header = loader.sizer_data_formatter( + data=data, + data_checks=settings['data_checks'], + data_sizer_reader=settings['data_sizer_reader'], + time_column=settings['time_column'], + time_format=settings['time_format'], + delimiter=settings['delimiter'], + header_row=settings['header_row'], + date_offset=date_offset, + seconds_shift=settings['time_shift_seconds'], + timezone_identifier=settings['timezone_identifier'] + ) + + # check data shape + data = convert.data_shape_check( + time=epoch_time, + data=data, + header=header) + if first_pass: + stream.header = header + stream.data = data + stream.time = epoch_time + else: + stream = merger.stream_add_data( + stream=stream, + time_new=epoch_time, + data_new=data, + header_check=True, + header_new=header + ) + return stream + + +# def initialise_netcdf_stream( # self, # key: str, # path: str, # first_pass: bool # ) -> None: # """ -# Initialise a netcdf datastream using the settings in the DataLake +# Initialise a netcdf stream using the settings in the DataLake # object. This can load either 1D or 2D data, as specified in the # settings. # Parameters: # ---------- -# key (str): The key of the datastream to initialise. +# key (str): The key of the stream to initialise. # path (str): The path of the file to load data from. # first_pass (bool): Whether this is the first time loading data. @@ -342,16 +393,16 @@ def get_1d_stream( # file_path=path, # settings=self.settings[key]) -# if first_pass: # create the datastream -# self.datastreams[ +# if first_pass: # create the stream +# self.streams[ # self.settings[key]['data_stream_name'][0] -# ] = DataStream( +# ] = stream( # header_list=header_1d, # average_times=[600], # average_base=self.settings[key]['base_interval_sec'] # ) -# self.datastreams[ +# self.streams[ # self.settings[key]['data_stream_name'][0] # ].add_data( # time_stream=epoch_time, @@ -363,16 +414,16 @@ def get_1d_stream( # file_path=path, # settings=self.settings[key]) -# if first_pass: # create the datastream -# self.datastreams[ +# if first_pass: # create the stream +# self.streams[ # self.settings[key]['data_stream_name'][1] -# ] = DataStream( +# ] = stream( # header_list=header_2d, # average_times=[600], # average_base=self.settings[key]['base_interval_sec'] # ) -# self.datastreams[ +# self.streams[ # self.settings[key]['data_stream_name'][1] # ].add_data( # time_stream=epoch_time, diff --git a/particula/data/settings_generator.py b/particula/data/settings_generator.py index 509bab0e6..543f73505 100644 --- a/particula/data/settings_generator.py +++ b/particula/data/settings_generator.py @@ -9,8 +9,9 @@ def for_general_1d_load( relative_data_folder: str = 'instrument_data', filename_regex: str = '*.csv', file_min_size_bytes: int = 10, + header_row: int = 0, data_checks: Optional[dict] = None, - data_column: List[int] = [3, 5], + data_column: list = [3, 5], data_header: List[str] = ['data 1', 'data 3'], time_column: List[int] = [0, 1], time_format: str = '%Y-%m-%d %H:%M:%S.%f', @@ -31,6 +32,7 @@ def for_general_1d_load( 'filename_regex': filename_regex, 'MIN_SIZE_BYTES': file_min_size_bytes, 'data_loading_function': 'general_1d_load', + 'header_row': header_row, 'data_checks': data_checks, 'data_column': data_column, 'data_header': data_header, @@ -40,3 +42,71 @@ def for_general_1d_load( 'time_shift_seconds': time_shift_seconds, 'timezone_identifier': timezone_identifier, } + + +def for_general_sizer_1d_2d_load( + relative_data_folder: str = 'instrument_data', + filename_regex: str = '*.csv', + file_min_size_bytes: int = 10, + header_row: int = 0, + data_checks: Optional[dict] = None, + data_1d_column: list = [3, 5], + data_1d_header: List[str] = ['data 1', 'data 3'], + data_2d_dp_start_keyword: str = "Date Time", + data_2d_dp_end_keyword: str = "Total Conc", + data_2d_convert_concentration_from: str = "dw/dlogdp", # or dw + time_column: List[int] = [0, 1], + time_format: str = '%Y-%m-%d %H:%M:%S.%f', + delimiter: str = ',', + time_shift_seconds: int = 0, + timezone_identifier: str = 'UTC', +) -> tuple: + """Generate settings file for 1d general file loader and + 2d general sizer file loader. + + Returns + ------- + Tuple[dict, dict] + The settings for the 1d loader and the 2d loader. + """ + if data_checks is None: + data_checks = { + "characters": [10, 100], + "char_counts": {",": 4, ":": 0}, + "skip_rows": 0, + "skip_end": 0, + }, + settings_1d = { + 'relative_data_folder': relative_data_folder, + 'filename_regex': filename_regex, + 'MIN_SIZE_BYTES': file_min_size_bytes, + 'data_loading_function': 'general_1d_load', + 'header_row': header_row, + 'data_checks': data_checks, + 'data_column': data_1d_column, + 'data_header': data_1d_header, + 'time_column': time_column, + 'time_format': time_format, + 'delimiter': delimiter, + 'time_shift_seconds': time_shift_seconds, + 'timezone_identifier': timezone_identifier, + } + settings_2d = { + 'relative_data_folder': relative_data_folder, + 'filename_regex': filename_regex, + 'MIN_SIZE_BYTES': file_min_size_bytes, + 'data_loading_function': 'general_2d_load', + 'header_row': header_row, + 'data_checks': data_checks, + 'data_sizer_reader': { + "Dp_start_keyword": data_2d_dp_start_keyword, + "Dp_end_keyword": data_2d_dp_end_keyword, + "convert_scale_from": data_2d_convert_concentration_from, + }, + 'time_column': time_column, + 'time_format': time_format, + 'delimiter': delimiter, + 'time_shift_seconds': time_shift_seconds, + 'timezone_identifier': timezone_identifier, + } + return settings_1d, settings_2d diff --git a/particula/data/stream.py b/particula/data/stream.py index eeb14bc38..362d2ddcf 100644 --- a/particula/data/stream.py +++ b/particula/data/stream.py @@ -1,4 +1,5 @@ """A module for the Stream and StreamAveraged(Stream) classes.""" +# pytype: skip-file from typing import List from dataclasses import dataclass, field