{
 "id": "ipma-hourly",
 "site": "ipma-local",
 "site_page": "research/weather-sites/sites/ipma-local.md",
 "name": "IPMA: hourly forecast for a place (Lisboa)",
 "country": "Portugal",
 "url": "https://www.ipma.pt/pt/otempo/prev.localidade.hora/#Lisboa&Lisboa",
 "by": "incident.weatherwatch@web-summit.dinis",
 "updated": "2026-11-11T03:41:00Z",
 "frame": {
  "viewport": [
   1280,
   1600
  ],
  "scale": 1,
  "part": "top of the page, no scrolling",
  "seen_utc": "2026-11-10T23:48Z",
  "callouts_checked_against_capture": true
 },
 "capture": {
  "evidence": "ipma/2026/11/11/0253-pt-otempo-prev-localidade-hora",
  "evidence_page": "evidence/ipma/2026/11/11/0253-pt-otempo-prev-localidade-hora.html",
  "read_utc": "2026-11-11T02:53:07Z",
  "sha256": "3eb704809470b4ab6329006c61cd6609d3ae86e0bb3e01b31146314aebe251fc",
  "vault": "f86qsbla",
  "path": "ipma/2026/11/11/0253-pt-otempo-prev-localidade-hora/frame.jpg",
  "shown_as": "as served",
  "by": "incident.archivist@web-summit.dinis"
 },
 "capture_note": "The frame is read in the browser from the display vault with the published read key and checked against the sha256; no image is kept in git. The callouts were placed on this agent's own render and checked against this capture.",
 "licence_for_showing_the_screenshot": "As IPMA above.",
 "summary": "The page our hour strip should learn most from: day tabs that carry the warning colour, and an hourly table whose last row is the warnings themselves.",
 "callouts": [
  {
   "n": 1,
   "x": 0.805,
   "y": 0.088,
   "title": "When it was made",
   "does_well": "\"Informação em horas UTC. Última atualização: 2026-11-10 19:56:03 (UTC)\".",
   "fed_by": "incidents/2026-11-10-storm-charles/data/weather/forecast.json (hourly_runs)",
   "part": "times"
  },
  {
   "n": 2,
   "x": 0.349,
   "y": 0.249,
   "title": "The day tab carries the warning",
   "does_well": "Under each day: min, max, wind, rain probability, and a label in the level's colour (\"Amarelo\", \"Vermelho\", \"Amarelo\").",
   "fed_by": "incidents/2026-11-10-storm-charles/data/weather/forecast.json (daily) + warnings.json",
   "part": "warning-over-time"
  },
  {
   "n": 3,
   "x": 0.57,
   "y": 0.357,
   "title": "Rain probability by three-hour block",
   "does_well": "\"100%\" across the morning and afternoon of Wednesday, \"24%\" at the end.",
   "fed_by": "incidents/2026-11-10-storm-charles/data/weather/forecast.json (hourly)",
   "part": "hour-by-hour"
  },
  {
   "n": 4,
   "x": 0.57,
   "y": 0.45,
   "title": "Mean wind, hour by hour",
   "does_well": "An arrow, a figure in km/h and a direction per hour: 11 to 23 km/h. This is the automatic mean wind, not the gust the warning speaks of.",
   "fed_by": "incidents/2026-11-10-storm-charles/data/weather/forecast.json (hourly); label it \"automatic, mean wind\"",
   "part": "hour-by-hour"
  },
  {
   "n": 5,
   "x": 0.57,
   "y": 0.549,
   "title": "The warnings as a row of the table",
   "does_well": "\"Avisos Meteorológicos\": one cell per hour, yellow, then orange, then red from 09H to 21H. The best row on the page, placed last.",
   "fed_by": "incidents/2026-11-10-storm-charles/data/weather/warnings.json: on our strip this row goes first",
   "part": "warning-over-time"
  },
  {
   "n": 6,
   "x": 0.57,
   "y": 0.791,
   "title": "The caveat, in the notes",
   "does_well": "The page explains that this automatic forecast may differ from the forecasters' descriptive forecast and from the warnings, which should be consulted. True and far from the numbers it qualifies.",
   "fed_by": "a one-line note beside our model rows",
   "part": "uncertainty"
  }
 ]
}
