← Citizen Astronomy

Transient Finder Mode

Find sources that change between your frames.

Open a folder of repeated images of one field, and CAst solves them, measures every point source on every frame, and lists the fixed positions whose brightness changed.

Transient Finder with the candidate table and Work Log on the left and a selected candidate marked on a galaxy on the right
Candidates on the left, the selected candidate marked on the frame on the right.

What a transient is

Sources that appear, fade, or flare.

A transient is a source whose brightness changes over hours, days, or weeks: a supernova in a distant galaxy, a nova, a flaring star, or a dwarf nova in outburst. Astronomers find them by comparing images of the same field taken at different times.

Your repeated images of a field are that comparison.

A blink of one candidate on a galaxy, cycling through the frames

Review

Blink every candidate.

Transient Finder measures every point source on every frame and lists the fixed positions whose brightness changed. Select a candidate to center it, then blink the frames to see the change yourself.

A candidate is a place to look, not a discovery. Check it against Gaia and Sky Explorer before you report it.

Complete tutorial

From a folder of frames to checked candidates.

The step-by-step part follows the order you work in: open, search, review, check, export. Settings, column definitions, and how candidates are scored are in the Reference part after it.

01

What this mode does

Transient Finder looks for things that stay in one place on the sky but change brightness: a star that flares, a source that appears where nothing was before, or one that fades away. You give it several images of the same field taken at different times. It finds point sources in each frame, groups detections that share a sky position, measures each position on every frame, and keeps the positions whose brightness changed more than static stars and seeing would explain.

It does not look for moving objects. For asteroids and comets, use Asteroid/Comet Detection.

  • Search a sequence. Open a folder of repeated frames and search them in one run. Step 04
  • Solve missing WCS. Frames without a usable plate solution are solved automatically and cached. R4
  • Compare against one Gaia catalog. One Gaia DR3 query (G ≤ 18) covers the whole sequence and gives each candidate its nearest catalogued star. R4
  • Read a ranked candidate list. Candidates are numbered by how strongly they varied, with a report in the Work Log. Step 06
  • Inspect each candidate. See per-frame detections, variability, and flux ratio, with crosshairs on the image. Step 07
  • Blink it. Cycle through every frame at the candidate's position to judge it by eye. Step 08
  • Check it. A short checklist for deciding what a candidate is before you trust it. Step 09
  • Export the blink. Save the blink as a GIF or MP4. Step 10
  • Optional model scores. A local model can score candidates from saved training labels. R6
02

Before you begin

Images
At least two images of the same field taken at different times. FITS (.fit, .fits), XISF, TIFF, and camera RAW files are searched. JPG and PNG files are skipped. Similar pointing, filter, and exposure give cleaner results.
Folder layout
Put the frames directly in one folder, or in subfolders one level below it. The exact rule is in R4.
Plate solving
Frames with a valid embedded WCS are used as they are. Unsolved frames are solved during the search. For the most reliable solving, add an astrometry.net key in Settings > Open Settings > General > Astrometry API Key.
Timestamps
Observation times come from DATE-OBS. Times without a timezone are read in Image Timestamp Timezone (Settings > Open Settings > Differential Photometry, under Science Export; default UTC).
Internet
The Gaia query and astrometry.net need a connection. Solved frames and catalog results are cached and reused on the next search.
Color data
Color images, including demosaiced camera RAW, are averaged into one synthetic luminance plane. That is fine for finding changes; for precise measurements use calibrated single-channel frames.

Step by step

Search a folder and review the candidates

Follow the steps in order the first time. Leave the search settings at their defaults for a first run.

03

Open the mode

  1. On the mode picker, under SCIENCE WORKFLOWS, click Transient Finder.
  2. If CAst is already open in another mode, choose Mode > Transient Finder instead.

The workflow row along the top shows Open, Train Model, Min Frames, Threshold, and ROI. Below it, the candidate table is on the left with the Work Log and Inspector tabs underneath, and the image view is on the right.

04

Open your folder

  1. Click Open on the workflow row. You can also choose File > Open Folder.
  2. In Select transient image folder, choose the folder that holds your frames and confirm.

CAst clears any earlier results, writes Opened transient image folder: … to the Work Log, and shows the first image it finds in the image view. The Open button changes to Search. The search has not started yet.

  • Ctrl + Shift + O: File > Open Folder
Tip

Once a folder is open, the workflow-row button always runs Search. To switch to a different folder, use File > Open Folder.

06

Read the results

The report

Scroll to the end of the Work Log. The report lists:

  • Transient Finder scanned N image(s).
  • Solved frames: N/M (K solved through astrometry.net).
  • Gaia comparison sources loaded: N.
  • Point-source detections retained before variability screening: N.
  • Variable transient candidates retained: N.
  • Top candidates: a summary line for up to 12 candidates.
  • Notes: skipped frames, how many groups were rejected as static or seeing-driven, Gaia problems, and caps.

Check the solved-frame count first. If frames were skipped, the notes say why.

The candidate table

Each row is one sky position, named TF-001, TF-002, and so on. TF-001 changed the most relative to its noise. The columns are Candidate, RA, Dec, Frames, Median SNR, Nearest Gaia, First UTC, Last UTC, Label, and ML Score; their exact meaning is in R2.

  1. Click a column header to sort by that column. Click it again to reverse the order.
  2. Click a row to select that candidate.
Caution

A row is a position where the measured flux changed significantly between frames. It is not a confirmed transient. Hot pixels, satellite trails, a bad frame, an asteroid, or a known variable star can all produce a row. Step 09 explains what to check.

07

Review a candidate

  1. Click a candidate row. A crosshair marks it on the image.
  2. Click Center Candidate to turn it on. From now on, every candidate you select is centered in the view, at your current zoom.
  3. Scroll over the image to zoom in around the cursor. Drag with the left mouse button to pan.
  4. Click the Inspector tab to read the candidate's numbers.

The Inspector shows the summary line (for example variable by 41.2 sigma (flux ratio 3.4); seen above threshold in 3/5 frame(s)), then Detections, Max SNR, Variability SNR, Flux ratio, the nearest Gaia source, and Per-frame detections: with the file, time, pixel position, RA, Dec, and SNR for each frame where the source was detected.

Adjust the display

  1. Click Display above the image.
  2. Choose a Stretch: (Auto Stretch, Linear, Asinh, Sqrt, or Log).
  3. Click Curves to shape the tone curve, then click Apply.
  4. Tick Invert to show dark stars on a light sky. Faint changes are often easier to see this way.
  5. Click Reset to return to the default display.

Look at several candidates together

Ctrl-click or Shift-click rows to select several candidates. All of them are marked on the image: the current one in amber, the others in blue. The Inspector, Center Candidate, Blink, and Export Blink use the current one.

  • Scroll: zoom around the cursor
  • Left-drag: pan
  • Ctrl + click, Shift + click: select several rows
  • Ctrl + A in the table: select all candidates
09

Check what you found

A candidate has passed a numeric test. It may still be an artifact, a known object, or a bad frame. Work through these checks before you treat it as interesting.

  1. Blink it and look closely. A real source looks like a star where it is bright, at the crosshair. A single sharp pixel is usually a hot pixel or cosmic ray. A streak is a satellite or aircraft. A dot that shifts between frames is a moving object.
  2. Look at the faint frames. If the faint frame is cloudy, hazy, or out of focus, many stars get flagged together. Sort by First UTC or Last UTC and see whether a large group of candidates shares the same frames.
  3. Read Nearest Gaia. A Gaia star a few arcseconds away usually means the candidate is that star. It may be a known variable, or the change may come from saturation or seeing.
  4. Check the catalogs in Sky Explorer. Open one of the frames in Sky Explorer and run Explore with variable stars and asteroids/comets included. If a catalogued object sits at the position, the change is probably already known. Comparing the field with a Survey image shows whether the source was there before your frames.
  5. Check for motion. If the source drifts from frame to frame, search the same folder in Asteroid/Comet Detection.
  6. Measure it. If it survives these checks, measure a light curve in Differential Photometry. Transient Finder reports instrumental flux ratios and signal-to-noise ratios, not magnitudes.
Caution

Nearest Gaia uses Gaia stars down to G 18 and is the closest star at any distance, not an identification. A blank Nearest Gaia does not mean the position is uncatalogued; check it in Sky Explorer and in professional transient and variable-star catalogs before reporting anything.

10

Export a blink animation

  1. Select the candidate, and set the zoom, stretch, and blink interval you want.
  2. Click Hide Info if you do not want the information panel in the animation.
  3. Click Export Blink.
  4. In Export Transient Blink Animation, choose Animated GIF Files (*.gif) or MP4 Video Files (*.mp4). The default name is TF-xxx_transient_blink.gif in the opened folder.
  5. Click Save. An Export Blink progress window steps through the frames; click Cancel there to stop.

Each frame of the animation is the image view exactly as you see it: its size, zoom, stretch, curves, invert, crosshairs, and the information panel if shown. Each frame lasts one blink interval, and GIFs loop forever. The Work Log confirms the saved path.

The blink animation is the one file export in this mode. The Work Log text, including the report, can be selected and copied.

Reference

Controls, settings, and calculations

Look things up here after you know the workflow.

R1

Search settings

Min Frames
The search needs at least this many solved frames, and a candidate must be measurable in at least this many. It does not require that many detections: a source seen in one frame can pass if enough frames could be measured at its position. The variability test always needs at least two measured frames, even at 1.

Default 2, range 1–99.

Threshold
Detection threshold in units of the frame's background noise. Raising it finds fewer, brighter sources and also raises the variability requirement, the “absent” limit, and the galaxy-core exception (see R5). Lowering it finds fainter sources and more false alarms.

Default 5.0 sigma, range 1.0–50.0 in steps of 0.5.

ROI
Border excluded from detection, as a percentage of the shorter image side. The excluded border is drawn on the image as you change the value. Even at 0%, sources within 6 px of the edge are not detected, and positions within 17 px of the edge cannot be measured.

Default 3%, range 0–45%.

Fixed values
Not adjustable in the panel: detection FWHM 3.0 px, grouping radius 2.5 arcsec, Gaia limit G ≤ 18.0, Gaia neighbor radius 5 arcsec, up to 25,000 detections per frame, and up to 500 candidates.
Related settings
In Settings > Open Settings > General: Astrometry API Key, Astrometry Timeout (default 300 s), Image Display (default stretch and invert), and Keep mode memory when switching. In Settings > Open Settings > Differential Photometry: Image Timestamp Timezone.
R2

Table and Inspector

ColumnMeaning
CandidateID such as TF-001, numbered by variability SNR, highest first.
RA, DecMean sky position of the detections, in degrees.
FramesMeasured frames where the aperture flux is positive and its SNR is at least Threshold.
Median SNRMedian detection SNR over the frames where the source was detected.
Nearest GaiaClosest Gaia (G ≤ 18) source to any detection, with its separation in arcsec. - means no Gaia data was available.
First UTC, Last UTCEarliest and latest observation time among the detections.
LabelSaved training label, or -.
ML ScorePredicted label and confidence from the latest local model, or -.

Sorting by a column header is the way to reorder the table. There is no filter box and no right-click menu.

Lower tabs

Work Log
Timestamped progress, the search report, and blink and export messages.
Inspector
The selected candidate's summary, Detections, Max SNR, Variability SNR, Flux ratio, nearest Gaia source, any label or model score, and the per-frame detection list. Frames where the source was measured but not detected are not listed.
Panel sizes
Drag the splitters to resize the table, the tabs, and the image. If you collapse the tabs, click ▲  Work Log · Inspector to restore them. If you collapse the left side, click ▶  Candidate Transients.
R3

Image controls

Display
Opens Stretch: (Auto Stretch, Linear, Asinh, Sqrt, Log), Curves, Invert, and Reset.

The defaults come from Image Display in Settings.

Curves
Opens the Curves dialog with a preview and histogram. Apply keeps the curve, Cancel discards it, and Reset straightens it.
Reset
Restores the default stretch and invert and removes curves.
Center Candidate
Toggle. When on, selecting a candidate centers it at the current zoom.
Blink interval
0.10 s, 0.18 s, 0.35 s, or 0.70 s per frame.

Default 0.35 s. Also sets the frame duration of exported animations.

Blink
Toggle. Cycles through every measured frame of the current candidate in time order, keeping it centered. Needs at least two frames.
Export Blink
Saves the blink as GIF or MP4. Needs at least two frames.
Hide Info / Show Info
Hides or shows the information panel on the image, which lists the file and the selected candidate's details.
Crosshairs
Amber for the current candidate, blue for other selected candidates. On a frame with no detection, the crosshair is placed from the candidate's RA and Dec through that frame's WCS.
Mouse
Scroll to zoom around the cursor; left-drag to pan. Right-click does nothing in this mode.
R4

Solving and catalogs

Which files are searched

The scan does not go through every subfolder. CAst uses the first of these that contains images:

  1. If the folder has a Files subfolder: the images inside each subfolder of Files.
  2. Otherwise: the images inside each direct subfolder of the opened folder.
  3. Otherwise: the images directly in the opened folder.

If the folder has loose images and also subfolders with images, the loose images are not searched. All searched images form one sequence, sorted by DATE-OBS and then file name.

Plate solving

Each frame's embedded WCS is checked first. If it is missing or unusable, two solvers start together and the first success is used:

Local Gaia matching

Runs when the header has center RA/Dec, focal length, pixel size, and image size. Matches the frame's stars to Gaia DR3 around the header pointing. No API key needed.

astrometry.net

Runs when Astrometry API Key is set. Works without header pointing. Astrometry Timeout limits the wait (default 300 s, range 30–3600 s).

Solved frames are saved in the cache directory under transient-wcs and reused. A frame that cannot be solved is skipped with a note in the report. File > Clear All Cache… deletes all cached solutions and catalogs, keeping your settings.

The shared Gaia catalog

After solving, CAst builds one footprint that covers every solved frame and makes one Gaia DR3 query down to G 18.0, in tiles when the field is wide. It is cached under catalogs. The report line Gaia comparison sources loaded gives the count. This catalog supplies each candidate's Nearest Gaia and the rejection of ordinary stars described in R5. If the query fails, the search continues without it and the notes say Gaia lookup unavailable for this field.

R5

How variability is scored

Detection

Each solved frame is reduced to one plane, its background median and noise σ are estimated with sigma clipping, and a star finder (FWHM 3.0 px) detects sources above Threshold × σ. Sources inside the edge margin (the larger of 6 px and the ROI) are dropped. Detection SNR is peak / σ.

Grouping

Detections from all frames that lie within 2.5 arcsec of each other are linked into one group; each frame contributes at most one detection per group. The group's position is the mean of its detections.

Measuring every frame

Each group's position is projected into every solved frame and measured with an aperture of 5.25 px radius and a background annulus from 9.0 to 14.25 px. Flux F is the aperture sum minus the annulus background, its uncertainty is σ_local × √N_aperture, and aperture SNR is F / σ_F. Frames where the position is within 17 px of an edge are not measured.

The variability test

CAst compares the measured frame with the highest flux (bright) and the one with the lowest (faint):

  • variability SNR = (F_bright − F_faint) / √(σ_bright² + σ_faint²)
  • flux ratio = (F_bright + floor) / max(F_faint, floor), where floor = max(σ_bright, σ_faint, 1)

A group becomes a candidate when all of these hold:

  1. At least two frames, and at least Min Frames, were measured.
  2. The bright frame has positive flux with aperture SNR at least Threshold.
  3. Variability SNR is at least the larger of 7.0 and 1.25 × Threshold (8.75 at the default).
  4. And one of: the flux ratio is at least 2.0; the faint frame is absent (flux ≤ 0 or aperture SNR ≤ the larger of 2 and 0.55 × Threshold); or the galaxy-core exception applies (variability SNR at least the larger of 28 and 5 × Threshold, flux ratio at least 1.35, and the highest peak SNR at least 1.45 times the lowest).

The galaxy-core exception lets a strong brightening on a bright galaxy nucleus pass even when the total flux in the aperture changes by less than a factor of two.

Gaia neighbor rejection

If a Gaia star (G ≤ 18) lies within 5 arcsec of any of the group's detections and the flux ratio is below 2.0, the group is rejected. This removes ordinary stars that flicker with seeing. It applies even when the absent or galaxy-core test passed, so a real event next to a Gaia star needs a flux ratio of 2.0 or more. The report counts every rejected group as static or seeing-driven.

Ranking

Candidates are sorted by variability SNR, then flux ratio, then maximum detection SNR, and numbered in that order. At most 500 are kept.

Caution

Each frame is measured on its own; there is no image subtraction. A frame with different seeing, focus, or transparency can make static sources look variable, and a high variability SNR does not by itself mean a real astrophysical change.

R6

Labels and model scores

Transient Finder can score candidates with a local Random Forest model trained on candidates you have labeled before. Labels are Real, Artifact, Known Object, Moving Object, Noise, and Unsure. Labels and models are stored on your computer in candidate-training.sqlite3.

Train Model
Trains a new model from all saved transient labels and re-scores the table. The result appears in the Work Log.

Needs at least two labeled candidates with two different labels. With six or more labels and at least two per label, a held-out validation runs as well.

Label column
The label saved for this candidate, or -.
ML Score column
The latest model's predicted label and its confidence, or - when no model exists.
Important

In the current version, the controls for saving labels are not shown in the Transient Finder panel. Unless labels already exist, Train Model reports Label at least two candidates before training. and the Label and ML Score columns show -. A model score is a hint, not a classification.

R7

Troubleshooting

The search says it needs more solved frames

The report says Transient search needs at least N solved frame(s) when fewer frames were solved than Min Frames. Read the Skipped … notes for the reason. Set an Astrometry API Key in Settings > Open Settings > General, or make sure the headers carry center RA/Dec, focal length, and pixel size for local Gaia matching.

Some of my images were not searched

JPG and PNG files are skipped. Images two folder levels deep are not searched, and loose images are ignored when the folder also has subfolders with images. See R4 and move the frames into one folder.

The report says no candidates were found

No variable point-source candidates were found across the solved frame sequence. means nothing changed enough to pass the test in R5. Try a lower Threshold (for example 4.0) and a smaller ROI. If the expected source sits next to a Gaia star, it needs a flux ratio of at least 2.0 to pass.

Dozens of ordinary stars are flagged

One frame is probably much worse than the others: clouds, haze, poor focus, or trailing. Sort by First UTC or Last UTC to find the shared frame, remove it from the folder, and search again. Raising Threshold also helps.

Blink and Export Blink are greyed out

Select a candidate first. A candidate measurable in fewer than two frames cannot be blinked.

Nearest Gaia shows a dash for every candidate

The Gaia query failed, usually because there was no connection. The report notes say Gaia lookup unavailable for this field. Without Gaia, the neighbor rejection does not run, so expect more candidates on ordinary stars. Reconnect and search again.

My results disappeared after switching modes

Leaving the mode clears its results to free memory. Turn on Keep mode memory when switching in Settings > Open Settings > General to keep them. A search that is still running is also stopped when you switch.

Train Model says to label candidates first

Training needs saved labels, and the labeling controls are not shown in the current panel. See R6. The search and review work without a model.

The exported animation is small or includes the info panel

Export Blink captures the image view as it appears on screen. Enlarge the window or the image panel, zoom as you want, and click Hide Info before exporting.

A frame was solved wrongly, or I want to solve again

Solved frames are cached under transient-wcs. File > Clear All Cache… removes all cached solutions and catalogs; the next search solves every unsolved frame again.