Climate Data Model Specification

Scope

This document defines the capabilities or functionalities of a data model to exchange climate data for use in performance simulation for building design, analysis, and operation. It makes recommendations towards, and provides examples of, vocabulary, naming conventions, unit system, and data relationships. The data model described in this document is applicable irrespective of the source of data for which it is used: measured or observed, modeled or simulated, including reanalysis and projected. The term “data model” as used here encompasses the climate data model for building performance simulation and design. This is a special case of the general data model for building data exchange published in the BSR/ASHRAE Standard 205P-Full Public Review #3. The scope of this consensus document does not cover post-processing and generation methods, quality control methods for the data, changes to existing file formats.

Applicability

This data model is defined to accommodate data for building performance modeling, design and operation of buildings, and calculations for compliance with building codes or beyond-code certifications. Building performance simulation could include the modeling of energy, daylight and lighting, water, thermal properties, airflow, thermal and visual comfort, urban-scale effects, air quality parameters, and computational fluid dynamics. Calculations for compliance and certification could include climate risk assessment, resilience studies, and building certification schemes.

Exclusions

This data model does not cover soil conditions, data for structural calculations, ground water data and underground water resources, geothermal. These could be included as ‘custom fields’ initially by individual data vendors and users with the possibility to be included as ‘standard’ fields in future versions of the data model(s).

Data Model

Enumerations

SchemaType

EnumeratorDescriptionNotes
CLIMATE_INFORMATIONClimate information

DataSourceType

EnumeratorDescriptionNotes
DIRECT_MEASUREMENTDirect Measurement
DERIVED_MEASUREMENTDerived Measurement
MODELEDModeled
INTERPOLATEDInterpolated
ASSUMPTIONAssumption
UNKNOWNUnknown

TimeSeriesType

EnumeratorDescriptionNotes
INSTANTANEOUSInstantaneousValues reflect the instant of the current timestamp in the corresponding TimeIntervals data group
AVERAGEAverageValues reflect the average between the previous timestamp and the current timestamp in the corresponding TimeIntervals data group
SUMSumValues reflect the integrated sum between the previous timestamp and the current timestamp in the corresponding TimeIntervals data group
CUMULATIVECumulativeValues reflect the cumulative sum between the starting timestamp and the current timestamp in the corresponding TimeIntervals data group

ClimateDataType

EnumeratorDescriptionNotes
MEASUREDMeasured climate data
TYPICALTypical climate data composed of either measured or modeled data, or both
REANALYSISClimate data from atmospheric reanalysis models used to provide weather and climatic data for historical periods worldwide
FORECASTClimate data from numerical weather forecast models used to provide short term forecasts of weather conditions
PROJECTEDProjected climate data from a numerical model of the global climate system that provide estimates of future weather data driven by meteorological and human factors

Data Groups

ClimateInformation

NameDescriptionData TypeUnitsConstraintsReqNotes
metadataMetadata{Metadata}schema=CLIMATE_INFORMATION\(✓\)
locationLocation data group{Location}\(✓\)
data_setsAn array of climate data sets for this location[{DataSet}][1..]\(✓\)

Location

NameDescriptionData TypeUnitsConstraintsReqNotes
nameDescriptive name of the weather station locationString\(✓\)Suggest including human-readable identifiers of location, e.g., country, state
country_codeCountryString[A-Z]{3}\(✓\)ISO Alpha-3 country code
subdivisionAdministrative subdivision within a countryStringState, province, or other identified region
postal_codePostal codeString
wmo_station_idWorld Meteorological Organization Station NumberString[0-9]{6}World Meteorological Organization Station Number
latitudeLatitude relative to the equatorNumericdegrees≥-90.0, ≤90.0\(✓\)
  • is North, - is South
longitudeLongitude relative to prime meridianNumericdegrees≥-180.0, ≤180.0\(✓\)
  • is East, - is West
time_zone_offsetTime zone offset relative to UTCNumerich≥-12.0, ≤14.0\(✓\)
elevationStation elevation relative to sea level (bottom of station)Numericm\(✓\)
anemometer_heightHeight of anemometer above the groundNumericm>0.0\(✓\)Typically 10 m (potentially move to Time Series Source for Wind Speed/Direction)
station_heightHeight of other meteorological measurements above the groundNumericm>0.0\(✓\)Typically 1.8 m
terrain_classRoughness class of terrain surrounding weather station<TerrainType>Needs better definition, esp. enumeration of list.
wigos_station_idWIGOS Station IdentifierStringWMO Integrated Global Observing System, https://oscar.wmo.int/surface/index.html
wban_station_numberWeather Bureau Army Navy NumberString
other_station_identifiersUser-defined Station Identifiers[{StationIdentifiers}]List
notesNotesString
maslib_catalog_numberMaster Station Library Catalog NumberString

DataSet

NameDescriptionData TypeUnitsConstraintsReqNotes
climate_data_typeType of climate data<ClimateDataType>\(✓\)
time_intervalsArray of TimeInterval data groups whose ids may be referenced within TimeSeries data groups[{TimeIntervals}]\(✓\)
time_seriesData group containing named TimeSeries data elements{ClimateTimeSeries}\(✓\)
notesSupplementary information about this datasetString

TimeIntervals

NameDescriptionData TypeUnitsConstraintsReqNotes
idReference idID:TimeInterval:\(✓\)
starting_timeBeginning of dataTimestampUsed to determine the “previous” timestamp for the first value in a time series where the time series is not instantaneous
regular_intervalDuration of regular intervalsNumerics>0if !timestamps
timestampsArray of timestamps[Timestamp][1..]if !regular_interval
labelsInformal labels describing each time interval[String][1..]e.g., Month names for monthly intervals
notesNotes about each time interval[String][1..]

ClimateTimeSeries

NameDescriptionData TypeUnitsConstraintsReqNotes
dry_bulb_temperatureDry-bulb temperature{TimeSeries}display_name="Dry-bulb temperature", units="K", value_type=INSTANTANEOUS, values.Constraints=">0"
dew_point_temperatureDew-point temperature{TimeSeries}display_name="Dew-point temperature", units="K", value_type=INSTANTANEOUS, values.Constraints=">0"
relative_humidityRelative humidity{TimeSeries}display_name="Relative humidity", units="-", value_type=INSTANTANEOUS, values.Constraints="≥0, ≤1"
wet_bulb_temperatureWet-bulb temperature{TimeSeries}display_name="Wet-bulb temperature", units="K", value_type=INSTANTANEOUS, values.Constraints=">0"
humidity_ratioHumidity Ratio{TimeSeries}display_name="Humidity Ratio", units="-", value_type=INSTANTANEOUS, values.Constraints="≥0, ≤1"
atmospheric_pressureAtmospheric pressure{TimeSeries}display_name="Atmospheric pressure", units="Pa", value_type=INSTANTANEOUS, values.Constraints=">0"
global_horizontal_irradianceGlobal solar horizontal irradiance (Instantaneous, Power){TimeSeries}display_name="Global solar horizontal irradiance (Instantaneous, Power)", units="W/m2", value_type=INSTANTANEOUS, values.Constraints="≥0"Instantaneous irradiation received on a horizontal detector.
direct_normal_irradianceDirect normal solar irradiance (Instantaneous, Power){TimeSeries}display_name="Direct normal solar irradiance (Instantaneous, Power)", units="W/m2", value_type=INSTANTANEOUS, values.Constraints="≥0"
diffuse_horizontal_irradianceDiffuse horizontal irradiance (Instantaneous, Power){TimeSeries}display_name="Diffuse horizontal irradiance (Instantaneous, Power)", units="W/m2", value_type=INSTANTANEOUS, values.Constraints="≥0"
global_horizontal_irradiationGlobal solar horizontal irradiation (Sum, Energy){TimeSeries}display_name="Global solar horizontal irradiation (Sum, Energy)", units="J/m2", value_type=SUM, values.Constraints="≥0"This quantity is technically insolation, i.e., irradiance from the sun on a horizontal detector integrated over time.
direct_normal_irradiationDirect normal solar irradiation (Sum, Energy){TimeSeries}display_name="Direct normal solar irradiation (Sum, Energy)", units="J/m2", value_type=SUM, values.Constraints="≥0"
diffuse_horizontal_irradiationDiffuse horizontal irradiation (Sum, Energy){TimeSeries}display_name="Diffuse horizontal irradiation (Sum, Energy)", units="J/m2", value_type=SUM, values.Constraints="≥0"
horizontal_infrared_sky_irradianceHorizontal infrared sky irradiance (Instantaneous, Power){TimeSeries}display_name="Horizontal infrared sky irradiance (Instantaneous, Power)", units="W/m2", value_type=INSTANTANEOUS, values.Constraints=">0"Integrated power at each wavelength between 3 um and 100 um at an instant in time, received on a horizontal detector. Downward flux only. Metadata for this variable should declare whether this quantity is modelled, including which model was used, or whether it is measured. If it is measured, the detector”s range should be declared if different from nominal as defined for this variable.
total_sky_coverTotal sky cover{TimeSeries}display_name="Total sky cover", units="-", value_type=INSTANTANEOUS, values.Constraints="≥ 0, ≤1"Fraction of sky dome covered by clouds or obscuring phenomena. Usually measured in eights or tenths.
opaque_sky_coverOpaque sky cover{TimeSeries}display_name="Opaque sky cover", units="-", value_type=INSTANTANEOUS, values.Constraints="≥ 0, ≤1"Fraction of sky dome covered by opaque clouds or obscuring phenomena. Usually measured in eights or tenths.
precipitable_waterPrecipitable water{TimeSeries}display_name="Precipitable water", units="m", value_type=INSTANTANEOUS, values.Constraints="≥0"Total amount of water in a column of unit area from the elevation of the station to the upper troposphere. Includes clouds.
aerosol_optical_depthAerosol optical depth{TimeSeries}display_name="Aerosol optical depth", units="-", value_type=INSTANTANEOUS, values.Constraints="≥0"Extinction coefficient for a collimated beam traveling through the atmosphere, denoting the extinction of a beam as it traverses the atmosphere. The natural log of the ratio of incident to transmitted radiant power. Described using Beer”s law (transmission, scattering, and absorption).
global_horizontal_illuminanceGlobal horizontal illuminance{TimeSeries}display_name="Global horizontal illuminance", units="lx", value_type=AVERAGE, values.Constraints="≥0"
direct_normal_illuminanceDirect normal illuminance{TimeSeries}display_name="Direct normal illuminance", units="lx", value_type=AVERAGE, values.Constraints="≥0"
diffuse_horizontal_illuminanceDiffuse horizontal illuminance{TimeSeries}display_name="Diffuse horizontal illuminance", units="lx", value_type=AVERAGE, values.Constraints="≥0"
wind_directionWind direction{TimeSeries}display_name="Wind direction", units="radians", value_type=INSTANTANEOUS, values.Constraints=""Clockwise from north
wind_speedWind speed{TimeSeries}display_name="Wind speed", units="m/s", value_type=INSTANTANEOUS, values.Constraints=""Instantaneous wind speed at the time stamp. Wind speed is measured at 10m as standard, anything else must be included in metadata.
snow_depthSnow depth{TimeSeries}display_name="Snow depth", units="m", value_type=INSTANTANEOUS, values.Constraints=""Current observed depth of snow on the ground.
albedoAlbedo{TimeSeries}display_name="Albedo", units="-", value_type=INSTANTANEOUS, values.Constraints="≥ 0, ≤1"
liquid_precipitation_depthLiquid precipitation depth{TimeSeries}display_name="Liquid precipitation depth", units="m", value_type=SUM, values.Constraints="≥0"The cumulative depth of precipitation in the past time step.
particulate_matter_01_0Particulate Matter 1.0{TimeSeries}display_name="Particulate Matter 1.0", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"PM1.0: Mass of particles of size less than or equal to 1 um (micrometer) in one cubic meter of air.
particulate_matter_02_5Particulate Matter 2.5{TimeSeries}display_name="Particulate Matter 2.5", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"PM2.5: Mass of particles of size less than or equal to 2.5 um (micrometer) in one cubic meter of air.
particulate_matter_04_0Particulate Matter 4.0{TimeSeries}display_name="Particulate Matter 4.0", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"PM4.0: Mass of particles of size less than or equal to 4.0 um (micrometer) in one cubic meter of air.
particulate_matter_05_0Particulate Matter 5.0{TimeSeries}display_name="Particulate Matter 5.0", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"PM5.0: Mass of particles of size less than or equal to 5.0 um (micrometer) in one cubic meter of air.
particulate_matter_10_0Particulate Matter 10.0{TimeSeries}display_name="Particulate Matter 10.0", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"PM10: Mass of particles of size less than or equal to 10 um (micrometer) in one cubic meter of air.
carbon_dioxideCarbon Dioxide concentration{TimeSeries}display_name="Carbon Dioxide concentration", units="ppm", value_type=INSTANTANEOUS, values.Constraints="≥0"CO2
nitrogen_dioxideNitrogen Dioxide concentration{TimeSeries}display_name="Nitrogen Dioxide concentration", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"NO2
nitrogen_oxideNitrogen Oxide concentration{TimeSeries}display_name="Nitrogen Oxide concentration", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"NO
sulphur_dioxideSulphur Dioxide concentration{TimeSeries}display_name="Sulphur Dioxide concentration", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"SO2
ozoneOzone concentration{TimeSeries}display_name="Ozone concentration", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"O3
sky_typeSky Type{TimeSeries}display_name="Sky Type", units="-", value_type=INSTANTANEOUS, values.Constraints="-"CIE sky type, enumerated
ammoniaAmmonia concentration{TimeSeries}display_name="Ammonia concentration", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"NH3
carbon_monoxideCarbon Monoxide concentration{TimeSeries}display_name="Carbon Monoxide concentration", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"CO
formaldehydeFormaldehyde{TimeSeries}display_name="Formaldehyde", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"HCHO
turbidityTurbidity{TimeSeries}display_name="Turbidity", units="", value_type=INSTANTANEOUS, values.Constraints=""
leadLead concentration{TimeSeries}display_name="Lead concentration", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"Pb
mercuryMercury concentration{TimeSeries}display_name="Mercury concentration", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"
benzeneBenzene{TimeSeries}display_name="Benzene", units="ug/m3", value_type=INSTANTANEOUS, values.Constraints="≥0"C6H6
vocTotal volatile organic compound concentration{TimeSeries}display_name="Total volatile organic compound concentration", units="ppb", value_type=INSTANTANEOUS, values.Constraints="≥0"

TimeSeries

NameDescriptionData TypeUnitsConstraintsReqNotes
display_nameString\(✓\)
unitsString\(✓\)
value_type<TimeSeriesType>\(✓\)
value_time_intervalsReference:TimeInterval:\(✓\)
values[Numeric][1..]\(✓\)
source_time_intervalsReference:TimeInterval:
source[<DataSourceType>][1..]
uncertainty_time_intervalsReference:TimeInterval:
uncertainty[Numeric][1..]
notes_time_intervalsReference:TimeInterval:
notes[String][1..]

Verification Rules

TimeSeries within a DataSet shall all have TimeIntervals with the same starting and ending timestamps.

Publishing Rules

This data model does not consider the quality of the source data. That is, whether the data included in a given dataset are “correct” or “true” for a given location and time. It merely defines the structures for exchanging data and the judgment about the quality or appropriateness of data is left to the data publishers and users. Data providers using this model are encouraged to provide sources where possible.

Application Rules

None.