{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\n#import numpy as np # linear algebra\n#import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\n#import os\n#for dirname, _, filenames in os.walk('/kaggle/input'):\n    #for filename in filenames:\n        #print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-02-11T13:20:48.472728Z","iopub.execute_input":"2023-02-11T13:20:48.473155Z","iopub.status.idle":"2023-02-11T13:20:48.479454Z","shell.execute_reply.started":"2023-02-11T13:20:48.473128Z","shell.execute_reply":"2023-02-11T13:20:48.477815Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport os\nimport random","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:27:06.477966Z","iopub.execute_input":"2023-02-11T13:27:06.478482Z","iopub.status.idle":"2023-02-11T13:27:07.014316Z","shell.execute_reply.started":"2023-02-11T13:27:06.478377Z","shell.execute_reply":"2023-02-11T13:27:07.013003Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_dir = '/kaggle/input/icecube-neutrinos-in-deep-ice/train/'\nfiles = os.listdir(train_dir)\n\nrandom.shuffle(files)\n\nfiles = files[:int(len(files)*0.01)]","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:27:08.578537Z","iopub.execute_input":"2023-02-11T13:27:08.579010Z","iopub.status.idle":"2023-02-11T13:27:08.772609Z","shell.execute_reply.started":"2023-02-11T13:27:08.578977Z","shell.execute_reply":"2023-02-11T13:27:08.771784Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Group the data by event_id","metadata":{}},{"cell_type":"code","source":"data = pd.DataFrame()\n\nfor i, f in enumerate(files):\n    df = pd.read_parquet(f'{train_dir}/{f}')\n    grouped = df.groupby('event_id').agg('mean')\n    data = data.append(grouped)","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:27:11.068997Z","iopub.execute_input":"2023-02-11T13:27:11.069409Z","iopub.status.idle":"2023-02-11T13:27:36.059607Z","shell.execute_reply.started":"2023-02-11T13:27:11.069375Z","shell.execute_reply":"2023-02-11T13:27:36.058070Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data = data.drop(columns='sensor_id')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:27:38.699083Z","iopub.execute_input":"2023-02-11T13:27:38.699478Z","iopub.status.idle":"2023-02-11T13:27:38.729820Z","shell.execute_reply.started":"2023-02-11T13:27:38.699449Z","shell.execute_reply":"2023-02-11T13:27:38.728637Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data = data.reset_index()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:27:40.412586Z","iopub.execute_input":"2023-02-11T13:27:40.413026Z","iopub.status.idle":"2023-02-11T13:27:40.424762Z","shell.execute_reply.started":"2023-02-11T13:27:40.412991Z","shell.execute_reply":"2023-02-11T13:27:40.423752Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data.head()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:27:43.454766Z","iopub.execute_input":"2023-02-11T13:27:43.455202Z","iopub.status.idle":"2023-02-11T13:27:43.474659Z","shell.execute_reply.started":"2023-02-11T13:27:43.455166Z","shell.execute_reply":"2023-02-11T13:27:43.473611Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data.describe()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:03.634325Z","iopub.execute_input":"2023-02-11T13:28:03.634737Z","iopub.status.idle":"2023-02-11T13:28:03.808240Z","shell.execute_reply.started":"2023-02-11T13:28:03.634703Z","shell.execute_reply":"2023-02-11T13:28:03.806776Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Let's find out the interaction of parameters on the correlation map","metadata":{}},{"cell_type":"code","source":"sns.heatmap(data.corr(), vmin = -1, vmax = +1, annot = True, cmap = 'coolwarm')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:06.945090Z","iopub.execute_input":"2023-02-11T13:28:06.946542Z","iopub.status.idle":"2023-02-11T13:28:07.240582Z","shell.execute_reply.started":"2023-02-11T13:28:06.946482Z","shell.execute_reply":"2023-02-11T13:28:07.239019Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"No correlation was found between the parameters","metadata":{}},{"cell_type":"code","source":"data_clean = data.query('auxiliary < 0.6')\nprortion = len(data_clean)/len(data)\nprint(f'For values with a higher probability of having pure values - {prortion}')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:14.471020Z","iopub.execute_input":"2023-02-11T13:28:14.471419Z","iopub.status.idle":"2023-02-11T13:28:14.499198Z","shell.execute_reply.started":"2023-02-11T13:28:14.471386Z","shell.execute_reply":"2023-02-11T13:28:14.497323Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(12,5))\ndata['time'].hist(bins=30)\nplt.title('The mean value of the pulse time')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:16.996798Z","iopub.execute_input":"2023-02-11T13:28:16.997225Z","iopub.status.idle":"2023-02-11T13:28:17.208372Z","shell.execute_reply.started":"2023-02-11T13:28:16.997191Z","shell.execute_reply":"2023-02-11T13:28:17.206682Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data.boxplot(column=['time'])\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:19.962370Z","iopub.execute_input":"2023-02-11T13:28:19.962829Z","iopub.status.idle":"2023-02-11T13:28:21.522630Z","shell.execute_reply.started":"2023-02-11T13:28:19.962793Z","shell.execute_reply":"2023-02-11T13:28:21.521927Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data_clean.boxplot(column=['time'])\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:24.523009Z","iopub.execute_input":"2023-02-11T13:28:24.523392Z","iopub.status.idle":"2023-02-11T13:28:25.011243Z","shell.execute_reply.started":"2023-02-11T13:28:24.523358Z","shell.execute_reply":"2023-02-11T13:28:25.010338Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(12,5))\ndata['charge'].hist(bins=15)\nplt.title('The mean value of the charge')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:27.320565Z","iopub.execute_input":"2023-02-11T13:28:27.321035Z","iopub.status.idle":"2023-02-11T13:28:27.520297Z","shell.execute_reply.started":"2023-02-11T13:28:27.320993Z","shell.execute_reply":"2023-02-11T13:28:27.518745Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data.boxplot(column=['charge'])\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:29.929531Z","iopub.execute_input":"2023-02-11T13:28:29.931263Z","iopub.status.idle":"2023-02-11T13:28:31.573122Z","shell.execute_reply.started":"2023-02-11T13:28:29.931182Z","shell.execute_reply":"2023-02-11T13:28:31.571775Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data_clean.boxplot(column=['charge'])\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:33.989965Z","iopub.execute_input":"2023-02-11T13:28:33.990378Z","iopub.status.idle":"2023-02-11T13:28:34.472693Z","shell.execute_reply.started":"2023-02-11T13:28:33.990342Z","shell.execute_reply":"2023-02-11T13:28:34.471897Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(12,5))\ndata['auxiliary'].hist(bins=15)\nplt.title('The mean value of the auxiliary')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:37.817923Z","iopub.execute_input":"2023-02-11T13:28:37.818348Z","iopub.status.idle":"2023-02-11T13:28:38.008048Z","shell.execute_reply.started":"2023-02-11T13:28:37.818315Z","shell.execute_reply":"2023-02-11T13:28:38.006491Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data.boxplot(column=['auxiliary'])\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:40.764497Z","iopub.execute_input":"2023-02-11T13:28:40.765547Z","iopub.status.idle":"2023-02-11T13:28:42.478731Z","shell.execute_reply.started":"2023-02-11T13:28:40.765497Z","shell.execute_reply":"2023-02-11T13:28:42.477894Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data_clean.boxplot(column=['auxiliary'])\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:46.112614Z","iopub.execute_input":"2023-02-11T13:28:46.113904Z","iopub.status.idle":"2023-02-11T13:28:46.601268Z","shell.execute_reply.started":"2023-02-11T13:28:46.113857Z","shell.execute_reply":"2023-02-11T13:28:46.600326Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Let's combine the event and meta data","metadata":{}},{"cell_type":"code","source":"data_meta = pd.read_parquet(\"/kaggle/input/icecube-neutrinos-in-deep-ice/train_meta.parquet\")\ndata_meta.head()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:28:57.404153Z","iopub.execute_input":"2023-02-11T13:28:57.404582Z","iopub.status.idle":"2023-02-11T13:29:35.631483Z","shell.execute_reply.started":"2023-02-11T13:28:57.404545Z","shell.execute_reply":"2023-02-11T13:29:35.630714Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df = data.merge(data_meta, left_on='event_id', right_on='event_id')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:29:38.740660Z","iopub.execute_input":"2023-02-11T13:29:38.741102Z","iopub.status.idle":"2023-02-11T13:31:01.038484Z","shell.execute_reply.started":"2023-02-11T13:29:38.741065Z","shell.execute_reply":"2023-02-11T13:31:01.037230Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df.head()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:03.842389Z","iopub.execute_input":"2023-02-11T13:31:03.842799Z","iopub.status.idle":"2023-02-11T13:31:03.861605Z","shell.execute_reply.started":"2023-02-11T13:31:03.842766Z","shell.execute_reply":"2023-02-11T13:31:03.859659Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Let's check the correlation of the position of the sensors from other parameters","metadata":{}},{"cell_type":"code","source":"print(df['time'].corr(df['azimuth']))\nprint(df['time'].corr(df['zenith']))\nprint(df['charge'].corr(df['azimuth']))\nprint(df['charge'].corr(df['zenith']))\nprint(df['time'].corr(df['charge']))","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:09.069756Z","iopub.execute_input":"2023-02-11T13:31:09.070240Z","iopub.status.idle":"2023-02-11T13:31:09.137600Z","shell.execute_reply.started":"2023-02-11T13:31:09.070195Z","shell.execute_reply":"2023-02-11T13:31:09.136605Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"No correlation was found","metadata":{}},{"cell_type":"code","source":"df_clean = df.query('auxiliary < 0.5')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:13.601479Z","iopub.execute_input":"2023-02-11T13:31:13.601909Z","iopub.status.idle":"2023-02-11T13:31:13.653987Z","shell.execute_reply.started":"2023-02-11T13:31:13.601869Z","shell.execute_reply":"2023-02-11T13:31:13.652652Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(df_clean['time'].corr(df['azimuth']))\nprint(df_clean['time'].corr(df['zenith']))\nprint(df_clean['charge'].corr(df['azimuth']))\nprint(df_clean['charge'].corr(df['zenith']))\nprint(df_clean['time'].corr(df['charge']))","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:16.588588Z","iopub.execute_input":"2023-02-11T13:31:16.589038Z","iopub.status.idle":"2023-02-11T13:31:16.709735Z","shell.execute_reply.started":"2023-02-11T13:31:16.588992Z","shell.execute_reply":"2023-02-11T13:31:16.708237Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"On accurate/pure data, the correlation coefficient increases slightly, but not enough to consider it significant","metadata":{}},{"cell_type":"markdown","source":"## Let's see sensor geometry data","metadata":{}},{"cell_type":"code","source":"data_sensor = pd.read_csv(\"/kaggle/input/icecube-neutrinos-in-deep-ice/sensor_geometry.csv\")\ndata_sensor.head()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:20.593254Z","iopub.execute_input":"2023-02-11T13:31:20.593675Z","iopub.status.idle":"2023-02-11T13:31:20.619814Z","shell.execute_reply.started":"2023-02-11T13:31:20.593643Z","shell.execute_reply":"2023-02-11T13:31:20.618840Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_time = pd.DataFrame({\n    'sensor_id': list(range(5160)),\n    'count': 0,\n    'sum': 0\n}).set_index('sensor_id')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:23.527740Z","iopub.execute_input":"2023-02-11T13:31:23.528232Z","iopub.status.idle":"2023-02-11T13:31:23.537917Z","shell.execute_reply.started":"2023-02-11T13:31:23.528190Z","shell.execute_reply":"2023-02-11T13:31:23.536470Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i, f in enumerate(files):\n    data = pd.read_parquet(f'{train_dir}/{f}')\n    grouped = data.groupby('sensor_id')['time'].agg(['count', 'sum'])\n    df_time.iloc[grouped.index] += grouped\n    \ndf_time['average_time_of_one_sensor'] = df_time['sum'] / df_time['count']","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:26.476575Z","iopub.execute_input":"2023-02-11T13:31:26.477356Z","iopub.status.idle":"2023-02-11T13:31:36.530776Z","shell.execute_reply.started":"2023-02-11T13:31:26.477315Z","shell.execute_reply":"2023-02-11T13:31:36.529597Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_time.head()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:38.446325Z","iopub.execute_input":"2023-02-11T13:31:38.446992Z","iopub.status.idle":"2023-02-11T13:31:38.458929Z","shell.execute_reply.started":"2023-02-11T13:31:38.446927Z","shell.execute_reply":"2023-02-11T13:31:38.457466Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_time.boxplot(['average_time_of_one_sensor'])\nplt.show;","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:41.147521Z","iopub.execute_input":"2023-02-11T13:31:41.147917Z","iopub.status.idle":"2023-02-11T13:31:41.275188Z","shell.execute_reply.started":"2023-02-11T13:31:41.147890Z","shell.execute_reply":"2023-02-11T13:31:41.274387Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_time['average_time_of_one_sensor'].hist(bins=30)\nplt.show;","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:43.685680Z","iopub.execute_input":"2023-02-11T13:31:43.686053Z","iopub.status.idle":"2023-02-11T13:31:43.883339Z","shell.execute_reply.started":"2023-02-11T13:31:43.686019Z","shell.execute_reply":"2023-02-11T13:31:43.882000Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Distribution is normal, data without outliers","metadata":{}},{"cell_type":"code","source":"df_charge = pd.DataFrame({\n    'sensor_id': list(range(5160)),\n    'count': 0,\n    'sum': 0\n}).set_index('sensor_id')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:47.123966Z","iopub.execute_input":"2023-02-11T13:31:47.125168Z","iopub.status.idle":"2023-02-11T13:31:47.132488Z","shell.execute_reply.started":"2023-02-11T13:31:47.125125Z","shell.execute_reply":"2023-02-11T13:31:47.131721Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i, f in enumerate(files):\n    data = pd.read_parquet(f'{train_dir}/{f}')\n    grouped = data.groupby('sensor_id')['charge'].agg(['count', 'sum'])\n    df_charge.iloc[grouped.index] += grouped\n    \ndf_charge['average_light_of_one_sensor'] = df_charge['sum'] / df_charge['count']","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:31:49.735642Z","iopub.execute_input":"2023-02-11T13:31:49.736043Z","iopub.status.idle":"2023-02-11T13:31:59.671700Z","shell.execute_reply.started":"2023-02-11T13:31:49.736015Z","shell.execute_reply":"2023-02-11T13:31:59.669992Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_charge.head()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:32:01.983774Z","iopub.execute_input":"2023-02-11T13:32:01.984197Z","iopub.status.idle":"2023-02-11T13:32:01.998474Z","shell.execute_reply.started":"2023-02-11T13:32:01.984168Z","shell.execute_reply":"2023-02-11T13:32:01.995728Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_charge.boxplot(['average_light_of_one_sensor'])\nplt.show;","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:32:04.272571Z","iopub.execute_input":"2023-02-11T13:32:04.273010Z","iopub.status.idle":"2023-02-11T13:32:04.401007Z","shell.execute_reply.started":"2023-02-11T13:32:04.272974Z","shell.execute_reply":"2023-02-11T13:32:04.400180Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_charge['average_light_of_one_sensor'].hist(bins=30)\nplt.show;","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:32:06.996124Z","iopub.execute_input":"2023-02-11T13:32:06.996521Z","iopub.status.idle":"2023-02-11T13:32:07.183069Z","shell.execute_reply.started":"2023-02-11T13:32:06.996490Z","shell.execute_reply":"2023-02-11T13:32:07.181545Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The average amount of light per sensor has a normal distribution, but there are outliers in the data","metadata":{}},{"cell_type":"code","source":"df_sensor = data.merge(data_sensor, left_on='sensor_id', right_on='sensor_id')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:32:10.111898Z","iopub.execute_input":"2023-02-11T13:32:10.112349Z","iopub.status.idle":"2023-02-11T13:32:15.287090Z","shell.execute_reply.started":"2023-02-11T13:32:10.112312Z","shell.execute_reply":"2023-02-11T13:32:15.285554Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_sensor.head()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:32:18.237146Z","iopub.execute_input":"2023-02-11T13:32:18.237554Z","iopub.status.idle":"2023-02-11T13:32:18.253195Z","shell.execute_reply.started":"2023-02-11T13:32:18.237522Z","shell.execute_reply":"2023-02-11T13:32:18.251618Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sensor = pd.pivot_table(df_sensor,index=['sensor_id'],values=['time','charge','auxiliary','x','y','z'],aggfunc='mean')","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:32:20.929654Z","iopub.execute_input":"2023-02-11T13:32:20.930119Z","iopub.status.idle":"2023-02-11T13:32:23.089857Z","shell.execute_reply.started":"2023-02-11T13:32:20.930084Z","shell.execute_reply":"2023-02-11T13:32:23.088167Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sensor.reset_index()","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:32:29.878451Z","iopub.execute_input":"2023-02-11T13:32:29.878859Z","iopub.status.idle":"2023-02-11T13:32:30.075204Z","shell.execute_reply.started":"2023-02-11T13:32:29.878826Z","shell.execute_reply":"2023-02-11T13:32:30.073821Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sns.heatmap(sensor.corr(), vmin = -1, vmax = +1, annot = True, cmap = 'coolwarm');","metadata":{"execution":{"iopub.status.busy":"2023-02-11T13:32:33.044827Z","iopub.execute_input":"2023-02-11T13:32:33.045245Z","iopub.status.idle":"2023-02-11T13:32:33.353680Z","shell.execute_reply.started":"2023-02-11T13:32:33.045216Z","shell.execute_reply":"2023-02-11T13:32:33.352040Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"A positive correlation was observed between the position of the z sensor and the quality/digitization of the pulse, that is, the higher from the center, the more accurately the pulse is digitized.\nAlso, the position of the z sensor has a negative correlation with the pulse time. The higher the sensor is from the center, the shorter the pulse time. There is also a negative correlation between the quality of digitization of the pulse and the pulse time.\n\nAll this may be due to the fact that sensors that are closer to the boundaries of the ice cube pick up more pulses, but these pulses are shorter and only longer neutrinos reach the center of the ice cube, that is, for further analysis and model construction, we recommend using sensors that are closer to the center of the ice cube. To take as a basis the impulses that have reached them.","metadata":{}}]}