{
  "scope": "One-day airport consistency comparison; no local physical validation or concentration prediction.",
  "protocol": {
    "createdUTC": "2026-09-11T15:09:02.507353+00:00",
    "previousGoalTurnClassification": "progress: three completed expanded cases, source/grid verification, public community audit and verified deployment inspected. No live processes carried forward.",
    "purpose": "Evaluate whether diagnostic terrain processing and added computational support change consistency with available observed surface wind. All-community objective retained; one in-domain station does not validate the airshed.",
    "selection": "Same complete June1 fixed-PST run, containing station cell selected geometrically and all six saved cases retained. Model/observation error values not calculated before this protocol.",
    "stationCoverage": [
      {
        "key": "airport",
        "reference": {
          "name": "Squamish Airport",
          "longitude": -123.16119444444445,
          "latitude": 49.783208333333334,
          "station_id": 336,
          "climate_identifier": "10476F0",
          "coordinate_source": {
            "path": "work/hourly_2025_raw.json",
            "sha256": "7dce82761cef7f9584ecb329fb8f19fa971fc591214bc5d3844dedd8bf57fcb2",
            "selection": "features[0].geometry.coordinates and matching latitude/longitude metadata properties"
          },
          "point_role": "Retained ECCC station location only; no wind/time values processed and no sensor heights inferred."
        },
        "utmM": [
          488395.80373672384,
          5514539.731766353
        ],
        "expandedRowSouth0": 144,
        "expandedColumnWest0": 121,
        "insideExpandedDomain": true,
        "southBoundarySignedDistanceM": 28939.73176635336,
        "observationFile": "work/bc-wrf-access/june-2023-eccc/airport-2023-06-native.json",
        "observationSha256": "75c1c04b33bc037089bcea4647cf46d5f693f6e5296cf8e23e25261fad529e94",
        "modelCellCentreUTMm": [
          488300,
          5514500
        ],
        "cellCentreOffsetM": 103.71580992215952
      },
      {
        "key": "pam-rocks",
        "reference": {
          "name": "Pam Rocks",
          "longitude": -123.29945277777777,
          "latitude": 49.48778027777778,
          "station_id": 6817,
          "climate_identifier": "10459NN",
          "coordinate_source": {
            "path": "work/annual-winds/pam-rocks-2025-original.json",
            "sha256": "e5b546620e6bb66d68f0bcf7a3f596bfabefdea01a2b8837c9f304f4df4e3874",
            "selection": "features[0].geometry.coordinates and matching latitude/longitude metadata properties"
          },
          "point_role": "Retained ECCC station location only; no wind/time values processed and no sensor heights inferred."
        },
        "utmM": [
          478311.96536569763,
          5481725.39069357
        ],
        "expandedRowSouth0": -20,
        "expandedColumnWest0": 71,
        "insideExpandedDomain": false,
        "southBoundarySignedDistanceM": -3874.609306430444,
        "observationFile": "work/bc-wrf-access/june-2023-eccc/pam-rocks-2023-06-native.json",
        "observationSha256": "1f53cf17e6eb5343a4c8f54f11ddf3cb5b7d7dab76bc9673c55efcff505d31b6"
      }
    ],
    "comparisonStation": "airport",
    "cases": [
      {
        "id": "original/wrf-interpolation",
        "domain": "original",
        "physicalCase": "wrf-interpolation",
        "nx": 101,
        "ny": 101,
        "nz": 10,
        "originM": [
          474000,
          5495600
        ],
        "spacingM": 200,
        "rowSouth0": 94,
        "columnWest0": 71,
        "runDirectory": "work/regional-calmet-june2023/runs/wrf-interpolation",
        "controlSha256": "4c62e1608cc0939de90015a3e70dc57f91b7e92c255a80e453a1ea33155e1d24",
        "outputSha256": "e761091d59087964939a045c197a318d2274d017f31b042902a79d0ef485c205"
      },
      {
        "id": "original/terrain-5km",
        "domain": "original",
        "physicalCase": "terrain-5km",
        "nx": 101,
        "ny": 101,
        "nz": 10,
        "originM": [
          474000,
          5495600
        ],
        "spacingM": 200,
        "rowSouth0": 94,
        "columnWest0": 71,
        "runDirectory": "work/regional-calmet-june2023/runs/terrain-5km",
        "controlSha256": "71f02d98eaadcda0d66008201c618905c7f4af72aa93f26d61201bea395b0e1b",
        "outputSha256": "6f5a5890874be484c1f7f11d81534d42836257d44ddb743a9fa8013dc939f0fc"
      },
      {
        "id": "original/terrain-10km",
        "domain": "original",
        "physicalCase": "terrain-10km",
        "nx": 101,
        "ny": 101,
        "nz": 10,
        "originM": [
          474000,
          5495600
        ],
        "spacingM": 200,
        "rowSouth0": 94,
        "columnWest0": 71,
        "runDirectory": "work/regional-calmet-june2023/runs/terrain-10km",
        "controlSha256": "368595cb54b48987aa12288a39a1dcb5d7bcd55a7376cf08ce677d7dbfc65b65",
        "outputSha256": "f872e3c08e45fca3fafcaa32f73398e0a40d8dd5e6b6343eb89106492761fc09"
      },
      {
        "id": "expanded/wrf-interpolation",
        "domain": "expanded",
        "physicalCase": "wrf-interpolation",
        "nx": 201,
        "ny": 201,
        "nz": 10,
        "originM": [
          464000,
          5485600
        ],
        "spacingM": 200,
        "rowSouth0": 144,
        "columnWest0": 121,
        "runDirectory": "work/buffered-wind-2023/runs/wrf-interpolation",
        "controlSha256": "be5cff439162ad3068807bb5297ff24f07b6dd0da87a7b1cbc96d5dbc1e97930",
        "outputSha256": "87fa4e6c19c1a663efe7211a47fd60bd54aff9bf3d6f38ccd62ba7d4ec59eadc"
      },
      {
        "id": "expanded/terrain-5km",
        "domain": "expanded",
        "physicalCase": "terrain-5km",
        "nx": 201,
        "ny": 201,
        "nz": 10,
        "originM": [
          464000,
          5485600
        ],
        "spacingM": 200,
        "rowSouth0": 144,
        "columnWest0": 121,
        "runDirectory": "work/buffered-wind-2023/runs/terrain-5km",
        "controlSha256": "0e614895b605fe38e7817ae0173c33571e5e38244e58497a8fe6e878c7f5330e",
        "outputSha256": "a37c6e4d1de051b0ec8a6f2633def1ee38682b9514bb20941f834c897291e2bb"
      },
      {
        "id": "expanded/terrain-10km",
        "domain": "expanded",
        "physicalCase": "terrain-10km",
        "nx": 201,
        "ny": 201,
        "nz": 10,
        "originM": [
          464000,
          5485600
        ],
        "spacingM": 200,
        "rowSouth0": 144,
        "columnWest0": 121,
        "runDirectory": "work/buffered-wind-2023/runs/terrain-10km",
        "controlSha256": "fb4b7bb338b37d0fbc9dadee911e54d4fbf28f44624d316d051afac42901af90",
        "outputSha256": "8bc1b4c5b5da07d6f95bbcb0c7fc5bda08e74670b4f727e398967bdf46b32002"
      }
    ],
    "timeOperator": {
      "intervalUTC": "June1 2023 08:00 through June2 08:00",
      "observationTimestampUTC": "June1 09:00 through June2 08:00 inclusive,24labels",
      "basis": "Source review RDMM5 interpolates native wind at ndathre/nsece; saved records encode same hour label with endseconds3600. Normalize timestamps.",
      "meaning": "Diagnostic field for interval, driven by endpoint native wind state; slope/thermal routines also use midpoint solar angle/history. Neither a guaranteed instantaneous field nor an hourly mean.",
      "comparisonLimit": "ECCC near-hour reports have unresolved station-specific sampling-window/history. Timestamp matching is not complete measurement-operator equivalence. No fitted time shift."
    },
    "horizontalOperator": "Containing200mcell,nominal10m above model terrain; no spatial blending or point selection by error. All six cases use same physical cell. No height/exposure correction.",
    "directionOperator": "Use saved U/V directly and FROM=atan2(-U,-V). Source branch omits UTM meridian-convergence rotation; do not rotate twice. Diagnostic adjustments act in projected model axes, so this is the model source convention rather than a rigorously transformed earth-relative field.",
    "observations": "Reparse retained ECCC native JSON with original numeric tokens, all UTC/local-clock checks, station IDs, missingness and flags. Convert km/h\u00f73.6 and integer1..36 bearings\u00d710; speed0=>zero vector with no directional meaning.",
    "eligibility": "Same as frozen monthly study: finite nonnegative observed speed and clear wind/general flags; nonzero-speed vector also needs valid bearing. Missing remains missing; no filling. All complete model values must be finite.",
    "metrics": {
      "speed": [
        "signed model-minus-observed mean",
        "MAE",
        "RMSE"
      ],
      "vector": "sqrt(mean((Umodel-Uobs)^2+(Vmodel-Vobs)^2)), no division by2; common valid-observation cohort across cases",
      "direction": "absolute wrapped angular difference on pairs with both speeds>=1m/s;0.5and2m/s sensitivities and denominators retained. Also common cohort where observed and ALL seven model series speeds>=threshold, to avoid ranking different subsets.",
      "calm": "Report observed speed0 count and model speed distribution/range; no synthetic wind direction for observed calm.",
      "uncertainty": "Descriptive one-day comparisons; no p-values, confidence intervals or acceptance threshold inferred after errors."
    },
    "additionalReference": {
      "id": "native-wrf-10m",
      "source": "work/bc-wrf-wind-june2023/results/native-surface.json",
      "sourceSha256": "63b080145545ffcac7edc5bce157287f8d6385ac0476367d50e20d69c19c0765",
      "selection": "Previously frozen nearest native airport point (i33,j84), same24endpointtimestamps. Distinct sampling/operator and1.333km resolution; native WS10 differs from full-profile diagnostic wind.",
      "nativePoint": {
        "distance_m": 778.1213867907702,
        "tile": "x031y081x040y090",
        "i": 33,
        "j": 84,
        "latitude_token": "49.7889",
        "longitude_token": "-123.1675",
        "terrain_HGT_rounded_m_MSL_token": "22",
        "landuse_LU_INDEX_token": "16",
        "source_line": 81,
        "source_url": "https://nrs.objectstore.gov.bc.ca/wrfdel/calpuff/3ddat/202306/d06/0308/x031y081x040y090.202306.10x10.d06.m3d"
      }
    },
    "remainingLimits": [
      "Potential upstream WRF station assimilation unknown: consistency diagnostic, not withheld independent validation.",
      "Actual2023sensor height/exposure/averaging notverified; registry nominal10m and dated metadata limitations retained.",
      "Pam Rocks about3.9km south of expanded domain; no extrapolation or substituted model point.",
      "No source-site/elevated-wind or inversion validation, plume transport, chemistry, emissions or health prediction."
    ],
    "plannedOutputs": "All expected interval/endpoint timestamps, original tokens and flags, model values/errors, common-cohort summaries, full-day figure, source semantics and coverage report. No selective omission of poor results."
  },
  "extraction": {
    "protocolSha256": "66b09f6120ce7b6e97f7ccb12ca348cd3f8c5f9417b508979d17a96f9fd8e707",
    "sourceReview": "source-review.md",
    "casesExtracted": [
      {
        "case": "original/wrf-interpolation",
        "recordCount": 1828,
        "stationValuesExtracted": 720,
        "staticAtCell": {
          "ZFACE": [
            0.0,
            20.0,
            40.0,
            80.0,
            160.0,
            300.0,
            600.0,
            1000.0,
            1500.0,
            2200.0,
            3000.0
          ],
          "Z0": 0.2218191921710968,
          "ILANDU": 32,
          "ELEV": 56.009437561035156,
          "XLAI": 2.704904556274414
        },
        "outputSha256": "e761091d59087964939a045c197a318d2274d017f31b042902a79d0ef485c205",
        "pointIndexSouthFirst": 9565
      },
      {
        "case": "original/terrain-5km",
        "recordCount": 1828,
        "stationValuesExtracted": 720,
        "staticAtCell": {
          "ZFACE": [
            0.0,
            20.0,
            40.0,
            80.0,
            160.0,
            300.0,
            600.0,
            1000.0,
            1500.0,
            2200.0,
            3000.0
          ],
          "Z0": 0.2218191921710968,
          "ILANDU": 32,
          "ELEV": 56.009437561035156,
          "XLAI": 2.704904556274414
        },
        "outputSha256": "6f5a5890874be484c1f7f11d81534d42836257d44ddb743a9fa8013dc939f0fc",
        "pointIndexSouthFirst": 9565
      },
      {
        "case": "original/terrain-10km",
        "recordCount": 1828,
        "stationValuesExtracted": 720,
        "staticAtCell": {
          "ZFACE": [
            0.0,
            20.0,
            40.0,
            80.0,
            160.0,
            300.0,
            600.0,
            1000.0,
            1500.0,
            2200.0,
            3000.0
          ],
          "Z0": 0.2218191921710968,
          "ILANDU": 32,
          "ELEV": 56.009437561035156,
          "XLAI": 2.704904556274414
        },
        "outputSha256": "f872e3c08e45fca3fafcaa32f73398e0a40d8dd5e6b6343eb89106492761fc09",
        "pointIndexSouthFirst": 9565
      },
      {
        "case": "expanded/wrf-interpolation",
        "recordCount": 1828,
        "stationValuesExtracted": 720,
        "staticAtCell": {
          "ZFACE": [
            0.0,
            20.0,
            40.0,
            80.0,
            160.0,
            300.0,
            600.0,
            1000.0,
            1500.0,
            2200.0,
            3000.0
          ],
          "Z0": 0.2218191921710968,
          "ILANDU": 32,
          "ELEV": 56.009437561035156,
          "XLAI": 2.704904556274414
        },
        "outputSha256": "87fa4e6c19c1a663efe7211a47fd60bd54aff9bf3d6f38ccd62ba7d4ec59eadc",
        "pointIndexSouthFirst": 29065
      },
      {
        "case": "expanded/terrain-5km",
        "recordCount": 1828,
        "stationValuesExtracted": 720,
        "staticAtCell": {
          "ZFACE": [
            0.0,
            20.0,
            40.0,
            80.0,
            160.0,
            300.0,
            600.0,
            1000.0,
            1500.0,
            2200.0,
            3000.0
          ],
          "Z0": 0.2218191921710968,
          "ILANDU": 32,
          "ELEV": 56.009437561035156,
          "XLAI": 2.704904556274414
        },
        "outputSha256": "a37c6e4d1de051b0ec8a6f2633def1ee38682b9514bb20941f834c897291e2bb",
        "pointIndexSouthFirst": 29065
      },
      {
        "case": "expanded/terrain-10km",
        "recordCount": 1828,
        "stationValuesExtracted": 720,
        "staticAtCell": {
          "ZFACE": [
            0.0,
            20.0,
            40.0,
            80.0,
            160.0,
            300.0,
            600.0,
            1000.0,
            1500.0,
            2200.0,
            3000.0
          ],
          "Z0": 0.2218191921710968,
          "ILANDU": 32,
          "ELEV": 56.009437561035156,
          "XLAI": 2.704904556274414
        },
        "outputSha256": "8bc1b4c5b5da07d6f95bbcb0c7fc5bda08e74670b4f727e398967bdf46b32002",
        "pointIndexSouthFirst": 29065
      }
    ],
    "rows": 168,
    "all24ExpectedTimesRetainedPerSeries": true,
    "observationTimes": "UTC June1 09 through June2 08 inclusive",
    "missingObservationTimes": [],
    "commonVectorCohort": true,
    "sharedCellStaticAcrossCases": true,
    "independentValidation": false,
    "concentrationPrediction": false
  },
  "sourceSemantics": {
    "reviewScope": "Read-only static source review; no model execution, model-source edits, control edits, site edits, or observational skill claim.",
    "configuration": {
      "PMAP": "UTM",
      "IPROG": 14,
      "IWFCOD": 1,
      "NOOBS": 2,
      "LSAVE": true,
      "IFORMO": 1,
      "IGFMET": 0,
      "ISTEPPGS": 3600,
      "NSECDT": 3600,
      "ABTZ": "UTC-0800",
      "NSSTA": 0,
      "NUSTA": 0,
      "NOWSTA": 0
    },
    "horizontalSemantics": {
      "storage": "CALMET final diagnostic model x/y components at cell centres, m/s",
      "nativeInputConvention": "Meteorological wind-from degrees clockwise from true north; U=-speed*sin(direction), V=-speed*cos(direction).",
      "nativeUTMRotationApplied": false,
      "readerRotationBranch": "LLCC OR LPS only, false for PMAP=UTM",
      "comparisonConvention": "Compute observed U/V directly from true-north wind-from direction using same formula. Do not apply another WRF or UTM rotation to saved fields.",
      "qualification": "CALMET inserts true-north components into projected UTM x/y operations without UTM meridian-convergence correction. This is the source-defined approximation, not a rigorously transformed earth-relative diagnostic field."
    },
    "temporalSemantics": {
      "operator": "Linear interpolation of spatially processed native wind components to explicit CALMET interval end. With coincident hourly native records, selects the endpoint state.",
      "formula": "alpha=(CALMET_interval_end-t1)/ISTEPPGS; Uprog=Uprog1+alpha*(Uprog2-Uprog1); same for V.",
      "isNativeIntervalAverage": false,
      "isIntervalStartState": false,
      "finalDiagnosticQualification": "Thermal/slope calculations can also depend on midpoint solar angle and prognostic temperature history; final field is diagnostic for the interval driven by endpoint native wind.",
      "timestampNormalization": "End seconds can be 3600 while end YYYYJJJHH equals start YYYYJJJHH. Add seconds before converting to UTC.",
      "firstTargetUTC": "2023-06-01T09:00:00Z",
      "lastTargetUTC": "2023-06-02T08:00:00Z"
    },
    "previousCSVLabels": "hour_fixed_PST=0..23 are valid interval-start identifiers. They are misleading if presented as exact point times or matched to near-hour observations at interval start.",
    "sourceFiles": [
      {
        "path": "work/calmet65-local/build/native-650-150223/calmet.for",
        "sha256": "fc7fda7cb7e7932f67eb0ce1fb94f1d81a2084063a1dbf797b3270b460b7ee6f",
        "originalPath": "work/calmet65-local/source/original/CALMET_v6.5.0_L150223/CALMET.FOR",
        "byteIdenticalToOriginal": true
      },
      {
        "path": "work/calmet65-local/build/native-650-150223/map.met",
        "sha256": "ca044260f1de1558f263ef8d3ea1b0a5dce0aa7992445568904ffe3b9904ab89",
        "originalPath": "work/calmet65-local/source/original/CALMET_v6.5.0_L150223/MAP.MET",
        "byteIdenticalToOriginal": true
      },
      {
        "path": "work/calmet65-local/build/native-650-150223/gen.met",
        "sha256": "49ff5338b9a148acde5e2b85305a6e6e764a8c69b831814663f710632f121299",
        "originalPath": "work/calmet65-local/source/original/CALMET_v6.5.0_L150223/GEN.MET",
        "byteIdenticalToOriginal": true
      },
      {
        "path": "work/calmet65-local/build/native-650-150223/d1.met",
        "sha256": "dc5d803266e06497c588299ddc507266779adc09fc48167526b9bd534c0ce0fb",
        "originalPath": "work/calmet65-local/source/original/CALMET_v6.5.0_L150223/D1.MET",
        "byteIdenticalToOriginal": true
      },
      {
        "path": "work/calmet65-local/build/native-650-150223/grid.met",
        "sha256": "ee835abc4d747c73fcd3196c44ed4caa605ff2727c1d01d20b29ceb69d8e6055",
        "originalPath": "work/calmet65-local/source/original/CALMET_v6.5.0_L150223/GRID.MET",
        "byteIdenticalToOriginal": true
      },
      {
        "path": "work/calmet65-local/build/native-650-150223/mm4hdo.met",
        "sha256": "c4d54d3eb7043744dccaac78b7e7650116a6d7921afda9204cf7624b50c4f17d",
        "originalPath": "work/calmet65-local/source/original/CALMET_v6.5.0_L150223/MM4HDO.MET",
        "byteIdenticalToOriginal": true
      },
      {
        "path": "work/bc-wrf-access/pilot/format-review/private-reference/code/calwrf.f",
        "sha256": "cca879071e9c602cfa957bace0a273e144581edaf8c878e3be01f0bfe835878e"
      },
      {
        "path": "work/buffered-wind-2023/analyze.py",
        "sha256": "ef7d024e8918973ba09f931a6efa1589e3a8cc951f312ad5e92c47e7e3bb47ef"
      },
      {
        "path": "work/buffered-wind-2023/runs/wrf-interpolation/CALMET.INP",
        "sha256": "be5cff439162ad3068807bb5297ff24f07b6dd0da87a7b1cbc96d5dbc1e97930"
      },
      {
        "path": "work/buffered-wind-2023/runs/terrain-5km/CALMET.INP",
        "sha256": "0e614895b605fe38e7817ae0173c33571e5e38244e58497a8fe6e878c7f5330e"
      },
      {
        "path": "work/buffered-wind-2023/runs/terrain-10km/CALMET.INP",
        "sha256": "fb4b7bb338b37d0fbc9dadee911e54d4fbf28f44624d316d051afac42901af90"
      }
    ],
    "evidence": {
      "projection_flags": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          1850,
          1851,
          25644,
          25650
        ]
      },
      "rdmm5_direction_rotation_and_components": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          21674,
          21705
        ]
      },
      "rdmm5_time_target": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          22330,
          22358,
          22381,
          22386
        ]
      },
      "rdmm5_record_times": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          21220,
          21240,
          21283,
          21292,
          22007,
          22014
        ]
      },
      "comp_time_construction": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          3776,
          3780,
          3828,
          3852
        ]
      },
      "comp_diagno_call": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          4506,
          4513
        ]
      },
      "iprog14_rdmm5_to_first_guess": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          5503,
          5511,
          5550,
          5557
        ]
      },
      "final_wind_transformations": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          5621,
          5629,
          5643,
          5644,
          5721,
          5732,
          5751,
          5763,
          6117,
          6180
        ]
      },
      "lsave_outhr": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          4790,
          4811
        ]
      },
      "outhr_uv_records": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          13144,
          13158
        ]
      },
      "wrtr2d_direct_write": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          36865,
          36878
        ]
      },
      "final_polar_conversion": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          29694,
          29702
        ]
      },
      "midpoint_solar": {
        "file": "work/calmet65-local/build/native-650-150223/calmet.for",
        "lines": [
          3854,
          3874
        ]
      },
      "calwrf_rotation": {
        "file": "work/bc-wrf-access/pilot/format-review/private-reference/code/calwrf.f",
        "lines": [
          438,
          458,
          679,
          719,
          2069,
          2092
        ]
      },
      "previous_start_labels": {
        "file": "work/buffered-wind-2023/analyze.py",
        "lines": [
          29,
          35,
          64,
          66
        ]
      }
    },
    "intervals": [
      {
        "interval_index_0": 0,
        "interval_start_fixed_PST": "2023-06-01T00:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T01:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T09:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315200,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315200,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 1,
        "interval_start_fixed_PST": "2023-06-01T01:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T02:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T10:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315201,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315201,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 2,
        "interval_start_fixed_PST": "2023-06-01T02:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T03:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T11:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315202,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315202,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 3,
        "interval_start_fixed_PST": "2023-06-01T03:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T04:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T12:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315203,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315203,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 4,
        "interval_start_fixed_PST": "2023-06-01T04:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T05:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T13:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315204,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315204,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 5,
        "interval_start_fixed_PST": "2023-06-01T05:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T06:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T14:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315205,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315205,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 6,
        "interval_start_fixed_PST": "2023-06-01T06:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T07:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T15:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315206,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315206,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 7,
        "interval_start_fixed_PST": "2023-06-01T07:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T08:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T16:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315207,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315207,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 8,
        "interval_start_fixed_PST": "2023-06-01T08:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T09:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T17:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315208,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315208,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 9,
        "interval_start_fixed_PST": "2023-06-01T09:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T10:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T18:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315209,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315209,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 10,
        "interval_start_fixed_PST": "2023-06-01T10:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T11:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T19:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315210,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315210,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 11,
        "interval_start_fixed_PST": "2023-06-01T11:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T12:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T20:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315211,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315211,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 12,
        "interval_start_fixed_PST": "2023-06-01T12:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T13:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T21:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315212,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315212,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 13,
        "interval_start_fixed_PST": "2023-06-01T13:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T14:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T22:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315213,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315213,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 14,
        "interval_start_fixed_PST": "2023-06-01T14:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T15:00:00-08:00",
        "native_wind_target_UTC": "2023-06-01T23:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315214,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315214,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 15,
        "interval_start_fixed_PST": "2023-06-01T15:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T16:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T00:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315215,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315215,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 16,
        "interval_start_fixed_PST": "2023-06-01T16:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T17:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T01:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315216,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315216,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 17,
        "interval_start_fixed_PST": "2023-06-01T17:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T18:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T02:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315217,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315217,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 18,
        "interval_start_fixed_PST": "2023-06-01T18:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T19:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T03:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315218,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315218,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 19,
        "interval_start_fixed_PST": "2023-06-01T19:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T20:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T04:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315219,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315219,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 20,
        "interval_start_fixed_PST": "2023-06-01T20:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T21:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T05:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315220,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315220,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 21,
        "interval_start_fixed_PST": "2023-06-01T21:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T22:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T06:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315221,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315221,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 22,
        "interval_start_fixed_PST": "2023-06-01T22:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-01T23:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T07:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315222,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315222,
        "CALMET_end_seconds": 3600
      },
      {
        "interval_index_0": 23,
        "interval_start_fixed_PST": "2023-06-01T23:00:00-08:00",
        "interval_end_fixed_PST": "2023-06-02T00:00:00-08:00",
        "native_wind_target_UTC": "2023-06-02T08:00:00Z",
        "CALMET_begin_YYYYJJJHH": 202315223,
        "CALMET_begin_seconds": 0,
        "CALMET_end_YYYYJJJHH": 202315223,
        "CALMET_end_seconds": 3600
      }
    ]
  },
  "independent": {
    "candidateHashes": {
      "paired.json": "13f55562ec3a433e33f58ce0e2727d3efda66ef436b5ecb313be445c84470883",
      "paired.csv": "7a19bc226545797f5ecc7f503d33bfd827843edcb8a0ff806bff8fc38fd1a466",
      "summary.json": "f26e85e321056b54684b9848dbef827ea051110c8a6d80549fc2f774c3b63150",
      "summary.csv": "cf1ff392900190ed82e35b4e368b9661cf68e80659f04038c2e03ea6a65e9f09",
      "direction.json": "e139b24dba1712f72ce0592cbe99a886dc874dabafb7a05e9ba7b7f9d8c19648",
      "direction.csv": "429910406d3cd075beb5378f15a1bc202a8b74bd3efc820a4a95667745bb7499",
      "point-profiles.json": "49e8dc7176e20db42b5b2c0aa771640777b24797a38d80436fe2e99488a4b878",
      "point-profiles.csv": "98d1374b52026ec04bb678031b27fb5a8504a0392e000d8f25ce275660d5c6aa",
      "extraction-checks.json": "35179ccf5a966b336a48f961ef2bee54b5bddb82515fa5add3a3db709c8790e3"
    },
    "protocolSha256": "66b09f6120ce7b6e97f7ccb12ca348cd3f8c5f9417b508979d17a96f9fd8e707",
    "scriptSha256": "5009ea0ae78f00d5d8f27563be0702cc400c0096d850178a73ea514f67e3190a",
    "independentPhysicalValidation": false,
    "method": "Independent stdlib streamed Fortran array parser, JSON numeric-token hooks, scalar statistics and trigonometric angular error. No candidate compare.py import/read/execution. Native reference rechecked against original M3D raw fixed-width lines. Independent transverse-Mercator series for geometry.",
    "counts": {
      "protocol_hash": 1,
      "independent_utm_geometry": 2,
      "station_domain_membership": 2,
      "frozen_source_hash": 14,
      "eccc_utc_local_equivalence": 698,
      "eccc_local_components": 698,
      "eccc_utc_components": 698,
      "eccc_unique_time_and_id": 698,
      "eccc_identity": 698,
      "eccc_station_coordinates": 698,
      "all_24_observation_endpoints": 1,
      "case_containing_cell": 6,
      "case_shared_cell_centre": 6,
      "case_cell_offset": 6,
      "fortran_record_marker": 10968,
      "calmet_header_period": 6,
      "calmet_header_timezone": 6,
      "calmet_header_dimensions": 6,
      "calmet_header_geometry": 6,
      "normalized_interval": 4320,
      "wind_grid_array_length": 4320,
      "station_wind_finite": 4320,
      "unique_wind_record": 4320,
      "all_wind_components_layers_times": 6,
      "vertical_faces": 6,
      "all_case_static_identical": 1,
      "native_wrf_tokens": 24,
      "native_wrf_raw_record_provenance": 24,
      "native_wrf_values_and_point": 24,
      "all_24_native_wrf_endpoints": 1,
      "candidate_list_length": 100,
      "candidate_object_keys": 9086,
      "candidate_numeric_value": 12756,
      "candidate_exact_value": 41715,
      "candidate_unchanged_during_review": 9
    },
    "maximumAbsoluteCandidateNumericDifferences": {
      "paired_json": 5.684341886080802e-14,
      "paired_csv": 5.684341886080802e-14,
      "summary_json": 0,
      "summary_csv": 0,
      "direction_json": 1.0658141036401503e-14,
      "direction_csv": 1.0658141036401503e-14,
      "point-profiles_json": 0,
      "point-profiles_csv": 0,
      "extraction": 0
    },
    "candidateRowsChecked": 168,
    "candidateProfileValuesChecked": 4320,
    "candidateSummaryRowsChecked": 7,
    "candidateDirectionRowsChecked": 42,
    "sourceHashes": [
      {
        "path": "work/bc-wrf-access/june-2023-eccc/airport-2023-06-native.json",
        "sha256": "75c1c04b33bc037089bcea4647cf46d5f693f6e5296cf8e23e25261fad529e94"
      },
      {
        "path": "work/regional-calmet-june2023/runs/wrf-interpolation/CALMET.DAT",
        "sha256": "e761091d59087964939a045c197a318d2274d017f31b042902a79d0ef485c205"
      },
      {
        "path": "work/regional-calmet-june2023/runs/wrf-interpolation/CALMET.INP",
        "sha256": "4c62e1608cc0939de90015a3e70dc57f91b7e92c255a80e453a1ea33155e1d24"
      },
      {
        "path": "work/regional-calmet-june2023/runs/terrain-5km/CALMET.DAT",
        "sha256": "6f5a5890874be484c1f7f11d81534d42836257d44ddb743a9fa8013dc939f0fc"
      },
      {
        "path": "work/regional-calmet-june2023/runs/terrain-5km/CALMET.INP",
        "sha256": "71f02d98eaadcda0d66008201c618905c7f4af72aa93f26d61201bea395b0e1b"
      },
      {
        "path": "work/regional-calmet-june2023/runs/terrain-10km/CALMET.DAT",
        "sha256": "f872e3c08e45fca3fafcaa32f73398e0a40d8dd5e6b6343eb89106492761fc09"
      },
      {
        "path": "work/regional-calmet-june2023/runs/terrain-10km/CALMET.INP",
        "sha256": "368595cb54b48987aa12288a39a1dcb5d7bcd55a7376cf08ce677d7dbfc65b65"
      },
      {
        "path": "work/buffered-wind-2023/runs/wrf-interpolation/CALMET.DAT",
        "sha256": "87fa4e6c19c1a663efe7211a47fd60bd54aff9bf3d6f38ccd62ba7d4ec59eadc"
      },
      {
        "path": "work/buffered-wind-2023/runs/wrf-interpolation/CALMET.INP",
        "sha256": "be5cff439162ad3068807bb5297ff24f07b6dd0da87a7b1cbc96d5dbc1e97930"
      },
      {
        "path": "work/buffered-wind-2023/runs/terrain-5km/CALMET.DAT",
        "sha256": "a37c6e4d1de051b0ec8a6f2633def1ee38682b9514bb20941f834c897291e2bb"
      },
      {
        "path": "work/buffered-wind-2023/runs/terrain-5km/CALMET.INP",
        "sha256": "0e614895b605fe38e7817ae0173c33571e5e38244e58497a8fe6e878c7f5330e"
      },
      {
        "path": "work/buffered-wind-2023/runs/terrain-10km/CALMET.DAT",
        "sha256": "8bc1b4c5b5da07d6f95bbcb0c7fc5bda08e74670b4f727e398967bdf46b32002"
      },
      {
        "path": "work/buffered-wind-2023/runs/terrain-10km/CALMET.INP",
        "sha256": "fb4b7bb338b37d0fbc9dadee911e54d4fbf28f44624d316d051afac42901af90"
      },
      {
        "path": "work/bc-wrf-wind-june2023/results/native-surface.json",
        "sha256": "63b080145545ffcac7edc5bce157287f8d6385ac0476367d50e20d69c19c0765"
      },
      {
        "path": "work/bc-wrf-wind-june2023/native/x031y081x040y090.202306.10x10.d06.m3d",
        "sha256": "a3128a4668c1c965d954067f7f9bf5c4374a012cf6f87a7a345fb9dc54014310"
      }
    ],
    "discrepancies": [],
    "passed": true
  },
  "summary": [
    {
      "case": "original/wrf-interpolation",
      "expected_slots": 24,
      "observations_present": 24,
      "speed_pairs": 24,
      "vector_pairs": 24,
      "obs_mean_speed_ms": 1.712962962962963,
      "model_mean_speed_ms": 4.013890594348099,
      "speed_bias_ms": 2.3009276313851363,
      "speed_mae_ms": 2.410296807850267,
      "speed_rmse_ms": 2.780226224478539,
      "vector_rmse_ms": 3.2726819833623084,
      "reported_calm_pairs": 10,
      "model_calm_speed_median_ms": 1.0025052532920276,
      "model_calm_speed_max_ms": 3.6486831317138426
    },
    {
      "case": "original/terrain-5km",
      "expected_slots": 24,
      "observations_present": 24,
      "speed_pairs": 24,
      "vector_pairs": 24,
      "obs_mean_speed_ms": 1.712962962962963,
      "model_mean_speed_ms": 4.218188360674524,
      "speed_bias_ms": 2.5052253977115613,
      "speed_mae_ms": 2.6186741780903673,
      "speed_rmse_ms": 3.0098134852028315,
      "vector_rmse_ms": 3.484913642136324,
      "reported_calm_pairs": 10,
      "model_calm_speed_median_ms": 1.1698240219364702,
      "model_calm_speed_max_ms": 4.5306311027088295
    },
    {
      "case": "original/terrain-10km",
      "expected_slots": 24,
      "observations_present": 24,
      "speed_pairs": 24,
      "vector_pairs": 24,
      "obs_mean_speed_ms": 1.712962962962963,
      "model_mean_speed_ms": 4.2811861660058375,
      "speed_bias_ms": 2.5682232030428747,
      "speed_mae_ms": 2.6824344863544716,
      "speed_rmse_ms": 3.085914444440517,
      "vector_rmse_ms": 3.55684055842939,
      "reported_calm_pairs": 10,
      "model_calm_speed_median_ms": 1.2328434640952124,
      "model_calm_speed_max_ms": 4.7867410325113235
    },
    {
      "case": "expanded/wrf-interpolation",
      "expected_slots": 24,
      "observations_present": 24,
      "speed_pairs": 24,
      "vector_pairs": 24,
      "obs_mean_speed_ms": 1.712962962962963,
      "model_mean_speed_ms": 4.013890594348099,
      "speed_bias_ms": 2.3009276313851363,
      "speed_mae_ms": 2.410296807850267,
      "speed_rmse_ms": 2.780226224478539,
      "vector_rmse_ms": 3.2726819833623084,
      "reported_calm_pairs": 10,
      "model_calm_speed_median_ms": 1.0025052532920276,
      "model_calm_speed_max_ms": 3.6486831317138426
    },
    {
      "case": "expanded/terrain-5km",
      "expected_slots": 24,
      "observations_present": 24,
      "speed_pairs": 24,
      "vector_pairs": 24,
      "obs_mean_speed_ms": 1.712962962962963,
      "model_mean_speed_ms": 4.218188360674524,
      "speed_bias_ms": 2.5052253977115613,
      "speed_mae_ms": 2.6186741780903673,
      "speed_rmse_ms": 3.0098134852028315,
      "vector_rmse_ms": 3.484913642136324,
      "reported_calm_pairs": 10,
      "model_calm_speed_median_ms": 1.1698240219364702,
      "model_calm_speed_max_ms": 4.5306311027088295
    },
    {
      "case": "expanded/terrain-10km",
      "expected_slots": 24,
      "observations_present": 24,
      "speed_pairs": 24,
      "vector_pairs": 24,
      "obs_mean_speed_ms": 1.712962962962963,
      "model_mean_speed_ms": 4.267573142845438,
      "speed_bias_ms": 2.5546101798824754,
      "speed_mae_ms": 2.6688214631940723,
      "speed_rmse_ms": 3.0695648428253817,
      "vector_rmse_ms": 3.5410037822091445,
      "reported_calm_pairs": 10,
      "model_calm_speed_median_ms": 1.2197332819511835,
      "model_calm_speed_max_ms": 4.734946436917945
    },
    {
      "case": "native-wrf-10m",
      "expected_slots": 24,
      "observations_present": 24,
      "speed_pairs": 24,
      "vector_pairs": 24,
      "obs_mean_speed_ms": 1.712962962962963,
      "model_mean_speed_ms": 4.4375,
      "speed_bias_ms": 2.7245370370370368,
      "speed_mae_ms": 2.7819444444444446,
      "speed_rmse_ms": 3.233983166211841,
      "vector_rmse_ms": 4.009370315524076,
      "reported_calm_pairs": 10,
      "model_calm_speed_median_ms": 1.2999999999999998,
      "model_calm_speed_max_ms": 3.6
    }
  ],
  "directionCohorts": [
    {
      "case": "original/wrf-interpolation",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 27.458328291262905,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/wrf-interpolation",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 27.458328291262905,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/wrf-interpolation",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "each_series",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 37.767928387821485,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/wrf-interpolation",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "all_seven_common",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 37.767928387821485,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/wrf-interpolation",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 27.458328291262905,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/wrf-interpolation",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 27.458328291262905,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-5km",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 28.91417856870865,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-5km",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 28.91417856870865,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-5km",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "each_series",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 39.33090419348949,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-5km",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "all_seven_common",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 39.33090419348949,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-5km",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 28.91417856870865,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-5km",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 28.91417856870865,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-10km",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 29.199908066433636,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-10km",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 29.199908066433636,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-10km",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "each_series",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 39.63956964522871,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-10km",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "all_seven_common",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 39.63956964522871,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-10km",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 29.199908066433636,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "original/terrain-10km",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 29.199908066433636,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/wrf-interpolation",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 27.458328291262905,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/wrf-interpolation",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 27.458328291262905,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/wrf-interpolation",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "each_series",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 37.767928387821485,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/wrf-interpolation",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "all_seven_common",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 37.767928387821485,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/wrf-interpolation",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 27.458328291262905,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/wrf-interpolation",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 27.458328291262905,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-5km",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 28.91417856870865,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-5km",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 28.91417856870865,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-5km",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "each_series",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 39.33090419348949,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-5km",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "all_seven_common",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 39.33090419348949,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-5km",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 28.91417856870865,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-5km",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 28.91417856870865,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-10km",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 29.137034688797485,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-10km",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 29.137034688797485,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-10km",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "each_series",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 39.58153268125688,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-10km",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "all_seven_common",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 39.58153268125688,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-10km",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 29.137034688797485,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "expanded/terrain-10km",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 29.137034688797485,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "native-wrf-10m",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 35.383333333333326,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "native-wrf-10m",
      "minimum_both_speeds_ms": 1.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 35.383333333333326,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "native-wrf-10m",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "each_series",
      "pairs": 14,
      "mean_absolute_direction_error_deg": 54.39999999999999,
      "over90_count": 2,
      "interval_indices": [
        6,
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "native-wrf-10m",
      "minimum_both_speeds_ms": 0.5,
      "cohort": "all_seven_common",
      "pairs": 13,
      "mean_absolute_direction_error_deg": 44.86923076923077,
      "over90_count": 1,
      "interval_indices": [
        7,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "native-wrf-10m",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "each_series",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 35.383333333333326,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    },
    {
      "case": "native-wrf-10m",
      "minimum_both_speeds_ms": 2.0,
      "cohort": "all_seven_common",
      "pairs": 12,
      "mean_absolute_direction_error_deg": 35.383333333333326,
      "over90_count": 0,
      "interval_indices": [
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
      ]
    }
  ],
  "figure": {
    "png": "woodfibre-calmet-observation-check.png",
    "svg": "woodfibre-calmet-observation-check.svg",
    "visuallyInspected": true
  },
  "sourceLicensing": {
    "ECCC": "Environment and Climate Change Canada data; retained provider licence in the methods archive.",
    "BCWRF": "B.C. public WRF archive; original numerical records identified by URL and hash, not redistributed here.",
    "code": "Third-party CALMET/CALWRF source is identified by exact version, paths, hashes and line locators; not redistributed in this archive."
  }
}
