Version: dev

WRF_hourly_d01

WRF regridding model — the coupler half of the wrf loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.1). Exposes WRF regional weather fields (UCAR RDA d340000, WRF-Chem v3.9.1 CONUS 12 km) on the simulation's target grid for advection and chemistry coupling in EarthSciML systems.

.esm schema
1.0.0
Source
components/earthsci_data/wrf.esm

Description

WRF regridding model — the coupler half of the wrf loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.1). Exposes WRF regional weather fields (UCAR RDA d340000, WRF-Chem v3.9.1 CONUS 12 km) on the simulation’s target grid for advection and chemistry coupling in EarthSciML systems.

Structure (RFC pure-io-data-loaders §6):

  1. It declares the pure-I/O source inline: at 0.7.0 the loader was the separate file components/earthsci_data/wrf_loader.esm, mounted as the subsystem raw; at esm 1.0.0 it is the WRF_hourly_d01 entry in this file’s own data_sources and the standalone file is gone (a data source is not a component, so it neither needs nor may be a subsystem). Loader fields are referenced as raw. (e.g. raw.U) and re-exposed as model-level observed variables (WRF.U, WRF.V, …) to preserve the runtime MeanWind coupling contract (WRF.U/V/W → MeanWind via WRFCoupler/couple2).
  2. Reprojection: WRF’s native grid is projected (lambert_conformal), so the coordinate transform is the LCC reproject (ESD reprojection/lambert_conformal.esm, esd-47z.2) — selected by convention from the loader’s grid.crs.projection = ’lambert_conformal’ and parameterized by the loader’s crs parameters {lat_1:30, lat_2:60, lat_0:38.999996, lon_0:-97, R:6370000}.
  3. Regridding (per variable, RFC §5.2): the Arakawa-C-grid wind components U, V, W are edge/face-staggered → B-spline interpolation; the cell-centered scalars T, PH, PHB, P, PB, QVAPOR → conservative (area-weighted, mass-conserving) regridding. Declared in the regrid block.

Top-level derived quantities computed on the target grid: total pressure P_total = P + PB, geopotential height z = (PH + PHB)/g, and the lat/lon coordinate metrics δxδlon and δyδlat (emitted only for lat/lon coordinate domains).

MeanWind coupling (from EarthSciData.jl@830435a coupling.jl): MeanWind.v_lon ~ WRF.U, MeanWind.v_lat ~ WRF.V, MeanWind.v_lev ~ WRF.W.

Migrated from EarthSciData.jl@830435a065f27e99f10bba91107ca1730322cc6b:src/wrf.jl:169 (WRF constructor, esm-4l84); split into pure loader + regridding model by esm-3nc.1.

Reference

UCAR Research Data Archive, dataset d340000. WRF-Chem v3.9.1 CONUS 12 km hourly output.

Data source

Kindgrid
URL templatehttps://data.rda.ucar.edu/d340000/{date:%Y%m}/wrfout_hourly_d01_{date:%Y-%m-%d}_{date:%H}:00:00.nc
Coverage2019-05-01T00:00:00Z → 2026-05-31T23:59:59Z
File periodPT1H
Sample frequencyPT1H
Records per file1

Raw .esm

Raw .esm JSON (this component)
{
  "kind": "grid",
  "source": {
    "url_template": "https://data.rda.ucar.edu/d340000/{date:%Y%m}/wrfout_hourly_d01_{date:%Y-%m-%d}_{date:%H}:00:00.nc"
  },
  "temporal": {
    "start": "2019-05-01T00:00:00Z",
    "end": "2026-05-31T23:59:59Z",
    "file_period": "PT1H",
    "frequency": "PT1H",
    "records_per_file": 1,
    "time_variable": "Times"
  },
  "reference": {
    "citation": "UCAR Research Data Archive, dataset d340000. WRF-Chem v3.9.1 CONUS 12 km hourly output.",
    "url": "https://rda.ucar.edu/datasets/d340000/"
  },
  "metadata": {
    "tags": [
      "wrf",
      "meteorology",
      "regional_climate",
      "conus",
      "lambert_conformal",
      "12km"
    ],
    "earthscidata_source": "src/wrf.jl::WRFFileSet",
    "domain_id": "d01",
    "projection": "lambert_conformal_conic",
    "map_proj": 1,
    "lcc_parameters": {
      "truelat1": 30.0,
      "truelat2": 60.0,
      "cen_lat": 38.999996,
      "stand_lon": -97.0,
      "sphere_radius_m": 6370000.0
    },
    "native_resolution_m": {
      "west_east": 12000.0,
      "south_north": 12000.0
    },
    "native_extent_m": {
      "west_east": [
        -2334000.0,
        2334000.0
      ],
      "south_north": [
        -1374000.0,
        1374000.0
      ]
    },
    "mass_grid_dimensions": [
      389,
      229,
      32
    ],
    "model_version": "WRF-Chem v3.9.1",
    "proj4_string": "+proj=lcc +lat_1=30.0 +lat_2=60.0 +lat_0=38.999996 +lon_0=-97.0 +x_0=0 +y_0=0 +a=6370000 +b=6370000 +to_meter=1",
    "wrf_variable_note": "The upstream WRF() constructor reads ALL variables in the WRF output file dynamically via WRFFileSet.varnames(). This loader documents the nine core meteorological variables (U, V, W, T, PH, PHB, P, PB, QVAPOR) present in all CONUS d340000 files and that drive EarthSciML coupling. Additional WRF-Chem tracer/diagnostic variables (T2, U10, V10, PSFC, chemistry species) can be added as additional loader variables.",
    "staggering_note": "WRF uses an Arakawa C-grid. Staggered-grid variables (U on west_east_stag, V on south_north_stag, W/PH/PHB on bottom_top_stag) live on the cell-edge dimensions; scalars (T, P, PB, QVAPOR) live on the mass (cell-centred) dimensions. The regridding model (wrf.esm) regrids the C-grid wind components U/V/W with a B-spline interpolating kernel and the scalars conservatively (RFC §5.2). The upstream EarthSciData.jl loader de-staggers staggered variables to cell centres in loadmetadata; the GDD grid above preserves the native staggered dimensions so the regridding model can choose the kernel by location.",
    "access_note": "UCAR RDA data access requires a free registration at https://rda.ucar.edu/. The upstream EarthSciData.jl WRFFileSet uses standard HTTP downloads (login cookie only). Ensure $EARTHSCIDATADIR is set for local caching.",
    "w_extrapolation_note": "Vertical wind W uses zero-boundary extrapolation (extrapolate_type=0.0) in the upstream loader to prevent spurious mass transport through the ground surface. All other variables use clamp extrapolation. Per-variable extrapolation override is a future ESM-schema concern; here it is documented for the runtime.",
    "native_grid_family": "cartesian",
    "native_crs_note": "NO EPSG CODE EXISTS for this crs, so no `native_crs_epsg` is claimed. The native crs is WRF's spherical Lambert Conformal Conic — sphere of radius 6370000 m (not an ellipsoid), standard parallels 30°/60°, origin 38.999996°N / -97°E — which has no registered authority code. The 0.7.0 `grid.crs` descriptor named the projection FAMILY with the enum spelling `lambert_conformal` and carried `datum: sphere`, `R`, and a `parameters` map {lat_1, lat_2, lat_0, lon_0}. esm 1.0.0 defines no vocabulary for a named projection family, so that descriptor is parked verbatim in `native_crs_descriptor` and its equivalent PROJ form is in `proj4_string` above. `native_crs_descriptor` is free-form provenance, NOT a schema-defined spelling — the missing named-projection vocabulary is an open format question, reported upstream and deliberately not invented here.",
    "native_crs_descriptor": {
      "projection": "lambert_conformal",
      "datum": "sphere",
      "R": 6370000.0,
      "parameters": {
        "lat_1": 30.0,
        "lat_2": 60.0,
        "lat_0": 38.999996,
        "lon_0": -97.0
      }
    },
    "native_dimensions": [
      "west_east",
      "south_north",
      "bottom_top",
      "west_east_stag",
      "south_north_stag",
      "bottom_top_stag"
    ],
    "native_dimension_extents": {
      "west_east": {
        "n": 389,
        "spacing": "uniform"
      },
      "south_north": {
        "n": 229,
        "spacing": "uniform"
      },
      "bottom_top": {
        "n": 32,
        "spacing": "uniform"
      },
      "west_east_stag": {
        "n": 390,
        "spacing": "uniform"
      },
      "south_north_stag": {
        "n": 230,
        "spacing": "uniform"
      },
      "bottom_top_stag": {
        "n": 33,
        "spacing": "uniform"
      }
    },
    "native_staggering": "Arakawa C-grid. The native mass (cell-centered) dimensions west_east/south_north/bottom_top and the staggered (cell-edge) dimensions west_east_stag/south_north_stag/bottom_top_stag are preserved with their cell counts in native_dimensions / native_dimension_extents, so a consumer can still choose a kernel by variable location; see also `staggering_note` above, which the 0.7.0 file already carried. At esm 0.8.0 that kernel choice is an `aggregate` coupling expression, not a model `regrid` block; wrf.esm's Model.reference.notes holds the demoted per-variable map verbatim.",
    "native_grid_description": "Native WRF grid: Lambert Conformal Conic projection on an Arakawa C-grid, CONUS domain at 12 km horizontal resolution. The crs descriptor carries the spherical LCC parameters (standard parallels 30°/60°, origin 38.999996°N/-97°E, sphere radius 6370000 m) consumed by the regridding model's reprojection (ESD reprojection/lambert_conformal.esm, esd-47z.2). Migrated from the loader's former DataLoaderSpatial block (RFC pure-io-data-loaders §4.1); the loader describes this grid but performs no reprojection or regridding. Mass (cell-centered) dimensions west_east/south_north/bottom_top hold scalars (T, P, PB, QVAPOR); the staggered (cell-edge) dimensions west_east_stag/south_north_stag/bottom_top_stag hold the C-grid wind/geopotential fields (U on west_east_stag, V on south_north_stag, W/PH/PHB on bottom_top_stag). Dimension cell counts are resolved from the source dataset at load time; the documented d01 mass-grid geometry is 389 × 229 × 32 (west_east × south_north × bottom_top).",
    "migration_note": "esm 0.7.0 -> 0.8.0: removed the `grid` block (family/crs/dimensions/extents/description), which no schema at or after 0.8.0 permits — 0.8.0 deleted the native-grid descriptor outright (esm-spec §8.4; the 1.0.0 DataSource is additionalProperties:false over {kind, source, temporal, determinism, reader_options, select, record_filter, extent, reference, metadata}, with no `grid` key). Nothing was dropped: `family` → native_grid_family; `crs` → native_crs_descriptor (verbatim) + native_crs_note; `dimensions` → native_dimensions; `extents` (per-dimension cell count + spacing) → native_dimension_extents; `description` → native_grid_description (verbatim). Native grid geometry is now ordinary data — a source exposes its coordinates/connectivity/metric arrays as ordinary `file_variable`s bound to consuming parameters, and reprojection/regridding are ordinary `aggregate` coupling expressions (esm-spec §8.6), not a loader `grid` or a model `regrid` block. No other field changed.",
    "merged_from": "components/earthsci_data/wrf_loader.esm",
    "merge_note": "Merged from the standalone pure-I/O file components/earthsci_data/wrf_loader.esm, which is deleted by the same commit. The 0.x `X.esm` + `X_loader.esm` split existed only because a loader was a COMPONENT and a {\"ref\"} target had to contain exactly one component. At esm 1.0.0 a data source is NOT a component, not a coupling endpoint and not a scoped-name path root, and `data_sources` no longer counts toward a file's top-level system count — so one file may hold a model AND the data_sources that model consumes and still be mountable by {\"ref\"}. This registry entry is byte-identical to the one the deleted file declared (it was already mirrored here so this document would validate), and the deleted file's own top-level metadata — name, description, tags, created, authors, references — is preserved verbatim in `merged_file_metadata` so no provenance, citation or migration note is lost.",
    "merged_file_metadata": {
      "name": "WRF_hourly_d01_loader",
      "description": "Pure-I/O data loader for WRF regional weather fields from the UCAR Research Data Archive dataset d340000 (WRF-Chem v3.9.1, CONUS domain, 12 km grid). Supplies hourly meteorological 3-D fields (wind components, potential temperature, pressure, geopotential, water vapor) on the native Lambert Conformal Conic (LCC) Arakawa-C grid.\n\nThis is the loader half of the wrf loader+regridding-model split (RFC pure-io-data-loaders §4.1/§7; bead esm-3nc.1). It is PURE I/O: it declares its source (url_template), the file variables it reads (with units), and its temporal cadence. It declares NO grid: esm 0.8.0 removed the loader `grid`/GDD-Grid descriptor outright, so the native Lambert-Conformal-Conic Arakawa-C geometry — including the spherical LCC parameters and the mass/staggered dimension names and cell counts — is recorded as documentation in the data source's metadata and is materialized downstream by `aggregate` coupling expressions. Note that esm 1.0.0 has no vocabulary for a NAMED PROJECTION FAMILY: unlike the longlat sources there is no EPSG code for WRF's spherical LCC, so the former crs descriptor is parked verbatim in metadata.native_crs_descriptor beside metadata.native_crs_note and metadata.proj4_string rather than given an invented spelling. It performs NO reprojection and NO regridding — those are concerns of the regridding model (components/earthsci_data/wrf.esm), which references this file as a subsystem via {\"ref\": \"./wrf_loader.esm\"}.\n\nThe removed co-located blocks: the old DataLoaderSpatial block (proj4 crs string / grid_type / staggering / resolution / extent) became the GDD `grid` (family + crs{projection:lambert_conformal, datum:sphere, R, parameters} + dimensions + extents) at 0.7.0 and, at 0.8.0, metadata documentation (see metadata.migration_note on the data source); the old per-loader `regridding` block (fill_value / extrapolation) is gone, and so is the model-level `regrid` map — at 0.8.0 the regridding kernel is a coupling expression, and wrf.esm keeps the per-variable kernel choice verbatim in Model.reference.notes. Because a `temporal` block is present, this loader seeds DISCRETE cadence (ess-v9a.5): the runtime refreshes the file buffers hourly.\n\nThe LCC projection parameters {lat_1:30, lat_2:60, lat_0:38.999996, lon_0:-97, R:6370000} match the WRF grid and are consumed by the downstream reprojection rule (ESD reprojection/lambert_conformal.esm, esd-47z.2) and the ESD projected-grid construction (discretizations/grids/lambert_conformal/wrf_lcc.esm, esd-47z.5); they are preserved here in metadata.native_crs_descriptor, metadata.lcc_parameters and metadata.proj4_string.\n\nMigrated from EarthSciData.jl@830435a065f27e99f10bba91107ca1730322cc6b:src/wrf.jl:169 (WRFFileSet). Split out of the pre-migration components/earthsci_data/wrf.esm (esm-4l84).",
      "tags": [
        "earthsci_data",
        "meteorology",
        "atmospheric_dynamics",
        "data_loader",
        "regional_climate",
        "wrf",
        "conus",
        "lambert_conformal",
        "pure-io"
      ],
      "created": "2026-06-25T00:00:00Z",
      "authors": [
        "EarthSciData.jl contributors",
        "EarthSciModels migration (esm-3nc.1)"
      ],
      "references": [
        {
          "citation": "Skamarock, W. C., Klemp, J. B., Dudhia, J., Gill, D. O., Liu, Z., Berner, J., Wang, W., Powers, J. G., Duda, M. G., Barker, D. M., and Huang, X.-Y. (2021). A Description of the Advanced Research WRF Model Version 4.3. NCAR Tech. Note NCAR/TN-556+STR, doi:10.5065/1dfh-6p97.",
          "url": "https://www2.mmm.ucar.edu/wrf/users/"
        },
        {
          "citation": "UCAR Research Data Archive, dataset d340000. WRF-Chem v3.9.1 CONUS 12 km hourly output, May 2019 – May 2026. https://rda.ucar.edu/datasets/d340000/",
          "url": "https://rda.ucar.edu/datasets/d340000/"
        },
        {
          "citation": "Source: EarthSciData.jl@830435a065f27e99f10bba91107ca1730322cc6b:src/wrf.jl:169 (WRFFileSet struct, WRF constructor)."
        }
      ]
    }
  }
}