Skip to content

Methods, Version 1.6

How This Works

A hiking log that measures things

Most weeks it is the same trail before sunrise, and that repetition is the point: the same shoreline, photographed and measured through the year, says more than one visit to fifty places.

This is version 1.6 of the methods, revised September 23, 2026. The data sources, the known limitations and what changed since version 1.0 are at the end of the page.

So Far

The Totals

151Hikes Loggedsince January 1, 2024
5Trails
860.8Miles Walked120 recorded tracks
75,010Feet Climbed
116Sunrise Photos33 more from the trail

Every Track

One Map

Every recorded morning on Cherokee Trail, Stone Mountain, 116 of them, drawn as one map: each recording a one-pixel line, each pixel toned by how many mornings crossed it, so the routes walked most often show darkest. The trail's page carries it with the numbers under Where the Recordings Go: the common route, the stretches walked alone and the week-to-week gap. Any trail with 5 or more recordings gets its own.

Every one of 116 recorded mornings on Cherokee Trail, Stone Mountain overlaid on one map, the line darker where more mornings walked

Method

How a Log Is Made

Each entry starts with two files, the GPS track exported from the watch and the photo taken at the top, or with either one alone: a morning with a photograph and no recording is logged with its sunrise, its weather and its sky and carries no distance, pace or rank, and a recording with no photograph fronts its page with the route map. A script turns them into the page. Distance is the summed haversine distance between GPS points. Elevation gain depends on what the watch recorded: barometric tracks go through a five-point median filter and count only climbs over three meters; GPS-derived tracks, which jump several meters between seconds, are smoothed over a minute and count only climbs over five. Every entry says which method it used. Moving time drops any stretch slower than one kilometer per hour, which is standing still. The mile splits are the clock at each mile marker with stops included, and the climb in each mile comes from the same walk as the total, so the rows add up. The gray contour lines under each route map are traced at 20 ft intervals from USGS 3DEP elevation data, which is public domain; wider maps show fewer of them.

The same elevation grid, 10 m cells, is what the relief block on a hike page is drawn from: an oblique view of the ground with the recording draped on it, the lake at its own level, contours every 40 ft and the photo pins where the frames were taken. The camera looks the same way on every morning of a trail, so only the track, the light and the date change between them. The vertical scale is doubled, and the page says so, because a block of 850 ft of relief over two miles reads flat at 1:1. The light is not chosen: it is where the sun stood at the clock the walk reached its highest point, computed the same way sunrise is, and when the sun was still under three degrees then, at the clock the recording ended. Where a loop passes behind the summit from that angle the line goes dotted rather than missing, and the caption says what share of the track that is. The picture is drawn when the entry is made; nothing runs in the browser.

A trail page with enough recordings also draws every one of them on a single map, the density map: each recording is a one-pixel line at about 2 m per pixel, and a pixel's tone is the number of distinct mornings that crossed it, on a log scale so a route walked once stays visible beside one walked a hundred times. Three numbers are measured from the same recordings and stated beside it. The common route is every point that at least half of the mornings passed within 10 m of, and each morning's share of its distance on it is stated as the median with the mornings at either end linked. A morning went its own way when 100 m or more of it had no other morning within 10 m. Week to week, the later of two consecutive recordings is compared with the earlier one on the stretches both walked (within 20 m of each other) and the median gap between its points and the nearest point of the other is stated; that is the watch's repeatability plus the width of the trail, not a choice of route. The band a wrist GPS draws is several meters wide, so the darkest pixel never holds every morning, and the caption says how many it does. Nothing is smoothed by hand and no route is drawn: the picture is the overlay as recorded.

Sunrise and civil dawn are computed for the trail's sunrise spot on that date. Conditions at sunrise come from Open-Meteo's historical archive (ERA5 and ECMWF analysis, licensed CC BY 4.0), which separates low, middle and high cloud, the split that decides whether a sunrise lights up. Cloud cover on this site means the low and middle layers together, because that is the cloud that hides the sun; high cloud is reported on its own, because cirrus is what a sunrise lights up, and a ceilometer at the airport cannot see it at all. For recent mornings the nearest National Weather Service station observation is recorded alongside it, because an airport ceilometer is an instrument and a model is a model.

A walk that was not recorded can be drawn on a map afterwards and logged that way. Such an entry says so on its page: its distance and elevation are estimates from the map's terrain model, it has no times, and it is kept out of every median and rank, though it counts toward the totals because the walk did happen.

Some frames can be placed by neither route: a camera with no GPS receiver, a sunrise shot before the watch was started, a morning with no recording at all. Those carry a position supplied by hand, from one file (src/data/photo-gps.csv) that names either one of the photo spots, in which case the coordinate is the spot's surveyed one, or a coordinate typed in with a sentence saying how it was arrived at. The page says so wherever such a frame appears, the downloads carry the method beside the coordinate, and a measured position is never overwritten by one of these. They are not pretending to be measurements.

Photo metadata is read once for the camera fields shown on the page, then stripped from the published file. Where a photo carries no GPS position it is placed by matching its timestamp to the track. Nothing on a page is typed in by hand except the note, and if a value was not measured it is left out rather than estimated.

Comparisons such as "3rd fastest pace of 112" or "sunrise 14 minutes later than three weeks ago" are not stored anywhere. They are recomputed from the whole log every time the site builds, so adding an old hike re-ranks everything automatically. The findings page is built the same way: its charts and every number in its sentences come from the collection, and a sentence whose group is under 5 mornings is left out rather than printed.

The log sits alongside the trail reviews and the gallery. Many of the photographs on this site are for sale at full resolution on iStock and Adobe Stock. The site is static; Google Analytics and Google's advertising tags load only if you accept them in the cookie notice. See the privacy page and the affiliate disclosure.

The Sky, Scored

Color Index

Each photograph gets a color index from 0 to 100, computed once at ingest. The photo is reduced to a 512 pixel thumbnail and only the top 45 percent of the frame is read, which is where the sky usually is. In HSV terms every pixel contributes its saturation, weighted by how far its hue sits from blue on the color wheel: blue sky counts for nothing, and the farther a hue is from blue the more it counts. The weighted mean, scaled to 100, is the index. A gray or plain blue morning scores near zero; the highest so far is named on the Sunrises wall, and what the index does against the cloud layers and through the year is on the findings page, every figure recomputed at build.

This is version 1 of the formula and it is expected to change. Every photo stores the version it was scored with as color_index_version, so a later formula can rescore the archive without mixing scales.

The Sky, in Five Colors

Sky Palette

Each photograph also carries the five colors that cover the most of its sky: the same top 45 percent of the frame the color index reads, reduced to a 256 pixel thumbnail and cut into five by median cut, listed by how many pixels each covers, most common first. The bar under every photograph draws them in that order, five equal cells. The sky almanac colors each day by the first of the five, the Sunrises wall can be ordered by the most saturated of the five (the most common is often the tree line), grays first and then round the color wheel from blue to gold, and each hike page names the three mornings whose five colors sit nearest its own, measured in the CIE Lab color space where a difference of one is about the smallest a person can see, weighted toward the colors that cover more sky. A frame with fewer than five distinct colors gets no palette rather than a padded one.

What I Carry

Miles on the Gear

Every item on the gear page has a service window, the first and last day it came along, set by hand from the day it was bought or from a photograph of the old pair beside the new one. The log does the rest at build time: the mornings whose date falls inside the window, and the sum of their distances, the same tracks the hike pages show. A morning with no track counts as a morning and adds no miles. A route drawn on a map after the walk adds its map estimate and is counted as such. An open window runs to the newest logged morning, never to the day the site was built, so the same log gives the same numbers on any day.

Nothing is estimated across a gap. A weekend with no morning in the log adds nothing, and the number of such weekends inside the window, counted from the later of the window start and the first logged morning, is printed beside the miles so the floor is visible. An item that predates the log says so and counts from the first logged morning. Used is not tested: an item says tested only when a measured review is linked. Buy links go through /go/, which sends you on to Amazon; the affiliate disclosure has the details.

Clothing is counted differently, because it comes along by the weather and not every morning. Its window says when a piece was bought, often only to the month, so a clothing card states that month and sums no mornings or miles, the hike pages leave it out of the pack, and gear.json gives its counts as null rather than the whole window. Clothing is drawn as an icon rather than photographed. What I wore on a given morning comes from that morning's notes: the sentence that starts with "Wore", and any that start with "Took off" or "Put on", shown word for word on the hike page. Nothing is guessed from the weather, and a morning whose notes do not say shows nothing.

Where the Sun Came Up

The Sunrise Sweep

The sweep works on the two photo spots on the north shore of the bay across from Indian Island, where the sunrise frames are aimed at the sun from nearly the same place every morning, so across a year they turn from northeast in June to southeast in December. The sweep registers each photograph to one reference view of that shoreline by the shape of its treeline against the sky (a rotation-only camera model with the focal length from the EXIF; point features do not survive the seasons on a silhouetted far shore), finds the sun in the warped frame, as a disk when it shows and otherwise as the brightest glow above the treeline, and calibrates the reference strip against the computed bearing of the sun at each capture time. The disk is almost never in frame here, so the calibration rests on the glows and a sanity gate: the bearings the sun should have had must line up with the strip's own geometry over at least six mornings spanning thirty degrees. One spot passes that gate today; the other fails it and is not drawn.

Because the calibration comes from the sun itself, the difference between where a glow sits and where the sun was computed to be measures spread (where I stood, the clock, cloud moving the glow, the detection), not accuracy. The sweep page states that spread as a median and never as a precision; a bearing on a hike page is the computed sunrise bearing, not a reading off a photograph.

One Place, Many Mornings

The Photo Spots

A morning belongs to a photo spot when its track passes within the spot's radius, and the first trackpoint inside that radius is the arrival. A spot page sums only those mornings: how many, how many photographed, the share clear at sunrise, the ten best by color index, the median color index by month, and the timing from the lot (the median walk to the spot, how long before sunrise I tend to arrive, and the latest arrival that still made it).

Indian Island is counted by its shoreline instead of a point. Most of these walks start in the lot on it, so a recording passing through says nothing about the island; a morning belongs to it when one of its photographs has a position on the mapped shoreline or within 15 m of it. The position can be measured (the photograph's own GPS, or the watch's track at the moment it was taken) or placed by hand, and the page says how many mornings rest on a hand-placed one; the trail's default spot, where a frame with no position of its own is put, never counts there. Its page shows the ten best by color index, the median by month and every other photograph taken on the island. The outline is from OpenStreetMap.

A spot inside a working area of the park gets no page at all: its mornings stay in the log, and nothing on the site gives its position or the way to it. Every section disappears below five mornings rather than resting on fewer.

What the Notes Said

Trail Conditions

The conditions lines on a hike page are lifted word for word from that morning's notes by two rules and nothing else: a sentence that follows the word "conditions" is taken as it stands, and a sentence carrying a keyword such as closed, washout, downed tree or bridge is taken whole and marked as picked out by a keyword. Nothing is paraphrased, merged or generated, and a morning with no such line is not a report that the trail was clear. The trail page shows the most recent dated lines and the last ten.

The Nearest Mornings

Other Years, Closest Skies

"This morning in other years" is the nearest logged morning to the date in each other year of the log, within two weeks and wrapping the year boundary, from the same trail when it has one. "Closest weather" is the nearest morning by the low, middle and high cloud fractions, humidity, temperature and time of year, each scaled by its range across the log; "closest sky" is the nearest photographed morning by the five sky colors under each photograph, swatch by swatch, or by color index when a photograph carries no palette. Neither is named from fewer than five candidates.

Where the Numbers Come From

Data Sources

  • Samsung Health. The GPS track, the elevation and the moving time, exported after each walk as a GPX file. The watch behind the app has changed over the life of the log, which is one reason the elevation method is chosen track by track.
  • Open-Meteo historical archive. Temperature, dew point, humidity, wind, pressure, precipitation and the low, middle and high cloud fractions for the sunrise hour, from ERA5 and the ECMWF IFS analysis. Licensed CC BY 4.0.
  • National Weather Service station observations. The nearest airport observation closest to sunrise, recorded beside the model where one exists.
  • astral. Sunrise, sunset and civil dawn, computed for the sunrise spot of the trail on that date.
  • Open-Meteo elevation. A 90 m digital elevation model that fills in elevation when the watch recorded none; those entries say so on their page.
  • USGS 3DEP. The contour lines under the route maps, from the 1/3 arc-second elevation data, which is public domain.
  • The photographs. Capture time, camera, lens and exposure from the EXIF data, read once for the page and then stripped from the published file.
  • The log itself, downloadable. Every published hike as one CSV row and every recorded track as a GPX file, in the units the log stores, on the data page. Licensed CC BY 4.0.

What the Numbers Cannot Tell You

Known Limitations

  • The drive home. A watch left running after the walk records the drive out of the park at car speed. Such a recording is cut where the car starts rolling, the entry says how much was removed, and every number on it is from the walk that remains. The Drive keeps the full export.
  • GPS drift. Positions wander under tree cover and beside the rock face, so every distance carries some noise and the same loop does not measure identically twice.
  • Altimeters. A barometric altimeter reads a change in air pressure as a climb or a descent, so a front moving through during the walk shifts the gain. GPS elevation is noisier still and is smoothed harder. The method used is named on every page, and gains from the two methods are not compared with each other.
  • Route choices. The same trail is not the same walk every time: the detour to the shore, an extra loop or a shortcut change the distance, so the range on a trail page reflects choices as much as terrain.
  • Moving time. Any stretch slower than one kilometer per hour counts as stopped, so a slow scramble is dropped while a short photo stop is not. Pace, and every rank built on it, inherits that threshold.
  • Positions by hand. A position that came from a named photo spot is that spot's coordinate, so every frame placed there shares it exactly; one typed from a map is as good as the map. Neither is a measurement of where the camera stood, and both are marked as such wherever they appear.
  • Camera clocks. A capture time is only as good as the camera clock. A phone syncs itself; a dedicated camera drifts. A photo with no GPS position is placed on the map by matching its time to the track, so a wrong clock puts the pin in the wrong place.
  • Weather. The archive is a model for a grid cell, not an instrument on the shore, and the airport station is kilometers away with a ceilometer that cannot see high cloud. The two can disagree about the same morning, and both are shown when they do.
  • Color index. A formula over the top of the frame, sensitive to exposure and to where the horizon sits. It ranks mornings against each other; it does not judge them.
  • The density map. Consecutive recordings are compared by nearest points, so a morning that took the loop the other way still counts where the paths coincide, and a gap is measured to the nearest sample, about a meter along the track, not to the line between samples. The common route and the own-way stretches rest on a 10 m rule chosen once and stated with the numbers; a different radius gives different numbers.
  • The relief block. A 10 m grid at twice the vertical scale. A small tile shows its cells, a lake is found by its flat level and can miss a pond, and the light comes from a clock, not from the sky that morning: cloud is not modeled, so an overcast morning is lit as if it were clear.

What Changed

Method Changes

  • Version 1.6, September 23, 2026. Indian Island becomes a place, counted by its shoreline and the positions of the photographs taken on it rather than by the recordings, most of which start there; a spot inside a working area of the park no longer has a place page.
  • Version 1.5, September 22, 2026. Positions supplied by hand for the frames nothing could measure, each marked with how it was arrived at, and the camera clock correction applied per camera so a morning shot on two bodies corrects one without moving the other.
  • Version 1.4, September 22, 2026. The density map on a trail page with five or more recordings: every recording drawn on one map, toned by how many mornings crossed each pixel, with the common route, the own-way stretches and the week-to-week gap measured beside it and every rule stated.
  • Version 1.3, September 21, 2026. The relief block on every hike page with a recording: the route on the terrain in three dimensions, drawn from the same USGS 3DEP grid as the contours, at twice the vertical scale, lit from where the sun stood when the walk reached its highest point.
  • Version 1.2, September 13, 2026. Five recordings that kept running on the drive home cut where the car started rolling, which shortened them by 0.6 to 12.1 miles and re-ranked every pace. Each says on its page how much was removed. The sky palette documented, and used to order the Sunrises wall and to name the three mornings nearest each sunrise by color.
  • Version 1.1, September 13, 2026. Cloud cover redefined as the low and middle layers together, with high cloud reported on its own (September 11). Ranks by pace rather than moving time, and no rank or median stated from fewer than five hikes (September 11). Routes drawn on a map after the walk logged as such and kept out of every median and rank (September 11). The color index formula documented (September 13). Contour lines from USGS 3DEP under every route map, and this list of sources, limitations and changes (September 13).
  • Version 1.0, September 6, 2026. The log went live: GPS distance, the two elevation methods, moving time, sunrise and civil dawn, Open-Meteo archive weather with the National Weather Service observation beside it, the camera strip, and version 1 of the color index.