Tomorrow.io

Tomorrow.io provides high-resolution (4 km) global weather data with hourly or daily granularity. Requires a free API key.

MetaData(TomorrowIO())
MetaData("TOMORROW_IO_API_KEY", "~500 req/day (free tier)", :weather, Dict(:temperatureMin => "Daily min temperature (°C)", :pressureSurfaceLevel => "Surface-level pressure (hPa)", :precipitationIntensity => "Precipitation intensity (mm/hr)", :dewPoint => "Dew point (°C)", :windDirection => "Wind direction (°)", :temperatureApparent => "Apparent temperature (°C)", :humidity => "Humidity (%)", :windSpeed => "Wind speed (m/s)", :temperature => "Temperature (°C)", :temperatureMax => "Daily max temperature (°C)"…), :raster, "4 km", "Global", :timeseries, Dates.Hour(1), "2000-present", "Commercial (free tier available)", "https://docs.tomorrow.io/reference/welcome", Dict("DataFrames" => "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"))

Setup

Sign up at tomorrow.io and set your API key:

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

Example

using GeoDataAccess: DataAccessPlan, fetch, TomorrowIO
using Dates

plan = DataAccessPlan(TomorrowIO(), (-74.0, 40.7),
    Date(2024, 1, 1), Date(2024, 1, 7);
    variables = [:temperature, :humidity, :precipitationIntensity],
    timestep = "1d")
files = fetch(plan)

The timestep parameter controls temporal resolution: "1h" for hourly or "1d" for daily.

Variables

Variable Description
temperature Temperature (°C)
temperatureApparent Apparent temperature (°C)
temperatureMax Daily max temperature (°C)
temperatureMin Daily min temperature (°C)
humidity Humidity (%)
dewPoint Dew point (°C)
windSpeed Wind speed (m/s)
windDirection Wind direction (°)
windGust Wind gust (m/s)
precipitationIntensity Precipitation intensity (mm/hr)
precipitationProbability Precipitation probability (%)
rainIntensity Rain intensity (mm/hr)
snowIntensity Snow intensity (mm/hr)
pressureSurfaceLevel Surface-level pressure (hPa)
cloudCover Cloud cover (%)
uvIndex UV index
weatherCode Weather condition code
visibility Visibility (km)