{"id":28454108,"url":"https://github.com/jlecomte/chromatic-aberration-estimator","last_synced_at":"2026-06-29T12:31:55.179Z","repository":{"id":200013863,"uuid":"704598580","full_name":"jlecomte/chromatic-aberration-estimator","owner":"jlecomte","description":"Python notebook used to estimate the amount of longitudinal chromatic aberration in a refracting telescope","archived":false,"fork":false,"pushed_at":"2023-10-18T20:14:08.000Z","size":8571,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-30T12:07:37.961Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jlecomte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-13T15:52:36.000Z","updated_at":"2023-10-13T16:05:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"c29ec77d-3f14-46c5-a0aa-4d69591e97f2","html_url":"https://github.com/jlecomte/chromatic-aberration-estimator","commit_stats":null,"previous_names":["jlecomte/chromatic-aberration-estimator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jlecomte/chromatic-aberration-estimator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fchromatic-aberration-estimator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fchromatic-aberration-estimator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fchromatic-aberration-estimator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fchromatic-aberration-estimator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jlecomte","download_url":"https://codeload.github.com/jlecomte/chromatic-aberration-estimator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fchromatic-aberration-estimator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34927675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-06T18:40:50.920Z","updated_at":"2026-06-29T12:31:55.173Z","avatar_url":"https://github.com/jlecomte.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chromatic Aberration Estimator\n\nThis Python utility can be used to estimate the amount of longitudinal chromatic aberration in a refracting telescope.\n\n## Installation\n\nAfter cloning this repository, create a virtual environment using Python 3.x, and activate it:\n\n```\n# Create a virtual environment using Python 3.x:\n\u003e python -m venv env\n\n# For Mac OS X or Linux:\n\u003e source env/bin/activate\n\n# For Windows:\n\u003e env\\Scripts\\activate\n```\n\nThen, inside the virtual environment, upgrade `pip`:\n\n```\n(env) python -m pip install --upgrade pip\n```\n\nFinally, install the dependencies:\n\n```\n(env) pip install -r requirements.txt\n```\n\n## Usage\n\nFirst, you will need to capture the 2D spectrum of a star of spectral type A or F across the entire visible region, i.e. from 4,000 Å to 7,000 Å. Here is an example (Theta Leonis) captured with my Astro-Tech AT130EDT triplet ED refractor, and the Star'Ex spectrograph in its low resolution configuration (4 second exposure):\n\n![2D spectrum of Theta Leonis captured with an AT130EDT](images/Theta-Leonis-AT130EDT.jpg)\n\nIf we stretch this image, for example in PixInsight, here is what it looks like:\n\n![Stretched 2D spectrum of Theta Leonis captured with an AT130EDT](images/Theta-Leonis-AT130EDT-stretched.jpg)\n\nWe can now see the fishtail effect in the deep blue/near UV part of the spectrum (on the left side) caused by longitudinal chromatic aberration.\n\nAdditionally, you will need the corresponding 2D spectrum of a calibration lamp, e.g. a Neon-Argon lamp:\n\n![Stretched 2D spectrum of a Neon-Argon calibration lamp](images/neon.jpg)\n\nYou can refer to [the atlas of Ne-Ar lines](NeAr.pdf) I included in this repository to identify the lines in this spectrum.\n\nIf you do not have such a calibration spectrum, you may use well-known absorption lines such as the Balmer series (ignoring, in first approximation, any doppler shift caused by the star's relative radial velocity...)\n\nFinally, you can open [the included Python notebook](Estimate-Longitudinal-CA.ipynb) in VS Code (for example), and tweak the parameters, or the rendering as you see fit. The script assumes that the 2D spectrum is horizontal, and simply measures the thickness of the spectrum (FWHM of the star) for each wavelength, and renders it as a graph. It can also compute a score between `0.0` and `1.0` — the higher the value, the lower the longitudinal chromatic aberration.\n\n![Example output](images/output.jpg)\n\nYou would expect that a mirrored telescope, such as a Ritchey-Chretien, would get a score of `1.0`. However, the optical elements inside the spectrograph also have some amount of aberrations (chromatic, spherical, astigmatism). Therefore, with my spectrograph, a value of `0.9` is about the highest that may be obtained. If you want, and are able to obtain a reference spectrum obtained with a telescope that is known to not have any chromatic aberration (Newtonian, Ritchey-Chretien), you may also divide the spectrum obtained through a refractor by your reference spectrum. This way, it may be easier and more accurate to compare the level color correction between various telescopes.\n\nEnjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlecomte%2Fchromatic-aberration-estimator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlecomte%2Fchromatic-aberration-estimator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlecomte%2Fchromatic-aberration-estimator/lists"}