我为什么要做「海洋 AI 数据」
今天定下了方向:用科普+行业观察切入,边学边输出。下一步是建立信息源(NOAA、Copernicus Marine、国家海洋信息中心)。
我是这块领域的小白,正在用「边学边写」的方式深耕海洋人工智能与数据。 这里的每一篇笔记,都是我弄懂一个概念的痕迹。
看看我学到了什么 →为什么存在,以及你会在这里看到什么。
从零开始系统学习海洋 AI 与数据:遥感、渔业、航运、环保……把学到的东西用大白话讲清楚。
概念科普、行业动态解读、好用的数据集与工具、以及一个小白真实的成长轨迹。
公开输出逼自己学扎实,也方便遇到同好和前辈。欢迎指正、欢迎一起学。
每周至少 1 篇。下面是已发布的笔记,复制一个 .note 块就能新增。
今天定下了方向:用科普+行业观察切入,边学边输出。下一步是建立信息源(NOAA、Copernicus Marine、国家海洋信息中心)。
——打开海洋的"天眼"
海洋遥感(Ocean Remote Sensing),顾名思义,就是利用遥感技术对海洋进行观测和研究的一门科学。它是指搭载在卫星、飞机、无人机等平台上的传感器,在不直接接触海面的情况下,通过接收和测量海洋表面辐射或反射的电磁波信号,来获取海洋各种物理、化学和生物参数信息的技术。
简单来说,海洋遥感就是给地球装上了"天眼",让我们能够站在太空看海洋。
遥感的基本原理源于电磁波理论:不同的海洋要素(如海水温度、盐度、叶绿素浓度、海面高度等)会对特定波长的电磁波产生独特的辐射或反射特征。传感器捕捉这些信号后,经过数据处理和分析,就能反演出我们需要的海洋参数。
海洋遥感技术根据所使用的电磁波波段,主要分为以下几大类:
微波遥感是海洋遥感中最重要的技术手段,具有全天候、全天时的观测能力,不受云雨影响。
我国在海洋遥感领域已形成较为完善的卫星体系:海洋一号(HY-1)专注水色、海洋二号(HY-2)专注动力环境、海洋三号(HY-3)专注微波成像,实现了对海洋的多维度、立体化观测。
海洋遥感的应用领域极为广泛,几乎涵盖了海洋科学研究和海洋经济活动的方方面面:
随着人工智能和大数据技术的发展,海洋遥感正在经历一场深刻的智能化变革:
传统遥感反演依赖物理模型和统计方法。深度学习模型(如CNN、Transformer)可以从海量卫星数据中自动学习复杂特征,显著提升海洋参数反演的精度和效率。例如,利用神经网络从多源遥感数据融合中更精确地估算叶绿素浓度。
AI技术可以将卫星遥感数据与浮标、潜标、模式预报等多源数据进行智能融合,构建更精准的海洋环境场,为数值预报提供高质量的初始场。
利用长短期记忆网络(LSTM)等时序模型,结合历史遥感数据,实现对海表温度、海平面高度等要素的短期预测。
针对遥感数据量巨大的特点,AI可用于智能压缩和高效率重建,降低存储和传输成本。
这正是"海洋AI数据"致力于探索的方向——用人工智能释放海洋遥感数据的深层价值,让卫星获取的每一比特数据都能为认识海洋、经略海洋提供智慧支撑。
海洋遥感是20世纪最伟大的地球观测技术之一,它让我们第一次能够真正地"看见"全球海洋。从1978年美国Seasat卫星开启卫星海洋学时代,到今天中国拥有自主可控的海洋卫星星座,海洋遥感技术已经深刻改变了人类认识海洋的方式。
未来,随着更高分辨率的传感器、更智能的数据处理算法和更强大的计算能力的不断涌现,海洋遥感将与人工智能深度融合,在数字孪生海洋、智慧海洋预报、海洋碳汇核算等前沿领域发挥越来越重要的作用。
海洋遥感,不仅仅是科学家的工具,更是连接人类与海洋的数字桥梁。
——当"蓝色疆域"遇见"智能算法"
海洋覆盖了地球 71% 的表面积,却仍是人类了解最少的一片疆域。从古至今,人类对海洋的认知始终受限于观测手段——我们依靠浮标、卫星、声呐、科考船,一点一滴地拼凑着这片深蓝的全貌。而今天,人工智能(AI)正在重新定义这场探索的方式。
但 AI 与海洋数据的关系,远不止是"用算法处理数据"这么简单。它更像是一场双向奔赴:海洋数据为 AI 提供了极其丰富且极具挑战性的训练场,而 AI 则为海洋科学赋予了前所未有的洞察力和行动力。
要理解 AI 的价值,先要理解海洋数据本身有多"难搞"。
一颗海洋观测卫星每天产生的数据可达数 TB;全球数千个 Argo 浮标在过去二十年累积了超过 200 万条温度、盐度剖面。传统的统计方法和人工分析早已力不从心。
海洋数据来自卫星遥感、现场观测、数值模拟、船舶 AIS、水下滑翔机、海底传感器……时间分辨率从毫秒到年际,空间分辨率从厘米到千公里,格式更是五花八门。
海洋现象的时间尺度跨越潮汐(小时)到气候变化(百年),空间尺度跨越涡旋(公里)到洋流(全球)。单一模型很难同时捕捉这些跨尺度的动力学过程。
陆地观测站密集,而深海、远海的数据极为稀疏。这种空间不均匀性使得传统插值和外推方法误差巨大。
正是在这些"痛点"上,AI 展现出了独特的优势。
AI,尤其是深度学习,可以无缝融合多源异构数据。
将卫星遥感图像、Argo 浮标剖面、数值模式输出同时输入神经网络,让模型自己学习不同数据源之间的关联和权重。
利用生成对抗网络(GAN)或扩散模型,对稀疏观测区域进行高分辨率重构,把"数据荒漠"变成可用的信息地图。
传统海洋数值模式(如 HYCOM、ROMS)基于物理方程,计算成本极高,且对初始条件极其敏感。AI 提供了另一种路径:
用神经网络学习数值模式的输入-输出映射,在保持精度的同时,将预报速度提升数百倍。
直接从历史观测数据中学习海洋变量(如海表温度、叶绿素浓度)的演化规律,实现短期(几天到几周)的高精度预报。
AI 在识别台风、风暴潮、赤潮等极端事件的早期信号方面,已展现出超越传统阈值方法的灵敏度。
AI 正在改变"怎么采数据":
水下滑翔机搭载 AI 算法,可以实时判断哪片海域的信息增益最大,自动调整航行路径,实现"哪里有趣去哪里"。
在浮标或海底观测站本地运行轻量级 AI 模型,只把"重要事件"传回岸基,大幅降低通信带宽和能耗。
水下机器人拍摄的影像,通过计算机视觉自动识别鱼群、珊瑚、微塑料,甚至发现新物种。
这是目前最前沿的方向。科学家不再满足于纯数据驱动的"黑箱"模型,而是将物理定律(如纳维-斯托克斯方程、热力学守恒)嵌入神经网络:
让网络在拟合数据的同时,也必须满足物理方程的约束。
让模型告诉我们,"它认为台风会转向,是因为注意到了哪个海温异常区",从而反哺海洋科学认知。
很多人忽略了一个事实:海洋数据是检验和推动 AI 技术本身的绝佳试验场。
海洋变量的预测难度(高度非线性、多尺度耦合)远超许多传统 AI 基准测试。能在海洋领域做好预测的方法,往往能迁移到气象、能源、金融等时序预测场景。
海洋科学正在经历从"假设-验证"到"数据驱动发现"的转型。AI 帮助科学家发现了此前未知的海洋环流模式和中尺度涡旋规律。
全球海洋数字孪生(如欧盟的 Destination Earth)需要 AI 在实时数据同化、不确定性量化、交互式模拟等方面全面突破,这反过来推动了 AI 基础算法的进步。
| 领域 | AI + 海洋数据的应用 |
|---|---|
| 智慧渔业 | 通过海表温度、叶绿素、海流数据,AI 预测鱼类聚集区,优化捕捞路线,减少燃油消耗和过度捕捞。 |
| 海洋航运 | 结合气象-海洋预报与 AIS 数据,AI 为商船规划最优航线,避开恶劣天气,节省 5%-15% 燃料。 |
| 海上风电 | AI 分析海洋环境数据,优化风机选址、预测极端海况对结构的疲劳损伤。 |
| 海洋生态 | 通过卫星遥感 + AI 监测珊瑚白化、海草床退化、溢油扩散,实现大尺度的生态健康评估。 |
| 防灾减灾 | AI 融合多源数据,提前数小时至数天预警风暴潮、海浪、海啸,为沿海社区争取宝贵时间。 |
| 蓝碳核算 | AI 模型从遥感数据中估算海草床、红树林的碳储量,助力海洋碳汇交易和气候政策。 |
尽管前景广阔,AI 与海洋数据的结合仍面临诸多挑战:
数据质量与标注:海洋观测数据往往带有传感器误差、采样偏差,高质量的标注数据集仍然稀缺。
泛化能力:在一个海域训练好的模型,到了另一个海域可能完全失效——海洋的区域异质性比陆地更强。
可解释性与可信度:海洋科学界对"黑箱"模型仍有戒心,AI 预测需要附带不确定性估计,才能被决策者采纳。
算力与基础设施:训练全球尺度的海洋 AI 模型需要巨大的计算资源,这对许多机构仍是门槛。
跨学科鸿沟:海洋科学家和 AI 工程师说着不同的"语言",真正的突破需要深度的协作,而不是简单的"拿数据套模型"。
AI 与海洋数据的关系,本质上是一种认知工具的升级。它不是要替代海洋科学数百年积累的物理直觉和领域知识,而是要成为科学家的"超级助手"——帮我们从海量噪声中提取信号,从复杂关联中发现因果,从局部观测中推演全局。
对于"海洋 AI 数据"这个交叉领域而言,核心价值也正在于此:让 AI 成为连接海洋数据与海洋洞察的桥梁。无论是为科研人员提供智能分析工具,还是为产业用户打造决策支持系统,我们都在参与一场关于"如何更好地理解我们的蓝色星球"的深刻变革。
—— 从 Google 一篇《Nature》说起
最近一直在琢磨"AI 到底怎么用在海洋和天气上"。前两天刷到一条大新闻:Google DeepMind 在 2026 年 8 月 6 日的《Nature》上发表了一个叫 WeatherNext 的模型,说在台风/飓风预报上拿到了"提前一整天"的精度提升。我顺着这条线,找了些资料恶补了一圈,发现这事儿比我想的有意思,也更和"海洋 AI 数据"沾边——所以记一篇。
传统做法是靠数值天气预报(NWP),用超算解流体力学方程。物理基础扎实,但贵、慢,遇到极端情况还容易翻车。拆开看,台风预报其实有三道关:
DeepMind 这篇的核心突破是:一个模型同时搞定路径、强度和风场结构,而且只用 28×28 公里这种"粗"数据(比传统精细模式粗 100 倍)就能把强度报准,直接挑战了"高精度必须高分辨率"的老认知。它用一种叫 FGN 的方法一次生成 1000 个预报成员,把"快速增强"这种小概率但要命的情况也兜住了。最关键是——已经开源,而且在 2025 年飓风季里帮美国飓风中心提前预警了飓风 Melissa 的快速增强。论文说这相当于"十年的气象学进步"。
华为的盘古气象大模型是首个精度超过传统数值预报的 AI 模型;复旦的伏羲、上海 AI 实验室的风乌也各有绝活。2026 年初,中国气象局还体系化部署了"风"系列五大模型(风清、风雷、风顺、风和、风源),分工协作,部分已经业务化。据公开报道,我国西北太平洋台风 24 小时路径误差已经做到比美日还小。
也不是谁取代谁。像 AI-TRANS 这种系统,让 AI 先给大尺度环流背景场"定调",再让传统高分辨率区域模式精雕局部演变,在台风个例里把路径误差压到了几十公里级。这条路我觉得很务实。
风暴潮是台风把海水"堆"到岸上造成的增水,受路径、风、地形、潮汐一起非线性耦合,传统流体模拟一次要几千个 CPU 小时。AI 在这儿的打法主要两种:
几点体会:AI 不是来"取代"数值模式的,而是补齐它算得慢、算得贵的短板,俩是互补双驱。但坑也不少——极端事件样本太少、纯数据模型可能不守物理规律(比如质量守恒)、"黑箱"让预报员不敢全信。所以现在前沿都在搞"物理信息约束""AI+模式深度融合"。
回头看我这个站的主题——"海洋 AI 数据",台风和风暴潮就是最直观的样板:数据又多又杂(卫星、浮标、雷达、数值模式),恰好是 AI 最擅长啃的硬骨头。这片"蓝色疆域",确实值得继续深挖。
—— 摸清数据到底从哪来,是"深耕"的第一步
海洋数据的"全家福",是指对海洋系统全要素、全时空尺度、全技术手段所产生数据的系统性全景视图。它既是海洋数据资产的清单,也是海洋数据治理体系的设计蓝图。
构建"全家福"的核心价值在于:打破学科壁垒与平台壁垒,使分散在物理、化学、生物、地质、气象及社会经济体中的海洋数据实现可发现、可互操作、可复用(FAIR 原则),从而支撑海洋科学研究、蓝色经济发展与海洋综合治理。
海洋数据可从三个相互正交的维度刻画:
| 平台 | 典型装备 | 代表数据 |
|---|---|---|
| 天基 | 海洋卫星星座(Jason 系列、Sentinel、HY-1/2/3 系列) | 高度、水色、SST、海风 |
| 空基 | 有人机、无人机 | 高光谱、近岸精细化观测 |
| 岸基/海基 | 岸站、浮标、潜标、Argo 剖面浮标、水下滑翔机 | 剖面温盐、海流、波浪 |
| 船基 | 科考船走航 CTD、ADCP、采水与生物采样 | 断面、同步综合观测 |
| 海底 | 海底观测网(ONC、ESONET、中国海底观测网) | 长期原位、实时连续观测 |
海洋数据的"全家福"不仅是一份技术清单,更是海洋数字治理能力的集中体现。唯有在标准统一、质控严谨、共享开放三位一体的基础上构建全景数据体系,才能充分释放海洋数据在科学发现、蓝色经济增长与全球海洋治理中的价值。
—— 从一套叫"海鹰 AI"的系统说起
第 5 篇我盘点了"海洋数据全家福",其中"社会经济数据"这一支点到了渔业捕捞。这篇就戳这个口子:那些卫星、浮标、数值模式出来的数据,到底怎么真正落到渔民的船上和鱼塘里?顺便把第 3 篇表格里"智慧渔业"那一行(当时只有一句话)展开讲透。
先说底层逻辑——鱼群的分布,跟海表温度(SST)、叶绿素 a、海面高度异常(SLA)、海流强相关。哪里有上升流、哪里饵料多,鱼就往哪聚。所以只要把这些海洋环境变量喂给模型,它就能"猜"出鱼在哪。这正好是第 2 篇遥感、第 5 篇"全家福"里那些数据在养鱼人手里变现的例子。
这是中水集团远洋股份和上海海洋大学在 2024 年 4 月联合发布的我国首套金枪鱼智慧渔情预报系统。它用了长达 70 年的金枪鱼渔业数据 + 全球海洋环境数据,能实时给出气压、风场、海浪、海温、盐度、海面高度、流场、溶解氧、叶绿素、浮游生物、初级生产力等20 多种生境要素,再结合金枪鱼的生物学和渔场学知识,用深度学习做出"中心渔场预报"和"中长期资源量预测"。效果很实:2023 年在大西洋船队测试,单船捕捞量提高了 13.8%,现在已经装到中水集团所有金枪鱼渔船上。
同一个团队(上海海洋大学陈新军团队 + 中水集团)2025 年 11 月又上线了"苍鹭"AI 鱿鱼渔情预报系统,融合海洋遥感、地理信息、人工智能与大数据,能给全球大洋性鱿鱼作业海域提供未来 5 天的精准渔场预测,还有下一年度的资源丰度预报,预报准确率超过 85%。最夸张的一个数字:北太平洋西经海域的捕捞作业时间,从原来 7 月底就得转移,延长到了 11 月;截至 2025 年 10 月底,单船产量提高了 48%(历史约 330 吨 → 现在约 500 吨)。
其实这条路早就在走:上海远洋渔业 2014 年装船的"大洋性渔业海况信息与决策系统",中心渔场预报精度就达到了 70%,节约燃油 8%、产量提高 10%——"苍鹭""海鹰"算是它的升级版。学界也没闲着:有研究用随机森林融合 SST、盐度、叶绿素、流场预测印度洋金枪鱼渔区,测试精度到 97%;上海海洋大学用深度学习模型做南太平洋长鳍金枪鱼中心渔场预测,召回率 90.3%。说明这事儿不是吹,是真有人在硬啃。
串起来看一条链路:卫星 SST/叶绿素 + Argo 浮标 + 渔船 AIS → 模型(随机森林 / LSTM / 深度学习)→ 在船载端或手机端推一张"渔情一张图"。这正好接回第 3 篇"防灾减灾/渔业"那一行——原来那行字背后,是这么一套东西。
找鱼是"往哪开",养鱼是"怎么养"。传统养殖靠人天天看水看鱼,病了才发现就晚了,投喂全靠估算,饲料浪费严重。AI 进来后,技术栈大概是:水质多参数传感器(溶氧 / pH / 氨氮)+ AI 图像识别(看鱼群行为、量鱼体尺寸)+ 智能投喂 / 增氧。
真实案例(都是公开报道,不是我编的):
两点体会:第一,AI 不是来取代老船长、老养殖户的,而是补齐"算得快、看得全"的短板——老船长的经验是"特征工程",AI 是放大器和记忆体,俩是互补。第二,坑也不少:偏远海域数据稀疏、模型换个海域可能就失灵(呼应第 3 篇"泛化能力")、小渔民用不起、而且效率太高反而可能伤资源(得靠配额管理兜底)。这和第 5 篇说的"开放与主权平衡"、第 3 篇列的"挑战"是一脉相承的。
回头看我这个站的主题——"海洋 AI 数据",智慧渔业大概是离普通人最近、也最容易看到真金白银的一个落点:鱼在哪、该怎么养,本质都是把海洋数据变成可执行的决策。
—— 从“看别人说”到“我自己拉数据”,这站终于动手了
前面 6 篇,我基本都在整理别人的资料:遥感是什么、AI 怎么预报台风、智慧渔业长啥样……说白了是“看别人说”。但这个站叫“海洋 AI 数据”,口号是“边学边输出”,光看不练等于没学。所以这篇,我决定自己用 Python 拉一份真实的海洋数据、画一张图——哪怕是最基础的“海表温度(SST)热力图”。
下面这张图,是我用 Python 从公开免费接口(Open-Meteo Marine)拉到的南海实时海表温度,自己拼成网格、画出来的。没有美工、没有 P 图,就是真实数据:
几个真实数字:网格覆盖南海(北纬 0°–25°、东经 105°–122.5°)共 88 个采样点,其中 64 个点成功拿到数据,温度区间在 26.3°C ~ 32.3°C 之间,平均约 29.4°C。这个温度区间很“热带”——8 月的南海,本来就该这么热。
海表温度(Sea Surface Temperature,SST)就是海洋最表层那层水的温度。它是海洋里最基础、也最常用的一维变量:台风生成看它(暖水才能喂饱台风)、渔场找鱼看它(冷暖交界往往有鱼)、气候监测也看它。第 2 篇讲遥感、第 4 篇讲台风、第 5 篇“全家福”里 SST 都出现过——这次是第一次我自己把它“抓”下来。
从图上看,整体偏暖,而且南部(靠近赤道的低纬度一侧)平均约 29.6°C,比北部(约 29.1°C)略高,大致符合“越靠赤道越热”的常识;图里也能看到几块偏凉的格子,通常是局部混合或上升流造成的降温——这点我还在学,先标出来待考。。这和第 6 篇说的“鱼群分布跟 SST 强相关”也对得上:暖水区、冷暖交界,往往就是鱼爱待的地方。
说实话,代码不多,关键是知道去哪找数据。整个流程就三步:
sea_surface_temperature 这一个字段。urllib 按“纬度 × 经度”一个点一个点去请求,把返回的温度存进一个二维数组(用 numpy 装)。拿不到数据的点就留空(NaN)。Spectral_r,越红越暖;空白点显示成白色),存成 PNG。核心就十几行代码。难点不在写,在于:①搞清楚“海表温度”在接口里叫 sea_surface_temperature(名字写错接口就返 400);②中文标题要设字体,不然出来全是方块;③少量点接口当天没返回,得学会“容忍缺失”而不是报错卡死。这些坑我一个一个踩过来了。
第 6 篇"下一步"里我写"想试试把时间轴拉长,画一条某点 SST 随月份变化的折线"。既然写了,就先替自己试一把:我挑了南海中部一个点(15°N, 115°E),用同一个 Open-Meteo 接口拉了过去一年(2025-08-23 ~ 2026-08-23)的逐日海温、按月取平均,画成下面这条线——
肉眼可见一条年度起伏:26/05 前后最暖(约 30.5°C),26/02 前后最凉(约 25.6°C),一年里温差差不多 4.9°C。这背后是季风和太阳辐射的季节循环——夏天太阳直照、上层海水受热,冬天偏北风把表层暖水吹走、深层冷水上翻。这条线正好给第 4 篇"台风靠暖水喂"补了下半句:暖水不是恒定的,它随季节涨落,所以台风活跃期也集中在暖季。
这张图只是起点。下一步我想试试:①上面那条"某点全年 SST 折线"(见上"附")就是这步的第一次尝试,已经跑通;②换别的变量(比如叶绿素 chlorophyll、浪高 wave height);③或者做个小网页,输入经纬度就返回一张温度图。慢慢来。
—— 第 7 篇跑了海温,这篇换个维度:风刮出来的"浪"也是数据
第 7 篇我用 Python 拉了南海的海表温度(SST),算是第一次真正"抓"到海洋数据。但第 5 篇《海洋数据"全家福"》里列了一大串:风、浪、流、盐度、叶绿素……温度只是其中一根。这篇就挑最直观、也最好玩的——浪高(wave height)来动手,看看同一片南海,换个变量长什么样。
下面这张热力图,和上一篇 SST 用的是同一个南海网格(北纬 0°–25°、东经 105°–122.5°,2.5° 一格),只是把"温度"换成了"浪高"。数据源同样是 Open-Meteo Marine,免费、免注册:
几个真实数字:网格共 88 个采样点,成功拿到 62 个点,浪高区间 0.1 m ~ 2.0 m,平均约 1.1 m。整体在 0.1~2.0 m 之间,属于南海常见的中小浪,看不出明显的大浪区——说明拉取那一刻附近没有强风或台风过境。
图里这个"浪高"严格说是有效波高(significant wave height)——海面上最高的那 1/3 波浪的平均高度,单位米。它是航海和海洋工程里最常用的一维指标,因为浪直接决定:
补充一句:浪分两种——风直接刮出来的"风浪(wind wave)"和跑远了变稳的"涌浪(swell)"。Open-Meteo 还有 wind_wave_height 和 swell_wave_height 能分开看,这是个可以深挖的点。
套路和第 7 篇几乎一样:还是按"纬度 × 经度"把网格铺开,用 urllib 去 Open-Meteo 取数据,字段换成 wave_height,把"温度数组"换成"浪高数组",再交给 matplotlib 画热力图(配色用 YlGnBu,越蓝越高)。这次学乖了,把 88 个点一次性批量请求,几秒就回来了,比上一篇一个个点敲快太多。
但有个新体会:浪比温度"野"得多。温度是慢变量,今天和上周差不大;浪是风生的,随天气剧烈波动,而且明显带"实时/预报"属性。所以同一网格,不同天拉结果可能差很远——它不像 SST 那么"稳",这也正是它更值得持续监测的原因。
这张图和上一篇 SST 拼起来,才算摸到了"海洋数据多维"的门槛。下一步我想试试:①把风场(wind_speed)也拉来,直接看"风→浪"的关系;②同一时点把 SST 和浪高叠一起,看冷暖和风浪怎么耦合;③或者挑一个台风过程,看浪高是怎么暴涨的。慢慢来。
—— 第 8 篇画了浪高,这篇问一个更笨的问题:浪到底从哪来?
第 8 篇我把南海的浪高拉成了一张热力图。但画完我卡在一个很笨的问题上:浪是哪来的?常识说是风刮出来的——可"常识"这东西,作为一个小白,我更想用数据亲眼看一遍。于是这篇就干一件事:抓 30 天的风和浪,看看它们到底是不是一回事。
我选了南海中部一个点(15°N, 115°E),拉了 2026-08-09 到 2026-09-08 共 30 天的逐小时数据:风速来自 Open-Meteo 的天气 API(wind_speed_10m),浪高来自它的海洋 API(wave_height)。下面这张是两条曲线叠在一起:
再看散点图,把每个小时的"风"和"浪"画成一个点:
真实数字:这 30 天里风速在 9~56 km/h(均值 37),浪高在 1.0~3.6 m(均值 2.4)。算下来两者的相关系数达到 0.92,属于相当强的正相关——"风大浪就大"这句大白话,数据上是站得住的。
更有意思的是滞后:当我把风的数据往前挪 3 小时再比,相关系数从 0.91 升到了 0.92。也就是说,风刮起来之后,浪大约要过 3 小时才“涨”到位——这很符合直觉:浪不是开关,它需要时间把风给的能量一点点“攒”起来。
但相关系数是 0.92,不是 1。为什么"风大一倍,浪不一定大一倍"?我查了下,浪的成长看三个东西:
还有个更关键的:你看到的浪,不全是当地风刮出来的。远处风暴产生的浪可以跑几千公里过来,叫"涌浪(swell)"。所以一个点的浪 = 当地风浪 + 远处跑来的涌浪,这也是相关系数到不了 1 的主要原因。第 8 篇提过 Open-Meteo 能分开看 wind_wave_height(风浪)和 swell_wave_height(涌浪),下次可以专门验一下。
前几篇都是单一数据源,这次第一次跨源拼数据:风在天气 API、浪在海洋 API,主机名都不一样。麻烦在于两边返回的时间序列长度、时间点未必一致,直接拿数组算相关会错位。我的做法是按时间字符串取交集再对齐,最后得到有效样本 744 个小时。另外还有个小意外:第一次请求天气 API 超时失败了,重试就好了——真实世界的数据接口就是会偶尔抽风,代码里得学会"重试 + 容忍缺失"。
下一步我想:①把风浪和涌浪拆开,看看这个点的浪到底几成是当地风、几成是远处跑来的;②换成台风过境那几天,看相关系数和滞后会不会突变;③多取几个点,看看"风→浪"的关系在近岸和深海有啥区别。
—— 叶绿素我拿不到,但能拿的我都拿了,然后老老实实说清楚它不算预报
写第 7 篇海温、第 8 篇浪高、第 9 篇风与浪的时候,我一直有个感觉:这些数据都是物理的——温度、浪、风,肉眼能想象。但海洋里真正让我觉得“AI 有用武之地”的,其实是生物化学那类问题,比如赤潮。
赤潮这东西很拧巴:它暴发的时候一片海变成红褐色,新闻一播大家都看见了;但在它暴发之前,海面看起来跟平时一模一样。等你看见颜色,鱼已经死了、贝类已经带毒了。所以“预警”这两个字,在赤潮上比在台风上还难——台风好歹有个云系能盯着。
那 AI 到底靠什么提前知道?我就想自己动手扒一遍。
我选的地点是长江口外(31°N, 122.5°E)——中国近海最有名的赤潮高发区之一,每年 5 到 9 月都上新闻。拉了过去一整年(2025-09-28 到 2026-09-28)的三样真实数据,合成成一条曲线:
这一年里,长江口外的海表温度在 6.4~30.8°C 之间走完一整个来回,日最大风速平均 31.1 km/h,日短波辐射平均 16.0 MJ/m²。合成的适宜度指数在 05月30日 前后达到最高(71 分),冬天则几乎贴地。
第二个图是我更想看的东西——不拍权重,只数日子。我把“水温够暖、风够小、光照够足”三条硬阈值写出来,数一数一年里有多少天同时满足:
全年 20 天落在这个窗口里,绝大部分挤在 6月(5天)、8月(5天)、10月(4天) 这几个月——正好对上“赤潮高发期在夏秋”这句常识。看到数据跟常识对上的那一刻,是写这十篇里最爽的一次。
查了一圈资料,赤潮暴发基本要凑齐四样东西,缺一样就多半爆不起来:
图 1 里我特意把风速画进去了(蓝线),就是为了看这一条:指数高的那些天,往往不是风最大的时候,而是风小下来的那几天。
赤潮预警这件事,天生适合机器学习,原因有三:
现实中的预警系统一般是这么搭的:卫星看颜色(叶绿素浓度反演,比如 MODIS、Sentinel-3 OLCI)+ 浮标/船测看实测(温度、盐度、溶解氧、藻密度)+ 数值模式预报未来几天的水文气象,然后把这些一起喂给模型,输出一个“未来 3~7 天某海域的赤潮概率”。
这也是为什么我说 AI 有用:人守着一堆曲线看不出组合效应,模型能。
这次踩了个新坑,值得记下来:
marine-api.open-meteo.com 的 sea_surface_temperature。注意这个接口只认 hourly=,写成 daily= 直接 400(第 7 篇就栽过)。所以我是拉逐小时再自己平均成日值。api.open-meteo.com/v1/forecast,结果全部 400,报错是 start_date is out of allowed range——原来这个接口现在只给前后约 92 天的窗口,拉不了整年历史。archive-api.open-meteo.com/v1/archive,wind_speed_10m_max、shortwave_radiation_sum、precipitation_sum 一次拿满 366 天。✅timezone=UTC,再按日期取交集对齐,否则时间轴会错位。合成指数那几行也很土:温度适宜度 = 1 - |T-24|/8(24°C 最舒服,16 或 32°C 归零)、风力适宜度 = (25-风速)/17(风越小越稳)、光照适宜度 = 辐射/25,然后按 0.40 / 0.35 / 0.25 加权乘 100。
这个指数不是赤潮预报,差得还很远。必须说清楚:
所以它真正的价值,是让我这个外行看清了赤潮预警的输入长什么样:一堆看着平平无奇的环境曲线,凑在一起才变成风险。真要预报,得把叶绿素那一块补上。
—— 补上第 10 篇最大的那个坑,顺便第一次用真值检验我自己拍脑袋的公式
上一篇写赤潮预警,最后留了个很大的遗憾:我拿不到叶绿素。赤潮的直接指标就是藻类密度,而藻类的代用指标是叶绿素 a 浓度——没有它,我那个"环境适宜度"就只能叫"天气好不好长藻",不能叫预警。当时我说真要拿得去 NASA 注册。
结果试了一下,发现根本不用注册:NOAA 的 OceanWatch 服务器开了一个 ERDDAP 数据接口,上面就摆着 NASA 官方的 MODIS / VIIRS 叶绿素产品,还有 ESA 的多传感器融合版,一条网址就能取数,免费免登录。
所以这一篇干两件事:把叶绿素拿到手;然后用真值回头检验第 10 篇那个我拍脑袋写的公式——这是开站以来第一次,我不是在复述别人的结论,而是在验证自己的猜测。
noaa_snpp_chla_monthly(VIIRS 卫星,4 km,月均),2026 年 7 月。色标为对数。红星为第 10、11 篇的取样点(31°N, 122.5°E)。第一眼看到这张图我就明白了两件事:
这件事本身挺反直觉的,我查完才懂:
这就是第 2 篇(什么是海洋遥感)里说的"卫星给海水染色"的具体实现。海色遥感是海洋遥感里唯一已经业务化到每天出图的方向,比测盐度、测海流成熟得多。
这是我最紧张的一步。做法很直接:把第 10 篇那个指数往回算了 10 年(2016-01 到 2026-08,海温 + 风速 + 日照三样,同样的公式),按月平均,再跟同月的卫星叶绿素对齐,算相关系数。
结果是:r = +0.20(对 log 叶绿素,n = 44 个月),属于基本没有的相关。
拆开看三个因子跟叶绿素的关系,更能说明问题:
三者里跟叶绿素最合得来的是日照。单看这个数字,我的指数基本是失败的——逐月的叶绿素波动,天气解释不了。
我本来以为,至少季节节律该对得上——夏天暖、日照足,藻总该多吧?于是我把两边都算成“1 到 12 月的气候态”(多年同月平均),再比这两条 12 个点的曲线:r = +0.20。叶绿素最高在 7 月,我的指数最高在 6 月。
还是弱。这个结果比我预期的打击更大:不是“逐月对不上、但大趋势对”,而是连季节循环都没抓牢。
冷静想想,原因其实说得通:
所以这一篇的结论很明确,比我上一篇说的更难看、但也更真实:我第 10 篇那个指数,解释不了长江口的叶绿素。它是个“天气适宜度”,不是藻量预报。想做真预警,必须把径流量和营养盐那一块补上——这跟我上一篇自己承认的局限对上了,只不过这次不是“我觉得”,是数据说的。
顺带一个旁证:叶绿素最低出现在 3 月,又是“夏高冬低”,跟赤潮高发期一致。
oceanwatch.pifsc.noaa.gov/erddap,数据集 noaa_snpp_chla_monthly(VIIRS,4 km,月度,2012 至今)。同类还有 esa-cci-chla-monthly-v6-0(ESA 多传感器融合版,1997 至今)。.json 输出,直接 404。用 .csv 或 .esriAscii。[(31.0):1:(31.0)] 会返回 404 Unknown Reason,必须给一个小方框(我用 30.8–31.2°N、122.3–122.7°E),取回来再自己平均。[ ] 要写成 %5B %5D,否则 404。aqua_chla_monthly_2018_0 是 2018 年那版再处理,数据只到 2022 年;想拿近期的必须换 VIIRS 或 ESA 版。这一点我一开始就踩了。.esriAscii 拉(38 KB,比 csv 小 40 倍),它第一行是最北的一行,画图前要把纬度数组翻转。我正在收集并验证的海洋 AI 数据相关资源,持续更新。
留个邮箱,更新时收到通知(接邮箱服务前先用表单占位)。
或直接在站点评论 / 社群里找我交流。