RideAI 是一个基于地图的应用,通过人工智能生成冲浪报告并展示海况与天气条件。以下介绍基于其公开代码仓库 buoyant 的内容,该仓库是 RideAI 项目 2022 至 2023 年间的后端整理版本。
用途 该库用于从 NOAA(美国国家海洋和大气管理局)的多个免费 API 聚合海洋数据,以生成冲浪报告。它自行实现了一个海况数据 API,但仅在美国境内可用。
主要能力 可获取的海况数据包括:来自 NDBC 浮标的海浪条件(浪高、周期、方向)、风数据(风速、风向、阵风)、来自 CO-OPS 站点的潮位、浮标测得的水温。当浮标数据不可用时,可使用 NWS 网格点提供的海浪预报。数据覆盖范围包括美国本土沿海水域(大西洋、太平洋、墨西哥湾)、夏威夷、阿拉斯加、波多黎各、美属维尔京群岛和关岛。使用位置需位于海岸约 10 英里范围内。
提供的接口函数
- getSeaStateByZip(zipCode):按美国邮编获取海洋条件,仅适用于沿海地区。
- getSeaState(lat, lon):按经纬度获取所有可用海洋数据(参数使用 lon 而非 lng)。
- getBuoy(buoyId):获取指定 NDBC 浮标的当前观测数据。
- findSources(lat, lon, radiusKm):查找位置附近可用的数据源。
- getTides(lat, lon):获取潮汐预测和当前水位。
- getWeather(lat, lon):获取坐标对应的 NWS 天气预报。
技术说明 仓库包含约 40MB 的 JSON 文件,用于空间查找而非冗余。其中 nwsStations.json(37MB)包含所有 NOAA 气象站及坐标,因为 NOAA 未提供“查找附近站点”的 API;海岸边界文件(1-2MB)用于无需 API 调用的即时海岸验证;NDBC/潮汐站点列表为预计算的站点位置与元数据,用作自建空间索引。海岸边界验证通过高分辨率美国多边形向外、向内各缓冲约 15 公里,再相减得到“厚轮廓”,从而以点在多边形内的测试验证沿海位置。潮汐站点位置使用 geohash 作为键进行空间索引。NWS 网格点海浪数据采用扩展环搜索:先查目标网格点,无数据则查 8 个相邻点,再扩展至 12 个外围点,返回首个有数据的网格点。NDBC 站点列表通过抓取 NOAA 网站元数据构建。邮编解析利用 NWS 预报网站接受邮编并重定向到含坐标 URL 的特性,无需地理编码 API。
数据更新与延迟 NDBC 浮标约 30 至 60 分钟更新,CO-OPS 站点约 6 分钟更新。数据可能延迟 1 至 2 小时。
限制与已知问题 仅适用于美国沿海地区,内陆位置(如丹佛)会收到提示,但位于墨西哥和加拿大边境的城镇不会收到相同提示(因海岸边界包含国界)。部分沿海邮编可能没有附近数据。政府服务器偶尔会超时。NDBC 浮标可能无预警离线。关于 NDBC 光谱数据中的 STEEPNESS 字段(AVERAGE、STEEP、VERY_STEEP、SWELL),NOAA 未提供文档说明其含义。
其他信息 仓库说明中未提供定价、平台支持或详细安装步骤,仅提及“clone and run”。项目作者提到自己因推广该应用被 r/surfing 封禁。数据由 NOAA/NDBC/NWS 提供。