{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":70367,"databundleVersionId":9188054,"sourceType":"competition"},{"sourceId":9629432,"sourceType":"datasetVersion","datasetId":5846888}],"dockerImageVersionId":30761,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"This notebook builds upon the excellent work done in the following baselines: <br />\n- [Sergei Fironov](https://www.kaggle.com/sergeifironov): [ariel_only_correlation](https://www.kaggle.com/code/sergeifironov/ariel-only-correlation)\n- [Laurent Pourchot](https://www.kaggle.com/pourchot): [Ariel Data Challenge 2024](https://www.kaggle.com/code/pourchot/ariel-data-challenge-2024?scriptVersionId=195970765)\n- [qianc](https://www.kaggle.com/xiaocao123): [Ariel Data Challenge 2024](https://www.kaggle.com/code/xiaocao123/ariel-data-challenge-2024)\n\nThank you to the authors for sharing their insights and code 🙏","metadata":{}},{"cell_type":"markdown","source":"\n\n## Granularity\nGranularity of predictions is one planet.\nFor each planet we need to predict `283` `spectras` (float number) for corresponding wave lengths and each with an associated uncertainty `sigma`.\n\n## Data\nFor each planet we have:\n- **FGS1** signal (`FGS1_signal.parquet`) `[135000, 32, 32]` (`135000` time steps, each representing `0.1` seconds and `32*32` is sensor data) \n- **AIRS-CH0** signal (`AIRS-CH0_signal.parquet`) `[11250, 32, 356]` (`11250` time steps, each representing `1.2` seconds and `32*356` is sensor data `32` spatial and `356` different wave lengths)\n\nAlso we have additional calibration data to make raw data from sensors more informative.\n\n## Baseline overview\n    \n### Preprocessing\n* Calibration of raw signal. It consists of scaling the signal, eliminating dead pixels and other complicated techniques [calibration discussion](https://www.kaggle.com/competitions/ariel-data-challenge-2024/discussion/528066). Only `40-321` wave_length positions (they should relate to `2-283` positions in targets) are taken for **AIRS-CH0**\n* Calibrated signal is divided into time chunks and aggregated (mean). It reduces number of time points and we get\n  `[187, 32, 32]` for **FGS1** (`187` time steps) and `[187, 32, 282]` for **AIRS-CH0** (`187` time steps)\n* Only center spatial pixels are taken and get `[187, 12, 12]` for **FGS1** and `[187, 12, 282]` for **AIRS-CH0**\n* Aggregate (mean) sensor data per special dimension. We get `[187, 1]` for **FGS1** and `[187, 282]` for **AIRS-CH0**\n* Concatenate **FGS1** and **AIRS-CH0** to `[187, 283]` array. Let's call it a `preprocessed_signal`\n\n### Spectra prediction\n* Aggregate (mean) of our `preprocessed_signal` for `2-283` wave_length positions and get `[187]` data points (time dimension) as an input to further optimizations\n* Find time points `phase1` and `phase2` - start and end of planet going in front of the star (`phase_detector`)\n* Next we need to find a constant `s` (actually our further prediction of `spectra`) that after multiplication\n`signal[phase1:phase2] * (1 + s)` we can't see a \"step\" in the signal (more formally, the error after fitting 3nd power polynomial is minimal)\n\nAn exmaple for planet signal phases is demonstrated at the image\n![signal_phases.png](attachment:c8772761-6be4-467c-9f0d-4de557d04fc4.png)\n* We just predict the same `s` for all different spectras (`283`)\n* Sigma is just a constant `0.000145` for all spectras and all planets\n\n\n\n\n## Updates\n* Paralllel preprocessing of planet's raw data with `pqdm` (the library for parallel and interactive bar computations similar to `tqdm`). It made preprocessing x2.2 faster on my tests\n* It was added a simple multiplication of `spectra` predicitons for different wavelength based on it under or over predictions on average for train data\n* A little refactoring\n\n","metadata":{},"attachments":{"c8772761-6be4-467c-9f0d-4de557d04fc4.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAABDsAAAINCAYAAAAwQHSoAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQd4FNXXh3+7m05CCL2DIl1FEAULFrAhKIIU6b1KF6kCIoL03nuRDgIC0gRRpCsICojKn07oCQTSd/f7zl0m2SSbOoOG5XefxyfJ7sydue+9xMy755xrstvtdrCRAAmQAAmQAAmQAAmQAAmQAAmQAAmQgJsQMFF2uMlMchgkQAIkQAIkQAIkQAIkQAIkQAIkQAKKAGUHFwIJkAAJkAAJkAAJkAAJkAAJkAAJkIBbEaDscKvp5GBIgARIgARIgARIgARIgARIgARIgAQoO7gGSIAESIAESIAESIAESIAESIAESIAE3IoAZYdbTScHQwIkQAIkQAIkQAIkQAIkQAIkQAIkQNnBNUACJEACJEACJEACJEACJEACJEACJOBWBCg73Go6ORgSIAESIAESIAESIAESIAESIAESIAHKDq4BEiABEiABEiABEiABEiABEiABEiABtyJA2eFW08nBkAAJkAAJkAAJkAAJkAAJkAAJkAAJUHZwDZAACZAACZAACZAACZAACZAACZAACbgVAcoOt5pODoYESIAESIAESIAESIAESIAESIAESICyg2uABEiABEiABEiABEiABEiABEiABEjArQhQdrjVdHIwJEACJEACJEACJEACJEACJEACJEAClB1cAyRAAiRAAiRAAiRAAiRAAiRAAiRAAm5FgLLDraaTgyEBEiABEiABEiABEiABEiABEiABEqDs4BogARIgARIgARIgARIgARIgARIgARJwKwKUHW41nRwMCZAACZAACZAACZAACZAACZAACZAAZQfXAAmQAAmQAAmQAAmQAAmQAAmQAAmQgFsRoOxwq+nkYEiABEiABEiABEiABEiABEiABEiABCg7uAZIgARIgARIgARIgARIgARIgARIgATcigBlh1tNJwdDAiRAAiRAAiRAAiRAAiRAAiRAAiRA2cE1QAIkQAIkQAIkQAIkQAIkQAIkQAIk4FYEKDvcajo5GBIgARIgARIgARIgARIgARIgARIgAcoOrgESIAESIAESIAESIAESIAESIAESIAG3IkDZ4VbTycGQAAmQAAmQAAmQAAmQAAmQAAmQAAlQdnANkAAJkAAJkAAJkAAJkAAJkAAJkAAJuBUByg63mk4OhgRIgARIgARIgARIgARIgARIgARIgLKDa4AESIAESIAESIAESIAESIAESIAESMCtCFB2uNV0cjAkQAIkQAIkQAIkQAIkQAIkQAIkQAKUHVwDJEACJEACJEACJEACJEACJEACJEACbkWAssOtppODIQESIAESIAESIAESIAESIAESIAESoOzgGiABEiABEiABEiABEiABEiABEiABEnArApQdbjWdHAwJkAAJkAAJkAAJkAAJkAAJkAAJkABlB9cACZAACZAACZAACZAACZAACZAACZCAWxGg7HCr6eRgSIAESIAESIAESIAESIAESIAESIAEKDvur4GN2/ch5HYYmtZ9y21WRVR0DGJiYuHj4wUPiyXFca3dvBvR0TFoUKuqIeOPibXixs1Q3Lkbjlw5siF7toA09StzcOPWbeTOEYTArFmSnHM77B6u3wiFl5cH8ubKDi8vz2T7tdnsuHTlOry9vJA7Z7Y0XT8tB8n9XbsRAv8sfsiXOzs8PT2SPe36zVCE3YtA/jw54OPtlWr3drsdV67dQnhkFPLnyQlfH9fnyD2ER0SiQN5csFjMqfbLA0iABEiABEiABEiABEiABEjgUSJA2XF/tpt0HoYjf/yN47sW/Ofzb7XaMGH2ajxeJB9qV6+S4fsZOGoevvnuJ8wY+QmqVHoqxX7ebdIHYXfDsXvd5AxfT06Uh/D+X83GnkN/JOindPEiGNijGcqVKZak/5shdzByylLs+/U4boWGqfcrPFUCiyf3jzt2xfqdmPn1Bly9HpLg/NYN30WX1h/C0yOhzFmwcgumzl+nhIA0kS1DPm2Fqi+VT3F83+04gE+HTle8hJtz++t/F/HFuIVqnWjNz9cH3dt+iMZ13kxw7I/7jmLIuAUJ7rfOu6+gV8cGCAxIKnFO/HUWY6avwO9/nom7549b1kan5rUS9HvgyEn0GjItjpO8Kcd0avEBTCaTrrnjySRAAiRAAiRAAiRAAiRAAiTgLgQoO+7PZGaSHRKN8cybbfDai89g6vDuGV5ri1dvw95fjqNzy9ooW7Joiv0YJTtOnb6AOq0H4ukyxfBK5afh6+2N73f/qgSBiIHNS0YiZ/bAuHs5+fc5tPt0jHp4l/E++3QJFYVyNzwywYN+90FTsP2nX1TkyRNFC+Cfs5ewYdteJQY6NquFzq1qx/W5fP1ODB2/CMWK5EfD2tUQGRmNecu/U9dYMKEvnnumlEsWf5w6gwbth6j3XnruScwa3SvuuFirFfXaDoYIj57t66NiuZL458wlzF22CecuXsXogR3xbrVK6vj9v55A609GqfF2b1sXQYEBWLdltxJANapVxqiBHRJcX8bRd/gs9Vrdmq+iZLHCuBN2D4UL5InrU94TVnXbDlb9tmtSE4FZ/bFm44+Q++7a+kO0b/pehtcKTyQBEiABEiABEiABEiABEiABdyJA2fEAZIekIqTlU/bkjjNKdqS2UJ2vb5TskMiOP/48o8SFc9NkkjzoywO/1uThXR7ih/dri1pvv5TsLe/8+bASKM6iZP/hE2jdcxTy5ArCzlXj4859v3l/nD53GduWj0GBvDkdAuL+se+99SJG9G+X5DrXboTiwzYD1esiRRLLDi3iQyJtvuzTOu78HbsPo+vASXjzlYqY8EVn9XrtVp8pKTJnzKd4oWJZ9Zqk1NRv/7ka67JpDhmkXavKB12UwFg4sS/KlEheSo2YshQisMYP6Yy3Xq2ozhfe1Rv3gY+3J3atmciUltQWPd8nARIgARIgARIgARIgARJ4JAi4tew4fuospsxfiw/eeRlnL1zBlh8OqIfQ8k8Wxycd6quvWnMV2TF62nL8cvQULl+9oR6AC+bLhTdfrYiWDaojR1BWdWpkVDR6DJ6KCk8VR4nHC2Hhyi2QVAN5AG9U+w20+uhdmM3x6QUSIbB41TZs+eGg+kRe+pQICPlkPsDfT0UqSBSDRAHIA7BEEEjz9fHGuM87pWtRSsTAdzsPoH/XxiiUP3fcuZIyMWnuGuw+8Lu6hqRsyPfywKw3jSW5G1ywYgtGT1+uIh3aNq6pDjt45E+07DFCSQ6RHeltku7zdLVW6rTfd85XnM+cD0bNZv1cpqGIVJB5/O37uQnSXmQOm3f9Cv87H4xFk/qp6InEsmPltz9gyLiFSaJILl25gbc+6qXSYyYP66bm77nqjsiN37bPSVDPY/POA+j1xXQVGSLpN9KmLVyPqfPXKoGSWsqS9Cv9H90xN0ENFokKkbleOm2gyzSh9HLl8SRAAiRAAiRAAiRAAiRAAiTwsBNwa9mx+8AxdOgzLm6ORCxIMUdJO5C2fv4wPPFYAfW9K9khD8eRUTEoV7YYsvpnwfFTZ3Ax+DqeLPkYlkz7zJFucS8ClWp0jLuGyIPHC+dTIkOaRBFINIE0iaTo1G8Cftp/VEmGalUqYM/B39UDuPS5bPog9TDbtMswJWWkSa0Laf5ZfFUKRnralHlrMX3ReqyePSSuH00wSD8SXZAtq78SOnJdqWvhLDskTSMiMirVSz7xWMFkC2lqJ/ceOgObduzHV/3b4v23HBEcn49ZgFUbd6mH9Nw5suHC5etqfmROXNW1SHwjIifea9YvwX1rKSRSx0JqXjg3icCQSIwfVk+IK1gqc9Lvq9lKFkiNjueeKYln326XRHbImpHoF2kind5+7Xn1/dK1OzBs4mJ88WkrfFjjFQRfu4U36vdUbCWCw7lpaSj1338dg3s2V29VrddD1fX4ZcssBF+7iavXbqm5LlmsUILiqyJk5L5E0H09ZUCCfpd88z2GT/o6wX2lOmk8gARIgARIgARIgARIgARIgATcmMAjITtEJHzRu5V6gJQ2Z+kmjJ+1ClIwcmhvR2SAK9khD6fFHy8Y9ym6pCJ0GzgJO/cciRMlmuwQeTGoRzPUeOMFFWGgpU04F7rcuusgen4+TdWd6PtxQ/UwK5EeQ8YuVIVEJTJAIgSMSmNJLDvkWnVaDVQpHlKPQqIXpMnrNZr0VcLDWXZI/QpN2qT0b2DFzMFK1iTXROa83fBT1f+P30yMS0Vp02s09v1yXIkYYe3cPu30EVrUfyfFf3ra+Fp+VB29OjRQx2rpJn0+bohm9d5OcP5nI+dCdp35Zu7QuLUgtTzGzlgJ7XqaVEgc2SEdybnSh7QSjxfES88/hfnLN6NezdcwoFsTFcUh8uT5dx3y6/sVYxPsKCNSQ+SGtiaEe7lqjpQYEXEi0rQm4mnUZx3i0mCuXL+FavV6uqzj8u22Peg3fDY+694UDT+o5sa/rjg0EiABEiABEiABEiABEiABEkgbgUdCdoiEcN5SVbZkrfBWW/WAuXXZaEUquQKlIjjOnL+Mi8GSynIHP+w9oqIDpHCo1KXQZId80u+cZqI99ObKEYjvvh6prtGx73gV1SHXzJc7R9wMiRiRIp3a7hsPSnZoxUOlcOe3C4cnWCGuanZIxIcUykytVXymFLL6+7k8TLag/bjfeJWW06VVHXRo9n7ccSJA5AG/UvnSeKdqJSVBzl4IxvSF3yox4lz0M3HnmkwSKbBu/rC4tCKtOKlETkgEhXOTCAyJxJBdXmS3F9kxpVO/8SrNaVjfNurQlGSH7JTSqsdIyJxev+nY+lXamEEdUb2qozipNC1iRaI7pDis3KOku4gs2bX3NxXRM2loV2gCQ86Re6hcoQyy+Png0NFTWLRqq+pr46Kv8FjhfCrSR2qBJF5ncowm0bq1+RDtmrBIaWrrle+TAAmQAAmQAAmQAAmQAAm4P4FHUnbItGpFJLVaD65kh+wiMmTsggTbfGpLQovCSE52yHHyMB8TGxtXPFN7uE9uWclOHEN6tXxgkR2ym4nUA5F6EVI3wrkZVaDUuU+pqdFv+CyVviIFPMcM7pig1oRW2+LQ5hkJ7kVLRZHinlLkM3ET6fBRB8euKZLS4Vx7ZeP2fegzbCb6d22CxnXeSHCqthWvltYj1w/wd6QHeXt5qWOjoqNVwU/pc+zgTko+SFqJ1H+RAqMS8THpy66w2yWKZD+kaKhIjx7t6qFNoxqqDxEm3QdNVnVQnJtE/8ixEnEikSenz17C+y0GuNyhRep4SD0PrcbJ5Ss38OZHveJEiXO/2m4ursbs/r/COEISIAESIAESIAESIAESIAESSErgkZcdf/wwX+2cklh2SHqFpFnIA6psa/p06cdRIG8u7Pj5V3w5YXFcykl6ZIdWYFKEhqtWtFBeVZD0QUV2rNn0EwaNnueyGKYr2TF7yUZcvnoz1X83bRvVQP77u55oB0tEx8BRc1UtDImAGff5x/D28kzQl7YTS+JCnlrhUWGfWIQcPXEabT4ZraSB824nWscSQSJRMq6iHHp+PhVbdx1S8kkKyJZ9rUWqY5NUGklxGTNjhUpZmTuut4rA0Nr5S1eVHJH+dqwcl2AXHkkBOnMuWB36WJF8OH/xGj4dOl0VjG1c502E3Q1H5Zqd1Fa4ieuxyDgbdRoaJ0LCI6LwXPX2Kgpm3nhH7RCtadEsiSNMUh0cDyABEiABEiABEiABEiABEiABNyXwSMoOkQkvvt8ZBfPlxNp5X6qpTSw7Rk5dplIJpGil1FjQmla3ISORHdo1Dm2eCT9f72SXlCY7nOt9ZGT9Ja7ZoRVsdSUCXMkOSdmQKIrUmqSFlHqicNxhEZHR6D10uqptImkXIwe0S7AriXagVrRU0nyKFMwTd75W5DPxlrKagJIDF08eoHbASdz+PnMRH7SUdI/nlGBxblox0CPbZqt6KVIcNSbGmuCY6JgYyC48kuLUvP47alxynYadhuLYidNYN/9LFH+soMt+nQufumLWoc9YFe2xeckoFC7g2B1HBJjsgvPT2kkJRIlWe8S5rowWCXNg0/QEO/wMHjMfqzf+iEWT+uPZp0ukNl18nwRIgARIgARIgARIgARIgATcnsAjKTuWrduhojOcC1smlh2yRahsFer8Sb4UlBw1dRlk94uMyA7Z7nXm4g0u00gkTeF22L24XVMk6kAEgFbvIyMrMbHs0LZJlZodksohD/zS5HURBEZsPRtyOwxdBkzCkT/+RqPa1dCnc6MEqSvO49AiTaTA5+e94qMstEiFGtUqY9RAxzauWhFOqX8hxVW1XWoSc5FaKe806q1SjzYtHhG364oWKeFKgjj3kVzNDi0FRlJVJGVFa1otDYlC2bdxarJj1XZtSbzNrqTcSOqNjFPGqzUtCkW4CB9psvWtbIE7Y2RPVKn0tHpN1kzNpn3VrkF7N0xNsKVuRtYMzyEBEiABEiABEiABEiABEiABdyDwSMgOeUCuXb2KSjU48dc5rNvys0pP2b58DLIF+qt5TCw7VqzfiS/GL1Kf8L/35oswmQCp4aFtCZsR2SEpL9UbOx7EX6lcDq/f33nl9z//p9I9nGsuaDuVyCf7ZUoUweUrN/FJh4R1NlJbgK62ntUeoqUmxasvlMP5S9fUTjDSEm89m1r/rt6X1JcJs1ert6QorMnFQX07N1KRHiKP6rUdrJjKOCs/WwY/7v1N1fiQtnnJSBQukAdaWou8JnU8ihSIjwLRupedUWQnG2lLvtmO4ZOWqB1T6r33OiRaY+7STYr73LG91XWSa8nJDm3bWDlP5INIkzMXrmDVhh/U/ff+uCGaO+3+ImvniaIFcC88Qu04c+DISXU/00f2RN5c2eMuH3z1Jt5o8In6WdKl8uQMwtrNP+Pw739BpNSq2UPi0n8kLUZ2yJG1265JTbU979otP6uIk49bfIBOLT7IyJTxHBIgARIgARIgARIgARIgARJwOwKPhOxIvK2nPOgP79dGPUhrLbHskAfxwaPnKzGiNdldQ9Ia5NP1KcO74fUXy+NeeCSef7eDy10yJDVEHtS1HV+kn2s3QjF25gr1ab5zk1oMUoxSriFNildOXbBO1ZiQ5qp+RWqrUSty6bzV6u0799Bj8BT18K01KVi68ft9qlaI89azqfXv6n1n2ZHc+b9smQVfH0dBUIkqkSKwUmtDayIFhvZpHbedreyI81RV13VOtHNklxfZ7UVrs77egIlz1sT9LPxkx5W3Xq2Y4rC0nXpcpRCJtBg6YRHOXbyaoN9POzZIsvOLcz0QkUiyW0uPdvXjxu18E7LrzYARcxJsPSsFXWU721w5siW4X+EkRWa1nWDkTYk26damboLUlozMHc8hARIgARIgARIgARIgARIgAXch8EjIDtl6ViI7rt4IQbas/ghIZptUV5MqcuL6zVDkyJ41wSfyeheAyBT5VF8e5CXixMfb8fCfuN25G662f5VP/CUawqgm45KUEymKmrhwqFHXSE8/obfvIvjaTeQICoxLPUnP+a6OFcYiJjw9LCiUP3eCmhgZ7VvmS9bRtftrSQqzSv+Jm6Ql3bodhgJ5cyIoMCDVy0n6zZXrIQiVc/LlSnYrX+lIjpXCsSI8ihbMa+i6SPVGeQAJkAAJkAAJkAAJkAAJkAAJPAQEHhnZISkVD3sbNnExrt+8naZh9O3SyFA5k6aL8iASIAESIAESIAESIAESIAESIAESyAQEKDsywSSk9RZkxw3ZrjQtTSJZtHokaTmex5AACZAACZAACZAACZAACZAACZCAuxBwa9lx5fot7D30B8qVfUIVe2QjARIgARIgARIgARIgARIgARIgARJwfwJuLTvcf/o4QhIgARIgARIgARIgARIgARIgARIggcQEKDu4JkiABEiABEiABEiABEiABEiABEiABNyKAGWHW00nB0MCJEACJEACJEACJEACJEACJEACJEDZwTVAAiRAAiRAAiRAAiRAAiRAAiRAAiTgVgQoO9xqOjkYEiABEiABEiABEiABEiABEiABEiAByg6uARIgARIgARIgARIgARIgARIgARIgAbciQNnhVtPJwZAACZAACZAACZAACZAACZAACZAACVB2cA2QAAmQAAmQAAmQAAmQAAmQAAmQAAm4FQHKDreaTg6GBEiABEiABEiABEiABEiABEiABEiAsoNrgARIgARIgARIgARIgARIgARIgARIwK0IUHa41XRyMCRAAiRAAiRAAiRAAiRAAiRAAiRAApQdXAMkQAIkQAIkQAIkQAIkQAIkQAIkQAJuRYCyw62mk4MhARIgARIgARIgARIgARIgARIgARKg7OAaIAESIAESIAESIAESIAESIAESIAEScCsClB1uNZ0cDAmQAAmQAAmQAAmQAAmQAAmQAAmQAGUH1wAJkAAJkAAJkAAJkAAJkAAJkAAJkIBbEaDscKvp5GBIgARIgARIgARIgARIgARIgARIgAQoO7gGSIAESIAESIAESIAESIAESIAESIAE3IoAZYdbTScHQwIkQAIkQAIkQAIkQAIkQAIkQAIkQNnBNUACJEACJEACJEACJEACJEACJEACJOBWBCg73Go6ORgSIAESIAESIAESIAESIAESIAESIAHKDq4BEiABEiABEiABEiABEiABEiABEiABtyJA2eFW08nBkAAJkAAJkAAJkAAJkAAJkAAJkAAJUHZwDZAACZAACZAACZAACZAACZAACZAACbgVAcoOt5pODoYESIAESIAESIAESIAESIAESIAESICyg2uABEiABEiABEiABEiABEiABEiABEjArQhQdrjVdHIwJEACJEACJEACJEACJEACJEACJEAClB1cAyRAAiRAAiRAAiRAAiRAAiRAAiRAAm5FgLLDraaTgyEBEiABEiABEiABEiABEiABEiABEqDs4BogARIgARIgARIgARIgARIgARIgARJwKwKUHW41nRwMCZAACZAACZAACZAACZAACZAACZAAZQfXAAmQAAmQAAmQAAmQAAmQAAmQAAmQgFsRoOxwq+nkYEiABEiABEiABEiABEiABEiABEiABCg7uAZIgARIgARIgARIgARIgARIgARIgATcigBlh1tNJwdDAiRAAiRAAiRAAiRAAiRAAiRAAiRA2cE1QAIkQAIkQAIkQAIkQAIkQAIkQAIk4FYEKDvcajo5GBIgARIgARIgARIgARIgARIgARIgAcoOrgESIAESIAESIAESIAESIAESIAESIAG3IkDZ4VbTycGQAAmQAAmQAAmQAAmQAAmQAAmQAAlQdnANkAAJkAAJkAAJkAAJkAAJkAAJkAAJuBUByg63mk4OhgRIgARIgARIgARIgARIgARIgARIgLKDa4AESIAESIAESIAESIAESIAESIAESMCtCFB2uNV0cjAkQAIkQAIkQAIkQAIkQAIkQAIkQAKUHVwDJEACJEACJEACJEACJEACJEACJEACbkWAssOtppODIQESIAESIAESIAESIAESIAESIAESoOzgGiABEiABEiABEiABEiABEiABEiABEnArApQdBkzn5ZsRBvTy6HaRM9Abt+/FICbW9uhC0DlykwnIG+SL4FtcixlF6Ru8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Xp8AAQIE1rpACiPS7SubfnrjNX6LSbptZd78N2Pp0sjP367d+mu9Pi9IgAABAgQIEChdQNhReg9QPwECBAgQIECAAAECBAgQqJiAsKNiDaocAgQIECBAgAABAgQIECBQuoCwo/QeoH4CBAgQIECAAAECBAgQIFAxAWFHxRpUOQQIECBAgAABAgQIECBAoHQBYUfpPUD9BAgQIECAAAECBAgQIECgYgLCjoo1qHIIECBAgAABAgQIECBAgEDpAsKO0nuA+gkQIECAAAECBAgQIECAQMUEhB0Va1DlECBAgAABAgQIECBAgACB0gWEHaX3APUTIECAAAECBAgQIECAAIGKCQg7KtagyiFAgAABAgQIECBAgAABAqULCDtK7wHqJ0CAAAECBAgQIECAAAECFRMQdlSsQZVDgAABAgQIECBAgAABAgRKFxB2lN4D1E+AAAECBAgQIECAAAECBComIOyoWIMqhwABAgQIECBAgAABAgQIlC4g7Ci9B6ifAAECBAgQIECAAAECBAhUTEDYUbEGVQ4BAgQIECBAgAABAgQIEChdQNhReg9QPwECBAgQIECAAAECBAgQqJiAsKNiDaocAgQIECBAgAABAgQIECBQuoCwo/QeoH4CBAgQIECAAAECBAgQIFAxAWFHxRpUOQQIECBAgAABAgQIECBAoHQBYUfpPUD9BAgQIECAAAECBAgQIECgYgLCjoo1qHIIECBAgAABAgQIECBAgEDpAsKO0nuA+gkQIECAAAECBAgQIECAQMUEhB0Va1DlECBAgAABAgQIECBAgACB0gWEHaX3APUTIECAAAECBAgQIECAAIGKCQg7KtagyiFAgAABAgQIECBAgAABAqULCDtK7wHqJ0CAAAECBAgQIECAAAECFRMQdlSsQZVDgAABAgQIECBAgAABAgRKFxB2lN4D1E+AAAECBAgQIECAAAECBComIOyoWIMqhwABAgQIECBAgAABAgQIlC4g7Ci9B6ifAAECBAgQIECAAAECBAhUTEDYUbEGVQ4BAgQIECBAgAABAgQIEChdQNhReg9QPwECBAgQIECAAAECBAgQqJiAsKNiDaocAgQIECBAgAABAgQIECBQuoCwo/QeoH4CBAgQIECAAAECBAgQIFAxAWFHxRpUOQQIECBAgAABAgQIECBAoHQBYUfpPUD9BAgQIECAAAECBAgQIECgYgLCjoo1qHIIECBAgAABAgQIECBAgEDpAsKO0nuA+gkQIECAAAECBAgQIECAQMUE/h9CaK4rqmWYtgAAAABJRU5ErkJggg=="}}},{"cell_type":"code","source":"!pip install --no-index --find-links=/kaggle/input/ariel-2024-pqdm pqdm","metadata":{"execution":{"iopub.status.busy":"2024-10-15T02:10:04.046717Z","iopub.execute_input":"2024-10-15T02:10:04.047895Z","iopub.status.idle":"2024-10-15T02:10:16.737082Z","shell.execute_reply.started":"2024-10-15T02:10:04.047828Z","shell.execute_reply":"2024-10-15T02:10:16.73569Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Librairies","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport pandas.api.types\nimport scipy.stats\n\nfrom tqdm import tqdm\nfrom pqdm.processes import pqdm\n\nimport itertools\n\nfrom scipy.optimize import minimize\nfrom sklearn.metrics import mean_squared_error\n\nimport plotly.express as px\n\nfrom astropy.stats import sigma_clip\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-10-15T02:10:16.739529Z","iopub.execute_input":"2024-10-15T02:10:16.739954Z","iopub.status.idle":"2024-10-15T02:10:16.747403Z","shell.execute_reply.started":"2024-10-15T02:10:16.739912Z","shell.execute_reply":"2024-10-15T02:10:16.745883Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Signal Preprocessing","metadata":{}},{"cell_type":"code","source":"class Calibrator:\n    cut_inf = 39\n    cut_sup = 321\n    sensor_to_sizes_dict = {\n        \"AIRS-CH0\": [[11250, 32, 356], [1, 32, cut_sup - cut_inf]],\n        \"FGS1\": [[135000, 32, 32], [1, 32, 32]],\n    }\n    sensor_to_linear_corr_dict = {\"AIRS-CH0\": (6, 32, 356), \"FGS1\": (6, 32, 32)}\n\n    def __init__(self, dataset, planet_id, sensor):\n        self.dataset = dataset\n        self.planet_id = planet_id\n        self.sensor = sensor\n\n    def _apply_linear_corr(self, linear_corr, clean_signal):\n        linear_corr = np.flip(linear_corr, axis=0)\n        for x, y in itertools.product(\n            range(clean_signal.shape[1]), range(clean_signal.shape[2])\n        ):\n            poli = np.poly1d(linear_corr[:, x, y])\n            clean_signal[:, x, y] = poli(clean_signal[:, x, y])\n        return clean_signal\n\n    def _clean_dark(self, signal, dark, dt):\n        dark = np.tile(dark, (signal.shape[0], 1, 1))\n        signal -= dark * dt[:, np.newaxis, np.newaxis]\n        return signal\n\n    def get_calibrated_signal(self):\n        signal = pd.read_parquet(\n            f\"/kaggle/input/ariel-data-challenge-2024/{self.dataset}/{self.planet_id}/{self.sensor}_signal.parquet\"\n        ).to_numpy()\n        dark_frame = pd.read_parquet(\n            f\"/kaggle/input/ariel-data-challenge-2024/{self.dataset}/{self.planet_id}/{self.sensor}_calibration/dark.parquet\",\n            engine=\"pyarrow\",\n        ).to_numpy()\n        dead_frame = pd.read_parquet(\n            f\"/kaggle/input/ariel-data-challenge-2024/{self.dataset}/{self.planet_id}/{self.sensor}_calibration/dead.parquet\",\n            engine=\"pyarrow\",\n        ).to_numpy()\n        flat_frame = pd.read_parquet(\n            f\"/kaggle/input/ariel-data-challenge-2024/{self.dataset}/{self.planet_id}/{self.sensor}_calibration/flat.parquet\",\n            engine=\"pyarrow\",\n        ).to_numpy()\n        linear_corr = (\n            pd.read_parquet(\n                f\"/kaggle/input/ariel-data-challenge-2024/{self.dataset}/{self.planet_id}/{self.sensor}_calibration/linear_corr.parquet\"\n            )\n            .values.astype(np.float64)\n            .reshape(self.sensor_to_linear_corr_dict[self.sensor])\n        )\n\n        signal = signal.reshape(self.sensor_to_sizes_dict[self.sensor][0])\n        gain = adc_info.loc[self.planet_id, f\"{self.sensor}_adc_gain\"]\n        offset = adc_info.loc[self.planet_id, f\"{self.sensor}_adc_offset\"]\n        signal = signal / gain + offset\n\n        hot = sigma_clip(dark_frame, sigma=5, maxiters=5).mask\n\n        if self.sensor == \"AIRS-CH0\":\n            signal = signal[:, :, self.cut_inf : self.cut_sup]\n            dt = np.ones(len(signal)) * 0.1\n            dt[1::2] += 4.5  # @bilzard idea\n            linear_corr = linear_corr[:, :, self.cut_inf : self.cut_sup]\n            dark_frame = dark_frame[:, self.cut_inf : self.cut_sup]\n            dead_frame = dead_frame[:, self.cut_inf : self.cut_sup]\n            flat_frame = flat_frame[:, self.cut_inf : self.cut_sup]\n            hot = hot[:, self.cut_inf : self.cut_sup]\n        elif self.sensor == \"FGS1\":\n            dt = np.ones(len(signal)) * 0.1\n            dt[1::2] += 0.1\n\n        signal = signal.clip(0)  # @graySnow idea\n        linear_corr_signal = self._apply_linear_corr(linear_corr, signal)\n        signal = self._clean_dark(linear_corr_signal, dark_frame, dt)\n\n        flat = flat_frame.reshape(self.sensor_to_sizes_dict[self.sensor][1])\n        flat[dead_frame.reshape(self.sensor_to_sizes_dict[self.sensor][1])] = np.nan\n        flat[hot.reshape(self.sensor_to_sizes_dict[self.sensor][1])] = np.nan\n        signal = signal / flat\n        return signal\n\n\nclass Preprocessor:\n    sensor_to_binning = {\"AIRS-CH0\": 30, \"FGS1\": 30 * 12}\n    sensor_to_binned_dict = {\n        \"AIRS-CH0\": [11250 // sensor_to_binning[\"AIRS-CH0\"] // 2, 282],\n        \"FGS1\": [135000 // sensor_to_binning[\"FGS1\"] // 2],\n    }\n\n    def __init__(self, dataset, planet_id, sensor):\n        self.dataset = dataset\n        self.planet_id = planet_id\n        self.sensor = sensor\n        self.binning = self.sensor_to_binning[sensor]\n\n    def preprocess_signal(self):\n        signal = Calibrator(\n            dataset=self.dataset, planet_id=self.planet_id, sensor=self.sensor\n        ).get_calibrated_signal()\n\n        if self.sensor == \"AIRS-CH0\":\n            signal = signal[:, 10:22, :]\n        elif self.sensor == \"FGS1\":\n            signal = signal[:, 10:22, 10:22]\n            signal = signal.reshape(\n                signal.shape[0], signal.shape[1] * signal.shape[2]\n            )\n\n        mean_signal = np.nanmean(signal, axis=1)\n        cds_signal = mean_signal[1::2] - mean_signal[0::2]\n\n        binned = np.zeros((self.sensor_to_binned_dict[self.sensor]))\n        for j in range(cds_signal.shape[0] // self.binning):\n            binned[j] = cds_signal[\n                j * self.binning : j * self.binning + self.binning\n            ].mean(axis=0)\n\n        if self.sensor == \"FGS1\":\n            binned = binned.reshape((binned.shape[0], 1))\n\n        return binned\n\n\ndef preprocessor(x):\n    return Preprocessor(**x).preprocess_signal()\n","metadata":{"execution":{"iopub.status.busy":"2024-10-15T02:10:16.749495Z","iopub.execute_input":"2024-10-15T02:10:16.749898Z","iopub.status.idle":"2024-10-15T02:10:16.777774Z","shell.execute_reply.started":"2024-10-15T02:10:16.749856Z","shell.execute_reply":"2024-10-15T02:10:16.776614Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dataset = \"test\"\nadc_info = pd.read_csv(\n    \"/kaggle/input/ariel-data-challenge-2024/\" + f\"{dataset}_adc_info.csv\",\n    index_col=\"planet_id\",\n)\naxis_info = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/axis_info.parquet\")\nplanet_ids = adc_info.index","metadata":{"execution":{"iopub.status.busy":"2024-10-15T02:10:16.78016Z","iopub.execute_input":"2024-10-15T02:10:16.780575Z","iopub.status.idle":"2024-10-15T02:10:16.812357Z","shell.execute_reply.started":"2024-10-15T02:10:16.780537Z","shell.execute_reply":"2024-10-15T02:10:16.81133Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"args_fgs1 = [\n    dict(dataset=dataset, planet_id=planet_id, sensor=\"FGS1\")\n    for planet_id in planet_ids\n]\npreprocessed_signal_fgs1 = pqdm(args_fgs1, preprocessor, n_jobs=4)\n\nargs_airs_ch0 = [\n    dict(dataset=dataset, planet_id=planet_id, sensor=\"AIRS-CH0\")\n    for planet_id in planet_ids\n]\npreprocessed_signal_airs_ch0 = pqdm(args_airs_ch0, preprocessor, n_jobs=4)\n\npreprocessed_signal = np.concatenate(\n    [np.stack(preprocessed_signal_fgs1), np.stack(preprocessed_signal_airs_ch0)], axis=2\n)\npreprocessed_signal.shape","metadata":{"execution":{"iopub.status.busy":"2024-10-15T02:10:16.81367Z","iopub.execute_input":"2024-10-15T02:10:16.81405Z","iopub.status.idle":"2024-10-15T02:10:26.097969Z","shell.execute_reply.started":"2024-10-15T02:10:16.81401Z","shell.execute_reply":"2024-10-15T02:10:26.096614Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Modelization","metadata":{}},{"cell_type":"code","source":"def phase_detector(signal):\n    MIN = np.argmin(signal[30:140]) + 30\n    signal1 = signal[:MIN]\n    signal2 = signal[MIN:]\n\n    first_derivative1 = np.gradient(signal1)\n    first_derivative1 /= first_derivative1.max()\n    first_derivative2 = np.gradient(signal2)\n    first_derivative2 /= first_derivative2.max()\n\n    phase1 = np.argmin(first_derivative1)\n    phase2 = np.argmax(first_derivative2) + MIN\n\n    return phase1, phase2\n\n\ndef predict_spectra(signal):\n    def objective_to_minimize(s):\n        delta = 2\n        power = 3\n        x = list(range(signal.shape[0] - delta * 4))\n        y = (\n            signal[: phase1 - delta].tolist()\n            + (signal[phase1 + delta : phase2 - delta] * (1 + s)).tolist()\n            + signal[phase2 + delta :].tolist()\n        )\n\n        z = np.polyfit(x, y, deg=power)\n        p = np.poly1d(z)\n        q = np.abs(p(x) - y).mean()\n        return q\n\n    signal = signal[:, 1:].mean(axis=1)\n    phase1, phase2 = phase_detector(signal)\n\n    s = minimize(fun=objective_to_minimize, x0=[0.0001], method=\"Nelder-Mead\").x[0]\n    return s\n\n\npredictions_spectra = [\n    predict_spectra(preprocessed_signal[i]) for i in range(len(preprocessed_signal))\n]","metadata":{"execution":{"iopub.status.busy":"2024-10-15T02:10:26.099849Z","iopub.execute_input":"2024-10-15T02:10:26.100285Z","iopub.status.idle":"2024-10-15T02:10:26.126687Z","shell.execute_reply.started":"2024-10-15T02:10:26.100243Z","shell.execute_reply":"2024-10-15T02:10:26.125524Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# A priori scales","metadata":{}},{"cell_type":"code","source":"# TO REDUCE EXECUTION TIME, CODE IS COMMENTED AND RESULT IS LOADED FROM PRECOMPUTED\n\ndataset = \"train\"\nadc_info = pd.read_csv(\n    \"/kaggle/input/ariel-data-challenge-2024/\" + f\"{dataset}_adc_info.csv\",\n    index_col=\"planet_id\",\n)\naxis_info = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/axis_info.parquet\")\nplanet_ids = adc_info.index\n\ndf_train_labels = pd.read_csv(\n    \"/kaggle/input/ariel-data-challenge-2024/train_labels.csv\", index_col=\"planet_id\"\n)\n\nargs_fgs1 = [\n    dict(dataset=dataset, planet_id=planet_id, sensor=\"FGS1\")\n    for planet_id in planet_ids\n]\npreprocessed_signal_fgs1 = pqdm(args_fgs1, preprocessor, n_jobs=4)\n\nargs_airs_ch0 = [\n    dict(dataset=dataset, planet_id=planet_id, sensor=\"AIRS-CH0\")\n    for planet_id in planet_ids\n]\npreprocessed_signal_airs_ch0 = pqdm(args_airs_ch0, preprocessor, n_jobs=4)\n\npreprocessed_signal = np.concatenate(\n    [np.stack(preprocessed_signal_fgs1), np.stack(preprocessed_signal_airs_ch0)], axis=2\n)\n\npredictions_spectra_train = np.array(\n    [predict_spectra(preprocessed_signal[i]) for i in range(len(preprocessed_signal))]\n)\n\nwave_to_apriori_scale = {}\nfor wave in tqdm(df_train_labels.columns):\n    scale = (df_train_labels[wave] / predictions_spectra_train).mean()\n    wave_to_apriori_scale[wave] = scale\n\nwave_to_apriori_scale = pd.read_pickle(\n    \"/kaggle/input/ariel-2024-pqdm/wave_to_apriori_scale.pkl\"\n)","metadata":{"execution":{"iopub.status.busy":"2024-10-15T02:04:14.095937Z","iopub.execute_input":"2024-10-15T02:04:14.096768Z","iopub.status.idle":"2024-10-15T02:04:20.471516Z","shell.execute_reply.started":"2024-10-15T02:04:14.096695Z","shell.execute_reply":"2024-10-15T02:04:20.456973Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig = px.line(\n    x=range(1, 283 + 1),\n    y=wave_to_apriori_scale.values(),\n    title=f\"wave_to_apriori_scale train\",\n)\nfig.update_layout(xaxis_title=\"wave_number\", yaxis_title=\"scale\")\nfig.show()","metadata":{"execution":{"iopub.status.busy":"2024-10-15T02:31:53.85977Z","iopub.execute_input":"2024-10-15T02:31:53.860227Z","iopub.status.idle":"2024-10-15T02:31:56.484309Z","shell.execute_reply.started":"2024-10-15T02:31:53.860161Z","shell.execute_reply":"2024-10-15T02:31:56.483098Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Submission","metadata":{}},{"cell_type":"code","source":"sample_submission = pd.read_csv(\n    \"/kaggle/input/ariel-data-challenge-2024/sample_submission.csv\",\n    index_col=\"planet_id\",\n)\n\npredictions_spectra = np.repeat(np.array(predictions_spectra), 283).reshape(\n    (len(predictions_spectra), 283)\n)\npredictions_spectra = predictions_spectra.clip(0)\n\nsigmas = np.ones_like(predictions_spectra) * 0.000145\n\nsubmission = pd.DataFrame(\n    np.concatenate([predictions_spectra, sigmas], axis=1),\n    columns=sample_submission.columns,\n)\nsubmission.index = sample_submission.index\n\nfor wave, scale in wave_to_apriori_scale.items():\n    if 0.99 < scale < 1.01:\n        scale = 1.0\n    if wave in ['wl_2']:\n        scale = 0.98\n    if wave in ['wl_133', 'wl_134']:\n        scale = 1.02\n    scale = np.clip(scale, 0.993, 1.007)\n    submission[wave] *= scale\n\nsubmission.to_csv(\"submission.csv\")\nsubmission","metadata":{"execution":{"iopub.status.busy":"2024-10-14T19:43:25.213815Z","iopub.status.idle":"2024-10-14T19:43:25.214381Z","shell.execute_reply.started":"2024-10-14T19:43:25.214096Z","shell.execute_reply":"2024-10-14T19:43:25.214126Z"},"trusted":true},"execution_count":null,"outputs":[]}]}