Files
sunscope/temperatures.html
T
Fraxle 8f161dc8cb 3.9
Summaries added — every column in COL_DESCRIPTIONS got a short (1–2 sentences) and a link to its reference row. Full desc text kept intact for the day-tab metric labels.
Popup rewired — renders the summary plus a "More about this column →" link, opening in a new tab.
Link styling — .col-info-more pinned below the summary so it stays visible if the text scrolls; centred on mobile with the rest.
Anchors on the reference page — 35 row ids in columns.html, one per column key.
New "Rows" row — the hour/interval header had a popup but no matching row on the reference page; added.
Landing highlight — tr:target gets a gold bar and tint, with scroll offset so the nav doesn't cover it.
2026-08-03 18:06:09 +01:00

181 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Derived temperatures · SunScope</title>
<meta name="description" content="How SunScope models the temperatures the thermometer doesn't show — a parked vehicle's interior, a building's indoor temperature without air conditioning, and sun-baked urban concrete." />
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://sunscope.net/temperatures.html" />
<meta property="og:title" content="Derived temperatures · SunScope" />
<meta property="og:description" content="The physics-based temperature models behind SunScope: vehicle interior, indoor building temperature, and urban concrete surface temperature." />
<meta property="og:url" content="https://sunscope.net/temperatures.html" />
<meta property="og:type" content="article" />
<meta property="og:image" content="https://sunscope.net/og-image.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Derived temperatures · SunScope" />
<meta name="twitter:description" content="The physics-based temperature models behind SunScope: vehicle interior, indoor building temperature, and urban concrete surface temperature." />
<meta name="twitter:image" content="https://sunscope.net/og-image.png" />
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
<link rel="stylesheet" href="./assets/about.css?v=15b">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Derived temperatures",
"about": "Vehicle interior, indoor building, and urban concrete temperature models in SunScope.",
"publisher": { "@type": "Organization", "name": "SunScope", "url": "https://sunscope.net" },
"mainEntityOfPage": "https://sunscope.net/temperatures.html"
}
</script>
</head>
<body>
<header id="site-nav">
<div class="nav-overlay" onclick="toggleNav(false)"></div>
<a href="./index.html" class="logo"><span class="logo-sun">Sun</span><svg class="logo-icon" viewBox="0 0 174 173" aria-hidden="true" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"><g transform="matrix(0.986226,0,0,0.986226,-585.724252,-110.041209)"><clipPath id="ss-clip-te"><circle cx="681.9838" cy="199.4502" r="83.2987"/></clipPath><g clip-path="url(#ss-clip-te)"><g transform="matrix(0.948836,0,0,0.948836,19.787839,-2.49381)"><path d="M666.992,233.0768C666.3949,230.6581 666.1785,228.6317 666.1785,226.0296C666.1785,208.6786 680.2653,194.5919 697.6163,194.5919C714.9672,194.5919 729.054,208.6786 729.054,226.0296C729.054,228.4125 728.9892,230.9346 728.4859,233.1663" fill="none" stroke="#c8922a" stroke-width="7.48"/></g><g transform="matrix(0.520349,0,0,0.520349,304.766642,64.226716)"><path d="M724.9315,291.8131C777.359,291.8131 826.5862,305.6245 869.1698,329.8044" fill="none" stroke="currentColor" stroke-width="13.64"/></g><g transform="matrix(0.520349,0,0,0.520349,304.766642,64.226716)"><path d="M580.8436,329.719C623.3927,305.592 672.5657,291.8131 724.9315,291.8131" fill="none" stroke="currentColor" stroke-width="13.64"/></g></g><circle cx="681.9838" cy="199.4502" r="83.2987" fill="none" stroke="currentColor" stroke-width="9.13"/></g></svg><span class="logo-scope">Scope</span></a>
<div class="nav-links" id="nav-drawer">
<a href="./index.html">Forecast</a>
<div class="nav-dropdown">
<a href="./about.html" class="nav-dropdown-toggle active">About<span class="caret"></span></a>
<div class="nav-dropdown-menu">
<a href="./about.html">Overview</a>
<a href="./sunsoak.html">SunSoak &amp; the science</a>
<a href="./profiles.html">Forecast profiles</a>
<a href="./columns.html">Column reference</a>
<a href="./temperatures.html" class="active">Derived temperatures</a>
<a href="./features.html">On-screen features</a>
<a href="./stress-bands.html">Stress bands</a>
</div>
</div>
<a href="./faq.html">FAQ</a>
<a href="https://billing.stripe.com/p/login/9B63cw7vl8k15Ei9DQd7q00" target="_blank" rel="noopener noreferrer">Account</a>
</div>
<button class="utci-burger" aria-label="Open menu" aria-expanded="false" id="burger-btn" onclick="toggleNav()">
<span></span><span></span><span></span>
</button>
</header>
<script>
function toggleNav(force) {
const nav = document.getElementById('site-nav');
const drawer = document.getElementById('nav-drawer');
const btn = document.getElementById('burger-btn');
const open = force !== undefined ? force : !nav.classList.contains('nav-open');
nav.classList.toggle('nav-open', open);
drawer.classList.toggle('is-open', open);
btn.setAttribute('aria-expanded', open ? 'true' : 'false');
}
</script>
<main>
<h1>Derived temperatures</h1>
<p class="tagline">The temperatures the thermometer never tells you.</p>
<p>
Beyond felt temperature, SunScope runs three physics-based models that estimate temperatures you
can't read off a standard forecast: how hot a parked vehicle becomes, how warm a building stays
indoors, and how sun-baked urban concrete gets. Each is built on the same per-hour weather data.
</p>
<h2>Vehicle interior temperature</h2>
<p>
A sealed, parked vehicle heats up far faster than most people expect. SunScope's <strong>Vehicle</strong>
column models the ambient cabin air temperature experienced by an occupant seated out of direct
sunlight — the classic scenario of a child or pet left inside a parked car.
</p>
<p>
The calculation combines two physical processes. The first is <strong>body panel conduction</strong>:
panels absorb solar radiation and conduct heat into the cabin regardless of the sun's position. Thin
metal car panels pass much more of this through than the insulated sandwich panels of many motorhomes
and caravans. This is the slow, relentless background heat that builds even on overcast days. The
second is <strong>side-window solar gain</strong>: when the sun's rays cut through the side glass
rather than striking the roof, additional heat enters the cabin. Because the occupant sits out of the
direct beam, this energy raises the ambient cabin air temperature rather than heating the person
directly — which is precisely what makes it so dangerous.
</p>
<p>
You can select your vehicle type (car, MPV, SUV, truck/HGV cab, motorhome, or caravan), each with
its own albedo, glazing area, and insulation. A <em>Windows open</em> toggle switches to a
ventilated model where convective loss is roughly five times higher, dramatically reducing cabin
heat build-up. For cars, the figure represents the cabin after roughly 4560 minutes of parking;
motorhomes and caravans are treated as insulated occupied living spaces, so the estimate stays
closer to the real living-space temperature on cool or moderate sunny days. Values above 35 °C are
shown in amber (dangerous for children and pets); above 45 °C in red (potentially fatal within
minutes).
</p>
<p>
A <strong>road speed</strong> selector — Static, Urban (20 mph), A-road (50 mph), or Motorway
(70 mph) — sits alongside the ventilation toggle. Static reproduces the original stationary model;
higher speeds add forced airflow that scrubs heat off the bodywork, and when combined with windows
open, flush the cabin toward outside air much faster than a parked vehicle. Wind speed itself has
almost no effect on a sealed, stationary vehicle and is only meaningfully factored in through
ventilation or road speed.
</p>
<h2>Indoor temperature</h2>
<p>
The <strong>Indoors</strong> column estimates the temperature inside a building with windows closed
and no air conditioning, simulating retained warmth, window solar gain, internal gains, and thermal
mass hour by hour. You choose your building type from a dropdown — brick, modern insulated, Victorian
terrace, stone cottage, timber frame, top-floor flat, conservatory, or office block — and the physics
model adjusts accordingly. Each type has its own insulation level, thermal mass, retained warmth, and
glazing, so a stone cottage and a conservatory behave very differently on a hot day. Office block
carries a higher internal gain (people, equipment, lighting) and more glazing than a typical home,
reflecting a commercial building rather than a house.
</p>
<p>
The model lags toward a realistic hourly target rather than repeatedly adding solar heat, so indoor
temperatures typically peak 24 hours after the outdoor peak — which is why a house can still feel
stifling at 10 pm on a summer day. Tick <em>Managed</em> alongside the dropdown to switch to the
heatwave-advice model: curtains closed by day to cut solar gain, windows opened whenever outdoor air
is cooler than inside. The <strong>Managed</strong> column shows how much passive cooling can reduce
indoor heat compared to doing nothing.
</p>
<h2>Urban concrete surface temperature</h2>
<p>
The UTCI standard was developed with a natural grass surface as its reference ground. In a city that
assumption breaks down. Concrete and tarmac absorb far more solar energy than grass, and unlike grass
they have no evaporative cooling. On a sunny summer afternoon, exposed paving can run 1525 °C hotter
than the surrounding air.
</p>
<p>
SunScope's <strong>Concrete surface</strong> column estimates the temperature of sun-exposed urban
paving using a surface energy-balance model that accounts for how much solar radiation the surface
absorbs, how efficiently the wind carries that heat away, and the reflective properties of typical
urban concrete. The result gives a sense of the contact heat stress you'd experience sitting,
standing, or walking barefoot on city surfaces — and it's a useful proxy for pavement-paw safety for
dogs. The column is enabled by default in the <strong>Places → Urban</strong> view and colour-coded:
values above 30 °C are shown in amber, above 40 °C in red.
</p>
<h2>Pet fur and paw temperatures</h2>
<p>
The <strong>Pets</strong> profile runs two further physics estimates alongside the shade and
indoor models. <strong>Fur Temp</strong> estimates the surface temperature of a cat or small dog's
coat sitting in direct sun, calibrated for a thin/short coat rather than a heavily-insulated breed.
A <strong>fur colour</strong> selector (Black/Dark, Brown/Tabby, Golden/Tan, White/Pale) sets the
coat's albedo — darker coats absorb more solar radiation and run hotter, the same principle as
Shade Air but applied to fur rather than skin. <strong>Paw Temp</strong> reuses the concrete
surface energy-balance model above to estimate ground contact temperature, colour-coded by burn
risk instead of the general amber/red thresholds: green below 40 °C, amber 4052 °C, red above
52 °C.
</p>
<p>
These columns appear together in the <a href="./profiles.html">Temps profile</a>. For what every
column means, see the <a href="./columns.html">column reference</a>.
</p>
</main>
<footer>
&copy; 2026 <a href="https://fraxle.net" target="_blank" rel="noopener noreferrer">Fraxle.NET</a> · <a href="./index.html">Forecast</a> · <a href="./about.html">About</a> · <a href="./faq.html">FAQ</a> · <a href="https://billing.stripe.com/p/login/9B63cw7vl8k15Ei9DQd7q00" target="_blank" rel="noopener noreferrer">Account</a> · Data: <a href="https://open-meteo.com/" target="_blank" rel="noopener noreferrer">Open-Meteo</a> · UTCI: <a href="https://utci.org/" target="_blank" rel="noopener noreferrer">Bröde 2012</a>
</footer>
</body>
</html>