bitsofchris Claude Opus 4.7 (1M context) commited on
Commit
0fbcb31
·
1 Parent(s): 956b349

Show ws90 photo + mention gateway/sensor split in subtitle and caption

Browse files

The hardware is two pieces: an Ecowitt GW3000 gateway (the indoor base
station that uploads to the cloud) and an outdoor WS90 7-in-1 sensor
(the thing in the photo — temperature, humidity, pressure, wind, rain,
UV, solar, all in one piezo-rainfall unit). Renamed the asset to
ws90.jpeg accordingly and updated the page subtitle + photo caption.

The image itself was uploaded to the Space via huggingface_hub
(Xet-backed) in a prior commit (956b349) because HF Spaces' pre-receive
hook rejects raw binary files in git pushes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Files changed (1) hide show
  1. app.py +20 -3
app.py CHANGED
@@ -437,9 +437,9 @@ HOOK = (
437
  "What if you could predict the future with the same technology?**"
438
  )
439
  SUBTITLE = (
440
- "Live readings from my Ecowitt GW3000B + a probabilistic forecast from "
441
- "[Datadog's Toto 2.0 (22M)](https://huggingface.co/Datadog/Toto-2.0-22m), "
442
- "compared against the [NWS hourly forecast](https://www.weather.gov/documentation/services-web-api). "
443
  "The scoreboard tracks who's been more accurate over the past 48 hours."
444
  )
445
 
@@ -514,6 +514,23 @@ with gr.Blocks(
514
  residual_plot = gr.Plot(label="Forecast residual")
515
 
516
  gr.Markdown("## 🔧 How it's made")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
517
  with gr.Accordion("How the scoreboard is calculated", open=False):
518
  gr.Markdown(
519
  "We score each model on **how close its prediction was to the actual Ecowitt reading** "
 
437
  "What if you could predict the future with the same technology?**"
438
  )
439
  SUBTITLE = (
440
+ "Live readings from my Ecowitt GW3000 gateway + WS90 7-in-1 sensor, plus a probabilistic forecast "
441
+ "from [Datadog's Toto 2.0 (22M)](https://huggingface.co/Datadog/Toto-2.0-22m), compared against "
442
+ "the [NWS hourly forecast](https://www.weather.gov/documentation/services-web-api). "
443
  "The scoreboard tracks who's been more accurate over the past 48 hours."
444
  )
445
 
 
514
  residual_plot = gr.Plot(label="Forecast residual")
515
 
516
  gr.Markdown("## 🔧 How it's made")
517
+ gr.Image(
518
+ "assets/ws90.jpeg",
519
+ show_label=False,
520
+ container=False,
521
+ interactive=False,
522
+ height=380,
523
+ show_download_button=False,
524
+ show_share_button=False,
525
+ show_fullscreen_button=False,
526
+ )
527
+ gr.Markdown(
528
+ "<div style='text-align:center;opacity:0.6;font-size:0.9em;"
529
+ "margin-top:-0.3em;margin-bottom:0.8em;'>"
530
+ "my ecowitt weather station — Ecowitt GW3000 gateway + WS90 7-in-1 sensor"
531
+ "</div>"
532
+ )
533
+
534
  with gr.Accordion("How the scoreboard is calculated", open=False):
535
  gr.Markdown(
536
  "We score each model on **how close its prediction was to the actual Ecowitt reading** "