SuperAPI AI Directory

Rideai

RideAI is a map-based app providing AI-generated surf reports and weather conditions.

Open website

About this tool

RideAI is a map-based application that uses artificial intelligence to generate surf reports and display sea conditions and weather conditions. The following introduction is based on the contents of its public code repository buoyant, which is a organized backend version of the RideAI project between 2022 and 2023.

Purpose This library is used to aggregate ocean data from multiple free NOAA (National Oceanic and Atmospheric Administration) APIs to generate surf reports. It implements its own sea condition data API, but it is only available within the United States.

Main capabilities Available sea condition data includes: wave conditions from NDBC buoys (wave height, period, direction), wind data (wind speed, wind direction, gusts), tide levels from CO-OPS stations, and water temperature measured by buoys. When buoy data is unavailable, wave forecasts provided by NWS grid points can be used. Data coverage includes U.S. mainland coastal waters (Atlantic, Pacific, Gulf of Mexico), Hawaii, Alaska, Puerto Rico, the U.S. Virgin Islands, and Guam. The location used must be within about 10 miles of the coast.

Provided interface functions

  • getSeaStateByZip(zipCode): Get ocean conditions by U.S. zip code, only applicable to coastal areas.
  • getSeaState(lat, lon): Get all available ocean data by latitude and longitude (the parameter uses lon rather than lng).
  • getBuoy(buoyId): Get the current observation data of the specified NDBC buoy.
  • findSources(lat, lon, radiusKm): Find available data sources near a location.
  • getTides(lat, lon): Get tide predictions and current water level.
  • getWeather(lat, lon): Get the NWS weather forecast for the coordinates.

Technical notes The repository contains about 40MB of JSON files, used for spatial lookup rather than redundancy. Among them, nwsStations.json (37MB) contains all NOAA weather stations and coordinates, because NOAA does not provide an API to "find nearby stations"; the coastline boundary file (1-2MB) is used for instant coastal validation without API calls; the NDBC/tide station lists are precomputed station locations and metadata, used as a self-built spatial index. Coastal boundary validation is performed by buffering a high-resolution U.S. polygon outward and inward by about 15 kilometers each, then subtracting them to obtain a "thick outline," thereby validating coastal locations with a point-in-polygon test. Tide station locations use geohash as keys for spatial indexing. NWS grid point wave data uses an expanding ring search: first check the target grid point, if there is no data then check the 8 adjacent points, then expand to 12 outer points, and return the first grid point with data. The NDBC station list is built by scraping metadata from the NOAA website. Zip code resolution takes advantage of the fact that the NWS forecast website accepts zip codes and redirects to a URL containing coordinates, without needing a geocoding API.

Data updates and latency NDBC buoys update about every 30 to 60 minutes, and CO-OPS stations update about every 6 minutes. Data may be delayed by 1 to 2 hours.

Limitations and known issues Only applicable to U.S. coastal areas. Inland locations (such as Denver) will receive a prompt, but towns located on the Mexican and Canadian borders will not receive the same prompt (because the coastline boundary includes national borders). Some coastal zip codes may not have nearby data. Government servers occasionally time out. NDBC buoys may go offline without warning. Regarding the STEEPNESS field in NDBC spectral data (AVERAGE, STEEP, VERY_STEEP, SWELL), NOAA does not provide documentation explaining its meaning.

Other information No pricing, platform support, or detailed installation steps are provided in the repository description, only "clone and run" is mentioned. The project author mentioned that he was banned from r/surfing for promoting the app. Data is provided by NOAA/NDBC/NWS.