Visual Crossing

Visual Crossing provides ~50 years of historical weather data at ~1 km resolution. Requires a free API key.

MetaData(VisualCrossing())
MetaData("VISUAL_CROSSING_API_KEY", "1000 records/day (free tier)", :weather, Dict(:sunset => "Sunset time", :sunrise => "Sunrise time", :moonphase => "Moon phase (0-1)", :humidity => "Humidity (%)", :dew => "Dew point (°C)", :snow => "Snowfall (cm)", :feelslike => "Feels-like temperature (°C)", :snowdepth => "Snow depth (cm)", :winddir => "Wind direction (°)", :precip => "Precipitation (mm)"…), :raster, "1 km", "Global", :timeseries, Dates.Day(1), "~50 years of history", "Commercial (free tier available)", "https://www.visualcrossing.com/resources/documentation/weather-api/timeline-weather-api/", Dict("DataFrames" => "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"))

Setup

Sign up at visualcrossing.com and set your API key:

ENV["VISUAL_CROSSING_API_KEY"] = "your-api-key"

Example

using GeoDataAccess: DataAccessPlan, fetch, VisualCrossing
using Dates

plan = DataAccessPlan(VisualCrossing(), (-74.0, 40.7),
    Date(2024, 1, 1), Date(2024, 1, 7);
    variables = [:tempmax, :tempmin, :precip, :humidity],
    include = "days")
files = fetch(plan)

The include parameter controls temporal resolution: "days" for daily or "hours" for hourly.

Variables

Variable Description
temp Temperature (°C)
tempmax Maximum temperature (°C)
tempmin Minimum temperature (°C)
feelslike Feels-like temperature (°C)
humidity Humidity (%)
dew Dew point (°C)
precip Precipitation (mm)
snow Snowfall (cm)
snowdepth Snow depth (cm)
windspeed Wind speed (km/h)
winddir Wind direction (°)
windgust Wind gust (km/h)
pressure Sea-level pressure (hPa)
cloudcover Cloud cover (%)
uvindex UV index
visibility Visibility (km)
conditions Weather conditions text
sunrise Sunrise time
sunset Sunset time
moonphase Moon phase (0-1)