Pyre Weather

Pyre — Frequently Asked Questions

Data sources, methods, and scientific design decisions organized from foundational concepts to more technical detail.


1. What is Pyre?

Pyre is an independently built replacement for the NOAA/PSL interactive reanalysis composite pages that stopped updating in March 2026 when the underlying NCEP Reanalysis dataset was discontinued. PSL has no plans to rebuild the interface for the successor dataset. Pyre replicates the three PSL interfaces:

  • Monthly/Seasonal Composites — composite means over one or more calendar months
  • Daily Mean Composites — one or more calendar days, each the archive's daily mean of all eight analyses
  • 3-Hourly Composites — a single analysis time (00/03/06/09/12/15/18/21z) or averaged across a date list

2. What happened to the old PSL reanalysis pages?

The PSL composite tools were built on NCEP Reanalysis 1 (R1), a global retrospective analysis that ran from 1948 through March 2026. When NCEP discontinued R1 as the operational product and replaced it with CORe (Climate-Ocean Reanalysis), the PSL interface was not updated. PSL's existing pages are archived but show no data after March 2026.


3. What is a map made from?

Pyre uses CORe — Climate-Ocean Reanalysis from NCEP/CPC.

  • Resolution: 0.703° × 0.703° (~78 km at mid-latitudes), the T170 gaussian grid — about 3.5× finer than R1 in each direction, or roughly 13× smaller grid boxes by area
  • Temporal coverage: January 1, 1950 to near-real-time
  • Form: the ensemble mean of the analysis, read from the archive for each map as it is requested

CORe is the designated successor to R1/R2 for NCEP operational reanalysis products.

A 3-hourly map reads one analysis, one of the eight the archive holds per day (00z to 21z), for the date and hour you choose. A 3-hourly range, list, or slice averages the analyses you select. Cloud cover, radiation, and precipitation rate are three-hour averages rather than snapshots, and the hour on the map is the archive's own stamp for them: a 21z map of cloud cover is the average over 21z to 00z, and its normal is built from the same records.

2m High and Low Temperature. Each 3-hourly file carries, beside the 2 m temperature analysis, the highest and lowest 2 m temperature over the three hours that start at its stamp: the 18z file holds the 18z to 21z maximum and minimum. A 3-hourly map of the high or low reads that 3-hour maximum or minimum. A daily map reads the archive's daily file, whose high is the highest of the day's eight 3-hour maximums (00z to 21z, so the day is the UTC day, which can differ from the local calendar day) and whose low is the lowest of the eight minimums. A monthly map reads the archive's monthly file, the average of that month's daily highs or lows. We checked the three against each other for July and January 2020: the daily file matches the 3-hourly maximums and minimums exactly, and the monthly file matches the average of the daily files to 0.001 °C. A high taken from the eight analyses alone would run about 0.2 °C low on average and up to 1.8 °C low in places, which is why Pyre reads the maximum and minimum records instead. Normals are built from the same records. The R2 baseline offers the daily and monthly high and low; R1 publishes only a 6-hour maximum and minimum, so a 3-hourly map of the high or low uses CORe's normal.

A daily map. A daily map reads the archive's own daily-mean file for each day: the average of all eight 3-hourly analyses, computed by the archive, one record per day.

A 3-hourly slice that names all eight hours is the same thing and is treated as a whole day: it reads the daily file and compares against the daily normal. Any smaller set of hours is a slice of hours, each member compared against its own hour's normal.

A monthly map. The CORe archive's own monthly-mean files: one record per month, the average of that month's 248 three-hourly analyses, computed by the archive from the same run as the 3-hourly and daily files. The archive publishes a month about a day after it ends.

A note for anyone comparing with the Climate Prediction Center's monthly files. CPC keeps a separate monthly archive of CORe whose folder is named "CDAS clone." Those records come from a separate run of the CORe system: at 500 mb they differ from the archive's own monthly files by 5 to 7 meters point by point (as much as 40 meters in the winter storm tracks) while agreeing on the global average, which is exactly how two runs of one assimilation system diverge. Pyre does not use the clone run. Every number on a monthly map, observation and normal alike, comes from the one archive.


4. What variables are available?

Every variable in the builder, from the same registry the backend reads, with the levels it is offered on, the display modes it supports, and the normals behind its climatology and anomaly maps (which time scales, and whether a 3-hourly map uses the hourly normal; CORe alone or CORe and R2 as the baseline, see Q10).

Pressure-level variables

VariableLevelsModesNormals
Wind Speedall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Zonal Windall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Meridional Windall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Temperatureall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Geopotential Heightall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Specific Humidityall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Relative Humidityall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Omega (Vertical Velocity)1000 to 100 mb (12 levels)Raw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Relative Vorticityall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Absolute Vorticityall 16 pressure levels, 1000 to 10 mbRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe

Surface and single-level variables

VariableLevelsModesNormals
2m Relative Humidity2 m above groundRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
2m Temperature2 m above groundRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
2m High Temperature2 m above groundRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
2m Low Temperature2 m above groundRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
10m Wind Speed10 m above groundRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
10m Zonal Wind10 m above groundRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
10m Meridional Wind10 m above groundRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Mean Sea Level Pressuremean sea levelRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Precipitable Watertotal columnRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Precipitation RatesurfaceRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
Precipitation Totalsurface; no monthly mapsRawNone (raw maps only)
Total Cloud Coveratmospheric columnRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Low Cloud Coverlow cloud layerRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Middle Cloud Covermiddle cloud layerRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
High Cloud Coverhigh cloud layerRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Boundary-Layer Cloud Coverboundary layer cloud layerRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Convective Cloud Coverconvective cloud layerRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Surface Downward Shortwave RadiationsurfaceRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Surface Upward Shortwave RadiationsurfaceRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Surface Downward Longwave RadiationsurfaceRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Surface Upward Longwave RadiationsurfaceRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
TOA Downward Shortwave Radiationtop of atmosphereRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
TOA Upward Shortwave Radiationtop of atmosphereRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Outgoing Longwave Radiationtop of atmosphereRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe or R2
CAPE (Surface-Based)surface-basedRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
CAPE (180-0 mb Mixed-Layer)180-0 mb mixed layerRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
CAPE (255-0 mb Most-Unstable)255-0 mb most-unstableRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
CIN (Surface-Based)surface-basedRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
CIN (180-0 mb Mixed-Layer)180-0 mb mixed layerRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
CIN (255-0 mb Most-Unstable)255-0 mb most-unstableRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
2m Dewpoint2 m above groundRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Storm-Relative Helicity0–3 km AGLRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Wind GustsurfaceRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Storm Motion0–6 km AGLRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Lifted Index (Surface)surface parcelRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Lifted Index (Best 4-layer)best 4-layer parcelRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Lifted Index (30-0 mb Parcel)30–0 mb AGL parcelRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Snow DepthsurfaceRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe
Sea Surface TemperaturesurfaceRaw, Climatology, Anomaly, Normalized anomalymonthly, daily, 3-hourly (hourly normal); CORe

Precipitation, cloud cover, and radiation fluxes come from CORe forecast-background fields. They are useful for broad case-study context, but they are not gauge or radar precipitation totals, station sky-condition reports, or pyranometer measurements. Precipitation total has no normal (a window total has no monthly form), so it is raw only.


5. What is a climatology?

A normal is what "usual" means on a map: the average of a quantity over the base period 1991–2020, for a calendar month, a calendar day, or a calendar day at one hour. Every climatology, anomaly, and normalized anomaly map uses one. All of Pyre's normals are built from the CORe archive, the same source as the observations, so a map never compares one reanalysis against another.

The Climatology display mode shows the normal itself for the period you choose. No observation is needed, and it is not an anomaly: a July climatology map is what July usually looks like.

Three kinds, one per time scale: a monthly normal for monthly maps, a daily normal for daily maps and composites, and an hourly normal for 3-hourly maps of fields that change with the clock (Q9). How each is built, and the 15-day window behind the daily and hourly ones, is Q8.


6. What is an anomaly?

An anomaly is the observation minus the normal: how far that day, hour, or month sat from what is usual for the same calendar period. Warm colors are above normal, cool colors below, in the field's own units.

Which normal a map is compared against follows its time scale:

MapObservationNormal it is compared against
3-hourlyThe analysis for the selected date and hourThe hourly normal for that calendar day and that hour
3-hourly range, list, or sliceMean of the selected timesMean of the matching normals, one per member
DailyThe archive's daily-mean fileThe daily normal for that calendar day
Daily composite, under 15 daysMean of the daily filesMean of the matching daily normals
Daily composite, 15 days or moreMean of the daily filesThe monthly normals it spans, weighted by the days taken from each month
MonthlyThe archive's monthly-mean fileThe monthly normal for that calendar month
Multi-monthMean of the monthly filesDay-weighted mean of each month's normal

The map's second subheader line names the normal used, for example Baseline: Jul 15 18z · CORe-hourly 1991–2020.

What an anomaly of a composite shows

Exactly what it sounds like, once you know both halves. The observation side averages the selected grids: the daily files for a daily composite, every 3-hourly step for a range, the chosen hours times dates for a slice. The climatology side averages the matching normals: each selected time is paired with the normal for its own calendar day and, for a 3-hourly member, its own hour. The map is the first average minus the second.

That is mathematically identical to computing each individual time's anomaly and averaging those, since subtraction and averaging commute. So "the anomaly of a composite" and "the composite of the anomalies" are the same map. For the standard deviation a normalized composite divides by, see the note at the end of Q7.


7. What is a normalized anomaly, and what is sigma?

A normalized anomaly divides the anomaly by the normal's standard deviation, its sigma, so the map reads in standard deviations instead of the field's units: a value of 2 means two standard deviations from normal for that place, day, and hour. Sigma is the spread of the same 30-year pool the normal is the average of, so a normalized map answers "how unusual is this here" rather than "how many degrees".

Pyre computes every sigma itself; no source publishes one at the resolution Pyre needs.

  • Monthly normal: the sample standard deviation of the 30 individual monthly means for that calendar month, 1991–2020.
  • Daily normal: the sample standard deviation of the pooled window: the 15 calendar days centered on the day, in each of the 30 years, 450 values at every grid point.
  • Hourly normal: the same pool, at that hour only.

Sample standard deviation means dividing by N−1 rather than N (the "ddof=1" form), because 30 years is a finite sample of the climate, not the whole population. For 450 values the difference from the population form is about 0.1%; for 30 monthly means it is about 2%.

On the R2 baseline the daily sigma is built the same way from R2's daily series. R1's per-hour files carry no sigma at all.

A note on composites. A composite map (several days, or several hours) divides its anomaly by the average of the members' sigmas. The strict sigma of a several-day average is somewhat smaller than that, because averaging smooths out variability, so normalized composites read a little less extreme than a strict calculation would give. WPC's method is defined per day and does not define a composite sigma; Pyre's choice is the standard simplification, and the subheader says "composite" whenever it applies.


8. How are the normals built?

Three kinds, one per time scale.

  • Monthly normal. For a calendar month, the 30 monthly-mean records for that month from the archive's monthly files (each one record per month, the average of that month's 248 three-hourly analyses, computed by the archive), averaged; sigma is the spread of those 30 means. Built once for the whole archive and stored.
  • Daily normal. For a calendar day, the archive's daily-mean files (each already the average of a day's eight analyses) for the 15 days centered on that day, in each of the 30 years: 450 fields. Their mean and sigma. Built the first time a map needs the day, then stored: the first map to need a given day waits about ten seconds for the build, and everyone after reads the stored file. A composite builds all of its missing days in one pass over the union of their windows.
  • Hourly normal. For a calendar day and one analysis hour, the 3-hourly file at that hour for the same 15 days and 30 years: 450 fields, that hour only. Built on first use, then stored. Used for 3-hourly maps of fields that change with the clock (Q9).

The 15-day window. Every daily and hourly normal pools the seven days before and after. A single calendar day across 30 years is 30 samples, and 30 samples give a noisy mean and a noisier standard deviation: the normal for April 27 could differ from April 28's by more than the weather does. Pooling the 15 centered days gives 450 samples per normal and a smooth seasonal cycle, at the cost of blurring the normal by a week either way, which for a normal is no loss. This is WPC's method for its standardized anomalies, and Pyre applies it to every daily and hourly normal, on the CORe and the R2 baselines alike. Monthly normals need no window; a month already averages 30 days. The window wraps around the year end, so January 3's normal includes December 27 through January 10.

February 29. There is no February 29 normal. Not every year has one, and PSL's own normals leave the day out. A map for February 29 uses February 28's normal. With the 15-day window the two would be the same within rounding anyway.

Derived fields. Wind speed, relative vorticity, and storm motion are not archive records; Pyre derives them from the wind components. Their normals are built the same way their maps are: derive the quantity for each member first, then average and take the spread. So the normal of wind speed is the average of 450 speeds, not the speed of an average wind.

Same record as the map. Each variable's normal is built from the same archive record its raw map reads: relative humidity from the archive's RH field, sea level pressure from the same reduction, and so on. Observation and normal are the same quantity from the same run, on the same grid.

Built ahead or on demand, and stored. Monthly normals were built once for the whole archive. Daily and hourly normals are built the first time a map needs them, about ten seconds, and stored; after that every map that needs the same day reads the stored normal, whoever asks.


9. Why does a 3-hourly map use a different baseline than a daily map?

Because a single hour has to be compared against that same hour, not against the whole day.

Afternoons are warmer than the daily average and nights are colder. That is true on a completely ordinary day. So if a 2 p.m. reading is compared against the average of the whole 24 hours, it looks warmer than normal even when nothing unusual is happening, and a 5 a.m. reading looks colder.

On a map this is worse than a simple offset. One map covers many time zones at once, so the size of the error changes across the map, and it is near zero over the ocean, which barely warms or cools between day and night. The result looks like a weather pattern but is really a picture of the clock.

Measured on a quiet day (May 4, 1986, CONUS 2m temperature), the average anomaly across the map swung 5.5°F between hours when compared against a daily average. Against per-hour normals, that swing dropped to 2.0°F, and the warm-afternoon, cold-night pattern disappeared.

Every field gets the hourly normal. The rule was measured, not reasoned, by rendering the same 3-hourly anomaly map against both normals and subtracting (the difference is the hourly normal minus the daily one, the same on every date, so it is the clock and not the weather). Where a field has a daily cycle, the daily normal puts that cycle into the map: 8 °C at 925 mb and 20 to 30 % relative humidity over the West in the afternoon, 1 to 4 dam of height at every level, 5 to 8 kt of wind under the Great Plains low-level jet before dawn, and 15 to 20 points of cloud cover under the afternoon cumulus of the Mountain West and the Gulf coast in July. Where a field has no daily cycle (omega, precipitable water, vorticity, sea surface temperature, snow depth), the two normals agree to within the noise, a fifth of a color band or less, so the hourly normal is never the worse choice, and its sigma is the spread of single analyses at that hour, which is what a single hour should be divided by. The measurements are in the climatology plan's appendix (docs/CLIMATOLOGY_PLAN.md).

Why the upper-air fields read their hour too. The daily cycle reaches well above the ground. Over the high terrain of the West the 925 and 850 mb surfaces sit at or below the ground, so they warm and dry through the afternoon almost as much as the 2 m air does. Relative humidity carries a daily cycle far higher: the summer afternoon storms over the Rockies and the Sierra Madre moisten the column to 200 mb at the same hour every day. Height carries the daily pressure tide at every level, and wind speed at 925 and 850 mb changes under the Great Plains low-level jet in the hours before dawn. One rule for every level also keeps maps of neighboring levels and of different seasons comparable.

Where the per-hour normals come from. CORe's own 3-hourly archive: for a given calendar day and hour, the analyses at that hour over the 30 base years, pooled over a 15-day window (Q8). Every one of the eight hours is read directly; nothing is interpolated. On the R2 baseline the per-hour normal is PSL's R1 4×-daily long-term mean instead, published for 00/06/12/18z and blended for the hours between; those files carry no standard deviation, which is why a normalized 3-hourly map of a diurnal field is not available on the R2 baseline.

WPC describes this kind of standardized anomaly as a daily climatology with a centered 15-day average, then (field - mean) / sigma: https://www.wpc.ncep.noaa.gov/training/prod_gen.html. PSL's NCEP atlas notes that standard deviation can be defined differently depending on the product, so Pyre labels the baseline on the map: https://psl.noaa.gov/data/ncep_reanalysis/procedures.html.


10. Which baseline is the normal built from, CORe or R2?

CORe, on every time scale, unless you choose otherwise. Observations and normals then come from the same reanalysis run and the same archive, which is the point: an anomaly between two different reanalyses carries their disagreement inside it.

MapDefault (CORe)By choice (R2 family)
MonthlyCORe monthly normalR2 monthly normal
DailyCORe daily normalR2 daily normal
3-hourlyCORe hourly normal for each member's hourR1 per-hour mean (no sigma), or the R2 daily normal where PSL publishes no per-hour file

The choice is the gear on the Analysis card and travels with a shared link. The map's second subheader line always names the normal used, for example Baseline: Jul 15 18z · CORe-hourly 1991–2020.

R2 stays available for one reason: a lot of published work used PSL's R1 and R2 normals, and someone reproducing a figure from that work needs the same baseline.

Thirty variables have no R2 or R1 file at all (cloud layers, most radiation fields, CAPE and CIN, the lifted indices, and others). For those the panel offers CORe only.

The R2 daily normal is built the same way as CORe's, from R2's daily series at PSL, one calendar day at a time, pooled over the same 15-day window with the same sigma; R1's per-hour files carry no sigma at all, which is why a normalized 3-hourly map of a diurnal field is not available on the R2 baseline.

Can R2 be the map itself? No. Every map's observation field comes from CORe. The only thing R2 can be in Pyre is an alternative climatology baseline, the 30-year mean and standard deviation an anomaly is measured against, and only when you choose it; the default baseline on every time scale is CORe's own normals. R2 is never the source for what a raw or composite map shows.

Why not? R2 stopped updating in early 2026 and has no near-real-time data. Its 2.5° spatial resolution is also significantly coarser than CORe's 0.703°. For any map showing what the atmosphere looked like on a specific date, CORe is the correct source.


11. How are wind anomalies defined?

Pyre treats wind anomalies as vector departures from climatology:

  • Compute component anomalies U' = U_obs − U_climo and V' = V_obs − V_climo
  • Compute the magnitude of the anomaly vector as |V'| = sqrt(U'² + V'²)

The shaded field is positive-definite. It does not indicate stronger vs weaker than normal in a signed scalar sense; instead it measures the size of the departure from the climatological flow vector. When vectors or barbs are enabled on this map, they show the anomaly components (U', V'), not the actual observed wind.

Use this when the main question is circulation: monsoon onset, cross-equatorial flow, directional shifts, displaced jets, anomalous inflow, or broad pattern changes.

For example, if the climatological 850 mb wind is weak easterly and the observed wind is strong southwesterly, the wind anomaly emphasizes the anomalous southwesterly flow rather than only asking whether the wind speed was faster or slower than normal.


12. Why does CORe produce better maps than what PSL was showing?

AttributePSL (R1)Pyre (CORe)
Grid resolution~2.5° (~275 km)0.703° (~78 km)
Coverage1948–March 20261950s–present (near real-time)
Spectral truncationT62Significantly higher
Current?DiscontinuedActive and updating

The practical effect: features like the low-level jet (LLJ), frontal boundaries, and upper-level troughs are positioned more accurately at 0.703° than at 2.5°. A wind maximum that appears 200–300 km north of where you expect it on PSL's map may be correct at CORe's resolution. That is not an error — it is better data.


13. My CORe map looks different from the old PSL map for the same date. Which is right?

CORe, almost certainly. The differences are usually explained by:

  1. Resolution: 0.703° vs 2.5° — PSL was averaging over grid boxes roughly 13× larger in area. Fine-scale features (LLJ cores, jet streaks, moisture plumes) were smeared.
  2. Different reanalysis system: R1 and CORe use different data assimilation schemes, model backgrounds, and observational inputs. They are not expected to produce identical fields.
  3. Improved observational coverage: CORe incorporates more recent observational datasets and better quality control even when retrospectively applied.

The best independent validation for a specific historical date is ERA5 (ECMWF, 0.25°, available free via Copernicus CDS) or the SPC mesoanalysis archive (observationally based, available for events back to the early 2000s at spc.noaa.gov).


14. What data sources are researchers actually using for case studies?

This varies by event date and paper vintage:

ProductResolutionCoverageUse Case
ERA50.25°1940–presentCurrent gold standard for CONUS case studies; most post-2020 severe weather papers
NARR~32 km1979–2021North American Regional Reanalysis; widely cited in older severe wx literature
CORe0.703°1950–presentWhat Pyre uses; coarser than ERA5, but reaches back to 1950 and is still updating
NAM/GFS archived analyses12–4 km~2004–presentOperational analysis grids from NCEI; used for real-time event reconstruction
HRRR~3 km2014–present (operational)High-resolution convective-scale; NOT available for pre-2014 events

Important: If a paper or talk about a pre-2014 event (like the April 27, 2011 Super Outbreak) references HRRR, it is almost certainly either a hindcast (a model re-run using the HRRR configuration, which is a specialized research product) or a misidentified product. HRRR operational archives begin around 2014–2016.

For the 2011 Super Outbreak, researchers most commonly use ERA5 or NARR. CORe at 0.703° is coarser than either, so it is well suited to the synoptic pattern — the trough, the jet, the moisture return — and less suited to fine mesoscale structure. Use ERA5 or NARR when the question is about storm-scale detail.


15. What does the wind overlay show?

The wind overlay draws vectors, barbs, streamlines, or isotachs (labeled speed contours) on top of any scalar field. It requires U and V wind components, taken at the map's own level — 10m winds for surface/single-level fields — and the map title states which (e.g. "850mb Wind Barbs", "10m Wind Barbs").

On composite maps: the overlay is the vector-mean wind over the same dates/hours as the composite — each of U and V is averaged across the selection, then drawn. Where wind direction varies between the composited times, the mean barb is shorter than any single day's wind; that's the correct composite, not a bug.

Isotachs: contour the full-resolution speed field sqrt(U²+V²) at the level's own spacing: 5 kt for the 10 m wind, 10 kt from 1000 through 600 mb, 20 kt at 500 mb and above (in metric, 5 m/s through 600 mb, 10 m/s from 500 to 200 mb, 20 m/s above), starting at the level's scale floor; the density setting only affects barbs, vectors, and streamlines.

Streamlines: lines everywhere parallel to the wind, with arrows giving the direction. They show direction only, so the title carries no wind unit; pair them with isotachs or shading for speed. The wind is regridded onto an even grid in the map's own projection before the lines are traced, so they keep the same spacing on the page at every latitude, where barbs and vectors on the latitude-longitude grid crowd toward the poles. The density setting spaces the lines across the page.

On Vector Wind Anomaly maps: the overlay shows anomaly vectors, barbs, or streamlines, (U_obs − U_climo, V_obs − V_climo). The arrows can point opposite the actual wind if the observed flow is weaker than the climatological flow.

On Raw and Normalized maps: the overlay shows the actual observed or composite wind components.


16. What do the CAPE/CIN parcel options mean, and how do they compare to SPC's?

CORe publishes three CAPE records (and matching CIN), exposed in the Level selector:

  • Surface-based — the parcel lifted from the surface (SBCAPE).
  • Mixed-layer (180-0 mb) — the parcel built from the lowest 180 mb of the atmosphere. Note that SPC mesoanalysis mixed-layer products use a 100 mb layer, so values are not directly comparable.
  • Most-unstable (255-0 mb) — NCEP's "best" CAPE, drawn from the lowest 255 mb; this is the conventional MUCAPE proxy in NCEP products and captures elevated instability that surface-based CAPE misses (e.g. north of a warm front).

Labels state the layer depths explicitly so maps are honest about which definition is plotted.


17. Why does Pyre's MSLP look weaker than GFS maps over the Rockies in summer?

"Sea-level pressure" over high terrain is an extrapolation, and different reduction methods disagree most under strong surface heating. A concrete comparison for July 7 2026 18z (the Colorado thermal low):

FieldHeat-low minimum
CORe PRES:mean sea level1011 mb
CORe MSLET:mean sea level (Eta/membrane reduction — what Pyre plots)1007.5 mb
GFS PRMSL (Shuell reduction — what Tropical Tidbits/Pivotal plot)~1002 mb

Pyre plots MSLET, the closest GFS-comparable reduction CORe publishes (CORe has no PRMSL). Two residual differences remain: PRMSL's Shuell reduction is known to deepen (arguably exaggerate) summer heat lows over elevated terrain, and CORe is an ensemble mean at T170 (~0.7°) while the GFS analysis is a single 0.25° field — averaging members smooths extremes. Expect Pyre heat lows to run a few mb weaker than PRMSL-based maps; highs and oceanic lows agree closely.


18. Where does the sea surface temperature come from, and why are land and ice blank?

The Sea Surface Temperature variable is CORe's surface skin temperature, a calculated field in the archive's surface files from 1950 on. Over open water it is the sea surface temperature the CORe model was given, so that is what the map shows. Over land the same record is the ground's skin temperature, and over sea ice it is the ice surface, so those cells are blanked: land from the archive's land mask, and any water cell colder than seawater's freezing point (about −2 °C) as ice. Normals, anomalies, and normalized anomalies use the same record, so an El Niño month reads as a warm anomaly along the equator east of the date line. This is a reanalysis estimate on a 0.5° grid, not a measured ocean dataset; a long instrumental record such as NOAA's Extended Reconstructed SST is a separate product we do not carry yet.


19. Can the people who run Pyre see the maps I make?

No. Your saved maps, projects, and folders are readable only by your account; the database enforces that, and administrators cannot open them. What we do keep is an anonymous count of which kinds of maps get rendered: the variable, level, region, mode, and time scale, tied to a hashed visitor id rather than to a name or email. That tells us which maps people find useful. It does not tell us who made them, and it never includes your saved images.


20. What does saving a map do?

When a map is saved to your library, it's not just the full resolution image that is saved. The map builder recipe is saved too: the variable, level, dates, region, mode, overlays, and every other setting, so that you can go back and update prior projects quickly. Nothing is written to your computer. You can organize saved maps into projects and folders, reopen one in the builder with every setting restored, share it as a /map link that rebuilds it for anyone, or download the PNG whenever you want a copy.

Each level has increasing map storage allowance. Since maps and recipes are saved to your account, Guest users can only download their maps directly to their computer and can save the URL by clicking the "Share" button or copying the URL in order to recreate the map later. Stratus (Free) accounts have 50 MB (about 25 to 35 maps). Cumulus (Supporter) accounts have 100 MB (about 50 to 75 maps). Cirrus (Pro) accounts have 10 GB (about 5,000 maps). My Maps shows how much of yours is in use. The counts are estimates; a map of Hawaii and a map of the world are different sizes.


21. How do custom regions work, and what is the seam?

A custom region is a box given by its west and east longitudes and its south and north latitudes in degrees, with longitudes west of Greenwich and latitudes south of the equator negative. The box travels in the map link as bounds=W,E,S,N, with projection= naming the projection, so a shared link rebuilds the same map. A box may cross the dateline (West 150, East -150 is the central Pacific), and a box whose East is West plus 360 goes all the way round the globe.

A box that goes all the way round has a seam: the meridian where its two ends meet. On Mercator and Plate Carree the seam is the left and right edge of the map, and the map is centered on the meridian opposite it. On a polar stereographic map the seam is the meridian at the bottom of the disc. In the custom-region dialog the seam is the thicker line through the band; drag it sideways to turn the map, and drag the band itself to slide it north or south. Orthographic and Robinson show the whole globe with no edges, so the dialog shows crosshairs on the center point instead of a box.

With Projection on Auto, the box's edges decide. A box reaching a pole gets that pole's stereographic projection, and one reaching both poles gets Robinson, the whole world. A box within the tropics gets Mercator. Past the tropics the map keeps its angles: Lambert Conformal, or a polar stereographic ring when the box is wider than 180 degrees, which is more than a cone can frame. Only a wide box that also crosses the equator, or one straddling the equator so evenly that a cone has no side to sit on, gets Mercator. Auto never picks Plate Carree; it stays in the list to choose by hand. Lambert cannot show more than 180 degrees of longitude or reach a pole, Mercator stops at 85 degrees, and a polar view stops 30 degrees past the equator. When a choice cannot draw the box, the dialog says so and offers the one change that would let it: Limit width, Exclude poles, or Trim far side.


22. Where do the color scales come from?

Every map has a default scale drawn for its field, with colors placed at the values that matter in that field (freezing, the 26 °C line on sea surface temperature, the dry-to-moist line on relative humidity). The Color scale row in a field's options also offers any ramp in the catalog, laid over the field's own bands. The catalog is built from published color schemes, credited here; a ramp marked safe in the picker is one its source rates as readable with color-blind vision. A composite joins two or three sequential ramps end to end, each run the way you set it, with the joins on the field's own pins (freezing and the comfort line on surface temperature, 20.5 and 26 °C on sea surface temperature, zero on vorticity and on every anomaly scale).

SourceCreditLicenseRamps
PyreDrawn here—Wind, Wind vector anomaly, Wind vector normalized, Temperature, upper levels, Prism
ColorBrewerCynthia Brewer and Mark Harrower, Penn StateApache 2.0Anomaly ladders, RdBu, RdYlBu, BrBG, PuOr, PRGn, PiYG, RdGy, Spectral, YlGnBu, YlOrRd, YlOrBr, GnBu, PuBuGn, BuPu, Blues, Greens, Oranges, Reds, Purples, Greys
matplotlibviridis family by Stéfan van der Walt and Nathaniel Smith; coolwarm by Kenneth Moreland; bwr, seismicmatplotlib licenseViridis, Plasma, Inferno, Magma, Cividis, Coolwarm, Blue-white-red (bwr), Seismic
Paul TolPaul Tol's colour schemesfree with attributionSunset, Nightfall, WhOrBr, Iridescent, Incandescent, Rainbow PuRd, Rainbow WhBr
CrameriFabio Crameri, Scientific colour mapsMITbatlow, batlowW, lajolla, lapaz, davos, oslo, hawaii, imola, devon, roma, vik, broc, cork, bam, berlin
cmoceanKristen Thyng and othersMITthermal, haline, speed, deep, dense, matter, tempo, rain, balance, curl, delta, diff

23. How is a time–height section made?

A section shows one quantity averaged over a band of latitude, day by day, at every pressure level the CORe daily archive holds from 1000 to 1 mb (22 levels). The polar caps average every grid point from 60° to the pole, weighted by the cosine of latitude so the shrinking cells near the pole count for less; the 60° bands are the average around the 60° latitude circle (the zonal mean). Each day is the archive's own daily-mean file.

Normalized sections. The departure of the band average from its normal, divided by the standard deviation of the band average itself. Both come from the 1991–2020 CORe daily archive with the same 15-day window as every daily normal (Q8): each of the 450 base-period days is averaged over the band first, then the mean and spread are taken. Dividing by the spread of the band average, not the average of the grid points' spreads, matters: a cap-wide average varies much less than any one point, so the grid-point spread would make a two-sigma event look like a one-sigma one.

The height axis. The kilometres on the right are the standard atmosphere's height for each pressure, a guide rather than the day's actual height.


24. What is in a data download?

Download offers the map's values as well as its picture: CSV, netCDF, or both. The values are the field the map shades, for the same dates, region, and mode: an observed map gives the observed values, a composite gives the average over its dates, and an anomaly gives the departure from the same normal the map used. Contours, wind overlays, and the color scale are not in the file. On a composite or normal map of wind (wind speed, 10m wind, storm motion), the speed shaded is the speed of the averaged wind: the U components are averaged, the V components are averaged, and the speed is taken from those two averages, the way NOAA PSL's daily compositing page computes vector wind. Winds from opposite directions partly cancel, so this is lower than the average of each time's speed wherever the wind changed direction; the barbs show the same averaged wind. A wind map's file holds the wind's two components instead of its speed, U (positive from the west) and V (positive from the south), so the speed and direction can be worked out from them; an anomaly gives the two components' departures. A normalized wind map keeps its one field.

The values sit on the CORe archive's own grid points inside the region. They are in the archive's units, which the file names (kelvin for temperature, geopotential meters for height), and these can differ from the units on the map's color bar.

The netCDF file is shaped like PSL's composite downloads: one variable (two for a wind map) on time, latitude, and longitude, with its long name, units, level, statistic, and source attached, and every date the map averages listed as dates (in UTC; any date skipped for missing archive data is listed as dates_skipped). The CSV has the same descriptions as lines starting with #, then one row per grid point (time, lat, lon, value); most tools skip the # lines when told to, for example pandas.read_csv(path, comment="#").

Longitudes. Longitudes are degrees east, and their range follows the region. A region that crosses the Greenwich meridian runs from -180 to 180, with west negative (Europe runs from about -60 to 85). Every other region keeps the archive's 0 to 360 (the contiguous US runs from about 215 to 314, which is 145°W to 46°W). Each file states its range as longitude_range. To join files from different regions, convert one to the other's range first.

What the map adds that the file leaves out. To draw a map that goes all the way round the globe, the first column of longitudes is repeated at the far edge so the colors close at the seam, and a map reaching a pole gets a row at the pole itself, because the grid stops a fraction of a degree short of it. Neither is in the archive, so neither is in the file.