A mesomap widget is a small map that places neighboring weather stations in one view so their latest reports can be compared. Comparison is the product: same quantity, same unit, same time window. A collage of anonymous numbers on pretty pins is not a map of weather. Visitors who followed /mesomap-box.php were opening a compact MesoMap-style box on the historical station host. This page keeps that address. It does not restore a Flash or JavaScript map, and it does not claim a current Mesa mesonet feed.
A different URL solves a different embedding problem. /wdlive-box.php is a live-station box: the compact observation module you drop beside a point (isolation, station ID, time, units inside the box). This page is the map that holds many points. The box is a citation. The map is the comparison canvas.
Historical context
Amateur weather sites in the Weather Display era often showed a “MesoMap”: nearby personal stations and sometimes airports, plotted on a regional image or a slippy map, with a popup or a side box of values. The filename mesomap-box.php marks the widget form—the chunk you could include in a dashboard—not a full-screen GIS application. Recovered neighboring titles used “MesoMap” for more than one artifact, including a live-box path. This restoration keeps /mesomap-box.php as the map widget and leaves the console-style embed on its own article.
The original map tiles, station pins, and any third-party mesonet script are not rehosted. Incoming links wanted the box-sized map. The scientific object that URL can still teach is how to plot neighbors without mixing units, mixing hours, or mixing someone else’s station into yours.
Comparison is a join, not a pin color
A map becomes a mesomap when it supports a join: stations that reported the same kind of observation inside a stated window, converted to one display unit for the legend, with native units still visible.
Shared time window. Prefer observation time as the join key, not page-load time. A widget that shows whoever last uploaded, regardless of age, is a gallery of pins. A widget that includes only reports whose timestamps fall inside a declared window (for example, the last ten minutes) is honest about who is in the sample. Stations outside the window should drop out or draw as stale, not as the same color ramp.
Shared quantity definition. Temperature is not dew point. A one-minute wind mean is not a peak gust. Rain since local midnight is not rain since 00 UTC. The map legend names one definition. Pins that cannot meet it must not feed that ramp.
Shared display unit, native unit preserved. Convert for color in one place. Still print the operator’s native unit on the pin or in the popup. A Fahrenheit backyard next to a Celsius METAR can share a ramp only after conversion. If you hide the native unit, you hide the source.
Shared identity. Each pin needs a stable station ID and a location line at a precision the operator published. Two “River Road” labels without IDs are not comparable. Do not invent coordinates for a station that only published a city.
These rules are why a mesomap is not a webcam directory. Pictures have owners and intervals; they do not share a temperature ramp. Do not color JPEGs as if they were thermometers.
What the widget must show on the map itself
Because this is a box, space is scarce. Scarcity is not an excuse to drop the join keys.
- Region and projection in one line (“central Arizona, north up”) so a cropped widget is not mistaken for a national map.
- Legend with quantity, unit, and the valid window.
- Age as a visible property: stale pins look different from in-window pins.
- Source mix, if any: personal stations, METAR, and official mesonets may share a map only if the legend says they are mixed networks.
- Your station, if it appears, labeled as yours without drawing every neighbor in your color.
Popups may use a live-station module. Isolation, iframe versus fetch, and the labels inside that module are the live-station box article. The map must not replace the popup’s observation time with the widget’s refresh clock.
Missing data is a map problem. A pin that keeps yesterday’s heat while the feed is down will bias the ramp. Fail visible: gap, hollow pin, or “no report.”
Mixed networks and mixed clocks
Personal Weather Display stations, airport METARs, and official mesonets often appear together on hobby maps. That is legitimate when stated. It is misleading when one ramp treats them as one sensor class.
Wind averaging conventions differ. Pressure may be station pressure at one site and altimeter setting at another. Day boundaries for “today’s rain” differ. The widget does not have to solve every convention. It has to refuse to color incomparable quantities as one field.
Publish cadence is still not sample rate. A map that redraws every thirty seconds does not sample the thermometers every thirty seconds. Five stations uploading once a minute and one uploading every ten minutes can look simultaneous in a widget that ignores timestamps. They are not.
Do not scrape another operator’s gauges and present them as your mesonet. Do not log visitor IPs as a substitute for station metadata. Do not imply NWS or a national mesonet endorsement because an airport pin is on the map.
What this widget is not
It is not a live console. Gauges, 24-hour plots, and packet cadence belong on WDLive-style pages. The embeddable console fragment is /wdlive-box.php.
It is not a station dashboard. Current stats, forecast strips, and radar thumbnails are a different information architecture. This article does not re-teach that hub.
It is not a webcam wall and not an HTML5 sky slider. Visual sequences have a time-order problem of their own; that is a slideshow, not a map.
It is not a warning map. Watches, warnings, and advisories come from official authorities. Direct hazard decisions to weather.gov or the local emergency service. A backyard pin in heavy rain is not a flood warning.
It is not TNET’s coverage research. Geographic performance maps are a different product with different evidence. The widget’s modern geographic cousin is Starlink coverage, which does not plot these hobby pins.
Practical checklist
- Join on observation time inside a stated window; stale pins are marked or omitted.
- One quantity definition per ramp; wind mean versus gust and rain windows are named.
- Convert for color in one place; print native units on the pin or popup.
- Stable station IDs; no invented coordinates; mixed networks labeled.
- Map refresh is not sensor sample rate.
- Popups keep their own observation time; they do not inherit the widget clock.
- No forecast icons in the observed ramp; no webcam JPEGs as temperature.
- Fail visible on missing feeds; do not keep yesterday’s color.
Modern relevance
Leaflet, MapLibre, and vendor tiles made MesoMap boxes look dated. The join problem did not go away. A JavaScript map that paints every personal weather station the API returns, without an age filter or a unit check, is the same collage as a 2005 GIF with unmarked pins.
Operators who still want a neighbor view can do it with static HTML and a timestamped table if a map library is too much. The table has to obey the same join: ID, time, unit, quantity. The widget is optional. The comparison contract is not.
TNET does not operate a mesonet widget at this path.
TNET research bridge
A mesomap is provenance plus comparability: which stations, which time window, which units. That is the same class of source problem as data sources, quality controls, and methodology. Distinguishing observed pins from forecast layers is how the service works. The weather-station hub lists related station pages.
For a region-scale next step that is not a hobby pin map, TNET’s public geographic research is Starlink coverage.
Sources
- WMO-No. 8, Guide to Instruments and Methods of Observation — identity, position, and time as metadata, not optional captions
- NWS