{"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":"markdown","source":"Detecting the direction of a neutrino from cosmos is important to understand the exceptional phenomena in the universe. They are detected as they are deflected on the sensors placed in the Antarctic region through noticeable reaction with matter to produce balls of light on the detectors. The calculation of Azimuth and Zenith angle would help figure out the orientation of earth with the source's plane and the exact position of the source.","metadata":{"execution":{"iopub.status.busy":"2023-04-28T13:30:25.628381Z","iopub.execute_input":"2023-04-28T13:30:25.629104Z","iopub.status.idle":"2023-04-28T13:30:25.636263Z","shell.execute_reply.started":"2023-04-28T13:30:25.629049Z","shell.execute_reply":"2023-04-28T13:30:25.634217Z"}}},{"cell_type":"markdown","source":"![doc_az.png](attachment:4e56dc31-d5d4-472a-b0bf-876dfb6dc9db.png)","metadata":{},"attachments":{"4e56dc31-d5d4-472a-b0bf-876dfb6dc9db.png":{"image/png":"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"}}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport os","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:24.418298Z","iopub.execute_input":"2023-04-29T04:33:24.418727Z","iopub.status.idle":"2023-04-29T04:33:24.424323Z","shell.execute_reply.started":"2023-04-29T04:33:24.418691Z","shell.execute_reply":"2023-04-29T04:33:24.422865Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import polars as pl\nimport math","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:24.427087Z","iopub.execute_input":"2023-04-29T04:33:24.427692Z","iopub.status.idle":"2023-04-29T04:33:24.617423Z","shell.execute_reply.started":"2023-04-29T04:33:24.427648Z","shell.execute_reply":"2023-04-29T04:33:24.616415Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sensordf=pd.read_csv('/kaggle/input/icecube-neutrinos-in-deep-ice/sensor_geometry.csv')","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:24.618800Z","iopub.execute_input":"2023-04-29T04:33:24.619280Z","iopub.status.idle":"2023-04-29T04:33:24.641591Z","shell.execute_reply.started":"2023-04-29T04:33:24.619166Z","shell.execute_reply":"2023-04-29T04:33:24.640085Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import sklearn\nfrom sklearn import preprocessing\nfrom sklearn.linear_model import HuberRegressor\nfrom sklearn.datasets import make_regression\nfrom sklearn.linear_model import LinearRegression","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:24.643240Z","iopub.execute_input":"2023-04-29T04:33:24.643589Z","iopub.status.idle":"2023-04-29T04:33:25.306392Z","shell.execute_reply.started":"2023-04-29T04:33:24.643556Z","shell.execute_reply":"2023-04-29T04:33:25.305119Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Huber Regressor is employed to minimize the effect of falsely detected pulses,to obtain the direction of the neutrinos to be deduced from each batch of events provided. The path of neutron traversal is traced for each event through the calculated azimuth and zenith angles.","metadata":{}},{"cell_type":"code","source":"def conversion(az,zen):\n    l=len(az)\n    x=[]\n    y=[]\n    z=[]\n    i=0\n    for i in np.arange(l):\n        z.append(math.cos(zen[i]))\n        x.append(math.cos(az[i])*math.sin(zen[i]))\n        y.append(math.sin(az[i])*math.sin(zen[i]))\n    return x,y,z","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.309159Z","iopub.execute_input":"2023-04-29T04:33:25.309547Z","iopub.status.idle":"2023-04-29T04:33:25.317110Z","shell.execute_reply.started":"2023-04-29T04:33:25.309512Z","shell.execute_reply":"2023-04-29T04:33:25.315605Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"zenreg=np.array([2.18227660e-05, 3.48103408e-05, 1.24068101e-11])\nazreg=np.array([-6.38719228e-07, 1.24188883e-04, -3.63128495e-13])\nsa=np.array([8.48240613e-06, 6.19646559e-05, 7.15244887e-12])\nsz=np.array([7.26575993e-06, 1.63302382e-05, 6.12656075e-12])","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.318949Z","iopub.execute_input":"2023-04-29T04:33:25.319399Z","iopub.status.idle":"2023-04-29T04:33:25.330395Z","shell.execute_reply.started":"2023-04-29T04:33:25.319364Z","shell.execute_reply":"2023-04-29T04:33:25.329004Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The linear regression coefficients are obtained to be used to predict the direction of each event to track the points of interaction of neutrinos to further obtain the Azimuth and Zenith angles of the corresponding occurrence. Reference to the notebook attached would cover the process used to obtain the coefficients.","metadata":{}},{"cell_type":"markdown","source":"https://www.kaggle.com/sumamallapragada/neutrino-observation","metadata":{}},{"cell_type":"code","source":"ac=(sa+azreg)/2","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.332077Z","iopub.execute_input":"2023-04-29T04:33:25.332517Z","iopub.status.idle":"2023-04-29T04:33:25.342790Z","shell.execute_reply.started":"2023-04-29T04:33:25.332483Z","shell.execute_reply":"2023-04-29T04:33:25.341558Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"zc=(sz+zenreg)/2","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.344176Z","iopub.execute_input":"2023-04-29T04:33:25.344501Z","iopub.status.idle":"2023-04-29T04:33:25.353819Z","shell.execute_reply.started":"2023-04-29T04:33:25.344471Z","shell.execute_reply":"2023-04-29T04:33:25.352820Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"reg=LinearRegression()\nregz=LinearRegression()\nreg.coef_=ac\nregz.coef_=zc\nreg.intercept_=0.02\nregz.intercept_=0.02","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.355157Z","iopub.execute_input":"2023-04-29T04:33:25.355479Z","iopub.status.idle":"2023-04-29T04:33:25.366130Z","shell.execute_reply.started":"2023-04-29T04:33:25.355450Z","shell.execute_reply":"2023-04-29T04:33:25.364955Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def gethuber(btdf):\n    dn=np.array(btdf['vel_dist'])\n    dd=dn.reshape(-1,1)\n    huberpred = HuberRegressor().fit(dd,btdf['auxiliary'])\n    hl=list(huberpred.predict(dd))\n    return hl","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.367588Z","iopub.execute_input":"2023-04-29T04:33:25.367896Z","iopub.status.idle":"2023-04-29T04:33:25.378119Z","shell.execute_reply.started":"2023-04-29T04:33:25.367868Z","shell.execute_reply":"2023-04-29T04:33:25.377209Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The velocity of the neutrinos while striking the sensors would help predict the distance they covered at the instance recorded and the path they would take while distinguishing between noisy intervention using a huber fit between distance and auxiliary.","metadata":{}},{"cell_type":"code","source":"def fetchxyz(btdf):\n    hl=gethuber(btdf)\n    ntdf=btdf\n    ntdf['predict_clarity']=hl\n    pra=reg.predict(btdf[['vel_dist','sensor_id','predict_clarity']].values)\n    prz=regz.predict(btdf[['vel_dist','sensor_id','predict_clarity']].values)\n    ntdf['x'],ntdf['y'],ntdf['z']=conversion(pra,prz)\n    return ntdf","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.379639Z","iopub.execute_input":"2023-04-29T04:33:25.379923Z","iopub.status.idle":"2023-04-29T04:33:25.390241Z","shell.execute_reply.started":"2023-04-29T04:33:25.379896Z","shell.execute_reply":"2023-04-29T04:33:25.389235Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The direction of each particle is obtained as a fit dependent on distance travelled by the neutrino, clarity of the detected signal going in the visualized direction,sensor id of the sensor struck. The path is tracked as x,y,z coordinates are obtained for the most obvious route detected through the azimuth,zenith angles obtained for each instance of the particular event from the regression fit.","metadata":{}},{"cell_type":"code","source":"def predangle(df):\n    p1c=np.cov(df['z'],df['x'])\n    a1=p1c[0][1]/p1c[0][0]\n    p2c=np.cov(df['z'],df['y'])\n    a2=p2c[0][1]/p2c[0][0]\n    d=np.sqrt(1+a1**2+a2**2)\n    azimuth=np.arctan2(a2,a1)\n    if azimuth<0:\n        azimuth=2*np.pi+azimuth\n    zenith=np.arccos(1/d)\n    return azimuth,zenith","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.391962Z","iopub.execute_input":"2023-04-29T04:33:25.392306Z","iopub.status.idle":"2023-04-29T04:33:25.402731Z","shell.execute_reply.started":"2023-04-29T04:33:25.392274Z","shell.execute_reply":"2023-04-29T04:33:25.401544Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The azimuth and zenith angles for each event are deduced from the x,y,z orientation of the neutrinos obtained.Computation is considered through the relations given by,\n\nx = cos(azimuth) * sin(zenith)\n\ny = sin(azimuth) * sin(zenith)\n\nz = cos(zenith)","metadata":{}},{"cell_type":"code","source":"import warnings\nwarnings.filterwarnings('ignore')","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.406944Z","iopub.execute_input":"2023-04-29T04:33:25.407325Z","iopub.status.idle":"2023-04-29T04:33:25.413799Z","shell.execute_reply.started":"2023-04-29T04:33:25.407276Z","shell.execute_reply":"2023-04-29T04:33:25.412659Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import glob","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.415077Z","iopub.execute_input":"2023-04-29T04:33:25.415442Z","iopub.status.idle":"2023-04-29T04:33:25.425714Z","shell.execute_reply.started":"2023-04-29T04:33:25.415410Z","shell.execute_reply":"2023-04-29T04:33:25.424519Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tm=pl.read_parquet('/kaggle/input/icecube-neutrinos-in-deep-ice/test_meta.parquet')\ntem=tm.to_pandas()\nls=len(tem)","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:25.427117Z","iopub.execute_input":"2023-04-29T04:33:25.427530Z","iopub.status.idle":"2023-04-29T04:33:26.618243Z","shell.execute_reply.started":"2023-04-29T04:33:25.427446Z","shell.execute_reply":"2023-04-29T04:33:26.617266Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def updateangle(testmeta):\n    anglaz=[]\n    anglze=[]\n    t=glob.glob(os.path.join('/kaggle/input/icecube-neutrinos-in-deep-ice', \"test\", \"*.parquet\"))\n    t.sort()\n    count=0\n    for b in t:\n        testdf=pl.read_parquet(b)\n        tes=testdf.to_pandas()\n        l=tes['time'][0]\n        tes[\"vel_dist\"]=(tes[\"time\"]-l)*0.158 #compute the distance travelled\n        for i in range(count,ls):\n            btdf=tes.iloc[testmeta.iloc[i].first_pulse_index.astype(int):testmeta.iloc[i].last_pulse_index.astype(int)+1].copy()\n            direct=fetchxyz(btdf) #obtain the orientation of the neutrinos for each event.\n            pa,pz=predangle(direct)#obtain the azimuth and zenith\n            anglaz.append(pa)\n            anglze.append(pz)\n            count+=1\n        del testdf\n    return anglaz,anglze","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:26.619173Z","iopub.execute_input":"2023-04-29T04:33:26.619503Z","iopub.status.idle":"2023-04-29T04:33:26.628523Z","shell.execute_reply.started":"2023-04-29T04:33:26.619471Z","shell.execute_reply":"2023-04-29T04:33:26.627429Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"angle_a,angle_z=updateangle(tem)","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:26.629724Z","iopub.execute_input":"2023-04-29T04:33:26.630063Z","iopub.status.idle":"2023-04-29T04:33:26.738404Z","shell.execute_reply.started":"2023-04-29T04:33:26.630031Z","shell.execute_reply":"2023-04-29T04:33:26.737113Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tem['azimuth']=angle_a\ntem['zenith']=angle_z","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:26.740072Z","iopub.execute_input":"2023-04-29T04:33:26.740437Z","iopub.status.idle":"2023-04-29T04:33:26.746884Z","shell.execute_reply.started":"2023-04-29T04:33:26.740406Z","shell.execute_reply":"2023-04-29T04:33:26.745449Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"subp=tem[['event_id', 'azimuth', 'zenith']]","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:26.748560Z","iopub.execute_input":"2023-04-29T04:33:26.749001Z","iopub.status.idle":"2023-04-29T04:33:26.761254Z","shell.execute_reply.started":"2023-04-29T04:33:26.748956Z","shell.execute_reply":"2023-04-29T04:33:26.760291Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"subp","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:26.762647Z","iopub.execute_input":"2023-04-29T04:33:26.763679Z","iopub.status.idle":"2023-04-29T04:33:26.789403Z","shell.execute_reply.started":"2023-04-29T04:33:26.763628Z","shell.execute_reply":"2023-04-29T04:33:26.788561Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"subp.to_csv(\"submission.csv\",index=False)","metadata":{"execution":{"iopub.status.busy":"2023-04-29T04:33:26.790423Z","iopub.execute_input":"2023-04-29T04:33:26.791421Z","iopub.status.idle":"2023-04-29T04:33:26.800315Z","shell.execute_reply.started":"2023-04-29T04:33:26.791382Z","shell.execute_reply":"2023-04-29T04:33:26.799310Z"},"trusted":true},"execution_count":null,"outputs":[]}]}