Releases: danielegasparri/ExoPhotoCurve
Release list
ExoPhotoCurve v1.1
ExoPhotoCurve
This is the public release of ExoPhotoCurve, a cross-platform GUI application designed to create, inspect, analyze, correct, and model exoplanet transit light curves.
ExoPhotoCurve has been developed to provide a user-friendly but powerful workflow for both amateur astronomers involved in transiting exoplanet observations and professional astronomers who need a fast and transparent tool to diagnose and model light curves of known exoplanets.
The program allows to:
- Reduce and align raw data, handling monochrome and color FITS files ;
- Build a light curve from the calibrated and aligned FITS image sequence using the integrated aperture photometry module;
- Fine-tune, analyze and model the created raw light curve or existing light curves produced by other photometry software, such as AstroImageJ, HOPS, or other pipelines.
Main features
ExoPhotoCurve includes tools for:
- science grade data reduction;
- aperture photometry from calibrated and aligned FITS images;
- manual and automatic selection of target and comparison stars;
- comparison-star optimization;
- light-curve cleaning through sigma clipping and manual point rejection;
- detrending with multiple regressors, including time, airmass, FWHM, sky background, centroids, peak counts, and meridian flip corrections;
- exoplanet transit modeling using catalog parameters;
- diagnostic plots, residual analysis, and transit quality indicators;
- generation of a reproducible analysis recipe;
- export of final light curves and model results.
Platform support
ExoPhotoCurve is written in Python and is fully cross-platform.
The source version requires:
- Python 3.10 or newer.
A standalone Windows version is also provided as a self-installer for Windows-based machines. This version does not require a separate Python installation.
Example dataset
This release also includes an example FITS sequence that can be used to learn and test the program.
The example dataset contains fully calibrated and aligned FITS images of the transit of the exoplanet KELT-10b. The sequence was obtained with a small commercial 0.20 m Newtonian telescope and a commercial ASI2600MC color CMOS camera.
The images have been extracted from the G channel of the Bayer matrix, whose transmission window is close to the Johnson V photometric filter. The reduction has been performed using ExoPhotoCurve.
The sequence is ready to be loaded into the Build Light Curve tool of ExoPhotoCurve. After the photometric table is generated, it can be analyzed directly with the main ExoPhotoCurve pipeline.
Quick start with example dataset
Download the example sequence here: https://github.com/danielegasparri/ExoPhotoCurve/releases/download/v1.0.0/Kelt-10b_2026-06-12_reduced.zip
Build the raw light curve:
- Unzip the reduced sequence
- Open ExoPhotoCurve and click on "Build LC"
- Browse the sequence folder, confirm and click to "Load sequence"
- Leave the apertures with their default size, move the mouse on the plot to see the aperture annulus
- Zoom in the center with mouse wheel or scroll touch of the touchpad and place the aperture to the bright star in the center (the target). In the sequence folder you will find a chart to help you identify the target (called T1)
- Click to "Auto find comps": ExoPhotoCurve will find the best 15 comparison stars for you. You can verify they are good because the apertures will be all green, otherwise they would have been yellow (stars too faint) or red (stars near saturation or saturated)
- Go to "3. Run Photometry" and click to "Set path" to set the path and the name of the raw light curve. I suggest to put the name of the planet, so ExoPhotoCurve will recognize it automatically during the analysis. Something like that: "Kelt-10b_lightcurve"
- Click "Run + load in main": ExoPhotoCurve will perform the differential photometry, close the window and automatically load the light curve file in the main panel
Fine-tuning and analyze the raw light curve:
- In the main panel, now click "Plot / Update" to see the first, raw light curve. Congratulations!
- Now we need to check the comparison stars in the "Comp stars" tab. You can take a look at any single comparison, or try to deselect some of them to see how the transit light curve will adapt. If you trust me, deselect the C4 and C16 stars and leave the others selected: this is, for me, the best combination of comparison stars that gives you a sharp and symmetric light curve.
- We notice in the plot a point quite off the main trend, just on the right, out of the transit event. We can go to the "Cleaning" tab, activate the "Click-edit plot" option and click on this point to turn it off from the light curve.
- Now it's time for the first fit. Go to the "Transit modeling" tab, make sure the planet is recognized in the "Planet" section, otherwise select it manually, and just click the button "Run transit model" below. This is your first fit, a solid base to improve the results.
- During the acquisition of this sequence, the mount of the telescope had to perform the meridian flip. Usually this produces a little jump in the light curve. You cannot see it, but it's there and it's the main reason why the fit do not overlap with the expected model. Let's go to the "Detrend" tab and activate the "Meridian flip" option. In "time frac" you should insert the JD fraction where the meridian flip occurred. If you trust me, put here: .770. Click on the "Plot / update" button to show the vertical line of the meridian flip time.
- Activate the "Consider fit model" and in the "Model-aware mod" select "Iterate to convergence". ExoPhotoCurve will use this rough fit as a base to correct iteratively for the subtle meridian flip jump. Click on "Run detrending" and look at the result. Now the fit improved a lot and it is very similar to the expected model!
- The final light curve is ready. If you want to play more, you may go to che "Cleaning" section again and apply an automatic sigma clipping to delete the outlier points. Set the "Sigma" to 2.5 (very aggressive, just to try) and click on "Apply sigma clipping". Remember to do the fit again if any point is deleted by clicking "Run transit model".
The final result should appear very similar (hopefully the same) to this:
If not, try to start from fresh by clicking the button "Reset view/data" and try again.
Now that you are satisfied you can save the plot, but especially you should save this final light curve with the button "Save curve". ExoPhotoCurve will save two files in ASCII format, one containing the detailed light curve with detrend and model, and the second only the relevant columns (time, flux, errors) ready to be uploaded to the ExoClock or ETD platforms.
ExoPhotoCurve v1.0.0
ExoPhotoCurve
This is the first public release of ExoPhotoCurve, a cross-platform GUI application designed to create, inspect, analyze, correct, and model exoplanet transit light curves.
ExoPhotoCurve has been developed to provide a user-friendly but powerful workflow for both amateur astronomers involved in transiting exoplanet observations and professional astronomers who need a fast and transparent tool to diagnose and model light curves of known exoplanets.
The program allows to:
- Reduce and align raw data, handling monochrome and color FITS files ;
- Build a light curve from the calibrated and aligned FITS image sequence using the integrated aperture photometry module;
- Fine-tune, analyze and model the created raw light curve or existing light curves produced by other photometry software, such as AstroImageJ, HOPS, or other pipelines.
Main features
ExoPhotoCurve includes tools for:
- science grade data reduction;
- aperture photometry from calibrated and aligned FITS images;
- manual and automatic selection of target and comparison stars;
- comparison-star optimization;
- light-curve cleaning through sigma clipping and manual point rejection;
- detrending with multiple regressors, including time, airmass, FWHM, sky background, centroids, peak counts, and meridian flip corrections;
- exoplanet transit modeling using catalog parameters;
- diagnostic plots, residual analysis, and transit quality indicators;
- generation of a reproducible analysis recipe;
- export of final light curves and model results.
Platform support
ExoPhotoCurve is written in Python and is fully cross-platform.
The source version requires:
- Python 3.10 or newer.
A standalone Windows version is also provided as a self-installer for Windows-based machines. This version does not require a separate Python installation.
Example dataset
This release also includes an example FITS sequence that can be used to learn and test the program.
The example dataset contains fully calibrated and aligned FITS images of the transit of the exoplanet KELT-10b. The sequence was obtained with a small commercial 0.20 m Newtonian telescope and a commercial ASI2600MC color CMOS camera.
The images have been extracted from the G channel of the Bayer matrix, whose transmission window is close to the Johnson V photometric filter. The reduction has been performed using ExoPhotoCurve.
The sequence is ready to be loaded into the Build Light Curve tool of ExoPhotoCurve. After the photometric table is generated, it can be analyzed directly with the main ExoPhotoCurve pipeline.
Quick start with example dataset
Build the raw light curve:
- Unzip the reduced sequence
- Open ExoPhotoCurve and click on "Build LC"
- Browse the sequence folder, confirm and click to "Load sequence"
- Leave the apertures with their default size, move the mouse on the plot to see the aperture annulus
- Zoom in the center with mouse wheel or scroll touch of the touchpad and place the aperture to the bright star in the center (the target). In the sequence folder you will find a chart to help ypu identify the targer (called T1)
- Click to "Auto find comps": ExoPhotoCurve will find the best 15 comparison stars for you. You can checl they are good because the apertures will be all green, otherwise they would have been yellow (stars too faint) or red (stars near saturation or saturated)
- Go to "3. Run Photometry" and click to "Set path" to set the path and the name of the raw light curve. I suggest to put the name of the planet, so ExoPhotoCurve will recognize it automatically during the analysis. Something like that: "Kelt-10b_lightcurve"
- Click "Run + load in main": ExoPhotoCurve will perform the differential photometry, close the window and automatically load the light curve file in the main panel
Fine-tuning and analyze the raw lightcurve:
- In the main panel, now click "Plot / Update" to see the first, raw lightcurve. Congratulations!
- Now we need to check the comparison stars in the "Comp stars" tab. You can take a look at any single comparison, or try to deselect some of them to see how the transit light curve will adapt. If you trust me, deselect the C4 and C16 stars and leave the others selected: this is, for me, the best combination of comparison stars that gives you a sharp and symmetric light curve.
- We notice in the plot a point quite off the main trend, just on the right, out of the transit event. We can go to the "Cleaning" tab, activate the "Click-edit plot" option and click on this point to turn it off from the light curve.
- Now it's time for the first fit. Go to the "Transit modeling" tab, make sure the planet is recognized in the "Planet" section, otherwise select it manually, and just click the button "Run transit model" below. This is your first fit, a solid base to improve the results.
- During the acquisition of this sequence, the mount of the telescope had to perform the meridian flip. Usually this produces a little jump in the light curve. You cannot see it, but it's there and it's the main reason why the fit do not overlap with the expected model. Let's go to the "Detrend" tab and activate the "Meridian flip" option. In "time frac" you should insert the JD fraction where the meridian flip occurred. If you trust me, put here: .770. Click on the "Plot / update" button to show the vertical line of the meridian flip time.
- Activate the "Consider fit model" and in the "Model-aware mod" select "Iterate to convergence". ExoPhotoCurve will use this rough fit as a base to correct iteratively for the subtle meridian flip jump. Click on "Run detrending" and look at the result. Now the fit improved a lot and it is very similar to the expected model!
- The final light curve is ready. If you want to play more, you may go to che "Cleaning" section again and apply an automatic sigma clipping to delete the outlier points. Set the "Sigma" to 2.5 (very aggressive, just to try) and click on "Apply sigma clipping". Remember to do the fit again if any point is deleted by clicking "Run transit model".
The final result should appear very similar (hopefully the same) to this:
If not, try to start from fresh by clicking the button "Reset view/data" and try again.
Now that you are satisfied you can save the plot, but especially you should save this final light curve with the button "Save curve". ExoPhotoCurve will save two files in ASCII format, one containing the detailed lightcurve with detrend and model, and the second only the relevant columns (time, flux, errors) ready to be uploaded to the ExoClock or ETD platforms.