We Analyzed 104 Night Sky Photos With a Phone Algorithm. Here's What the Data Shows.

Can a smartphone camera really measure light pollution? We put SkyQI's algorithm to a rigorous test against verified ground-truth data.


Can a phone camera really measure light pollution? We analyzed 104 night sky photos to find out. The results challenged our assumptions -- not because the algorithm failed, but because it succeeded in ways we didn't expect, and struggled in places that turn out to be genuinely hard for everyone, including trained astronomers.

Here's the full breakdown.


The Experiment

We needed a clean test. Photos taken by different people, with different cameras, under different skies -- but with verified Bortle classifications we could check our predictions against.

We sourced 104 night sky photos from Wikimedia Commons. Each had a known geographic location. We cross-referenced those locations against multiple ground-truth sources: 734 Unihedron SQM (Sky Quality Meter) readings from professional monitoring stations, 236 Globe at Night citizen science observations, and NASA VIIRS satellite radiance data covering 60,681 grid points across India.

From these overlapping datasets, we established the "true" Bortle class for each photo's location.

Then we ran every photo through SkyQI's analysis pipeline -- the same algorithm that processes photos uploaded to skyqi.in. The algorithm examines star density, sky brightness, color temperature, artificial light signatures, and horizon glow. It outputs a predicted SQM value and Bortle classification.

No cherrypicking. No parameter tuning after the fact. Same algorithm, same thresholds, blind predictions.


The Headline Number: 65.4%

SkyQI correctly predicted the Bortle class within plus or minus one class for 65.4% of photos (95% CI: 55.8% - 74.2%).

Is that good? Context matters.

The Bortle scale has 9 classes. If you randomly guessed a Bortle class for each photo, you'd land within one class about 33% of the time. SkyQI's 65.4% is nearly double random chance -- from a phone camera analyzing a JPEG, with no GPS-based lookup, no hardware sensor, and no human interpretation.

It's also worth noting what "within one Bortle class" means in practice. The difference between Bortle 3 and Bortle 4 is subtle enough that experienced amateur astronomers regularly disagree about it. A system that's off by one class is, in many cases, within the noise floor of human judgment.


Where the Algorithm Shines: The Extremes

The accuracy wasn't uniform across the Bortle scale. It was sharply better at the ends.

Dark skies (Bortle 1-2): 77.3% accuracy (n=66)

Under truly dark skies, the signal is unambiguous. Dense star fields, low sky brightness, no artificial light signatures, cool color temperatures. The algorithm picks up on all of these with high confidence.

Urban skies (Bortle 7-9): 75.0% accuracy (n=16)

Heavily light-polluted skies are equally distinctive, just in the opposite direction. Few or no detected stars, high overall brightness, warm color cast from sodium and LED street lighting, bright horizon glow. The algorithm reads these signatures clearly.

These results make intuitive sense. A pristine dark sky and a washed-out city sky are visually different in ways that even a compressed smartphone JPEG preserves. The features that distinguish them -- star count, brightness, color -- are exactly what image analysis is good at detecting.


The Hard Middle: Bortle 3-6

Suburban and transitional skies (Bortle 3 through 6) were the algorithm's weakest zone. Accuracy dropped noticeably in this range.

This isn't a surprise. In fact, it would have been suspicious if the algorithm performed equally well here. Here's why.

The visual differences between adjacent Bortle classes in the middle of the scale are genuinely subtle. At Bortle 4, the Milky Way is visible but not prominent. At Bortle 5, it's barely visible near the zenith. The boundary between them depends on atmospheric conditions, observer adaptation, and -- critically -- camera settings that vary wildly between phone models.

Professional astronomers classify these transitional skies using calibrated instruments with known spectral responses. A phone camera with automatic exposure, unknown ISO, and JPEG compression is working with far less information.

The algorithm struggles with the same ambiguity that humans do. The difference is that humans can integrate context (how long their eyes have adapted, what the horizon looks like in every direction, whether the Milky Way structure is resolvable) while the algorithm sees only the pixels in a single frame.


Phone vs. Satellite: Different Angles on the Same Problem

One of the more interesting validation checks was comparing SkyQI's smartphone-based measurements against NASA's VIIRS satellite data. The correlation coefficient was r = 0.577 (p < 0.001) -- a statistically significant positive relationship.

But the comparison reveals something more nuanced than just "they agree."

Satellites and smartphones measure fundamentally different things. VIIRS measures upwelling radiance -- light escaping upward from the Earth's surface into space. It tells you how much light a city is emitting. Smartphones (via SkyQI) measure downwelling sky brightness -- how bright the sky appears from the ground looking up. It tells you how much light pollution an observer actually experiences.

These two quantities are correlated, but they're not the same. A city might emit a lot of light upward (high VIIRS radiance) but local topography, atmospheric conditions, or directional shielding could reduce the ground-level impact. Conversely, a location might have relatively low upwelling radiance but receive scattered light from a distant city, making the sky brighter than the satellite would predict.

The r = 0.577 correlation confirms that SkyQI's measurements track the expected physical relationship. But the imperfect correlation also highlights the unique value of ground-level measurements: they capture what a person actually sees, which is ultimately what matters for astronomy, ecology, and human experience.

Satellites provide coverage. Smartphones provide resolution. Both are needed.


Tips From the Data: What Makes a Photo More Accurate

Looking at the photos where SkyQI performed best, clear patterns emerged in what separates a useful measurement from a noisy one.

Point straight up. Zenith shots (camera aimed directly overhead) produced the most reliable results. The algorithm already excludes the bottom 20% of each image to avoid horizon contamination, but starting with a zenith orientation gives it the cleanest data to work with.

Avoid the moon. Moonlight is the single largest natural confounder. A full moon can push sky brightness from Bortle 2 to an apparent Bortle 5 or 6. If you're measuring light pollution, you want the artificial signal, not the lunar one. Shoot during new moon phases or when the moon is below the horizon.

Longer exposures help. Phone cameras in night mode typically use multi-second exposures. Longer exposures capture fainter stars, giving the star detection algorithm more to work with. If your phone has a manual or "pro" mode, try 10-15 second exposures at high ISO.

Stay away from the horizon. Trees, buildings, and terrain near the horizon create artifacts. Horizon glow is a real light pollution indicator, but mixed with foreground objects, it confuses the analysis. Let the algorithm handle horizon glow detection on its own -- give it clean sky to analyze.


What This Means for Citizen Science

Let's be honest: 65.4% accuracy means roughly one in three photos will be off by more than one Bortle class. A single smartphone photo is not a replacement for a calibrated SQM meter.

But citizen science has never been about individual precision. It's about aggregate power.

Consider: if one person takes one photo, you get a noisy estimate. If 50 people each take a photo of the same sky over the same month, the errors average out. Some photos will read too bright, some too dark, but the central tendency converges on the true value. This is the same statistical principle that makes opinion polling work despite individual responses being unreliable.

With enough measurements from enough users across enough locations, patterns emerge that no single instrument could capture. Weekly trends. Seasonal changes. The impact of a new highway interchange or a dark-sky ordinance. The spatial gradient from a city center into surrounding countryside.

Globe at Night has demonstrated this with 236 observations feeding into validated light pollution maps. SkyQI extends the same principle with automated smartphone analysis -- lower individual precision, but dramatically lower friction. No star charts to memorize, no 10-minute dark adaptation protocol, no manual reporting form. Just point your phone at the sky and tap upload.

Scale compensates for noise. That's the fundamental bet of citizen science, and the data supports it.


Try It Yourself

Every photo uploaded to SkyQI contributes to a growing dataset of ground-truth sky quality measurements across India and beyond.

Visit skyqi.in, point your phone at the sky, and upload a photo. You'll get an instant Bortle classification, SQM estimate, and a breakdown of what the algorithm detected -- star count, artificial light signatures, color temperature, and confidence level.

Your measurement joins thousands of others on an interactive map. Over time, these measurements will paint a picture of how our night skies are changing -- one phone photo at a time.


This analysis is based on the SkyQI validation study (2025), which evaluated the platform's image analysis algorithm against 104 Wikimedia Commons photos with verified Bortle classifications. The full methodology and statistical analysis are available in our research paper submitted to the Journal of Emerging Investigators.