{
  "openapi": "3.0.3",
  "info": {
    "title": "ECMWF CLIMATOLOGY | a Weather Source API",
    "description": "**Description:**\n\nDaily and hourly climatological weather data from the ECMWF dataset (ERA5) for latitude/longitude points, ZIP/Postal Codes, Designated Market Areas, and OnPoint™ points.\n\nWeather Source APIs are built upon the [OnPoint™ Platform](https://www.pelmorex.com/en/products-and-solutions/weather-source/onpoint-weather-data-suite/) which ensures data that is gap-free, homogeneous, and ready for immediate analysis. We offer one of the highest resolution grids on the market, covering every landmass in the world and up to 200 miles offshore.\n\n**Authorization:**\n\nRequests are authorized by a header named `X-API-KEY` with a value of your API key. If you do not have a Weather Source API key [sign up for a free developer account](https://developer.weathersourceapis.com/account/sign-up/) to trial the data, or contact sales at [weathersource@pelmorex.com](mailto:weathersource@pelmorex.com) to explore the right subscription package for your business.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, your API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page. You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n",
    "termsOfService": "https://weathersource.com/company/legal/terms-of-service/",
    "contact": {
      "name": "Weather Source APIs",
      "url": "https://developer.weathersourceapis.com/",
      "email": "weathersource@pelmorex.com"
    },
    "version": "2.0.0"
  },
  "servers": [
    {
      "url": "https://ecmwfclimatology.weathersourceapis.com/v2"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "tags": [
    {
      "name": "points",
      "description": "Latitude/Longitude weather climatology"
    },
    {
      "name": "postcodes",
      "description": "Postcode weather climatology"
    },
    {
      "name": "dmas",
      "description": "Designated Market Area weather climatology"
    },
    {
      "name": "onpoints",
      "description": "OnPoint™ point weather climatology"
    }
  ],
  "paths": {
    "/points/{latitude},{longitude}/days/{date}": {
      "get": {
        "tags": [
          "points"
        ],
        "summary": "A day of weather climatology for a Latitude/Longitude point.",
        "description": "Returns a single day of climatological weather data for a Latitude/Longitude point.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "latitude",
            "in": "path",
            "description": "A latitude value between -90° and 90°.",
            "required": true,
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "float",
              "example": 38.8552
            }
          },
          {
            "name": "longitude",
            "in": "path",
            "description": "A longitude value between -180° (West) and 180° (East).",
            "required": true,
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "float",
              "example": -77.0513
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvrMin",
                  "cldCvrMinSd",
                  "cldCvrAvg",
                  "cldCvrAvgSd",
                  "cldCvrMax",
                  "cldCvrMaxSd",
                  "dewPtMin",
                  "dewPtMinSd",
                  "dewPtAvg",
                  "dewPtAvgSd",
                  "dewPtMax",
                  "dewPtMaxSd",
                  "feelsLikeMin",
                  "feelsLikeMinSd",
                  "feelsLikeAvg",
                  "feelsLikeAvgSd",
                  "feelsLikeMax",
                  "feelsLikeMaxSd",
                  "heatIndexMin",
                  "heatIndexMinSd",
                  "heatIndexAvg",
                  "heatIndexAvgSd",
                  "heatIndexMax",
                  "heatIndexMaxSd",
                  "mslPresMin",
                  "mslPresMinSd",
                  "mslPresAvg",
                  "mslPresAvgSd",
                  "mslPresMax",
                  "mslPresMaxSd",
                  "precip",
                  "precipSd",
                  "precip25p",
                  "precip50p",
                  "precip75p",
                  "precip90p",
                  "precipIqr",
                  "precipFreq",
                  "precipFreq0",
                  "precipFreq001To009",
                  "precipFreq010To024",
                  "precipFreq025To049",
                  "precipFreq050To099",
                  "precipFreq100To249",
                  "precipFreq250To499",
                  "precipFreq500Plus",
                  "radSolarMin",
                  "radSolarMinSd",
                  "radSolarAvg",
                  "radSolarAvgSd",
                  "radSolarMax",
                  "radSolarMaxSd",
                  "radSolarTot",
                  "radSolarTotSd",
                  "radSolarTot10p",
                  "radSolarTot50p",
                  "radSolarTot90p",
                  "radSolarDirectMin",
                  "radSolarDirectMinSd",
                  "radSolarDirectAvg",
                  "radSolarDirectAvgSd",
                  "radSolarDirectMax",
                  "radSolarDirectMaxSd",
                  "radSolarDirectTot",
                  "radSolarDirectTotSd",
                  "radSolarDirectTot10p",
                  "radSolarDirectTot50p",
                  "radSolarDirectTot90p",
                  "radSolarDirectPMin",
                  "radSolarDirectPMinSd",
                  "radSolarDirectPAvg",
                  "radSolarDirectPAvgSd",
                  "radSolarDirectPMax",
                  "radSolarDirectPMaxSd",
                  "radSolarDirectPTot",
                  "radSolarDirectPTotSd",
                  "radSolarDirectPTot10p",
                  "radSolarDirectPTot50p",
                  "radSolarDirectPTot90p",
                  "relHumMin",
                  "relHumMinSd",
                  "relHumAvg",
                  "relHumAvgSd",
                  "relHumMax",
                  "relHumMaxSd",
                  "sfcPresMin",
                  "sfcPresMinSd",
                  "sfcPresAvg",
                  "sfcPresAvgSd",
                  "sfcPresMax",
                  "sfcPresMaxSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfall25p",
                  "snowfall50p",
                  "snowfall75p",
                  "snowfall90p",
                  "snowfallIqr",
                  "snowfallFreq",
                  "snowfallFreq0",
                  "snowfallFreq001To009",
                  "snowfallFreq010To024",
                  "snowfallFreq025To049",
                  "snowfallFreq050To099",
                  "snowfallFreq100To149",
                  "snowfallFreq150To249",
                  "snowfallFreq250Plus",
                  "spcHumMin",
                  "spcHumMinSd",
                  "spcHumAvg",
                  "spcHumAvgSd",
                  "spcHumMax",
                  "spcHumMaxSd",
                  "tempAvg",
                  "tempAvgSd",
                  "tempAvg10p",
                  "tempAvg50p",
                  "tempAvg90p",
                  "tempMax",
                  "tempMaxSd",
                  "tempMax10p",
                  "tempMax50p",
                  "tempMax90p",
                  "tempMin",
                  "tempMinSd",
                  "tempMin10p",
                  "tempMin50p",
                  "tempMin90p",
                  "wetBulbMin",
                  "wetBulbMinSd",
                  "wetBulbAvg",
                  "wetBulbAvgSd",
                  "wetBulbMax",
                  "wetBulbMaxSd",
                  "windChillMin",
                  "windChillMinSd",
                  "windChillAvg",
                  "windChillAvgSd",
                  "windChillMax",
                  "windChillMaxSd",
                  "windDirAvg",
                  "windDir80mAvg",
                  "windDir100mAvg",
                  "windGustMax",
                  "windGustMaxSd",
                  "windSpdMin",
                  "windSpdMinSd",
                  "windSpdAvg",
                  "windSpdAvgSd",
                  "windSpdMax",
                  "windSpdMaxSd",
                  "windSpd80mMin",
                  "windSpd80mMinSd",
                  "windSpd80mAvg",
                  "windSpd80mAvgSd",
                  "windSpd80mMax",
                  "windSpd80mMaxSd",
                  "windSpd100mMin",
                  "windSpd100mMinSd",
                  "windSpd100mAvg",
                  "windSpd100mAvgSd",
                  "windSpd100mMax",
                  "windSpd100mMaxSd",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daily climatological weather response for a Latitude/Longitude point.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyPointDayObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/points/{latitude},{longitude}/days/{dateStart},{dateEnd}": {
      "get": {
        "tags": [
          "points"
        ],
        "summary": "A contiguous range of daily weather climatology for a Latitude/Longitude point.",
        "description": "Returns a contiguous range of daily climatological weather data for a Latitude/Longitude point. The temporal range provided must not exceed 1 year in duration.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "latitude",
            "in": "path",
            "description": "A latitude value between -90° and 90°.",
            "required": true,
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "float",
              "example": 38.8552
            }
          },
          {
            "name": "longitude",
            "in": "path",
            "description": "A longitude value between -180° (West) and 180° (East).",
            "required": true,
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "float",
              "example": -77.0513
            }
          },
          {
            "name": "dateStart",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value that must occur temporally before dateEnd.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "dateEnd",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value that must occur temporally after dateStart.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvrMin",
                  "cldCvrMinSd",
                  "cldCvrAvg",
                  "cldCvrAvgSd",
                  "cldCvrMax",
                  "cldCvrMaxSd",
                  "dewPtMin",
                  "dewPtMinSd",
                  "dewPtAvg",
                  "dewPtAvgSd",
                  "dewPtMax",
                  "dewPtMaxSd",
                  "feelsLikeMin",
                  "feelsLikeMinSd",
                  "feelsLikeAvg",
                  "feelsLikeAvgSd",
                  "feelsLikeMax",
                  "feelsLikeMaxSd",
                  "heatIndexMin",
                  "heatIndexMinSd",
                  "heatIndexAvg",
                  "heatIndexAvgSd",
                  "heatIndexMax",
                  "heatIndexMaxSd",
                  "mslPresMin",
                  "mslPresMinSd",
                  "mslPresAvg",
                  "mslPresAvgSd",
                  "mslPresMax",
                  "mslPresMaxSd",
                  "precip",
                  "precipSd",
                  "precip25p",
                  "precip50p",
                  "precip75p",
                  "precip90p",
                  "precipIqr",
                  "precipFreq",
                  "precipFreq0",
                  "precipFreq001To009",
                  "precipFreq010To024",
                  "precipFreq025To049",
                  "precipFreq050To099",
                  "precipFreq100To249",
                  "precipFreq250To499",
                  "precipFreq500Plus",
                  "radSolarMin",
                  "radSolarMinSd",
                  "radSolarAvg",
                  "radSolarAvgSd",
                  "radSolarMax",
                  "radSolarMaxSd",
                  "radSolarTot",
                  "radSolarTotSd",
                  "radSolarTot10p",
                  "radSolarTot50p",
                  "radSolarTot90p",
                  "radSolarDirectMin",
                  "radSolarDirectMinSd",
                  "radSolarDirectAvg",
                  "radSolarDirectAvgSd",
                  "radSolarDirectMax",
                  "radSolarDirectMaxSd",
                  "radSolarDirectTot",
                  "radSolarDirectTotSd",
                  "radSolarDirectTot10p",
                  "radSolarDirectTot50p",
                  "radSolarDirectTot90p",
                  "radSolarDirectPMin",
                  "radSolarDirectPMinSd",
                  "radSolarDirectPAvg",
                  "radSolarDirectPAvgSd",
                  "radSolarDirectPMax",
                  "radSolarDirectPMaxSd",
                  "radSolarDirectPTot",
                  "radSolarDirectPTotSd",
                  "radSolarDirectPTot10p",
                  "radSolarDirectPTot50p",
                  "radSolarDirectPTot90p",
                  "relHumMin",
                  "relHumMinSd",
                  "relHumAvg",
                  "relHumAvgSd",
                  "relHumMax",
                  "relHumMaxSd",
                  "sfcPresMin",
                  "sfcPresMinSd",
                  "sfcPresAvg",
                  "sfcPresAvgSd",
                  "sfcPresMax",
                  "sfcPresMaxSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfall25p",
                  "snowfall50p",
                  "snowfall75p",
                  "snowfall90p",
                  "snowfallIqr",
                  "snowfallFreq",
                  "snowfallFreq0",
                  "snowfallFreq001To009",
                  "snowfallFreq010To024",
                  "snowfallFreq025To049",
                  "snowfallFreq050To099",
                  "snowfallFreq100To149",
                  "snowfallFreq150To249",
                  "snowfallFreq250Plus",
                  "spcHumMin",
                  "spcHumMinSd",
                  "spcHumAvg",
                  "spcHumAvgSd",
                  "spcHumMax",
                  "spcHumMaxSd",
                  "tempAvg",
                  "tempAvgSd",
                  "tempAvg10p",
                  "tempAvg50p",
                  "tempAvg90p",
                  "tempMax",
                  "tempMaxSd",
                  "tempMax10p",
                  "tempMax50p",
                  "tempMax90p",
                  "tempMin",
                  "tempMinSd",
                  "tempMin10p",
                  "tempMin50p",
                  "tempMin90p",
                  "wetBulbMin",
                  "wetBulbMinSd",
                  "wetBulbAvg",
                  "wetBulbAvgSd",
                  "wetBulbMax",
                  "wetBulbMaxSd",
                  "windChillMin",
                  "windChillMinSd",
                  "windChillAvg",
                  "windChillAvgSd",
                  "windChillMax",
                  "windChillMaxSd",
                  "windDirAvg",
                  "windDir80mAvg",
                  "windDir100mAvg",
                  "windGustMax",
                  "windGustMaxSd",
                  "windSpdMin",
                  "windSpdMinSd",
                  "windSpdAvg",
                  "windSpdAvgSd",
                  "windSpdMax",
                  "windSpdMaxSd",
                  "windSpd80mMin",
                  "windSpd80mMinSd",
                  "windSpd80mAvg",
                  "windSpd80mAvgSd",
                  "windSpd80mMax",
                  "windSpd80mMaxSd",
                  "windSpd100mMin",
                  "windSpd100mMinSd",
                  "windSpd100mAvg",
                  "windSpd100mAvgSd",
                  "windSpd100mMax",
                  "windSpd100mMaxSd",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daily climatological weather response for a Latitude/Longitude point.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyPointDayObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/points/{latitude},{longitude}/hours/{timestamp}": {
      "get": {
        "tags": [
          "points"
        ],
        "summary": "An hour of weather climatology for a Latitude/Longitude point.",
        "description": "Returns a single hour of climatological weather data for a Latitude/Longitude point.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "latitude",
            "in": "path",
            "description": "A latitude value between -90° and 90°.",
            "required": true,
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "float",
              "example": 38.8552
            }
          },
          {
            "name": "longitude",
            "in": "path",
            "description": "A longitude value between -180° (West) and 180° (East).",
            "required": true,
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "float",
              "example": -77.0513
            }
          },
          {
            "name": "timestamp",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvr",
                  "cldCvrSd",
                  "dewPt",
                  "dewPtSd",
                  "feelsLike",
                  "feelsLikeSd",
                  "heatIndex",
                  "heatIndexSd",
                  "mslPres",
                  "mslPresSd",
                  "precip",
                  "precipSd",
                  "precipFreq",
                  "radSolar",
                  "radSolarSd",
                  "radSolar10p",
                  "radSolar50p",
                  "radSolar90p",
                  "radSolarDirect",
                  "radSolarDirectSd",
                  "radSolarDirectP",
                  "radSolarDirectPSd",
                  "relHum",
                  "relHumSd",
                  "sfcPres",
                  "sfcPresSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfallFreq",
                  "spcHum",
                  "spcHumSd",
                  "temp",
                  "tempSd",
                  "temp10p",
                  "temp50p",
                  "temp90p",
                  "wetBulb",
                  "wetBulbSd",
                  "windChill",
                  "windChillSd",
                  "windDir",
                  "windDir80m",
                  "windDir100m",
                  "windGust",
                  "windGustSd",
                  "windSpd",
                  "windSpdSd",
                  "windVecSpd80m",
                  "windVecSpd100m",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hourly climatological weather response for a Latitude/Longitude point.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyPointHourObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/points/{latitude},{longitude}/hours/{timestampStart},{timestampEnd}": {
      "get": {
        "tags": [
          "points"
        ],
        "summary": "A contiguous range of hourly weather climatology for a Latitude/Longitude point.",
        "description": "Returns a contiguous range of hourly climatological weather data for a Latitude/Longitude point. The temporal range provided must not exceed 1 year in duration.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "latitude",
            "in": "path",
            "description": "A latitude value between -90° and 90°.",
            "required": true,
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "float",
              "example": 38.8552
            }
          },
          {
            "name": "longitude",
            "in": "path",
            "description": "A longitude value between -180° (West) and 180° (East).",
            "required": true,
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "float",
              "example": -77.0513
            }
          },
          {
            "name": "timestampStart",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally before timestampEnd. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "timestampEnd",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally after timestampStart. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvr",
                  "cldCvrSd",
                  "dewPt",
                  "dewPtSd",
                  "feelsLike",
                  "feelsLikeSd",
                  "heatIndex",
                  "heatIndexSd",
                  "mslPres",
                  "mslPresSd",
                  "precip",
                  "precipSd",
                  "precipFreq",
                  "radSolar",
                  "radSolarSd",
                  "radSolar10p",
                  "radSolar50p",
                  "radSolar90p",
                  "radSolarDirect",
                  "radSolarDirectSd",
                  "radSolarDirectP",
                  "radSolarDirectPSd",
                  "relHum",
                  "relHumSd",
                  "sfcPres",
                  "sfcPresSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfallFreq",
                  "spcHum",
                  "spcHumSd",
                  "temp",
                  "tempSd",
                  "temp10p",
                  "temp50p",
                  "temp90p",
                  "wetBulb",
                  "wetBulbSd",
                  "windChill",
                  "windChillSd",
                  "windDir",
                  "windDir80m",
                  "windDir100m",
                  "windGust",
                  "windGustSd",
                  "windSpd",
                  "windSpdSd",
                  "windVecSpd80m",
                  "windVecSpd100m",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hourly climatological weather response for a Latitude/Longitude point.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyPointHourObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/postcodes/{postcode},{countryCode}/days/{date}": {
      "get": {
        "tags": [
          "postcodes"
        ],
        "summary": "A day of weather climatology for a postcode.",
        "description": "Returns a single day of climatological weather data for a postcode.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "postcode",
            "in": "path",
            "description": "A postcode string.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "22222"
            }
          },
          {
            "name": "countryCode",
            "in": "path",
            "description": "An uppercase 2-character [ISO 3166-1 Alpha-2 country code](https://developer.weathersourceapis.com/apis/countries-with-postal-code-support/).",
            "required": true,
            "schema": {
              "pattern": "^([A-Z]){2}$",
              "type": "string",
              "example": "US"
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvrMin",
                  "cldCvrMinSd",
                  "cldCvrAvg",
                  "cldCvrAvgSd",
                  "cldCvrMax",
                  "cldCvrMaxSd",
                  "dewPtMin",
                  "dewPtMinSd",
                  "dewPtAvg",
                  "dewPtAvgSd",
                  "dewPtMax",
                  "dewPtMaxSd",
                  "feelsLikeMin",
                  "feelsLikeMinSd",
                  "feelsLikeAvg",
                  "feelsLikeAvgSd",
                  "feelsLikeMax",
                  "feelsLikeMaxSd",
                  "heatIndexMin",
                  "heatIndexMinSd",
                  "heatIndexAvg",
                  "heatIndexAvgSd",
                  "heatIndexMax",
                  "heatIndexMaxSd",
                  "mslPresMin",
                  "mslPresMinSd",
                  "mslPresAvg",
                  "mslPresAvgSd",
                  "mslPresMax",
                  "mslPresMaxSd",
                  "precip",
                  "precipSd",
                  "precip25p",
                  "precip50p",
                  "precip75p",
                  "precip90p",
                  "precipIqr",
                  "precipFreq",
                  "precipFreq0",
                  "precipFreq001To009",
                  "precipFreq010To024",
                  "precipFreq025To049",
                  "precipFreq050To099",
                  "precipFreq100To249",
                  "precipFreq250To499",
                  "precipFreq500Plus",
                  "radSolarMin",
                  "radSolarMinSd",
                  "radSolarAvg",
                  "radSolarAvgSd",
                  "radSolarMax",
                  "radSolarMaxSd",
                  "radSolarTot",
                  "radSolarTotSd",
                  "radSolarTot10p",
                  "radSolarTot50p",
                  "radSolarTot90p",
                  "radSolarDirectMin",
                  "radSolarDirectMinSd",
                  "radSolarDirectAvg",
                  "radSolarDirectAvgSd",
                  "radSolarDirectMax",
                  "radSolarDirectMaxSd",
                  "radSolarDirectTot",
                  "radSolarDirectTotSd",
                  "radSolarDirectTot10p",
                  "radSolarDirectTot50p",
                  "radSolarDirectTot90p",
                  "radSolarDirectPMin",
                  "radSolarDirectPMinSd",
                  "radSolarDirectPAvg",
                  "radSolarDirectPAvgSd",
                  "radSolarDirectPMax",
                  "radSolarDirectPMaxSd",
                  "radSolarDirectPTot",
                  "radSolarDirectPTotSd",
                  "radSolarDirectPTot10p",
                  "radSolarDirectPTot50p",
                  "radSolarDirectPTot90p",
                  "relHumMin",
                  "relHumMinSd",
                  "relHumAvg",
                  "relHumAvgSd",
                  "relHumMax",
                  "relHumMaxSd",
                  "sfcPresMin",
                  "sfcPresMinSd",
                  "sfcPresAvg",
                  "sfcPresAvgSd",
                  "sfcPresMax",
                  "sfcPresMaxSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfall25p",
                  "snowfall50p",
                  "snowfall75p",
                  "snowfall90p",
                  "snowfallIqr",
                  "snowfallFreq",
                  "snowfallFreq0",
                  "snowfallFreq001To009",
                  "snowfallFreq010To024",
                  "snowfallFreq025To049",
                  "snowfallFreq050To099",
                  "snowfallFreq100To149",
                  "snowfallFreq150To249",
                  "snowfallFreq250Plus",
                  "spcHumMin",
                  "spcHumMinSd",
                  "spcHumAvg",
                  "spcHumAvgSd",
                  "spcHumMax",
                  "spcHumMaxSd",
                  "tempAvg",
                  "tempAvgSd",
                  "tempAvg10p",
                  "tempAvg50p",
                  "tempAvg90p",
                  "tempMax",
                  "tempMaxSd",
                  "tempMax10p",
                  "tempMax50p",
                  "tempMax90p",
                  "tempMin",
                  "tempMinSd",
                  "tempMin10p",
                  "tempMin50p",
                  "tempMin90p",
                  "wetBulbMin",
                  "wetBulbMinSd",
                  "wetBulbAvg",
                  "wetBulbAvgSd",
                  "wetBulbMax",
                  "wetBulbMaxSd",
                  "windChillMin",
                  "windChillMinSd",
                  "windChillAvg",
                  "windChillAvgSd",
                  "windChillMax",
                  "windChillMaxSd",
                  "windDirAvg",
                  "windDir80mAvg",
                  "windDir100mAvg",
                  "windGustMax",
                  "windGustMaxSd",
                  "windSpdMin",
                  "windSpdMinSd",
                  "windSpdAvg",
                  "windSpdAvgSd",
                  "windSpdMax",
                  "windSpdMaxSd",
                  "windSpd80mMin",
                  "windSpd80mMinSd",
                  "windSpd80mAvg",
                  "windSpd80mAvgSd",
                  "windSpd80mMax",
                  "windSpd80mMaxSd",
                  "windSpd100mMin",
                  "windSpd100mMinSd",
                  "windSpd100mAvg",
                  "windSpd100mAvgSd",
                  "windSpd100mMax",
                  "windSpd100mMaxSd",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daily climatological weather response for a postcode.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyPostcodeDayObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/postcodes/{postcode},{countryCode}/days/{dateStart},{dateEnd}": {
      "get": {
        "tags": [
          "postcodes"
        ],
        "summary": "A contiguous range of daily weather climatology for a postcode.",
        "description": "Returns a contiguous range of daily climatological weather data for a postcode. The temporal range provided must not exceed 1 year in duration.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "postcode",
            "in": "path",
            "description": "A postcode string.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "22222"
            }
          },
          {
            "name": "countryCode",
            "in": "path",
            "description": "An uppercase 2-character [ISO 3166-1 Alpha-2 country code](https://developer.weathersourceapis.com/apis/countries-with-postal-code-support/).",
            "required": true,
            "schema": {
              "pattern": "^([A-Z]){2}$",
              "type": "string",
              "example": "US"
            }
          },
          {
            "name": "dateStart",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value that must occur temporally before dateEnd.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "dateEnd",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value that must occur temporally after dateStart.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvrMin",
                  "cldCvrMinSd",
                  "cldCvrAvg",
                  "cldCvrAvgSd",
                  "cldCvrMax",
                  "cldCvrMaxSd",
                  "dewPtMin",
                  "dewPtMinSd",
                  "dewPtAvg",
                  "dewPtAvgSd",
                  "dewPtMax",
                  "dewPtMaxSd",
                  "feelsLikeMin",
                  "feelsLikeMinSd",
                  "feelsLikeAvg",
                  "feelsLikeAvgSd",
                  "feelsLikeMax",
                  "feelsLikeMaxSd",
                  "heatIndexMin",
                  "heatIndexMinSd",
                  "heatIndexAvg",
                  "heatIndexAvgSd",
                  "heatIndexMax",
                  "heatIndexMaxSd",
                  "mslPresMin",
                  "mslPresMinSd",
                  "mslPresAvg",
                  "mslPresAvgSd",
                  "mslPresMax",
                  "mslPresMaxSd",
                  "precip",
                  "precipSd",
                  "precip25p",
                  "precip50p",
                  "precip75p",
                  "precip90p",
                  "precipIqr",
                  "precipFreq",
                  "precipFreq0",
                  "precipFreq001To009",
                  "precipFreq010To024",
                  "precipFreq025To049",
                  "precipFreq050To099",
                  "precipFreq100To249",
                  "precipFreq250To499",
                  "precipFreq500Plus",
                  "radSolarMin",
                  "radSolarMinSd",
                  "radSolarAvg",
                  "radSolarAvgSd",
                  "radSolarMax",
                  "radSolarMaxSd",
                  "radSolarTot",
                  "radSolarTotSd",
                  "radSolarTot10p",
                  "radSolarTot50p",
                  "radSolarTot90p",
                  "radSolarDirectMin",
                  "radSolarDirectMinSd",
                  "radSolarDirectAvg",
                  "radSolarDirectAvgSd",
                  "radSolarDirectMax",
                  "radSolarDirectMaxSd",
                  "radSolarDirectTot",
                  "radSolarDirectTotSd",
                  "radSolarDirectTot10p",
                  "radSolarDirectTot50p",
                  "radSolarDirectTot90p",
                  "radSolarDirectPMin",
                  "radSolarDirectPMinSd",
                  "radSolarDirectPAvg",
                  "radSolarDirectPAvgSd",
                  "radSolarDirectPMax",
                  "radSolarDirectPMaxSd",
                  "radSolarDirectPTot",
                  "radSolarDirectPTotSd",
                  "radSolarDirectPTot10p",
                  "radSolarDirectPTot50p",
                  "radSolarDirectPTot90p",
                  "relHumMin",
                  "relHumMinSd",
                  "relHumAvg",
                  "relHumAvgSd",
                  "relHumMax",
                  "relHumMaxSd",
                  "sfcPresMin",
                  "sfcPresMinSd",
                  "sfcPresAvg",
                  "sfcPresAvgSd",
                  "sfcPresMax",
                  "sfcPresMaxSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfall25p",
                  "snowfall50p",
                  "snowfall75p",
                  "snowfall90p",
                  "snowfallIqr",
                  "snowfallFreq",
                  "snowfallFreq0",
                  "snowfallFreq001To009",
                  "snowfallFreq010To024",
                  "snowfallFreq025To049",
                  "snowfallFreq050To099",
                  "snowfallFreq100To149",
                  "snowfallFreq150To249",
                  "snowfallFreq250Plus",
                  "spcHumMin",
                  "spcHumMinSd",
                  "spcHumAvg",
                  "spcHumAvgSd",
                  "spcHumMax",
                  "spcHumMaxSd",
                  "tempAvg",
                  "tempAvgSd",
                  "tempAvg10p",
                  "tempAvg50p",
                  "tempAvg90p",
                  "tempMax",
                  "tempMaxSd",
                  "tempMax10p",
                  "tempMax50p",
                  "tempMax90p",
                  "tempMin",
                  "tempMinSd",
                  "tempMin10p",
                  "tempMin50p",
                  "tempMin90p",
                  "wetBulbMin",
                  "wetBulbMinSd",
                  "wetBulbAvg",
                  "wetBulbAvgSd",
                  "wetBulbMax",
                  "wetBulbMaxSd",
                  "windChillMin",
                  "windChillMinSd",
                  "windChillAvg",
                  "windChillAvgSd",
                  "windChillMax",
                  "windChillMaxSd",
                  "windDirAvg",
                  "windDir80mAvg",
                  "windDir100mAvg",
                  "windGustMax",
                  "windGustMaxSd",
                  "windSpdMin",
                  "windSpdMinSd",
                  "windSpdAvg",
                  "windSpdAvgSd",
                  "windSpdMax",
                  "windSpdMaxSd",
                  "windSpd80mMin",
                  "windSpd80mMinSd",
                  "windSpd80mAvg",
                  "windSpd80mAvgSd",
                  "windSpd80mMax",
                  "windSpd80mMaxSd",
                  "windSpd100mMin",
                  "windSpd100mMinSd",
                  "windSpd100mAvg",
                  "windSpd100mAvgSd",
                  "windSpd100mMax",
                  "windSpd100mMaxSd",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daily climatological weather response for a postcode.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyPostcodeDayObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/postcodes/{postcode},{countryCode}/hours/{timestamp}": {
      "get": {
        "tags": [
          "postcodes"
        ],
        "summary": "An hour of weather climatology for a postcode.",
        "description": "Returns a single hour of climatological weather data for a postcode.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "postcode",
            "in": "path",
            "description": "A postcode string.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "22222"
            }
          },
          {
            "name": "countryCode",
            "in": "path",
            "description": "An uppercase 2-character [ISO 3166-1 Alpha-2 country code](https://developer.weathersourceapis.com/apis/countries-with-postal-code-support/).",
            "required": true,
            "schema": {
              "pattern": "^([A-Z]){2}$",
              "type": "string",
              "example": "US"
            }
          },
          {
            "name": "timestamp",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvr",
                  "cldCvrSd",
                  "dewPt",
                  "dewPtSd",
                  "feelsLike",
                  "feelsLikeSd",
                  "heatIndex",
                  "heatIndexSd",
                  "mslPres",
                  "mslPresSd",
                  "precip",
                  "precipSd",
                  "precipFreq",
                  "radSolar",
                  "radSolarSd",
                  "radSolar10p",
                  "radSolar50p",
                  "radSolar90p",
                  "radSolarDirect",
                  "radSolarDirectSd",
                  "radSolarDirectP",
                  "radSolarDirectPSd",
                  "relHum",
                  "relHumSd",
                  "sfcPres",
                  "sfcPresSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfallFreq",
                  "spcHum",
                  "spcHumSd",
                  "temp",
                  "tempSd",
                  "temp10p",
                  "temp50p",
                  "temp90p",
                  "wetBulb",
                  "wetBulbSd",
                  "windChill",
                  "windChillSd",
                  "windDir",
                  "windDir80m",
                  "windDir100m",
                  "windGust",
                  "windGustSd",
                  "windSpd",
                  "windSpdSd",
                  "windVecSpd80m",
                  "windVecSpd100m",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hourly climatological weather response for a postcode.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyPostcodeHourObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/postcodes/{postcode},{countryCode}/hours/{timestampStart},{timestampEnd}": {
      "get": {
        "tags": [
          "postcodes"
        ],
        "summary": "A contiguous range of hourly weather climatology for a postcode.",
        "description": "Returns a contiguous range of hourly climatological weather data for a postcode. The temporal range provided must not exceed 1 year in duration.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "postcode",
            "in": "path",
            "description": "A postcode string.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "22222"
            }
          },
          {
            "name": "countryCode",
            "in": "path",
            "description": "An uppercase 2-character [ISO 3166-1 Alpha-2 country code](https://developer.weathersourceapis.com/apis/countries-with-postal-code-support/).",
            "required": true,
            "schema": {
              "pattern": "^([A-Z]){2}$",
              "type": "string",
              "example": "US"
            }
          },
          {
            "name": "timestampStart",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally before timestampEnd. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "timestampEnd",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally after timestampStart. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvr",
                  "cldCvrSd",
                  "dewPt",
                  "dewPtSd",
                  "feelsLike",
                  "feelsLikeSd",
                  "heatIndex",
                  "heatIndexSd",
                  "mslPres",
                  "mslPresSd",
                  "precip",
                  "precipSd",
                  "precipFreq",
                  "radSolar",
                  "radSolarSd",
                  "radSolar10p",
                  "radSolar50p",
                  "radSolar90p",
                  "radSolarDirect",
                  "radSolarDirectSd",
                  "radSolarDirectP",
                  "radSolarDirectPSd",
                  "relHum",
                  "relHumSd",
                  "sfcPres",
                  "sfcPresSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfallFreq",
                  "spcHum",
                  "spcHumSd",
                  "temp",
                  "tempSd",
                  "temp10p",
                  "temp50p",
                  "temp90p",
                  "wetBulb",
                  "wetBulbSd",
                  "windChill",
                  "windChillSd",
                  "windDir",
                  "windDir80m",
                  "windDir100m",
                  "windGust",
                  "windGustSd",
                  "windSpd",
                  "windSpdSd",
                  "windVecSpd80m",
                  "windVecSpd100m",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hourly climatological weather response for a postcode.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyPostcodeHourObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/dmas/{dmaId}/days/{date}": {
      "get": {
        "tags": [
          "dmas"
        ],
        "summary": "A day of weather climatology for a DMA.",
        "description": "Returns a single day of climatological weather data for a Designated Market Area.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "dmaId",
            "in": "path",
            "description": "A [Designated Market Area ID](https://developer.weathersourceapis.com/apis/supported-dmas/).",
            "required": true,
            "schema": {
              "type": "integer",
              "example": 529
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvrMin",
                  "cldCvrMinSd",
                  "cldCvrAvg",
                  "cldCvrAvgSd",
                  "cldCvrMax",
                  "cldCvrMaxSd",
                  "dewPtMin",
                  "dewPtMinSd",
                  "dewPtAvg",
                  "dewPtAvgSd",
                  "dewPtMax",
                  "dewPtMaxSd",
                  "feelsLikeMin",
                  "feelsLikeMinSd",
                  "feelsLikeAvg",
                  "feelsLikeAvgSd",
                  "feelsLikeMax",
                  "feelsLikeMaxSd",
                  "heatIndexMin",
                  "heatIndexMinSd",
                  "heatIndexAvg",
                  "heatIndexAvgSd",
                  "heatIndexMax",
                  "heatIndexMaxSd",
                  "mslPresMin",
                  "mslPresMinSd",
                  "mslPresAvg",
                  "mslPresAvgSd",
                  "mslPresMax",
                  "mslPresMaxSd",
                  "precip",
                  "precipSd",
                  "precip25p",
                  "precip50p",
                  "precip75p",
                  "precip90p",
                  "precipIqr",
                  "precipFreq",
                  "precipFreq0",
                  "precipFreq001To009",
                  "precipFreq010To024",
                  "precipFreq025To049",
                  "precipFreq050To099",
                  "precipFreq100To249",
                  "precipFreq250To499",
                  "precipFreq500Plus",
                  "radSolarMin",
                  "radSolarMinSd",
                  "radSolarAvg",
                  "radSolarAvgSd",
                  "radSolarMax",
                  "radSolarMaxSd",
                  "radSolarTot",
                  "radSolarTotSd",
                  "radSolarTot10p",
                  "radSolarTot50p",
                  "radSolarTot90p",
                  "radSolarDirectMin",
                  "radSolarDirectMinSd",
                  "radSolarDirectAvg",
                  "radSolarDirectAvgSd",
                  "radSolarDirectMax",
                  "radSolarDirectMaxSd",
                  "radSolarDirectTot",
                  "radSolarDirectTotSd",
                  "radSolarDirectTot10p",
                  "radSolarDirectTot50p",
                  "radSolarDirectTot90p",
                  "radSolarDirectPMin",
                  "radSolarDirectPMinSd",
                  "radSolarDirectPAvg",
                  "radSolarDirectPAvgSd",
                  "radSolarDirectPMax",
                  "radSolarDirectPMaxSd",
                  "radSolarDirectPTot",
                  "radSolarDirectPTotSd",
                  "radSolarDirectPTot10p",
                  "radSolarDirectPTot50p",
                  "radSolarDirectPTot90p",
                  "relHumMin",
                  "relHumMinSd",
                  "relHumAvg",
                  "relHumAvgSd",
                  "relHumMax",
                  "relHumMaxSd",
                  "sfcPresMin",
                  "sfcPresMinSd",
                  "sfcPresAvg",
                  "sfcPresAvgSd",
                  "sfcPresMax",
                  "sfcPresMaxSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfall25p",
                  "snowfall50p",
                  "snowfall75p",
                  "snowfall90p",
                  "snowfallIqr",
                  "snowfallFreq",
                  "snowfallFreq0",
                  "snowfallFreq001To009",
                  "snowfallFreq010To024",
                  "snowfallFreq025To049",
                  "snowfallFreq050To099",
                  "snowfallFreq100To149",
                  "snowfallFreq150To249",
                  "snowfallFreq250Plus",
                  "spcHumMin",
                  "spcHumMinSd",
                  "spcHumAvg",
                  "spcHumAvgSd",
                  "spcHumMax",
                  "spcHumMaxSd",
                  "tempAvg",
                  "tempAvgSd",
                  "tempAvg10p",
                  "tempAvg50p",
                  "tempAvg90p",
                  "tempMax",
                  "tempMaxSd",
                  "tempMax10p",
                  "tempMax50p",
                  "tempMax90p",
                  "tempMin",
                  "tempMinSd",
                  "tempMin10p",
                  "tempMin50p",
                  "tempMin90p",
                  "wetBulbMin",
                  "wetBulbMinSd",
                  "wetBulbAvg",
                  "wetBulbAvgSd",
                  "wetBulbMax",
                  "wetBulbMaxSd",
                  "windChillMin",
                  "windChillMinSd",
                  "windChillAvg",
                  "windChillAvgSd",
                  "windChillMax",
                  "windChillMaxSd",
                  "windDirAvg",
                  "windDir80mAvg",
                  "windDir100mAvg",
                  "windGustMax",
                  "windGustMaxSd",
                  "windSpdMin",
                  "windSpdMinSd",
                  "windSpdAvg",
                  "windSpdAvgSd",
                  "windSpdMax",
                  "windSpdMaxSd",
                  "windSpd80mMin",
                  "windSpd80mMinSd",
                  "windSpd80mAvg",
                  "windSpd80mAvgSd",
                  "windSpd80mMax",
                  "windSpd80mMaxSd",
                  "windSpd100mMin",
                  "windSpd100mMinSd",
                  "windSpd100mAvg",
                  "windSpd100mAvgSd",
                  "windSpd100mMax",
                  "windSpd100mMaxSd",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daily climatological weather response for a Designated Market Area.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyDmaDayObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/dmas/{dmaId}/days/{dateStart},{dateEnd}": {
      "get": {
        "tags": [
          "dmas"
        ],
        "summary": "A contiguous range of daily weather climatology for a DMA.",
        "description": "Returns a contiguous range of daily climatological weather data for a Designated Market Area. The temporal range provided must not exceed 1 year in duration.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "dmaId",
            "in": "path",
            "description": "A [Designated Market Area ID](https://developer.weathersourceapis.com/apis/supported-dmas/).",
            "required": true,
            "schema": {
              "type": "integer",
              "example": 529
            }
          },
          {
            "name": "dateStart",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value that must occur temporally before dateEnd.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "dateEnd",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value that must occur temporally after dateStart.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvrMin",
                  "cldCvrMinSd",
                  "cldCvrAvg",
                  "cldCvrAvgSd",
                  "cldCvrMax",
                  "cldCvrMaxSd",
                  "dewPtMin",
                  "dewPtMinSd",
                  "dewPtAvg",
                  "dewPtAvgSd",
                  "dewPtMax",
                  "dewPtMaxSd",
                  "feelsLikeMin",
                  "feelsLikeMinSd",
                  "feelsLikeAvg",
                  "feelsLikeAvgSd",
                  "feelsLikeMax",
                  "feelsLikeMaxSd",
                  "heatIndexMin",
                  "heatIndexMinSd",
                  "heatIndexAvg",
                  "heatIndexAvgSd",
                  "heatIndexMax",
                  "heatIndexMaxSd",
                  "mslPresMin",
                  "mslPresMinSd",
                  "mslPresAvg",
                  "mslPresAvgSd",
                  "mslPresMax",
                  "mslPresMaxSd",
                  "precip",
                  "precipSd",
                  "precip25p",
                  "precip50p",
                  "precip75p",
                  "precip90p",
                  "precipIqr",
                  "precipFreq",
                  "precipFreq0",
                  "precipFreq001To009",
                  "precipFreq010To024",
                  "precipFreq025To049",
                  "precipFreq050To099",
                  "precipFreq100To249",
                  "precipFreq250To499",
                  "precipFreq500Plus",
                  "radSolarMin",
                  "radSolarMinSd",
                  "radSolarAvg",
                  "radSolarAvgSd",
                  "radSolarMax",
                  "radSolarMaxSd",
                  "radSolarTot",
                  "radSolarTotSd",
                  "radSolarTot10p",
                  "radSolarTot50p",
                  "radSolarTot90p",
                  "radSolarDirectMin",
                  "radSolarDirectMinSd",
                  "radSolarDirectAvg",
                  "radSolarDirectAvgSd",
                  "radSolarDirectMax",
                  "radSolarDirectMaxSd",
                  "radSolarDirectTot",
                  "radSolarDirectTotSd",
                  "radSolarDirectTot10p",
                  "radSolarDirectTot50p",
                  "radSolarDirectTot90p",
                  "radSolarDirectPMin",
                  "radSolarDirectPMinSd",
                  "radSolarDirectPAvg",
                  "radSolarDirectPAvgSd",
                  "radSolarDirectPMax",
                  "radSolarDirectPMaxSd",
                  "radSolarDirectPTot",
                  "radSolarDirectPTotSd",
                  "radSolarDirectPTot10p",
                  "radSolarDirectPTot50p",
                  "radSolarDirectPTot90p",
                  "relHumMin",
                  "relHumMinSd",
                  "relHumAvg",
                  "relHumAvgSd",
                  "relHumMax",
                  "relHumMaxSd",
                  "sfcPresMin",
                  "sfcPresMinSd",
                  "sfcPresAvg",
                  "sfcPresAvgSd",
                  "sfcPresMax",
                  "sfcPresMaxSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfall25p",
                  "snowfall50p",
                  "snowfall75p",
                  "snowfall90p",
                  "snowfallIqr",
                  "snowfallFreq",
                  "snowfallFreq0",
                  "snowfallFreq001To009",
                  "snowfallFreq010To024",
                  "snowfallFreq025To049",
                  "snowfallFreq050To099",
                  "snowfallFreq100To149",
                  "snowfallFreq150To249",
                  "snowfallFreq250Plus",
                  "spcHumMin",
                  "spcHumMinSd",
                  "spcHumAvg",
                  "spcHumAvgSd",
                  "spcHumMax",
                  "spcHumMaxSd",
                  "tempAvg",
                  "tempAvgSd",
                  "tempAvg10p",
                  "tempAvg50p",
                  "tempAvg90p",
                  "tempMax",
                  "tempMaxSd",
                  "tempMax10p",
                  "tempMax50p",
                  "tempMax90p",
                  "tempMin",
                  "tempMinSd",
                  "tempMin10p",
                  "tempMin50p",
                  "tempMin90p",
                  "wetBulbMin",
                  "wetBulbMinSd",
                  "wetBulbAvg",
                  "wetBulbAvgSd",
                  "wetBulbMax",
                  "wetBulbMaxSd",
                  "windChillMin",
                  "windChillMinSd",
                  "windChillAvg",
                  "windChillAvgSd",
                  "windChillMax",
                  "windChillMaxSd",
                  "windDirAvg",
                  "windDir80mAvg",
                  "windDir100mAvg",
                  "windGustMax",
                  "windGustMaxSd",
                  "windSpdMin",
                  "windSpdMinSd",
                  "windSpdAvg",
                  "windSpdAvgSd",
                  "windSpdMax",
                  "windSpdMaxSd",
                  "windSpd80mMin",
                  "windSpd80mMinSd",
                  "windSpd80mAvg",
                  "windSpd80mAvgSd",
                  "windSpd80mMax",
                  "windSpd80mMaxSd",
                  "windSpd100mMin",
                  "windSpd100mMinSd",
                  "windSpd100mAvg",
                  "windSpd100mAvgSd",
                  "windSpd100mMax",
                  "windSpd100mMaxSd",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daily climatological weather response for a Designated Market Area.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyDmaDayObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/dmas/{dmaId}/hours/{timestamp}": {
      "get": {
        "tags": [
          "dmas"
        ],
        "summary": "An hour of weather climatology for a DMA",
        "description": "Returns a single hour of climatological weather data for a Designated Market Area.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "dmaId",
            "in": "path",
            "description": "A [Designated Market Area ID](https://developer.weathersourceapis.com/apis/supported-dmas/).",
            "required": true,
            "schema": {
              "type": "integer",
              "example": 529
            }
          },
          {
            "name": "timestamp",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvr",
                  "cldCvrSd",
                  "dewPt",
                  "dewPtSd",
                  "feelsLike",
                  "feelsLikeSd",
                  "heatIndex",
                  "heatIndexSd",
                  "mslPres",
                  "mslPresSd",
                  "precip",
                  "precipSd",
                  "precipFreq",
                  "radSolar",
                  "radSolarSd",
                  "radSolar10p",
                  "radSolar50p",
                  "radSolar90p",
                  "radSolarDirect",
                  "radSolarDirectSd",
                  "radSolarDirectP",
                  "radSolarDirectPSd",
                  "relHum",
                  "relHumSd",
                  "sfcPres",
                  "sfcPresSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfallFreq",
                  "spcHum",
                  "spcHumSd",
                  "temp",
                  "tempSd",
                  "temp10p",
                  "temp50p",
                  "temp90p",
                  "wetBulb",
                  "wetBulbSd",
                  "windChill",
                  "windChillSd",
                  "windDir",
                  "windDir80m",
                  "windDir100m",
                  "windGust",
                  "windGustSd",
                  "windSpd",
                  "windSpdSd",
                  "windVecSpd80m",
                  "windVecSpd100m",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hourly climatological weather response for a Designated Market Area.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyDmaHourObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/dmas/{dmaId}/hours/{timestampStart},{timestampEnd}": {
      "get": {
        "tags": [
          "dmas"
        ],
        "summary": "A contiguous range of hourly weather climatology for a DMA.",
        "description": "Returns a contiguous range of hourly climatological weather data for a Designated Market Area. The temporal range provided must not exceed 1 year in duration.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "dmaId",
            "in": "path",
            "description": "A [Designated Market Area ID](https://developer.weathersourceapis.com/apis/supported-dmas/).",
            "required": true,
            "schema": {
              "type": "integer",
              "example": 529
            }
          },
          {
            "name": "timestampStart",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally before timestampEnd. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "timestampEnd",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally after timestampStart. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvr",
                  "cldCvrSd",
                  "dewPt",
                  "dewPtSd",
                  "feelsLike",
                  "feelsLikeSd",
                  "heatIndex",
                  "heatIndexSd",
                  "mslPres",
                  "mslPresSd",
                  "precip",
                  "precipSd",
                  "precipFreq",
                  "radSolar",
                  "radSolarSd",
                  "radSolar10p",
                  "radSolar50p",
                  "radSolar90p",
                  "radSolarDirect",
                  "radSolarDirectSd",
                  "radSolarDirectP",
                  "radSolarDirectPSd",
                  "relHum",
                  "relHumSd",
                  "sfcPres",
                  "sfcPresSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfallFreq",
                  "spcHum",
                  "spcHumSd",
                  "temp",
                  "tempSd",
                  "temp10p",
                  "temp50p",
                  "temp90p",
                  "wetBulb",
                  "wetBulbSd",
                  "windChill",
                  "windChillSd",
                  "windDir",
                  "windDir80m",
                  "windDir100m",
                  "windGust",
                  "windGustSd",
                  "windSpd",
                  "windSpdSd",
                  "windVecSpd80m",
                  "windVecSpd100m",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hourly climatological weather response for a Designated Market Area.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyDmaHourObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/onpoints/{onpointId}/days/{date}": {
      "get": {
        "tags": [
          "onpoints"
        ],
        "summary": "A day of weather climatology for an OnPoint™ point.",
        "description": "Returns a single day of climatological weather data for an OnPoint™ point.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "onpointId",
            "in": "path",
            "description": "An OnPoint™ ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "example": 10725864
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvrMin",
                  "cldCvrMinSd",
                  "cldCvrAvg",
                  "cldCvrAvgSd",
                  "cldCvrMax",
                  "cldCvrMaxSd",
                  "dewPtMin",
                  "dewPtMinSd",
                  "dewPtAvg",
                  "dewPtAvgSd",
                  "dewPtMax",
                  "dewPtMaxSd",
                  "feelsLikeMin",
                  "feelsLikeMinSd",
                  "feelsLikeAvg",
                  "feelsLikeAvgSd",
                  "feelsLikeMax",
                  "feelsLikeMaxSd",
                  "heatIndexMin",
                  "heatIndexMinSd",
                  "heatIndexAvg",
                  "heatIndexAvgSd",
                  "heatIndexMax",
                  "heatIndexMaxSd",
                  "mslPresMin",
                  "mslPresMinSd",
                  "mslPresAvg",
                  "mslPresAvgSd",
                  "mslPresMax",
                  "mslPresMaxSd",
                  "precip",
                  "precipSd",
                  "precip25p",
                  "precip50p",
                  "precip75p",
                  "precip90p",
                  "precipIqr",
                  "precipFreq",
                  "precipFreq0",
                  "precipFreq001To009",
                  "precipFreq010To024",
                  "precipFreq025To049",
                  "precipFreq050To099",
                  "precipFreq100To249",
                  "precipFreq250To499",
                  "precipFreq500Plus",
                  "radSolarMin",
                  "radSolarMinSd",
                  "radSolarAvg",
                  "radSolarAvgSd",
                  "radSolarMax",
                  "radSolarMaxSd",
                  "radSolarTot",
                  "radSolarTotSd",
                  "radSolarTot10p",
                  "radSolarTot50p",
                  "radSolarTot90p",
                  "radSolarDirectMin",
                  "radSolarDirectMinSd",
                  "radSolarDirectAvg",
                  "radSolarDirectAvgSd",
                  "radSolarDirectMax",
                  "radSolarDirectMaxSd",
                  "radSolarDirectTot",
                  "radSolarDirectTotSd",
                  "radSolarDirectTot10p",
                  "radSolarDirectTot50p",
                  "radSolarDirectTot90p",
                  "radSolarDirectPMin",
                  "radSolarDirectPMinSd",
                  "radSolarDirectPAvg",
                  "radSolarDirectPAvgSd",
                  "radSolarDirectPMax",
                  "radSolarDirectPMaxSd",
                  "radSolarDirectPTot",
                  "radSolarDirectPTotSd",
                  "radSolarDirectPTot10p",
                  "radSolarDirectPTot50p",
                  "radSolarDirectPTot90p",
                  "relHumMin",
                  "relHumMinSd",
                  "relHumAvg",
                  "relHumAvgSd",
                  "relHumMax",
                  "relHumMaxSd",
                  "sfcPresMin",
                  "sfcPresMinSd",
                  "sfcPresAvg",
                  "sfcPresAvgSd",
                  "sfcPresMax",
                  "sfcPresMaxSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfall25p",
                  "snowfall50p",
                  "snowfall75p",
                  "snowfall90p",
                  "snowfallIqr",
                  "snowfallFreq",
                  "snowfallFreq0",
                  "snowfallFreq001To009",
                  "snowfallFreq010To024",
                  "snowfallFreq025To049",
                  "snowfallFreq050To099",
                  "snowfallFreq100To149",
                  "snowfallFreq150To249",
                  "snowfallFreq250Plus",
                  "spcHumMin",
                  "spcHumMinSd",
                  "spcHumAvg",
                  "spcHumAvgSd",
                  "spcHumMax",
                  "spcHumMaxSd",
                  "tempAvg",
                  "tempAvgSd",
                  "tempAvg10p",
                  "tempAvg50p",
                  "tempAvg90p",
                  "tempMax",
                  "tempMaxSd",
                  "tempMax10p",
                  "tempMax50p",
                  "tempMax90p",
                  "tempMin",
                  "tempMinSd",
                  "tempMin10p",
                  "tempMin50p",
                  "tempMin90p",
                  "wetBulbMin",
                  "wetBulbMinSd",
                  "wetBulbAvg",
                  "wetBulbAvgSd",
                  "wetBulbMax",
                  "wetBulbMaxSd",
                  "windChillMin",
                  "windChillMinSd",
                  "windChillAvg",
                  "windChillAvgSd",
                  "windChillMax",
                  "windChillMaxSd",
                  "windDirAvg",
                  "windDir80mAvg",
                  "windDir100mAvg",
                  "windGustMax",
                  "windGustMaxSd",
                  "windSpdMin",
                  "windSpdMinSd",
                  "windSpdAvg",
                  "windSpdAvgSd",
                  "windSpdMax",
                  "windSpdMaxSd",
                  "windSpd80mMin",
                  "windSpd80mMinSd",
                  "windSpd80mAvg",
                  "windSpd80mAvgSd",
                  "windSpd80mMax",
                  "windSpd80mMaxSd",
                  "windSpd100mMin",
                  "windSpd100mMinSd",
                  "windSpd100mAvg",
                  "windSpd100mAvgSd",
                  "windSpd100mMax",
                  "windSpd100mMaxSd",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daily climatological weather response for an OnPoint™ point.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyOnpointDayObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/onpoints/{onpointId}/days/{dateStart},{dateEnd}": {
      "get": {
        "tags": [
          "onpoints"
        ],
        "summary": "A contiguous range of daily weather climatology for an OnPoint™ point.",
        "description": "Returns a contiguous range of daily climatological weather data for an OnPoint™ point. The temporal range provided must not exceed 1 year in duration.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "onpointId",
            "in": "path",
            "description": "An OnPoint™ ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "example": 10725864
            }
          },
          {
            "name": "dateStart",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value that must occur temporally before dateEnd.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "dateEnd",
            "in": "path",
            "description": "An date formatted as a RFC3339 date value that must occur temporally after dateStart.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2019-12-20"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvrMin",
                  "cldCvrMinSd",
                  "cldCvrAvg",
                  "cldCvrAvgSd",
                  "cldCvrMax",
                  "cldCvrMaxSd",
                  "dewPtMin",
                  "dewPtMinSd",
                  "dewPtAvg",
                  "dewPtAvgSd",
                  "dewPtMax",
                  "dewPtMaxSd",
                  "feelsLikeMin",
                  "feelsLikeMinSd",
                  "feelsLikeAvg",
                  "feelsLikeAvgSd",
                  "feelsLikeMax",
                  "feelsLikeMaxSd",
                  "heatIndexMin",
                  "heatIndexMinSd",
                  "heatIndexAvg",
                  "heatIndexAvgSd",
                  "heatIndexMax",
                  "heatIndexMaxSd",
                  "mslPresMin",
                  "mslPresMinSd",
                  "mslPresAvg",
                  "mslPresAvgSd",
                  "mslPresMax",
                  "mslPresMaxSd",
                  "precip",
                  "precipSd",
                  "precip25p",
                  "precip50p",
                  "precip75p",
                  "precip90p",
                  "precipIqr",
                  "precipFreq",
                  "precipFreq0",
                  "precipFreq001To009",
                  "precipFreq010To024",
                  "precipFreq025To049",
                  "precipFreq050To099",
                  "precipFreq100To249",
                  "precipFreq250To499",
                  "precipFreq500Plus",
                  "radSolarMin",
                  "radSolarMinSd",
                  "radSolarAvg",
                  "radSolarAvgSd",
                  "radSolarMax",
                  "radSolarMaxSd",
                  "radSolarTot",
                  "radSolarTotSd",
                  "radSolarTot10p",
                  "radSolarTot50p",
                  "radSolarTot90p",
                  "radSolarDirectMin",
                  "radSolarDirectMinSd",
                  "radSolarDirectAvg",
                  "radSolarDirectAvgSd",
                  "radSolarDirectMax",
                  "radSolarDirectMaxSd",
                  "radSolarDirectTot",
                  "radSolarDirectTotSd",
                  "radSolarDirectTot10p",
                  "radSolarDirectTot50p",
                  "radSolarDirectTot90p",
                  "radSolarDirectPMin",
                  "radSolarDirectPMinSd",
                  "radSolarDirectPAvg",
                  "radSolarDirectPAvgSd",
                  "radSolarDirectPMax",
                  "radSolarDirectPMaxSd",
                  "radSolarDirectPTot",
                  "radSolarDirectPTotSd",
                  "radSolarDirectPTot10p",
                  "radSolarDirectPTot50p",
                  "radSolarDirectPTot90p",
                  "relHumMin",
                  "relHumMinSd",
                  "relHumAvg",
                  "relHumAvgSd",
                  "relHumMax",
                  "relHumMaxSd",
                  "sfcPresMin",
                  "sfcPresMinSd",
                  "sfcPresAvg",
                  "sfcPresAvgSd",
                  "sfcPresMax",
                  "sfcPresMaxSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfall25p",
                  "snowfall50p",
                  "snowfall75p",
                  "snowfall90p",
                  "snowfallIqr",
                  "snowfallFreq",
                  "snowfallFreq0",
                  "snowfallFreq001To009",
                  "snowfallFreq010To024",
                  "snowfallFreq025To049",
                  "snowfallFreq050To099",
                  "snowfallFreq100To149",
                  "snowfallFreq150To249",
                  "snowfallFreq250Plus",
                  "spcHumMin",
                  "spcHumMinSd",
                  "spcHumAvg",
                  "spcHumAvgSd",
                  "spcHumMax",
                  "spcHumMaxSd",
                  "tempAvg",
                  "tempAvgSd",
                  "tempAvg10p",
                  "tempAvg50p",
                  "tempAvg90p",
                  "tempMax",
                  "tempMaxSd",
                  "tempMax10p",
                  "tempMax50p",
                  "tempMax90p",
                  "tempMin",
                  "tempMinSd",
                  "tempMin10p",
                  "tempMin50p",
                  "tempMin90p",
                  "wetBulbMin",
                  "wetBulbMinSd",
                  "wetBulbAvg",
                  "wetBulbAvgSd",
                  "wetBulbMax",
                  "wetBulbMaxSd",
                  "windChillMin",
                  "windChillMinSd",
                  "windChillAvg",
                  "windChillAvgSd",
                  "windChillMax",
                  "windChillMaxSd",
                  "windDirAvg",
                  "windDir80mAvg",
                  "windDir100mAvg",
                  "windGustMax",
                  "windGustMaxSd",
                  "windSpdMin",
                  "windSpdMinSd",
                  "windSpdAvg",
                  "windSpdAvgSd",
                  "windSpdMax",
                  "windSpdMaxSd",
                  "windSpd80mMin",
                  "windSpd80mMinSd",
                  "windSpd80mAvg",
                  "windSpd80mAvgSd",
                  "windSpd80mMax",
                  "windSpd80mMaxSd",
                  "windSpd100mMin",
                  "windSpd100mMinSd",
                  "windSpd100mAvg",
                  "windSpd100mAvgSd",
                  "windSpd100mMax",
                  "windSpd100mMaxSd",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Daily climatological weather response for an OnPoint™ point.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyOnpointDayObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/onpoints/{onpointId}/hours/{timestamp}": {
      "get": {
        "tags": [
          "onpoints"
        ],
        "summary": "An hour of weather climatology for an OnPoint™ point.",
        "description": "Returns a single hour of climatological weather data for an OnPoint™ point.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "onpointId",
            "in": "path",
            "description": "An OnPoint™ ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "example": 10725864
            }
          },
          {
            "name": "timestamp",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvr",
                  "cldCvrSd",
                  "dewPt",
                  "dewPtSd",
                  "feelsLike",
                  "feelsLikeSd",
                  "heatIndex",
                  "heatIndexSd",
                  "mslPres",
                  "mslPresSd",
                  "precip",
                  "precipSd",
                  "precipFreq",
                  "radSolar",
                  "radSolarSd",
                  "radSolar10p",
                  "radSolar50p",
                  "radSolar90p",
                  "radSolarDirect",
                  "radSolarDirectSd",
                  "radSolarDirectP",
                  "radSolarDirectPSd",
                  "relHum",
                  "relHumSd",
                  "sfcPres",
                  "sfcPresSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfallFreq",
                  "spcHum",
                  "spcHumSd",
                  "temp",
                  "tempSd",
                  "temp10p",
                  "temp50p",
                  "temp90p",
                  "wetBulb",
                  "wetBulbSd",
                  "windChill",
                  "windChillSd",
                  "windDir",
                  "windDir80m",
                  "windDir100m",
                  "windGust",
                  "windGustSd",
                  "windSpd",
                  "windSpdSd",
                  "windVecSpd80m",
                  "windVecSpd100m",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hourly climatological weather response for an OnPoint™ point.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyOnpointHourObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    },
    "/onpoints/{onpointId}/hours/{timestampStart},{timestampEnd}": {
      "get": {
        "tags": [
          "onpoints"
        ],
        "summary": "A contiguous range of hourly weather climatology for an OnPoint™ point.",
        "description": "Returns a contiguous range of hourly climatological weather data for an OnPoint™ point. The temporal range provided must not exceed 1 year in duration.\n\n**IMPORTANT:** To authenticate to the Weather Source ECMWF Climatology API, each request must contain your API key set to a custom header named `X-API-KEY`. If you do not have a Weather Source API key [sign up for a free 30-day developer account](https://developer.weathersourceapis.com/account/sign-up/). You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n\nWhen using the \\\"Try it out\\\" capability in the documentation, the API key should be added by clicking the green \\\"Authorize\\\" button at the top of the page.\n",
        "parameters": [
          {
            "name": "onpointId",
            "in": "path",
            "description": "An OnPoint™ ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "example": 10725864
            }
          },
          {
            "name": "timestampStart",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally before timestampEnd. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "timestampEnd",
            "in": "path",
            "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally after timestampStart. The UTC offset is required.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2019-12-20T23:00:00-05:00"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "example": [
                "all"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "cldCvr",
                  "cldCvrSd",
                  "dewPt",
                  "dewPtSd",
                  "feelsLike",
                  "feelsLikeSd",
                  "heatIndex",
                  "heatIndexSd",
                  "mslPres",
                  "mslPresSd",
                  "precip",
                  "precipSd",
                  "precipFreq",
                  "radSolar",
                  "radSolarSd",
                  "radSolar10p",
                  "radSolar50p",
                  "radSolar90p",
                  "radSolarDirect",
                  "radSolarDirectSd",
                  "radSolarDirectP",
                  "radSolarDirectPSd",
                  "relHum",
                  "relHumSd",
                  "sfcPres",
                  "sfcPresSd",
                  "snowfall",
                  "snowfallSd",
                  "snowfallFreq",
                  "spcHum",
                  "spcHumSd",
                  "temp",
                  "tempSd",
                  "temp10p",
                  "temp50p",
                  "temp90p",
                  "wetBulb",
                  "wetBulbSd",
                  "windChill",
                  "windChillSd",
                  "windDir",
                  "windDir80m",
                  "windDir100m",
                  "windGust",
                  "windGustSd",
                  "windSpd",
                  "windSpdSd",
                  "windVecSpd80m",
                  "windVecSpd100m",
                  "all",
                  "allCldCvr",
                  "allHum",
                  "allPrecip",
                  "allPres",
                  "allRad",
                  "allTemp",
                  "allWind",
                  "popular"
                ]
              }
            }
          },
          {
            "name": "unitScale",
            "in": "query",
            "description": "The unit scale for returned values.<br>",
            "required": false,
            "schema": {
              "type": "string",
              "example": "IMPERIAL",
              "enum": [
                "IMPERIAL",
                "METRIC",
                "SI"
              ],
              "default": "IMPERIAL"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hourly climatological weather response for an OnPoint™ point.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/climatologyOnpointHourObj"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/errorResponse"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "climatologyDayArr": {
        "type": "array",
        "description": "An array of daily weather climatology objects.",
        "items": {
          "$ref": "#/components/schemas/climatologyDayObj"
        }
      },
      "climatologyDayObj": {
        "required": [
          "date"
        ],
        "type": "object",
        "properties": {
          "date": {
            "$ref": "#/components/schemas/date"
          },
          "cldCvrMin": {
            "$ref": "#/components/schemas/cldCvrMin"
          },
          "cldCvrMinSd": {
            "$ref": "#/components/schemas/cldCvrMinSd"
          },
          "cldCvrAvg": {
            "$ref": "#/components/schemas/cldCvrAvg"
          },
          "cldCvrAvgSd": {
            "$ref": "#/components/schemas/cldCvrAvgSd"
          },
          "cldCvrMax": {
            "$ref": "#/components/schemas/cldCvrMax"
          },
          "cldCvrMaxSd": {
            "$ref": "#/components/schemas/cldCvrMaxSd"
          },
          "dewPtMin": {
            "$ref": "#/components/schemas/dewPtMin"
          },
          "dewPtMinSd": {
            "$ref": "#/components/schemas/dewPtMinSd"
          },
          "dewPtAvg": {
            "$ref": "#/components/schemas/dewPtAvg"
          },
          "dewPtAvgSd": {
            "$ref": "#/components/schemas/dewPtAvgSd"
          },
          "dewPtMax": {
            "$ref": "#/components/schemas/dewPtMax"
          },
          "dewPtMaxSd": {
            "$ref": "#/components/schemas/dewPtMaxSd"
          },
          "feelsLikeMin": {
            "$ref": "#/components/schemas/feelsLikeMin"
          },
          "feelsLikeMinSd": {
            "$ref": "#/components/schemas/feelsLikeMinSd"
          },
          "feelsLikeAvg": {
            "$ref": "#/components/schemas/feelsLikeAvg"
          },
          "feelsLikeAvgSd": {
            "$ref": "#/components/schemas/feelsLikeAvgSd"
          },
          "feelsLikeMax": {
            "$ref": "#/components/schemas/feelsLikeMax"
          },
          "feelsLikeMaxSd": {
            "$ref": "#/components/schemas/feelsLikeMaxSd"
          },
          "heatIndexMin": {
            "$ref": "#/components/schemas/heatIndexMin"
          },
          "heatIndexMinSd": {
            "$ref": "#/components/schemas/heatIndexMinSd"
          },
          "heatIndexAvg": {
            "$ref": "#/components/schemas/heatIndexAvg"
          },
          "heatIndexAvgSd": {
            "$ref": "#/components/schemas/heatIndexAvgSd"
          },
          "heatIndexMax": {
            "$ref": "#/components/schemas/heatIndexMax"
          },
          "heatIndexMaxSd": {
            "$ref": "#/components/schemas/heatIndexMaxSd"
          },
          "mslPresMin": {
            "$ref": "#/components/schemas/mslPresMin"
          },
          "mslPresMinSd": {
            "$ref": "#/components/schemas/mslPresMinSd"
          },
          "mslPresAvg": {
            "$ref": "#/components/schemas/mslPresAvg"
          },
          "mslPresAvgSd": {
            "$ref": "#/components/schemas/mslPresAvgSd"
          },
          "mslPresMax": {
            "$ref": "#/components/schemas/mslPresMax"
          },
          "mslPresMaxSd": {
            "$ref": "#/components/schemas/mslPresMaxSd"
          },
          "precip": {
            "$ref": "#/components/schemas/precip"
          },
          "precipSd": {
            "$ref": "#/components/schemas/precipSd"
          },
          "precip25p": {
            "$ref": "#/components/schemas/precip25p"
          },
          "precip50p": {
            "$ref": "#/components/schemas/precip50p"
          },
          "precip75p": {
            "$ref": "#/components/schemas/precip75p"
          },
          "precip90p": {
            "$ref": "#/components/schemas/precip90p"
          },
          "precipIqr": {
            "$ref": "#/components/schemas/precipIqr"
          },
          "precipFreq": {
            "$ref": "#/components/schemas/precipFreq"
          },
          "precipFreq0": {
            "$ref": "#/components/schemas/precipFreq0"
          },
          "precipFreq001To009": {
            "$ref": "#/components/schemas/precipFreq001To009"
          },
          "precipFreq010To024": {
            "$ref": "#/components/schemas/precipFreq010To024"
          },
          "precipFreq025To049": {
            "$ref": "#/components/schemas/precipFreq025To049"
          },
          "precipFreq050To099": {
            "$ref": "#/components/schemas/precipFreq050To099"
          },
          "precipFreq100To249": {
            "$ref": "#/components/schemas/precipFreq100To249"
          },
          "precipFreq250To499": {
            "$ref": "#/components/schemas/precipFreq250To499"
          },
          "precipFreq500Plus": {
            "$ref": "#/components/schemas/precipFreq500Plus"
          },
          "radSolarMin": {
            "$ref": "#/components/schemas/radSolarMin"
          },
          "radSolarMinSd": {
            "$ref": "#/components/schemas/radSolarMinSd"
          },
          "radSolarAvg": {
            "$ref": "#/components/schemas/radSolarAvg"
          },
          "radSolarAvgSd": {
            "$ref": "#/components/schemas/radSolarAvgSd"
          },
          "radSolarMax": {
            "$ref": "#/components/schemas/radSolarMax"
          },
          "radSolarMaxSd": {
            "$ref": "#/components/schemas/radSolarMaxSd"
          },
          "radSolarTot": {
            "$ref": "#/components/schemas/radSolarTot"
          },
          "radSolarTotSd": {
            "$ref": "#/components/schemas/radSolarTotSd"
          },
          "radSolarTot10p": {
            "$ref": "#/components/schemas/radSolarTot10p"
          },
          "radSolarTot50p": {
            "$ref": "#/components/schemas/radSolarTot50p"
          },
          "radSolarTot90p": {
            "$ref": "#/components/schemas/radSolarTot90p"
          },
          "radSolarDirectMin": {
            "$ref": "#/components/schemas/radSolarDirectMin"
          },
          "radSolarDirectMinSd": {
            "$ref": "#/components/schemas/radSolarDirectMinSd"
          },
          "radSolarDirectAvg": {
            "$ref": "#/components/schemas/radSolarDirectAvg"
          },
          "radSolarDirectAvgSd": {
            "$ref": "#/components/schemas/radSolarDirectAvgSd"
          },
          "radSolarDirectMax": {
            "$ref": "#/components/schemas/radSolarDirectMax"
          },
          "radSolarDirectMaxSd": {
            "$ref": "#/components/schemas/radSolarDirectMaxSd"
          },
          "radSolarDirectTot": {
            "$ref": "#/components/schemas/radSolarDirectTot"
          },
          "radSolarDirectTotSd": {
            "$ref": "#/components/schemas/radSolarDirectTotSd"
          },
          "radSolarDirectTot10p": {
            "$ref": "#/components/schemas/radSolarDirectTot10p"
          },
          "radSolarDirectTot50p": {
            "$ref": "#/components/schemas/radSolarDirectTot50p"
          },
          "radSolarDirectTot90p": {
            "$ref": "#/components/schemas/radSolarDirectTot90p"
          },
          "radSolarDirectPMin": {
            "$ref": "#/components/schemas/radSolarDirectPMin"
          },
          "radSolarDirectPMinSd": {
            "$ref": "#/components/schemas/radSolarDirectPMinSd"
          },
          "radSolarDirectPAvg": {
            "$ref": "#/components/schemas/radSolarDirectPAvg"
          },
          "radSolarDirectPAvgSd": {
            "$ref": "#/components/schemas/radSolarDirectPAvgSd"
          },
          "radSolarDirectPMax": {
            "$ref": "#/components/schemas/radSolarDirectPMax"
          },
          "radSolarDirectPMaxSd": {
            "$ref": "#/components/schemas/radSolarDirectPMaxSd"
          },
          "radSolarDirectPTot": {
            "$ref": "#/components/schemas/radSolarDirectPTot"
          },
          "radSolarDirectPTotSd": {
            "$ref": "#/components/schemas/radSolarDirectPTotSd"
          },
          "radSolarDirectPTot10p": {
            "$ref": "#/components/schemas/radSolarDirectPTot10p"
          },
          "radSolarDirectPTot50p": {
            "$ref": "#/components/schemas/radSolarDirectPTot50p"
          },
          "radSolarDirectPTot90p": {
            "$ref": "#/components/schemas/radSolarDirectPTot90p"
          },
          "relHumMin": {
            "$ref": "#/components/schemas/relHumMin"
          },
          "relHumMinSd": {
            "$ref": "#/components/schemas/relHumMinSd"
          },
          "relHumAvg": {
            "$ref": "#/components/schemas/relHumAvg"
          },
          "relHumAvgSd": {
            "$ref": "#/components/schemas/relHumAvgSd"
          },
          "relHumMax": {
            "$ref": "#/components/schemas/relHumMax"
          },
          "relHumMaxSd": {
            "$ref": "#/components/schemas/relHumMaxSd"
          },
          "sfcPresMin": {
            "$ref": "#/components/schemas/sfcPresMin"
          },
          "sfcPresMinSd": {
            "$ref": "#/components/schemas/sfcPresMinSd"
          },
          "sfcPresAvg": {
            "$ref": "#/components/schemas/sfcPresAvg"
          },
          "sfcPresAvgSd": {
            "$ref": "#/components/schemas/sfcPresAvgSd"
          },
          "sfcPresMax": {
            "$ref": "#/components/schemas/sfcPresMax"
          },
          "sfcPresMaxSd": {
            "$ref": "#/components/schemas/sfcPresMaxSd"
          },
          "snowfall": {
            "$ref": "#/components/schemas/snowfall"
          },
          "snowfallSd": {
            "$ref": "#/components/schemas/snowfallSd"
          },
          "snowfall25p": {
            "$ref": "#/components/schemas/snowfall25p"
          },
          "snowfall50p": {
            "$ref": "#/components/schemas/snowfall50p"
          },
          "snowfall75p": {
            "$ref": "#/components/schemas/snowfall75p"
          },
          "snowfall90p": {
            "$ref": "#/components/schemas/snowfall90p"
          },
          "snowfallIqr": {
            "$ref": "#/components/schemas/snowfallIqr"
          },
          "snowfallFreq": {
            "$ref": "#/components/schemas/snowfallFreq"
          },
          "snowfallFreq0": {
            "$ref": "#/components/schemas/snowfallFreq0"
          },
          "snowfallFreq001To009": {
            "$ref": "#/components/schemas/snowfallFreq001To009"
          },
          "snowfallFreq010To024": {
            "$ref": "#/components/schemas/snowfallFreq010To024"
          },
          "snowfallFreq025To049": {
            "$ref": "#/components/schemas/snowfallFreq025To049"
          },
          "snowfallFreq050To099": {
            "$ref": "#/components/schemas/snowfallFreq050To099"
          },
          "snowfallFreq100To149": {
            "$ref": "#/components/schemas/snowfallFreq100To149"
          },
          "snowfallFreq150To249": {
            "$ref": "#/components/schemas/snowfallFreq150To249"
          },
          "snowfallFreq250Plus": {
            "$ref": "#/components/schemas/snowfallFreq250Plus"
          },
          "spcHumMin": {
            "$ref": "#/components/schemas/spcHumMin"
          },
          "spcHumMinSd": {
            "$ref": "#/components/schemas/spcHumMinSd"
          },
          "spcHumAvg": {
            "$ref": "#/components/schemas/spcHumAvg"
          },
          "spcHumAvgSd": {
            "$ref": "#/components/schemas/spcHumAvgSd"
          },
          "spcHumMax": {
            "$ref": "#/components/schemas/spcHumMax"
          },
          "spcHumMaxSd": {
            "$ref": "#/components/schemas/spcHumMaxSd"
          },
          "tempAvg": {
            "$ref": "#/components/schemas/tempAvg"
          },
          "tempAvgSd": {
            "$ref": "#/components/schemas/tempAvgSd"
          },
          "tempAvg10p": {
            "$ref": "#/components/schemas/tempAvg10p"
          },
          "tempAvg50p": {
            "$ref": "#/components/schemas/tempAvg50p"
          },
          "tempAvg90p": {
            "$ref": "#/components/schemas/tempAvg90p"
          },
          "tempMax": {
            "$ref": "#/components/schemas/tempMax"
          },
          "tempMaxSd": {
            "$ref": "#/components/schemas/tempMaxSd"
          },
          "tempMax10p": {
            "$ref": "#/components/schemas/tempMax10p"
          },
          "tempMax50p": {
            "$ref": "#/components/schemas/tempMax50p"
          },
          "tempMax90p": {
            "$ref": "#/components/schemas/tempMax90p"
          },
          "tempMin": {
            "$ref": "#/components/schemas/tempMin"
          },
          "tempMinSd": {
            "$ref": "#/components/schemas/tempMinSd"
          },
          "tempMin10p": {
            "$ref": "#/components/schemas/tempMin10p"
          },
          "tempMin50p": {
            "$ref": "#/components/schemas/tempMin50p"
          },
          "tempMin90p": {
            "$ref": "#/components/schemas/tempMin90p"
          },
          "wetBulbMin": {
            "$ref": "#/components/schemas/wetBulbMin"
          },
          "wetBulbMinSd": {
            "$ref": "#/components/schemas/wetBulbMinSd"
          },
          "wetBulbAvg": {
            "$ref": "#/components/schemas/wetBulbAvg"
          },
          "wetBulbAvgSd": {
            "$ref": "#/components/schemas/wetBulbAvgSd"
          },
          "wetBulbMax": {
            "$ref": "#/components/schemas/wetBulbMax"
          },
          "wetBulbMaxSd": {
            "$ref": "#/components/schemas/wetBulbMaxSd"
          },
          "windChillMin": {
            "$ref": "#/components/schemas/windChillMin"
          },
          "windChillMinSd": {
            "$ref": "#/components/schemas/windChillMinSd"
          },
          "windChillAvg": {
            "$ref": "#/components/schemas/windChillAvg"
          },
          "windChillAvgSd": {
            "$ref": "#/components/schemas/windChillAvgSd"
          },
          "windChillMax": {
            "$ref": "#/components/schemas/windChillMax"
          },
          "windChillMaxSd": {
            "$ref": "#/components/schemas/windChillMaxSd"
          },
          "windDirAvg": {
            "$ref": "#/components/schemas/windDirAvg"
          },
          "windDir80mAvg": {
            "$ref": "#/components/schemas/windDir80mAvg"
          },
          "windDir100mAvg": {
            "$ref": "#/components/schemas/windDir100mAvg"
          },
          "windGustMax": {
            "$ref": "#/components/schemas/windGustMax"
          },
          "windGustMaxSd": {
            "$ref": "#/components/schemas/windGustMaxSd"
          },
          "windSpdMin": {
            "$ref": "#/components/schemas/windSpdMin"
          },
          "windSpdMinSd": {
            "$ref": "#/components/schemas/windSpdMinSd"
          },
          "windSpdAvg": {
            "$ref": "#/components/schemas/windSpdAvg"
          },
          "windSpdAvgSd": {
            "$ref": "#/components/schemas/windSpdAvgSd"
          },
          "windSpdMax": {
            "$ref": "#/components/schemas/windSpdMax"
          },
          "windSpdMaxSd": {
            "$ref": "#/components/schemas/windSpdMaxSd"
          },
          "windSpd80mMin": {
            "$ref": "#/components/schemas/windSpd80mMin"
          },
          "windSpd80mMinSd": {
            "$ref": "#/components/schemas/windSpd80mMinSd"
          },
          "windSpd80mAvg": {
            "$ref": "#/components/schemas/windSpd80mAvg"
          },
          "windSpd80mAvgSd": {
            "$ref": "#/components/schemas/windSpd80mAvgSd"
          },
          "windSpd80mMax": {
            "$ref": "#/components/schemas/windSpd80mMax"
          },
          "windSpd80mMaxSd": {
            "$ref": "#/components/schemas/windSpd80mMaxSd"
          },
          "windSpd100mMin": {
            "$ref": "#/components/schemas/windSpd100mMin"
          },
          "windSpd100mMinSd": {
            "$ref": "#/components/schemas/windSpd100mMinSd"
          },
          "windSpd100mAvg": {
            "$ref": "#/components/schemas/windSpd100mAvg"
          },
          "windSpd100mAvgSd": {
            "$ref": "#/components/schemas/windSpd100mAvgSd"
          },
          "windSpd100mMax": {
            "$ref": "#/components/schemas/windSpd100mMax"
          },
          "windSpd100mMaxSd": {
            "$ref": "#/components/schemas/windSpd100mMaxSd"
          }
        },
        "description": "A daily weather climatology object."
      },
      "climatologyHourArr": {
        "type": "array",
        "description": "An array of hourly weather climatology objects.",
        "items": {
          "$ref": "#/components/schemas/climatologyHourObj"
        }
      },
      "climatologyHourObj": {
        "required": [
          "timestamp"
        ],
        "type": "object",
        "properties": {
          "timestamp": {
            "$ref": "#/components/schemas/timestamp"
          },
          "cldCvr": {
            "$ref": "#/components/schemas/cldCvr"
          },
          "cldCvrSd": {
            "$ref": "#/components/schemas/cldCvrSd"
          },
          "dewPt": {
            "$ref": "#/components/schemas/dewPt"
          },
          "dewPtSd": {
            "$ref": "#/components/schemas/dewPtSd"
          },
          "feelsLike": {
            "$ref": "#/components/schemas/feelsLike"
          },
          "feelsLikeSd": {
            "$ref": "#/components/schemas/feelsLikeSd"
          },
          "heatIndex": {
            "$ref": "#/components/schemas/heatIndex"
          },
          "heatIndexSd": {
            "$ref": "#/components/schemas/heatIndexSd"
          },
          "mslPres": {
            "$ref": "#/components/schemas/mslPres"
          },
          "mslPresSd": {
            "$ref": "#/components/schemas/mslPresSd"
          },
          "precip": {
            "$ref": "#/components/schemas/precip"
          },
          "precipSd": {
            "$ref": "#/components/schemas/precipSd"
          },
          "precipFreq": {
            "$ref": "#/components/schemas/precipFreq"
          },
          "radSolar": {
            "$ref": "#/components/schemas/radSolar"
          },
          "radSolarSd": {
            "$ref": "#/components/schemas/radSolarSd"
          },
          "radSolar10p": {
            "$ref": "#/components/schemas/radSolar10p"
          },
          "radSolar50p": {
            "$ref": "#/components/schemas/radSolar50p"
          },
          "radSolar90p": {
            "$ref": "#/components/schemas/radSolar90p"
          },
          "radSolarDirect": {
            "$ref": "#/components/schemas/radSolarDirect"
          },
          "radSolarDirectSd": {
            "$ref": "#/components/schemas/radSolarDirectSd"
          },
          "radSolarDirectP": {
            "$ref": "#/components/schemas/radSolarDirectP"
          },
          "radSolarDirectPSd": {
            "$ref": "#/components/schemas/radSolarDirectPSd"
          },
          "relHum": {
            "$ref": "#/components/schemas/relHum"
          },
          "relHumSd": {
            "$ref": "#/components/schemas/relHumSd"
          },
          "sfcPres": {
            "$ref": "#/components/schemas/sfcPres"
          },
          "sfcPresSd": {
            "$ref": "#/components/schemas/sfcPresSd"
          },
          "snowfall": {
            "$ref": "#/components/schemas/snowfall"
          },
          "snowfallSd": {
            "$ref": "#/components/schemas/snowfallSd"
          },
          "snowfallFreq": {
            "$ref": "#/components/schemas/snowfallFreq"
          },
          "spcHum": {
            "$ref": "#/components/schemas/spcHum"
          },
          "spcHumSd": {
            "$ref": "#/components/schemas/spcHumSd"
          },
          "temp": {
            "$ref": "#/components/schemas/temp"
          },
          "tempSd": {
            "$ref": "#/components/schemas/tempSd"
          },
          "temp10p": {
            "$ref": "#/components/schemas/temp10p"
          },
          "temp50p": {
            "$ref": "#/components/schemas/temp50p"
          },
          "temp90p": {
            "$ref": "#/components/schemas/temp90p"
          },
          "wetBulb": {
            "$ref": "#/components/schemas/wetBulb"
          },
          "wetBulbSd": {
            "$ref": "#/components/schemas/wetBulbSd"
          },
          "windChill": {
            "$ref": "#/components/schemas/windChill"
          },
          "windChillSd": {
            "$ref": "#/components/schemas/windChillSd"
          },
          "windDir": {
            "$ref": "#/components/schemas/windDir"
          },
          "windDir80m": {
            "$ref": "#/components/schemas/windDir80m"
          },
          "windDir100m": {
            "$ref": "#/components/schemas/windDir100m"
          },
          "windGust": {
            "$ref": "#/components/schemas/windGust"
          },
          "windGustSd": {
            "$ref": "#/components/schemas/windGustSd"
          },
          "windSpd": {
            "$ref": "#/components/schemas/windSpd"
          },
          "windSpdSd": {
            "$ref": "#/components/schemas/windSpdSd"
          },
          "windVecSpd80m": {
            "$ref": "#/components/schemas/windVecSpd80m"
          },
          "windVecSpd100m": {
            "$ref": "#/components/schemas/windVecSpd100m"
          }
        },
        "description": "An hourly weather climatology object."
      },
      "climatologyPointDayObj": {
        "required": [
          "climatology",
          "dateRange",
          "fieldList",
          "location"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/pointObj"
          },
          "dateRange": {
            "$ref": "#/components/schemas/dateRangeObj"
          },
          "fieldList": {
            "$ref": "#/components/schemas/fieldListDayObj"
          },
          "climatology": {
            "$ref": "#/components/schemas/climatologyDayArr"
          }
        },
        "description": "Daily Latitude/Longitude climatological weather object"
      },
      "climatologyPointHourObj": {
        "required": [
          "climatology",
          "fieldList",
          "location",
          "timestampRange"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/pointObj"
          },
          "timestampRange": {
            "$ref": "#/components/schemas/timestampRangeObj"
          },
          "fieldList": {
            "$ref": "#/components/schemas/fieldListHourObj"
          },
          "climatology": {
            "$ref": "#/components/schemas/climatologyHourArr"
          }
        },
        "description": "Hourly Latitude/Longitude climatological weather object"
      },
      "climatologyPostcodeDayObj": {
        "required": [
          "climatology",
          "dateRange",
          "fieldList",
          "location"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/postcodeObj"
          },
          "dateRange": {
            "$ref": "#/components/schemas/dateRangeObj"
          },
          "fieldList": {
            "$ref": "#/components/schemas/fieldListDayObj"
          },
          "climatology": {
            "$ref": "#/components/schemas/climatologyDayArr"
          }
        },
        "description": "Daily Postcode climatological weather object"
      },
      "climatologyPostcodeHourObj": {
        "required": [
          "climatology",
          "fieldList",
          "location",
          "timestampRange"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/postcodeObj"
          },
          "timestampRange": {
            "$ref": "#/components/schemas/timestampRangeObj"
          },
          "fieldList": {
            "$ref": "#/components/schemas/fieldListHourObj"
          },
          "climatology": {
            "$ref": "#/components/schemas/climatologyHourArr"
          }
        },
        "description": "Hourly Postcode climatological weather object"
      },
      "climatologyDmaDayObj": {
        "required": [
          "climatology",
          "dateRange",
          "fieldList",
          "location"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/dmaObj"
          },
          "dateRange": {
            "$ref": "#/components/schemas/dateRangeObj"
          },
          "fieldList": {
            "$ref": "#/components/schemas/fieldListDayObj"
          },
          "climatology": {
            "$ref": "#/components/schemas/climatologyDayArr"
          }
        },
        "description": "Daily Designated Market Area climatological weather object"
      },
      "climatologyDmaHourObj": {
        "required": [
          "climatology",
          "fieldList",
          "location",
          "timestampRange"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/dmaObj"
          },
          "timestampRange": {
            "$ref": "#/components/schemas/timestampRangeObj"
          },
          "fieldList": {
            "$ref": "#/components/schemas/fieldListHourObj"
          },
          "climatology": {
            "$ref": "#/components/schemas/climatologyHourArr"
          }
        },
        "description": "Hourly Designated Market Area climatological weather object"
      },
      "climatologyOnpointDayObj": {
        "required": [
          "climatology",
          "dateRange",
          "fieldList",
          "location"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/onpointObj"
          },
          "dateRange": {
            "$ref": "#/components/schemas/dateRangeObj"
          },
          "fieldList": {
            "$ref": "#/components/schemas/fieldListDayObj"
          },
          "climatology": {
            "$ref": "#/components/schemas/climatologyDayArr"
          }
        },
        "description": "Daily OnPoint™ climatological weather object"
      },
      "climatologyOnpointHourObj": {
        "required": [
          "climatology",
          "fieldList",
          "location",
          "timestampRange"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/onpointObj"
          },
          "timestampRange": {
            "$ref": "#/components/schemas/timestampRangeObj"
          },
          "fieldList": {
            "$ref": "#/components/schemas/fieldListHourObj"
          },
          "climatology": {
            "$ref": "#/components/schemas/climatologyHourArr"
          }
        },
        "description": "Hourly OnPoint™ climatological weather object"
      },
      "fieldListDayObj": {
        "title": "fieldListObj",
        "required": [
          "fields"
        ],
        "type": "object",
        "properties": {
          "fields": {
            "$ref": "#/components/schemas/fields"
          }
        },
        "description": "A list of returned field names the associated units.",
        "example": {
          "fields": {
            "date": "Date as string: \"YYYY-MM-DD\"",
            "cldCvrAvg": "Percent value in [0,100]",
            "cldCvrAvgSd": "Percent value in [0,100]",
            "cldCvrMax": "Percent value in [0,100]",
            "cldCvrMaxSd": "Percent value in [0,100]",
            "cldCvrMin": "Percent value in [0,100]",
            "cldCvrMinSd": "Percent value in [0,100]",
            "dewPtAvg": "Fahrenheit",
            "dewPtAvgSd": "Fahrenheit",
            "dewPtMax": "Fahrenheit",
            "dewPtMaxSd": "Fahrenheit",
            "dewPtMin": "Fahrenheit",
            "dewPtMinSd": "Fahrenheit",
            "feelsLikeAvg": "Fahrenheit",
            "feelsLikeAvgSd": "Fahrenheit",
            "feelsLikeMax": "Fahrenheit",
            "feelsLikeMaxSd": "Fahrenheit",
            "feelsLikeMin": "Fahrenheit",
            "feelsLikeMinSd": "Fahrenheit",
            "heatIndexAvg": "Fahrenheit",
            "heatIndexAvgSd": "Fahrenheit",
            "heatIndexMax": "Fahrenheit",
            "heatIndexMaxSd": "Fahrenheit",
            "heatIndexMin": "Fahrenheit",
            "heatIndexMinSd": "Fahrenheit",
            "mslPresAvg": "Millibars",
            "mslPresAvgSd": "Millibars",
            "mslPresMax": "Millibars",
            "mslPresMaxSd": "Millibars",
            "mslPresMin": "Millibars",
            "mslPresMinSd": "Millibars",
            "precip": "Inches",
            "precip25p": "Inches",
            "precip50p": "Inches",
            "precip75p": "Inches",
            "precip90p": "Inches",
            "precipFreq": "Percent value in [0,100]",
            "precipFreq0": "Percent value in [0,100]",
            "precipFreq001To009": "Percent value in [0,100]",
            "precipFreq010To024": "Percent value in [0,100]",
            "precipFreq025To049": "Percent value in [0,100]",
            "precipFreq050To099": "Percent value in [0,100]",
            "precipFreq100To249": "Percent value in [0,100]",
            "precipFreq250To499": "Percent value in [0,100]",
            "precipFreq500Plus": "Percent value in [0,100]",
            "precipIqr": "Inches",
            "precipSd": "Inches",
            "radSolarAvg": "Watts per Square Meter",
            "radSolarAvgSd": "Watts per Square Meter",
            "radSolarDirectAvg": "Watts per Square Meter",
            "radSolarDirectAvgSd": "Watts per Square Meter",
            "radSolarDirectMax": "Watts per Square Meter",
            "radSolarDirectMaxSd": "Watts per Square Meter",
            "radSolarDirectMin": "Watts per Square Meter",
            "radSolarDirectMinSd": "Watts per Square Meter",
            "radSolarDirectPAvg": "Watts per Square Meter",
            "radSolarDirectPAvgSd": "Watts per Square Meter",
            "radSolarDirectPMax": "Watts per Square Meter",
            "radSolarDirectPMaxSd": "Watts per Square Meter",
            "radSolarDirectPMin": "Watts per Square Meter",
            "radSolarDirectPMinSd": "Watts per Square Meter",
            "radSolarDirectPTot": "Watts per Square Meter",
            "radSolarDirectPTot10p": "Watts per Square Meter",
            "radSolarDirectPTot50p": "Watts per Square Meter",
            "radSolarDirectPTot90p": "Watts per Square Meter",
            "radSolarDirectPTotSd": "Watts per Square Meter",
            "radSolarDirectTot": "Watts per Square Meter",
            "radSolarDirectTot10p": "Watts per Square Meter",
            "radSolarDirectTot50p": "Watts per Square Meter",
            "radSolarDirectTot90p": "Watts per Square Meter",
            "radSolarDirectTotSd": "Watts per Square Meter",
            "radSolarMax": "Watts per Square Meter",
            "radSolarMaxSd": "Watts per Square Meter",
            "radSolarMin": "Watts per Square Meter",
            "radSolarMinSd": "Watts per Square Meter",
            "radSolarTot": "Watts per Square Meter",
            "radSolarTot10p": "Watts per Square Meter",
            "radSolarTot50p": "Watts per Square Meter",
            "radSolarTot90p": "Watts per Square Meter",
            "radSolarTotSd": "Watts per Square Meter",
            "relHumAvg": "Percent value in [0,100]",
            "relHumAvgSd": "Percent value in [0,100]",
            "relHumMax": "Percent value in [0,100]",
            "relHumMaxSd": "Percent value in [0,100]",
            "relHumMin": "Percent value in [0,100]",
            "relHumMinSd": "Percent value in [0,100]",
            "sfcPresAvg": "Millibars",
            "sfcPresAvgSd": "Millibars",
            "sfcPresMax": "Millibars",
            "sfcPresMaxSd": "Millibars",
            "sfcPresMin": "Millibars",
            "sfcPresMinSd": "Millibars",
            "snowfall": "Inches",
            "snowfall25p": "Inches",
            "snowfall50p": "Inches",
            "snowfall75p": "Inches",
            "snowfall90p": "Inches",
            "snowfallFreq": "Percent value in [0,100]",
            "snowfallFreq0": "Percent value in [0,100]",
            "snowfallFreq001To009": "Percent value in [0,100]",
            "snowfallFreq010To024": "Percent value in [0,100]",
            "snowfallFreq025To049": "Percent value in [0,100]",
            "snowfallFreq050To099": "Percent value in [0,100]",
            "snowfallFreq100To149": "Percent value in [0,100]",
            "snowfallFreq150To249": "Percent value in [0,100]",
            "snowfallFreq250Plus": "Percent value in [0,100]",
            "snowfallIqr": "Inches",
            "snowfallSd": "Inches",
            "spcHumAvg": "Grams of Moisture per Kilograms of Air",
            "spcHumAvgSd": "Grams of Moisture per Kilograms of Air",
            "spcHumMax": "Grams of Moisture per Kilograms of Air",
            "spcHumMaxSd": "Grams of Moisture per Kilograms of Air",
            "spcHumMin": "Grams of Moisture per Kilograms of Air",
            "spcHumMinSd": "Grams of Moisture per Kilograms of Air",
            "tempAvg": "Fahrenheit",
            "tempAvg10p": "Fahrenheit",
            "tempAvg50p": "Fahrenheit",
            "tempAvg90p": "Fahrenheit",
            "tempAvgSd": "Fahrenheit",
            "tempMax": "Fahrenheit",
            "tempMax10p": "Fahrenheit",
            "tempMax50p": "Fahrenheit",
            "tempMax90p": "Fahrenheit",
            "tempMaxSd": "Fahrenheit",
            "tempMin": "Fahrenheit",
            "tempMin10p": "Fahrenheit",
            "tempMin50p": "Fahrenheit",
            "tempMin90p": "Fahrenheit",
            "tempMinSd": "Fahrenheit",
            "wetBulbAvg": "Fahrenheit",
            "wetBulbAvgSd": "Fahrenheit",
            "wetBulbMax": "Fahrenheit",
            "wetBulbMaxSd": "Fahrenheit",
            "wetBulbMin": "Fahrenheit",
            "wetBulbMinSd": "Fahrenheit",
            "windChillAvg": "Fahrenheit",
            "windChillAvgSd": "Fahrenheit",
            "windChillMax": "Fahrenheit",
            "windChillMaxSd": "Fahrenheit",
            "windChillMin": "Fahrenheit",
            "windChillMinSd": "Fahrenheit",
            "windDir100mAvg": "Degrees [0,360] (0 = North)",
            "windDir80mAvg": "Degrees [0,360] (0 = North)",
            "windDirAvg": "Degrees [0,360] (0 = North)",
            "windGustMax": "Miles per Hour",
            "windGustMaxSd": "Miles per Hour",
            "windSpd100mAvg": "Miles per Hour",
            "windSpd100mAvgSd": "Miles per Hour",
            "windSpd100mMax": "Miles per Hour",
            "windSpd100mMaxSd": "Miles per Hour",
            "windSpd100mMin": "Miles per Hour",
            "windSpd100mMinSd": "Miles per Hour",
            "windSpd80mAvg": "Miles per Hour",
            "windSpd80mAvgSd": "Miles per Hour",
            "windSpd80mMax": "Miles per Hour",
            "windSpd80mMaxSd": "Miles per Hour",
            "windSpd80mMin": "Miles per Hour",
            "windSpd80mMinSd": "Miles per Hour",
            "windSpdAvg": "Miles per Hour",
            "windSpdAvgSd": "Miles per Hour",
            "windSpdMax": "Miles per Hour",
            "windSpdMaxSd": "Miles per Hour",
            "windSpdMin": "Miles per Hour",
            "windSpdMinSd": "Miles per Hour"
          }
        }
      },
      "fieldListHourObj": {
        "title": "fieldListObj",
        "required": [
          "fields"
        ],
        "type": "object",
        "properties": {
          "fields": {
            "$ref": "#/components/schemas/fields"
          }
        },
        "description": "A list of returned field names the associated units.",
        "example": {
          "fields": {
            "timestamp": "Timestamp as string: RFC 3339",
            "cldCvr": "Percent value in [0,100]",
            "cldCvrSd": "Percent value in [0,100]",
            "dewPt": "Fahrenheit",
            "dewPtSd": "Fahrenheit",
            "feelsLike": "Fahrenheit",
            "feelsLikeSd": "Fahrenheit",
            "heatIndex": "Fahrenheit",
            "heatIndexSd": "Fahrenheit",
            "mslPres": "Millibars",
            "mslPresSd": "Millibars",
            "precip": "Inches",
            "precipFreq": "Percent value in [0,100]",
            "precipSd": "Inches",
            "radSolar": "Watts per Square Meter",
            "radSolar10p": "Watts per Square Meter",
            "radSolar50p": "Watts per Square Meter",
            "radSolar90p": "Watts per Square Meter",
            "radSolarDirect": "Watts per Square Meter",
            "radSolarDirectP": "Watts per Square Meter",
            "radSolarDirectPSd": "Watts per Square Meter",
            "radSolarDirectSd": "Watts per Square Meter",
            "radSolarSd": "Watts per Square Meter",
            "relHum": "Percent value in [0,100]",
            "relHumSd": "Percent value in [0,100]",
            "sfcPres": "Millibars",
            "sfcPresSd": "Millibars",
            "snowfall": "Inches",
            "snowfallFreq": "Percent value in [0,100]",
            "snowfallSd": "Inches",
            "spcHum": "Grams of Moisture per Kilograms of Air",
            "spcHumSd": "Grams of Moisture per Kilograms of Air",
            "temp": "Fahrenheit",
            "temp10p": "Fahrenheit",
            "temp50p": "Fahrenheit",
            "temp90p": "Fahrenheit",
            "tempSd": "Fahrenheit",
            "wetBulb": "Fahrenheit",
            "wetBulbSd": "Fahrenheit",
            "windChill": "Fahrenheit",
            "windChillSd": "Fahrenheit",
            "windDir": "Degrees [0,360] (0 = North)",
            "windDir100m": "Degrees [0,360] (0 = North)",
            "windDir80m": "Degrees [0,360] (0 = North)",
            "windGust": "Miles per Hour",
            "windGustSd": "Miles per Hour",
            "windSpd": "Miles per Hour",
            "windSpdSd": "Miles per Hour",
            "windVecSpd100m": "Miles per Hour",
            "windVecSpd80m": "Miles per Hour"
          }
        }
      },
      "cldCvr": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "Cloud Cover as a percent value.",
        "format": "float",
        "example": 52
      },
      "cldCvrSd": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The Standard Deviation of Cloud Cover as a percent value.",
        "format": "float",
        "example": 40.12
      },
      "cldCvrMin": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "Minimum Cloud Cover as a percent value in [0.0, 100.0].",
        "format": "float",
        "example": 21
      },
      "cldCvrMinSd": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The Standard Deviation of Minimum Cloud Cover as a percent value in [0.0, 100.0].",
        "format": "float",
        "example": 30.44
      },
      "cldCvrAvg": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "Average Cloud Cover as a percent value in [0.0, 100.0].",
        "format": "float",
        "example": 55
      },
      "cldCvrAvgSd": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The Standard Deviation of Average Cloud Cover as a percent value in [0.0, 100.0].",
        "format": "float",
        "example": 32
      },
      "cldCvrMax": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "Maximum Cloud Cover as a percent value in [0.0, 100.0].",
        "format": "float",
        "example": 87
      },
      "cldCvrMaxSd": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The Standard Deviation of Maximum Cloud Cover as a percent value in [0.0, 100.0].",
        "format": "float",
        "example": 26
      },
      "dewPt": {
        "type": "number",
        "description": "Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 28.01
      },
      "dewPtSd": {
        "type": "number",
        "description": "The Standard Deviation of Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 14.42
      },
      "dewPtMin": {
        "type": "number",
        "description": "Minimum Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 21.63
      },
      "dewPtMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 13.42
      },
      "dewPtAvg": {
        "type": "number",
        "description": "Average Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 27.72
      },
      "dewPtAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 13.5
      },
      "dewPtMax": {
        "type": "number",
        "description": "Maximum Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 34.02
      },
      "dewPtMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 14.16
      },
      "feelsLike": {
        "type": "number",
        "description": "Feels Like Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 36.75
      },
      "feelsLikeSd": {
        "type": "number",
        "description": "The Standard Deviation of Feels Like Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 12.77
      },
      "feelsLikeMin": {
        "type": "number",
        "description": "Minimum Feels Like Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 27.25
      },
      "feelsLikeMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Feels Like Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 12.67
      },
      "feelsLikeAvg": {
        "type": "number",
        "description": "Average Feels Like Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 35.06
      },
      "feelsLikeAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Feels Like Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 12.07
      },
      "feelsLikeMax": {
        "type": "number",
        "description": "Maximum Feels Like Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 42.86
      },
      "feelsLikeMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Feels Like Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 12.4
      },
      "heatIndex": {
        "type": "number",
        "description": "Heat Index in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 39.95
      },
      "heatIndexSd": {
        "type": "number",
        "description": "The Standard Deviation of Heat Index in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.57
      },
      "heatIndexMin": {
        "type": "number",
        "description": "Minimum Heat Index in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 31.85
      },
      "heatIndexMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Heat Index in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 9.99
      },
      "heatIndexAvg": {
        "type": "number",
        "description": "Average Heat Index in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 38.59
      },
      "heatIndexAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Heat Index in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 9.93
      },
      "heatIndexMax": {
        "type": "number",
        "description": "Maximum Heat Index in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 45.41
      },
      "heatIndexMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Heat Index in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.69
      },
      "mslPres": {
        "type": "number",
        "description": "Mean Sea Level Pressure in millibars.",
        "format": "float",
        "example": 1019.5
      },
      "mslPresSd": {
        "type": "number",
        "description": "The Standard Deviation of Mean Sea Level Pressure in millibars.",
        "format": "float",
        "example": 8.03
      },
      "mslPresMin": {
        "type": "number",
        "description": "Minimum Mean Sea Level Pressure in millibars.",
        "format": "float",
        "example": 1014.93
      },
      "mslPresMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Mean Sea Level Pressure in millibars.",
        "format": "float",
        "example": 8.34
      },
      "mslPresAvg": {
        "type": "number",
        "description": "Average Mean Sea Level Pressure in millibars.",
        "format": "float",
        "example": 1019.68
      },
      "mslPresAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Mean Sea Level Pressure in millibars.",
        "format": "float",
        "example": 7.49
      },
      "mslPresMax": {
        "type": "number",
        "description": "Maximum Mean Sea Level Pressure in millibars.",
        "format": "float",
        "example": 1024.11
      },
      "mslPresMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Mean Sea Level Pressure in millibars.",
        "format": "float",
        "example": 6.96
      },
      "precip": {
        "type": "number",
        "description": "Total precipitation in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "precip25p": {
        "type": "number",
        "description": "25% value for precip in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "precip50p": {
        "type": "number",
        "description": "50% value for precip in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "precip75p": {
        "type": "number",
        "description": "75% value for precip in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "precip90p": {
        "type": "number",
        "description": "90% value for precip in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "precipIqr": {
        "type": "number",
        "description": "Inter-quartile Range (precip75p - precip25p) for precip in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "precipSd": {
        "type": "number",
        "description": "The Standard Deviation of Total precipitation in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.26
      },
      "precipFreq": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of precipitation as a percent value.",
        "format": "float",
        "example": 30.81
      },
      "precipFreq0": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of zero precipitation as a percent value.",
        "format": "float",
        "example": 69.19
      },
      "precipFreq001To009": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of precipitation greater than 0 and less than 0.10 inches as a percent value.",
        "format": "float",
        "example": 9.51
      },
      "precipFreq010To024": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of precipitation greater than 0.10 and less than 0.25 inches as a percent value.",
        "format": "float",
        "example": 8.09
      },
      "precipFreq025To049": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of precipitation greater than 0.25 and less than 0.50 inches as a percent value.",
        "format": "float",
        "example": 7.77
      },
      "precipFreq050To099": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of precipitation greater than 0.50 and less than 1.00 inches as a percent value.",
        "format": "float",
        "example": 4.45
      },
      "precipFreq100To249": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of precipitation greater than 1.00 and less than 2.50 inches as a percent value.",
        "format": "float",
        "example": 1
      },
      "precipFreq250To499": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of precipitation greater than 2.50 and less than 5.00 inches as a percent value.",
        "format": "float",
        "example": 0
      },
      "precipFreq500Plus": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of precipitation greater than 5.00 inches as a percent value.",
        "format": "float",
        "example": 0
      },
      "radSolar": {
        "type": "number",
        "description": "Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolarSd": {
        "type": "number",
        "description": "The Standard Deviation of Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolar10p": {
        "type": "number",
        "description": "10th Percentile of Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolar50p": {
        "type": "number",
        "description": "50th Percentile of Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolar90p": {
        "type": "number",
        "description": "90th Percentile of Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 180
      },
      "radSolarMin": {
        "type": "number",
        "description": "Minimum Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolarMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolarAvg": {
        "type": "number",
        "description": "Average Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 79
      },
      "radSolarAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 36.86
      },
      "radSolarMax": {
        "type": "number",
        "description": "Maximum Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 359
      },
      "radSolarMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 149.01
      },
      "radSolarTot": {
        "type": "number",
        "description": "Total Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1897
      },
      "radSolarTotSd": {
        "type": "number",
        "description": "The Standard Deviation of Total Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 884.57
      },
      "radSolarTot10p": {
        "type": "number",
        "description": "10th Percentile of Total Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1180
      },
      "radSolarTot50p": {
        "type": "number",
        "description": "50th Percentile of Total Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1897
      },
      "radSolarTot90p": {
        "type": "number",
        "description": "90th Percentile of Total Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 2380
      },
      "radSolarDirect": {
        "type": "number",
        "description": "Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 42
      },
      "radSolarDirectSd": {
        "type": "number",
        "description": "The Standard Deviation of Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 35
      },
      "radSolarDirectMin": {
        "type": "number",
        "description": "Minimum Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolarDirectMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolarDirectAvg": {
        "type": "number",
        "description": "Average Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 44
      },
      "radSolarDirectAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 27
      },
      "radSolarDirectMax": {
        "type": "number",
        "description": "Maximum Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 275
      },
      "radSolarDirectMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 112
      },
      "radSolarDirectTot": {
        "type": "number",
        "description": "Total Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1056
      },
      "radSolarDirectTotSd": {
        "type": "number",
        "description": "The Standard Deviation of Total Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 648
      },
      "radSolarDirectTot10p": {
        "type": "number",
        "description": "10th Percentile of Total Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 660
      },
      "radSolarDirectTot50p": {
        "type": "number",
        "description": "50th Percentile of Total Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1056
      },
      "radSolarDirectTot90p": {
        "type": "number",
        "description": "90th Percentile of Total Direct Horizontal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1580
      },
      "radSolarDirectP": {
        "type": "number",
        "description": "Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 48
      },
      "radSolarDirectPSd": {
        "type": "number",
        "description": "The Standard Deviation of Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 40
      },
      "radSolarDirectPMin": {
        "type": "number",
        "description": "Minimum Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolarDirectPMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 0
      },
      "radSolarDirectPAvg": {
        "type": "number",
        "description": "Average Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 50
      },
      "radSolarDirectPAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 31
      },
      "radSolarDirectPMax": {
        "type": "number",
        "description": "Maximum Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 305
      },
      "radSolarDirectPMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 123
      },
      "radSolarDirectPTot": {
        "type": "number",
        "description": "Total Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1200
      },
      "radSolarDirectPTotSd": {
        "type": "number",
        "description": "The Standard Deviation of Total Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 744
      },
      "radSolarDirectPTot10p": {
        "type": "number",
        "description": "10th Percentile of Total Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 750
      },
      "radSolarDirectPTot50p": {
        "type": "number",
        "description": "50th Percentile of Total Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1200
      },
      "radSolarDirectPTot90p": {
        "type": "number",
        "description": "90th Percentile of Total Direct Orthogonal Solar Radiation in watts per square meter.",
        "format": "float",
        "example": 1820
      },
      "relHum": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "Relative humidity as a percent value.",
        "format": "float",
        "example": 64
      },
      "relHumSd": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The Standard Deviation of Relative humidity as a percent value.",
        "format": "float",
        "example": 18
      },
      "relHumMin": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "Minimum Relative humidity as a percent value.",
        "format": "float",
        "example": 50
      },
      "relHumMinSd": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The Standard Deviation of Minimum Relative humidity as a percent value.",
        "format": "float",
        "example": 17
      },
      "relHumAvg": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "Average Relative humidity as a percent value.",
        "format": "float",
        "example": 67
      },
      "relHumAvgSd": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The Standard Deviation of Average Relative humidity as a percent value.",
        "format": "float",
        "example": 15.22
      },
      "relHumMax": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "Maximum Relative humidity as a percent value.",
        "format": "float",
        "example": 83
      },
      "relHumMaxSd": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The Standard Deviation of Maximum Relative humidity as a percent value.",
        "format": "float",
        "example": 14.22
      },
      "sfcPres": {
        "type": "number",
        "description": "Surface pressure in millibars.",
        "format": "float",
        "example": 1017.05
      },
      "sfcPresSd": {
        "type": "number",
        "description": "The Standard Deviation of Surface pressure in millibars.",
        "format": "float",
        "example": 8.18
      },
      "sfcPresMin": {
        "type": "number",
        "description": "Minimum Surface pressure in millibars.",
        "format": "float",
        "example": 1012.28
      },
      "sfcPresMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Surface pressure in millibars.",
        "format": "float",
        "example": 8.44
      },
      "sfcPresAvg": {
        "type": "number",
        "description": "Average Surface pressure in millibars.",
        "format": "float",
        "example": 1017.19
      },
      "sfcPresAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Surface pressure in millibars.",
        "format": "float",
        "example": 7.65
      },
      "sfcPresMax": {
        "type": "number",
        "description": "Maximum Surface pressure in millibars.",
        "format": "float",
        "example": 1021.71
      },
      "sfcPresMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Surface pressure in millibars.",
        "format": "float",
        "example": 7.22
      },
      "snowfall": {
        "type": "number",
        "description": "Total snowfall in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.94
      },
      "snowfall25p": {
        "type": "number",
        "description": "25% value for snowfall in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "snowfall50p": {
        "type": "number",
        "description": "50% value for snowfall in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "snowfall75p": {
        "type": "number",
        "description": "75% value for snowfall in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "snowfall90p": {
        "type": "number",
        "description": "90% value for snowfall in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "snowfallIqr": {
        "type": "number",
        "description": "Inter-quartile Range (snowfall75p - snowfall25p) for snowfall in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.28
      },
      "snowfallSd": {
        "type": "number",
        "description": "The Standard Deviation of Total snowfall in inches (imperial) or centimeters (metric, si).",
        "format": "float",
        "example": 0.84
      },
      "snowfallFreq": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of snowfall as a percent value.",
        "format": "float",
        "example": 6.66
      },
      "snowfallFreq0": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of zero snowfall as a percent value.",
        "format": "float",
        "example": 93.34
      },
      "snowfallFreq001To009": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of snowfall greater than 0 and less than 1.0 inches as a percent value.",
        "format": "float",
        "example": 4.11
      },
      "snowfallFreq010To024": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of snowfall greater than 1.0 and less than 2.5 inches as a percent value.",
        "format": "float",
        "example": 1.94
      },
      "snowfallFreq025To049": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of snowfall greater than 2.5 and less than 5.0 inches as a percent value.",
        "format": "float",
        "example": 0.61
      },
      "snowfallFreq050To099": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of snowfall greater than 5.0 and less than 10.0 inches as a percent value.",
        "format": "float",
        "example": 0
      },
      "snowfallFreq100To149": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of snowfall greater than 10.0 and less than 15.0 inches as a percent value.",
        "format": "float",
        "example": 0
      },
      "snowfallFreq150To249": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of snowfall greater than 15.0 and less than 25.0 inches as a percent value.",
        "format": "float",
        "example": 0
      },
      "snowfallFreq250Plus": {
        "maximum": 100,
        "minimum": 0,
        "type": "number",
        "description": "The frequency of snowfall greater than 25.0 inches as a percent value.",
        "format": "float",
        "example": 0
      },
      "spcHum": {
        "type": "number",
        "description": "Specific humidity in grams per kilograms.",
        "format": "float",
        "example": 3.75
      },
      "spcHumSd": {
        "type": "number",
        "description": "The Standard Deviation of Specific humidity in grams per kilograms.",
        "format": "float",
        "example": 2.43
      },
      "spcHumMin": {
        "type": "number",
        "description": "Minimum Specific humidity in grams per kilograms.",
        "format": "float",
        "example": 2.83
      },
      "spcHumMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Specific humidity in grams per kilograms.",
        "format": "float",
        "example": 1.81
      },
      "spcHumAvg": {
        "type": "number",
        "description": "Average Specific humidity in grams per kilograms.",
        "format": "float",
        "example": 3.69
      },
      "spcHumAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Specific humidity in grams per kilograms.",
        "format": "float",
        "example": 2.24
      },
      "spcHumMax": {
        "type": "number",
        "description": "Maximum Specific humidity in grams per kilograms.",
        "format": "float",
        "example": 4.73
      },
      "spcHumMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Specific humidity in grams per kilograms.",
        "format": "float",
        "example": 2.84
      },
      "temp": {
        "type": "number",
        "description": "Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 39.95
      },
      "tempSd": {
        "type": "number",
        "description": "The Standard Deviation of Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.57
      },
      "temp10p": {
        "type": "number",
        "description": "10th Percentile Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 27.8
      },
      "temp50p": {
        "type": "number",
        "description": "50th Percentile Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 39.95
      },
      "temp90p": {
        "type": "number",
        "description": "90th Percentile Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 50.2
      },
      "tempAvg": {
        "type": "number",
        "description": "Average Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 38.59
      },
      "tempAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 9.93
      },
      "tempAvg10p": {
        "type": "number",
        "description": "10th Percentile Average Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 29.5
      },
      "tempAvg50p": {
        "type": "number",
        "description": "50th Percentile Average Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 38.59
      },
      "tempAvg90p": {
        "type": "number",
        "description": "90th Percentile Average Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 47.2
      },
      "tempMax": {
        "type": "number",
        "description": "Maximum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 45.41
      },
      "tempMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.69
      },
      "tempMax10p": {
        "type": "number",
        "description": "10th Percentile Maximum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 34.8
      },
      "tempMax50p": {
        "type": "number",
        "description": "50th Percentile Maximum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 45.41
      },
      "tempMax90p": {
        "type": "number",
        "description": "90th Percentile Maximum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 55.1
      },
      "tempMin": {
        "type": "number",
        "description": "Minimum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 31.85
      },
      "tempMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 9.99
      },
      "tempMin10p": {
        "type": "number",
        "description": "10th Percentile Minimum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 22.4
      },
      "tempMin50p": {
        "type": "number",
        "description": "50th Percentile Minimum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 31.85
      },
      "tempMin90p": {
        "type": "number",
        "description": "90th Percentile Minimum Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 40.6
      },
      "wetBulb": {
        "type": "number",
        "description": "Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 36.14
      },
      "wetBulbSd": {
        "type": "number",
        "description": "The Standard Deviation of Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.51
      },
      "wetBulbMin": {
        "type": "number",
        "description": "Minimum Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 29.44
      },
      "wetBulbMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.08
      },
      "wetBulbAvg": {
        "type": "number",
        "description": "Average Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 35.17
      },
      "wetBulbAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.04
      },
      "wetBulbMax": {
        "type": "number",
        "description": "Maximum Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 40.6
      },
      "wetBulbMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.61
      },
      "windChill": {
        "type": "number",
        "description": "Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 34.5
      },
      "windChillSd": {
        "type": "number",
        "description": "The Standard Deviation of Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 11.2
      },
      "windChillMin": {
        "type": "number",
        "description": "Minimum Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 22.5
      },
      "windChillMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.3
      },
      "windChillAvg": {
        "type": "number",
        "description": "Average Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 31.8
      },
      "windChillAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 9.8
      },
      "windChillMax": {
        "type": "number",
        "description": "Maximum Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 39.4
      },
      "windChillMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).",
        "format": "float",
        "example": 10.1
      },
      "windDir": {
        "maximum": 360,
        "minimum": 0,
        "type": "number",
        "description": "Wind direction at 10 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).",
        "format": "float",
        "example": 290.09
      },
      "windDirAvg": {
        "maximum": 360,
        "minimum": 0,
        "type": "number",
        "description": "Average Wind direction at 10 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).",
        "format": "float",
        "example": 278.13
      },
      "windDir80m": {
        "maximum": 360,
        "minimum": 0,
        "type": "number",
        "description": "Wind direction at 80 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).",
        "format": "float",
        "example": 283
      },
      "windDir80mAvg": {
        "maximum": 360,
        "minimum": 0,
        "type": "number",
        "description": "Average Wind direction at 80 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).",
        "format": "float",
        "example": 275
      },
      "windDir100m": {
        "maximum": 360,
        "minimum": 0,
        "type": "number",
        "description": "Wind direction at 100 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).",
        "format": "float",
        "example": 284.78
      },
      "windDir100mAvg": {
        "maximum": 360,
        "minimum": 0,
        "type": "number",
        "description": "Average Wind direction at 100 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).",
        "format": "float",
        "example": 274.78
      },
      "windGust": {
        "type": "number",
        "description": "Maximum Wind gust at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 12.4
      },
      "windGustSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Wind gust at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 5.9
      },
      "windGustMax": {
        "type": "number",
        "description": "Maximum Wind gust at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 18.6
      },
      "windGustMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Wind gust at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 7.3
      },
      "windSpd": {
        "type": "number",
        "description": "Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 5.41
      },
      "windSpdSd": {
        "type": "number",
        "description": "The Standard Deviation of Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 4.16
      },
      "windSpdMin": {
        "type": "number",
        "description": "Minimum Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 1.82
      },
      "windSpdMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 2.34
      },
      "windSpdAvg": {
        "type": "number",
        "description": "Average Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 5.71
      },
      "windSpdAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 3.42
      },
      "windSpdMax": {
        "type": "number",
        "description": "Maximum Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 10.29
      },
      "windSpdMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 4.64
      },
      "windSpd80mMin": {
        "type": "number",
        "description": "Minimum Wind speed at 80 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 3.2
      },
      "windSpd80mMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Wind speed at 80 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 3.1
      },
      "windSpd80mAvg": {
        "type": "number",
        "description": "Average Wind speed at 80 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 8.5
      },
      "windSpd80mAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Wind speed at 80 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 4.2
      },
      "windSpd80mMax": {
        "type": "number",
        "description": "Maximum Wind speed at 80 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 16.3
      },
      "windSpd80mMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Wind speed at 80 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 6.1
      },
      "windSpd100mMin": {
        "type": "number",
        "description": "Minimum Wind speed at 100 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 3.4
      },
      "windSpd100mMinSd": {
        "type": "number",
        "description": "The Standard Deviation of Minimum Wind speed at 100 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 3.3
      },
      "windSpd100mAvg": {
        "type": "number",
        "description": "Average Wind speed at 100 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 9.1
      },
      "windSpd100mAvgSd": {
        "type": "number",
        "description": "The Standard Deviation of Average Wind speed at 100 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 4.5
      },
      "windSpd100mMax": {
        "type": "number",
        "description": "Maximum Wind speed at 100 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 17.2
      },
      "windSpd100mMaxSd": {
        "type": "number",
        "description": "The Standard Deviation of Maximum Wind speed at 100 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 6.5
      },
      "windVecSpd80m": {
        "type": "number",
        "description": "Vector wind speed at 80 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 5.07
      },
      "windVecSpd100m": {
        "type": "number",
        "description": "Vector wind speed at 100 meters in miles per hour (imperial) or km/hour (metric, si).",
        "format": "float",
        "example": 5.51
      },
      "errorObj": {
        "type": "object",
        "properties": {
          "errorCode": {
            "maximum": 600,
            "minimum": 100,
            "type": "integer",
            "example": 404
          },
          "errorMessage": {
            "type": "string",
            "example": "NOT FOUND. Item not found."
          }
        }
      },
      "date": {
        "type": "string",
        "description": "A date formatted as an RFC3339 date value.",
        "format": "date",
        "example": "2019-12-20"
      },
      "timestamp": {
        "type": "string",
        "description": "A timestamp formatted as an RFC3339 date-time value.",
        "format": "date-time",
        "example": "2019-12-20T23:00:00-05:00"
      },
      "pointObj": {
        "required": [
          "boundingPoints",
          "elevation",
          "grid",
          "latitude",
          "longitude",
          "timezone"
        ],
        "type": "object",
        "properties": {
          "latitude": {
            "$ref": "#/components/schemas/latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/longitude"
          },
          "timezone": {
            "$ref": "#/components/schemas/timezone"
          },
          "countryCode": {
            "$ref": "#/components/schemas/countryCode"
          },
          "countryName": {
            "$ref": "#/components/schemas/countryName"
          },
          "subdivCode": {
            "$ref": "#/components/schemas/subdivCode"
          },
          "subdivName": {
            "$ref": "#/components/schemas/subdivName"
          },
          "boundingPoints": {
            "$ref": "#/components/schemas/boundingPoints"
          },
          "grid": {
            "$ref": "#/components/schemas/grid"
          },
          "elevation": {
            "$ref": "#/components/schemas/elevation"
          }
        },
        "description": "Metadata object for a postcode"
      },
      "latitude": {
        "maximum": 90,
        "minimum": -90,
        "type": "number",
        "description": "A latitude value between -90° and 90°.",
        "format": "float",
        "example": 38.8552
      },
      "longitude": {
        "maximum": 180,
        "minimum": -180,
        "type": "number",
        "description": "A longitude value between -180° (West) and 180° (East).",
        "format": "float",
        "example": -77.0513
      },
      "timezone": {
        "type": "string",
        "description": "An Olson timezone ID.",
        "example": "America/New_York"
      },
      "countryCode": {
        "type": "string",
        "description": "An [ISO 3166-1 Alpha-2 country code](https://developer.weathersourceapis.com/apis/countries-with-postal-code-support/).",
        "example": "US"
      },
      "countryName": {
        "type": "string",
        "description": "A common country name.",
        "example": "United States of America"
      },
      "subdivCode": {
        "type": "string",
        "description": "An ISO 3166-2 country subdivision code.",
        "example": "US-VA"
      },
      "subdivName": {
        "type": "string",
        "description": "A common country subdivision name.",
        "example": "Virginia"
      },
      "boundingPoints": {
        "type": "array",
        "description": "A list of OnPoint™ points related to the location",
        "items": {
          "$ref": "#/components/schemas/boundingPoints_inner"
        }
      },
      "onpointId": {
        "type": "integer",
        "description": "An OnPoint™ ID.",
        "example": 10725864
      },
      "grid": {
        "type": "string",
        "description": "The OnPoint™ grid on which the resource exists.",
        "example": "NORTH_AMERICA_GRID",
        "enum": [
          "GLOBAL_GRID",
          "NORTH_AMERICA_GRID"
        ]
      },
      "distance": {
        "type": "number",
        "description": "A distance from the provided point in miles.",
        "format": "float",
        "example": 2.6772
      },
      "elevation": {
        "type": "number",
        "description": "The elevation above sea level of a location in meters",
        "format": "float",
        "example": 173.5
      },
      "dateRangeObj": {
        "required": [
          "dateEnd",
          "dateStart"
        ],
        "type": "object",
        "properties": {
          "dateStart": {
            "$ref": "#/components/schemas/dateStart"
          },
          "dateEnd": {
            "$ref": "#/components/schemas/dateEnd"
          }
        },
        "description": "A date range object."
      },
      "dateStart": {
        "type": "string",
        "description": "A start date for a date range formatted as an RFC3339 date value.",
        "format": "date",
        "example": "2019-12-20"
      },
      "dateEnd": {
        "type": "string",
        "description": "An end date for a date range formatted as an RFC3339 date value.",
        "format": "date",
        "example": "2019-12-20"
      },
      "timestampRangeObj": {
        "required": [
          "timestampEnd",
          "timestampStart"
        ],
        "type": "object",
        "properties": {
          "timestampStart": {
            "$ref": "#/components/schemas/timestampStart"
          },
          "timestampEnd": {
            "$ref": "#/components/schemas/timestampEnd"
          }
        },
        "description": "A timestamp range object"
      },
      "timestampStart": {
        "type": "string",
        "description": "A start timestamp for a timestamp range formatted as an RFC3339 date-time value.",
        "format": "date-time",
        "example": "2019-12-20T23:00:00-05:00"
      },
      "timestampEnd": {
        "type": "string",
        "description": "An end timestamp for a timestamp range formatted as an RFC3339 date-time value.",
        "format": "date-time",
        "example": "2019-12-20T23:00:00-05:00"
      },
      "postcodeObj": {
        "required": [
          "boundingPoints",
          "countryCode",
          "countryName",
          "elevation",
          "grid",
          "latitude",
          "longitude",
          "postcode",
          "timezone"
        ],
        "type": "object",
        "properties": {
          "postcode": {
            "$ref": "#/components/schemas/postcode"
          },
          "latitude": {
            "$ref": "#/components/schemas/latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/longitude"
          },
          "timezone": {
            "$ref": "#/components/schemas/timezone"
          },
          "countryCode": {
            "$ref": "#/components/schemas/countryCode"
          },
          "countryName": {
            "$ref": "#/components/schemas/countryName"
          },
          "subdivCode": {
            "$ref": "#/components/schemas/subdivCode"
          },
          "subdivName": {
            "$ref": "#/components/schemas/subdivName"
          },
          "boundingPoints": {
            "$ref": "#/components/schemas/boundingPoints"
          },
          "grid": {
            "$ref": "#/components/schemas/grid"
          },
          "elevation": {
            "$ref": "#/components/schemas/elevation"
          }
        },
        "description": "A postcode location metadata object"
      },
      "postcode": {
        "type": "string",
        "description": "A postcode string.",
        "example": "22222"
      },
      "dmaObj": {
        "required": [
          "countryCode",
          "countryName",
          "dmaId",
          "dmaName",
          "grid",
          "population",
          "samplePoints",
          "timezone"
        ],
        "type": "object",
        "properties": {
          "dmaId": {
            "$ref": "#/components/schemas/dmaId"
          },
          "dmaName": {
            "$ref": "#/components/schemas/dmaName"
          },
          "timezone": {
            "$ref": "#/components/schemas/timezone"
          },
          "population": {
            "$ref": "#/components/schemas/population"
          },
          "countryCode": {
            "$ref": "#/components/schemas/countryCode"
          },
          "countryName": {
            "$ref": "#/components/schemas/countryName"
          },
          "samplePoints": {
            "$ref": "#/components/schemas/samplePoints"
          },
          "grid": {
            "$ref": "#/components/schemas/grid"
          }
        },
        "description": "A Designated Market Area location metadata object"
      },
      "dmaId": {
        "type": "integer",
        "description": "A [Designated Market Area ID](https://developer.weathersourceapis.com/apis/supported-dmas/).",
        "example": 529
      },
      "dmaName": {
        "type": "string",
        "description": "A Designated Market Area name.",
        "example": "Louisville"
      },
      "population": {
        "type": "integer",
        "description": "The population as represented in the 2010 census.",
        "example": 1584746
      },
      "samplePoints": {
        "type": "array",
        "description": "A list of OnPoint™ points used for interpolation for the Designated Market Area. These points are the OnPoint™ ID closest to the centroid of the 10 most populous  postcodes within the target DMA.",
        "items": {
          "$ref": "#/components/schemas/samplePoints_inner"
        }
      },
      "distancePop": {
        "type": "integer",
        "description": "The difference in population for the whole Designated Market Area and the population for the postcode represented by this sample point.",
        "example": 1536552
      },
      "onpointObj": {
        "required": [
          "elevation",
          "grid",
          "latitude",
          "longitude",
          "onpointId",
          "timezone"
        ],
        "type": "object",
        "properties": {
          "onpointId": {
            "$ref": "#/components/schemas/onpointId"
          },
          "latitude": {
            "$ref": "#/components/schemas/latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/longitude"
          },
          "timezone": {
            "$ref": "#/components/schemas/timezone"
          },
          "countryCode": {
            "$ref": "#/components/schemas/countryCode"
          },
          "countryName": {
            "$ref": "#/components/schemas/countryName"
          },
          "subdivCode": {
            "$ref": "#/components/schemas/subdivCode"
          },
          "subdivName": {
            "$ref": "#/components/schemas/subdivName"
          },
          "grid": {
            "$ref": "#/components/schemas/grid"
          },
          "elevation": {
            "$ref": "#/components/schemas/elevation"
          }
        },
        "description": "An OnPoint™ point location metadata object"
      },
      "fields": {
        "type": "object",
        "additionalProperties": {
          "type": "string",
          "description": "Unit value for field identified in the related key.",
          "example": "Fahrenheit"
        }
      },
      "boundingPoints_inner": {
        "required": [
          "distance",
          "elevation",
          "grid",
          "latitude",
          "longitude",
          "onpointId"
        ],
        "type": "object",
        "properties": {
          "onpointId": {
            "$ref": "#/components/schemas/onpointId"
          },
          "latitude": {
            "$ref": "#/components/schemas/latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/longitude"
          },
          "grid": {
            "$ref": "#/components/schemas/grid"
          },
          "distance": {
            "$ref": "#/components/schemas/distance"
          },
          "elevation": {
            "$ref": "#/components/schemas/elevation"
          }
        }
      },
      "samplePoints_inner": {
        "required": [
          "distance",
          "elevation",
          "grid",
          "latitude",
          "longitude",
          "onpointId"
        ],
        "type": "object",
        "properties": {
          "onpointId": {
            "$ref": "#/components/schemas/onpointId"
          },
          "latitude": {
            "$ref": "#/components/schemas/latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/longitude"
          },
          "grid": {
            "$ref": "#/components/schemas/grid"
          },
          "distance": {
            "$ref": "#/components/schemas/distancePop"
          },
          "elevation": {
            "$ref": "#/components/schemas/elevation"
          }
        }
      }
    },
    "responses": {
      "errorResponse": {
        "description": "Unexpected error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/errorObj"
            }
          }
        }
      }
    },
    "parameters": {
      "fieldsDay": {
        "name": "fields",
        "in": "query",
        "description": "A comma separated list of field names to return. The date field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
        "required": true,
        "style": "form",
        "explode": false,
        "schema": {
          "type": "array",
          "example": [
            "all"
          ],
          "items": {
            "type": "string",
            "enum": [
              "cldCvrMin",
              "cldCvrMinSd",
              "cldCvrAvg",
              "cldCvrAvgSd",
              "cldCvrMax",
              "cldCvrMaxSd",
              "dewPtMin",
              "dewPtMinSd",
              "dewPtAvg",
              "dewPtAvgSd",
              "dewPtMax",
              "dewPtMaxSd",
              "feelsLikeMin",
              "feelsLikeMinSd",
              "feelsLikeAvg",
              "feelsLikeAvgSd",
              "feelsLikeMax",
              "feelsLikeMaxSd",
              "heatIndexMin",
              "heatIndexMinSd",
              "heatIndexAvg",
              "heatIndexAvgSd",
              "heatIndexMax",
              "heatIndexMaxSd",
              "mslPresMin",
              "mslPresMinSd",
              "mslPresAvg",
              "mslPresAvgSd",
              "mslPresMax",
              "mslPresMaxSd",
              "precip",
              "precipSd",
              "precip25p",
              "precip50p",
              "precip75p",
              "precip90p",
              "precipIqr",
              "precipFreq",
              "precipFreq0",
              "precipFreq001To009",
              "precipFreq010To024",
              "precipFreq025To049",
              "precipFreq050To099",
              "precipFreq100To249",
              "precipFreq250To499",
              "precipFreq500Plus",
              "radSolarMin",
              "radSolarMinSd",
              "radSolarAvg",
              "radSolarAvgSd",
              "radSolarMax",
              "radSolarMaxSd",
              "radSolarTot",
              "radSolarTotSd",
              "radSolarTot10p",
              "radSolarTot50p",
              "radSolarTot90p",
              "radSolarDirectMin",
              "radSolarDirectMinSd",
              "radSolarDirectAvg",
              "radSolarDirectAvgSd",
              "radSolarDirectMax",
              "radSolarDirectMaxSd",
              "radSolarDirectTot",
              "radSolarDirectTotSd",
              "radSolarDirectTot10p",
              "radSolarDirectTot50p",
              "radSolarDirectTot90p",
              "radSolarDirectPMin",
              "radSolarDirectPMinSd",
              "radSolarDirectPAvg",
              "radSolarDirectPAvgSd",
              "radSolarDirectPMax",
              "radSolarDirectPMaxSd",
              "radSolarDirectPTot",
              "radSolarDirectPTotSd",
              "radSolarDirectPTot10p",
              "radSolarDirectPTot50p",
              "radSolarDirectPTot90p",
              "relHumMin",
              "relHumMinSd",
              "relHumAvg",
              "relHumAvgSd",
              "relHumMax",
              "relHumMaxSd",
              "sfcPresMin",
              "sfcPresMinSd",
              "sfcPresAvg",
              "sfcPresAvgSd",
              "sfcPresMax",
              "sfcPresMaxSd",
              "snowfall",
              "snowfallSd",
              "snowfall25p",
              "snowfall50p",
              "snowfall75p",
              "snowfall90p",
              "snowfallIqr",
              "snowfallFreq",
              "snowfallFreq0",
              "snowfallFreq001To009",
              "snowfallFreq010To024",
              "snowfallFreq025To049",
              "snowfallFreq050To099",
              "snowfallFreq100To149",
              "snowfallFreq150To249",
              "snowfallFreq250Plus",
              "spcHumMin",
              "spcHumMinSd",
              "spcHumAvg",
              "spcHumAvgSd",
              "spcHumMax",
              "spcHumMaxSd",
              "tempAvg",
              "tempAvgSd",
              "tempAvg10p",
              "tempAvg50p",
              "tempAvg90p",
              "tempMax",
              "tempMaxSd",
              "tempMax10p",
              "tempMax50p",
              "tempMax90p",
              "tempMin",
              "tempMinSd",
              "tempMin10p",
              "tempMin50p",
              "tempMin90p",
              "wetBulbMin",
              "wetBulbMinSd",
              "wetBulbAvg",
              "wetBulbAvgSd",
              "wetBulbMax",
              "wetBulbMaxSd",
              "windChillMin",
              "windChillMinSd",
              "windChillAvg",
              "windChillAvgSd",
              "windChillMax",
              "windChillMaxSd",
              "windDirAvg",
              "windDir80mAvg",
              "windDir100mAvg",
              "windGustMax",
              "windGustMaxSd",
              "windSpdMin",
              "windSpdMinSd",
              "windSpdAvg",
              "windSpdAvgSd",
              "windSpdMax",
              "windSpdMaxSd",
              "windSpd80mMin",
              "windSpd80mMinSd",
              "windSpd80mAvg",
              "windSpd80mAvgSd",
              "windSpd80mMax",
              "windSpd80mMaxSd",
              "windSpd100mMin",
              "windSpd100mMinSd",
              "windSpd100mAvg",
              "windSpd100mAvgSd",
              "windSpd100mMax",
              "windSpd100mMaxSd",
              "all",
              "allCldCvr",
              "allHum",
              "allPrecip",
              "allPres",
              "allRad",
              "allTemp",
              "allWind",
              "popular"
            ]
          }
        }
      },
      "fieldsHour": {
        "name": "fields",
        "in": "query",
        "description": "A comma separated list of field names to return. The timestamp field is always returned.\n\n**Limiting the query to needed fields will improve the query response time.**\n\nIn addition to individual field names, following convenience field groups are also supported:\n* all *(all fields)*\n* allCldCvr *(derivatives of cldCvr)*\n* allHum *(derivatives of relHum, spcHum)*\n* allPrecip *(derivatives of precip, snowfall)*\n* allPres *(derivatives of mslPres, sfcPres)*\n* allRad *(derivatives of radSolar, radSolarDirect, radSolarDirectP)*\n* allTemp *(derivatives of dewPt, feelsLike, heatIndex, temp, wetBulb, windChill)*\n* allWind *(derivatives of windDir, windGust, windSpd, windVecSpd80m, windVecSpd100m)*\n* popular *(derivatives of cldCvr, feelsLike, precip, relHum, snowfall, temp, windDir, windSpd)*\n",
        "required": true,
        "style": "form",
        "explode": false,
        "schema": {
          "type": "array",
          "example": [
            "all"
          ],
          "items": {
            "type": "string",
            "enum": [
              "cldCvr",
              "cldCvrSd",
              "dewPt",
              "dewPtSd",
              "feelsLike",
              "feelsLikeSd",
              "heatIndex",
              "heatIndexSd",
              "mslPres",
              "mslPresSd",
              "precip",
              "precipSd",
              "precipFreq",
              "radSolar",
              "radSolarSd",
              "radSolar10p",
              "radSolar50p",
              "radSolar90p",
              "radSolarDirect",
              "radSolarDirectSd",
              "radSolarDirectP",
              "radSolarDirectPSd",
              "relHum",
              "relHumSd",
              "sfcPres",
              "sfcPresSd",
              "snowfall",
              "snowfallSd",
              "snowfallFreq",
              "spcHum",
              "spcHumSd",
              "temp",
              "tempSd",
              "temp10p",
              "temp50p",
              "temp90p",
              "wetBulb",
              "wetBulbSd",
              "windChill",
              "windChillSd",
              "windDir",
              "windDir80m",
              "windDir100m",
              "windGust",
              "windGustSd",
              "windSpd",
              "windSpdSd",
              "windVecSpd80m",
              "windVecSpd100m",
              "all",
              "allCldCvr",
              "allHum",
              "allPrecip",
              "allPres",
              "allRad",
              "allTemp",
              "allWind",
              "popular"
            ]
          }
        }
      },
      "latitude": {
        "name": "latitude",
        "in": "path",
        "description": "A latitude value between -90° and 90°.",
        "required": true,
        "schema": {
          "maximum": 90,
          "minimum": -90,
          "type": "number",
          "format": "float",
          "example": 38.8552
        }
      },
      "longitude": {
        "name": "longitude",
        "in": "path",
        "description": "A longitude value between -180° (West) and 180° (East).",
        "required": true,
        "schema": {
          "maximum": 180,
          "minimum": -180,
          "type": "number",
          "format": "float",
          "example": -77.0513
        }
      },
      "date": {
        "name": "date",
        "in": "path",
        "description": "An date formatted as a RFC3339 date value.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date",
          "example": "2019-12-20"
        }
      },
      "unitScale": {
        "name": "unitScale",
        "in": "query",
        "description": "The unit scale for returned values.<br>",
        "required": false,
        "schema": {
          "type": "string",
          "example": "IMPERIAL",
          "enum": [
            "IMPERIAL",
            "METRIC",
            "SI"
          ],
          "default": "IMPERIAL"
        }
      },
      "dateStart": {
        "name": "dateStart",
        "in": "path",
        "description": "An date formatted as a RFC3339 date value that must occur temporally before dateEnd.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date",
          "example": "2019-12-20"
        }
      },
      "dateEnd": {
        "name": "dateEnd",
        "in": "path",
        "description": "An date formatted as a RFC3339 date value that must occur temporally after dateStart.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date",
          "example": "2019-12-20"
        }
      },
      "timestamp": {
        "name": "timestamp",
        "in": "path",
        "description": "A timestamp formatted as an RFC3339 date-time value. The UTC offset is required.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "2019-12-20T23:00:00-05:00"
        }
      },
      "timestampStart": {
        "name": "timestampStart",
        "in": "path",
        "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally before timestampEnd. The UTC offset is required.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "2019-12-20T23:00:00-05:00"
        }
      },
      "timestampEnd": {
        "name": "timestampEnd",
        "in": "path",
        "description": "A timestamp formatted as an RFC3339 date-time value that must occur temporally after timestampStart. The UTC offset is required.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "2019-12-20T23:00:00-05:00"
        }
      },
      "postcode": {
        "name": "postcode",
        "in": "path",
        "description": "A postcode string.",
        "required": true,
        "schema": {
          "type": "string",
          "example": "22222"
        }
      },
      "countryCode": {
        "name": "countryCode",
        "in": "path",
        "description": "An uppercase 2-character [ISO 3166-1 Alpha-2 country code](https://developer.weathersourceapis.com/apis/countries-with-postal-code-support/).",
        "required": true,
        "schema": {
          "pattern": "^([A-Z]){2}$",
          "type": "string",
          "example": "US"
        }
      },
      "dmaId": {
        "name": "dmaId",
        "in": "path",
        "description": "A [Designated Market Area ID](https://developer.weathersourceapis.com/apis/supported-dmas/).",
        "required": true,
        "schema": {
          "type": "integer",
          "example": 529
        }
      },
      "onpointId": {
        "name": "onpointId",
        "in": "path",
        "description": "An OnPoint™ ID.",
        "required": true,
        "schema": {
          "type": "integer",
          "example": 10725864
        }
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "description": "API key to authorize requests. If you do not have a Weather Source API key [sign up for a free developer account](https://developer.weathersourceapis.com/account/sign-up/) to trial the data, or contact sales at [weathersource@pelmorex.com](mailto:weathersource@pelmorex.com) to explore the right subscription package for your business. You may use the evaluation API Key `C0W60UOFRML47ytbXk4xlLBfv` to access example locations found in this documentation.\n",
        "name": "X-API-KEY",
        "in": "header"
      }
    }
  }
}