Tomorrow.io provides high-resolution (4 km) global weather data with hourly or daily granularity. Requires a free API key.
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
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) |