January 2023 wind comparison: methods and sources

5 September 2026 · B.C. regional WRF and ECCC observations

This calculation compares archived model 10 m wind states with station observations at identical UTC timestamps. It does not calculate pollutant concentrations or alter the plume explorer.

Selection fixed before comparison

The protocol was frozen at 22:12:39 UTC on September 5, 2026, SHA-256 406e5f9c1046ebcdb091e0c52d22b8d5cbd8180b81b9045c028a91379f1793f3. January was chosen as a full winter month after the June results were known, but before examining January model errors. Initial observation counts and compatible model headers were known when the protocol was written; agreement between January wind values was not.

The primary window is January 1, 2023, 08:00 UTC through February 1, 08:00 UTC, excluding the latter endpoint: every hour of January in fixed PST, 744 timestamps per station. All 31 PST days, all 24 hour-of-day groups and the observation-defined subset below receive separate summaries. No day is silently removed for low completeness.

Cells are retained from the earlier ECCC-coordinate nearest-distance crosswalk. January projection, all 40 sigma levels and all 100 static records in each tile are byte-identical to the corresponding June header records. There is no selection of a better-fitting neighbour, spatial blend, time shift, fitted speed correction or terrain adjustment.

Station Climate ID Grid I,J Grid latitude, longitude Approximate station distance Model terrain, m MSL Current catalogue elevation, m
Squamish Airport 10476F0 33,84 49.7889, −123.1675 778 m 22 53.7
Howe Sound – Pam Rocks 10459NN 25,59 49.4874, −123.2994 42 m 0 7.1

These distances use rounded model coordinates and are not survey precision. Station elevation is not sensor height. WMO records describe nominal 10 m wind deployments beginning in 2016 with no end date, but do not identify the reference surface or establish the actual 2023 installation, exposure and processing. Registry coordinate changes are not proven relocations and do not change the fixed comparison cells. Detailed station-history qualifications, Airport WMO record, Pam Rocks WMO record

Observations and missing hours

The original ECCC responses contain 741 Airport and 623 Pam Rocks records, each with matching returned/total counts and no next-page link. All returned wind speeds and directions are numeric, and all wind/general flags are null. That flag inventory is not independent quality certification. UTC equals the native local timestamp plus eight hours in every returned record, with no duplicates. Pam Rocks’ original array is not chronologically ordered; joins use UTC, not array position.

All missing intervals below are PST and include both endpoints.

Station First missing hour Last missing hour Hours
Squamish Airport 2023-01-11 10:00:00 2023-01-11 12:00:00 3
Pam Rocks 2023-01-17 05:00:00 2023-01-17 11:00:00 7
Pam Rocks 2023-01-17 17:00:00 2023-01-18 13:00:00 21
Pam Rocks 2023-01-18 23:00:00 2023-01-19 10:00:00 12
Pam Rocks 2023-01-24 04:00:00 2023-01-24 10:00:00 7
Pam Rocks 2023-01-24 16:00:00 2023-01-25 11:00:00 20
Pam Rocks 2023-01-25 15:00:00 2023-01-27 09:00:00 43
Pam Rocks 2023-01-28 01:00:00 2023-01-28 11:00:00 11

Original numeric lexemes, feature indices, IDs, flags and clock labels are retained. Observed speed in km/h is divided by 3.6; direction in tens of degrees from north is multiplied by ten. Native direction must be an integer 1–36 for a nonzero wind. ECCC describes short near-hour wind averages; the precise station-specific 2023 averaging algorithm remains unresolved. These are not assumed to be full-hour mean winds. ECCC glossary

Original responses: Airport January observations, Pam Rocks January observations. The source record preserves hashes and acquisition facts.

Model records and extraction

The headers identify WRF_ARW V4.6.0, CALWRF v2.0.3 Level190426, 3D.DAT2.1, a 1.333 km grid and 40 levels. Each original contains 757 complete hourly states, January 1 at 00:00 UTC through February 1 at 12:00 UTC inclusive. The analysis uses only the fixed primary window.

Full source hashes and sizes are checked before extraction. The reader checks flags, selected static coordinates, consecutive timestamps, cell order, surface record length, all 40 following profile records and the exact end of each file. Each tile contains 75,700 surface and 3,028,000 profile records. Profiles are traversed structurally, without interpreting their meteorological values in this surface-wind analysis. Selected surface records retain original fixed-width strings, byte offsets and individual record hashes.

Surface columns 63–70 contain WD10 in true degrees from north; 71–78 contain WS10 in m/s. These winds are already earth-oriented, so no additional rotation is applied. Model states at their timestamps differ from the observation averaging operator. The field interpretation follows the matching CALWRF writer and the format documentation. CALPUFF documentation, §7.7, matching CALWRF archive

Original files: Airport tile, Pam Rocks tile. Their combined size is 341,821,476 bytes; the small reproduction kit references these external originals.

Eligibility and metrics

All 1,488 expected station-hour slots remain in the paired table, including 124 absent observations. There are 1,364 eligible speed/vector pairs. Speed eligibility requires finite nonnegative speeds and null wind/general flags. Vectors require valid bearings for each nonzero wind. Zero speed contributes exactly zero eastward and northward components, without an assigned direction.

For speed S and meteorological bearing θ: uEast = −S sin θ, vNorth = −S cos θ. Bias is model minus observation. MAE is the mean absolute error; speed RMSE is the square root of mean squared speed error. Vector RMSE = √mean(Δu² + Δv²), without division by two. Eligible reported zeros remain included.

Direction error is the absolute wrapped difference in [0°,180°]. The primary direction subset requires both speeds ≥1 m/s; predeclared sensitivities use ≥0.5 and ≥2 m/s. Each has its own denominator and separate observed-only, model-only and both-below exclusion counts. Large differences are strictly greater than 90°. These thresholds are diagnostic choices, not health or air-quality limits.

For observed speed zero, the model speed distribution, median and maximum are retained. Even-sample medians average the central two values. No artificial model calm threshold is used. No p-values or confidence intervals treat dependent hourly observations as independent samples.

Predeclared strong-northerly subset

Selection uses only the original Pam Rocks observations, never model winds or errors: finite speed ≥5 m/s (18 km/h), null wind/general flags and a valid bearing within the north-centred sector ≥315° or ≤45°. Boundaries are inclusive. Native 10° quantization means the observed qualifying bearings are 320–360° and 10–40°.

A method reviewer clarified before extraction/scoring that a valid reported calm needs no bearing and classifies as not selected. That interpretation is recorded separately; the frozen protocol and thresholds were not rewritten. Missing, flagged or otherwise invalid observations remain unknown, rather than false. Both acquisition manifests were hash-bound in this clarification before extraction.

The classification table preserves every one of the 744 timestamps: 389 selected, 234 not selected and 121 unknown. The same selected timestamps are applied at both stations. Airport missing observations remain excluded only from affected metrics, giving 386 pairs there. Classification never depends on whether the Airport or model has a valid comparison.

This is a conditional diagnostic of model behaviour during specified observed conditions. Selecting high observed speeds affects the conditional sample; the subset difference is not an all-wind bias estimate. Northerly surface wind alone is not proof of pressure-driven outflow, an inversion, vertical structure or simultaneous whole-valley flow.

Reproduction and interpretation

The checks document independent numerical reconstruction, source identity and comparison coverage. The reproduction kit contains original ECCC responses, frozen rules, original readers, factual schema, expected data and instructions. It fetches or verifies only the two exact external model files. No third-party model program, source code or manual is redistributed. Data calculations use Python’s standard library; optional plotting uses Matplotlib and NumPy.

B.C.’s guideline describes four-dimensional data assimilation in this archive. Its production configuration and assimilated station/time inventory remain unrecovered, so this is consistency checking, not independent meteorological validation. A further bounded search of provider literature, UBC routes and archive metadata did not recover those records; an archive listing returned access denied, not evidence of an empty archive. Exact ECCC legacy station-history requests timed out without an HTTP response. No new configuration facts follow from those access failures, and no human inquiry was sent. B.C. WRF data and official contact, B.C. guideline, §6.2

The winter comparison does not validate inversion structure, source-site winds aloft, plume dispersion, chemistry, exposure or a forecast. No acceptance threshold or calibration factor was fitted. Findings · All 114 summary groups · Direction sensitivities · Reported-zero distributions · Regime classifications