matlab 处理海洋数据并画图的工具包--ocean_data_tools

news2025/4/22 8:47:21

matlab 处理海洋数据并画图的工具包–ocean_data_tools
matlab 处理海洋数据并画图的工具包–ocean_data_tools
ocean_data_tools 简化了提取、格式化和可视化免费可用的海洋学数据的过程。虽然可以在线访问大量海洋学数据,但由于获取这些数据并将其格式化为可用数据结构会产生相关开销,因此可能会阻止一些最终用户使用这些数据。ocean_data_tools 允许用户将常见的海洋学数据源转换为统一的结构,在这些结构上调用通用函数,轻松执行自定义计算以及制作图形,从而解决了这个问题。

Citing ODT

Ferris, L., (2020). ocean_data_tools: A MATLAB toolbox for interacting with bulk freely-available oceanographic data. Journal of Open Source Software, 5(54), 2497. https://doi.org/10.21105/joss.02497

结果一览:
1: 三维地形和海洋变量图
图片在这里插入图片描述

2: 三维地形和流场图

图片在这里插入图片描述

3:三维地形图:
图片在这里插入图片描述

4:三维地形和流场图
图片在这里插入图片描述在这里插入图片描述

5: 海洋变量地形剖面图;
图片在这里插入图片描述

6: 海洋变量平面图:
图片在这里插入图片描述在这里插入图片描述

argo 位置分布图:
图片在这里插入图片描述

温度盐度散点剖面图:
图片在这里插入图片描述

巡航路径图:
图片在这里插入图片描述

图片在这里插入图片描述

温度盐度剖面图:
图片在这里插入图片描述
在这里插入图片描述

图片在这里插入图片描述
在这里插入图片描述

ocean_data_tools 是一个开源的 MATLAB 工具箱,主要用于海洋科学中的数据读取、处理和可视化。它由 Luke N. Ferris 开发并维护,目标是简化海洋观测和模式输出数据的使用,尤其是 NetCDF 文件的处理。该工具箱特别适用于使用 MATLAB 进行科学研究的用户。

下面我会从以下几个方面来详细介绍它的功能和使用方法:

🧰 一、ocean_data_tools 能干什么?
这个工具包的主要功能分为三类:

  1. 数据读取(Data Access)
    支持从多种海洋数据源下载并读取数据,例如:

HYCOM(Hybrid Coordinate Ocean Model)

Copernicus Marine Service

NOAA OISST(Optimum Interpolation Sea Surface Temperature)

Argo 浮标数据

Global Drifter Program (GDP)

GOFS 3.1(Global Ocean Forecast System)

本地 NetCDF 文件读取(如你用 WWM / SCHISM 模型输出的文件)

  1. 数据处理(Data Handling)
    自动解码 NetCDF 数据的经纬度、时间和变量

网格插值(如从模型网格插值到观测点)

空间、时间子集裁剪(subset)

坐标转换(如从经纬度到距离)

时空平均、剖面抽取等常见数据操作

  1. 可视化(Visualization)
    可快速绘制:

海表面温度(SST)

流场(速度矢量图、速度场填色图)

剖面图(如 Argo 或模型的温盐剖面)

时间序列图(如某点的潮位、温度随时间变化)

箱线图(boxplot)、热力图(heatmap)

📊 二、能画哪些典型的海洋科学图?
以下是一些你可以通过 ocean_data_tools 画出的典型图,以及每类图的使用思路:

  1. SST 空间分布图(Sea Surface Temperature Map)
    ✅ 场景:
    查看某天或某区域的海表温度分布。

🧠 知识点:
SST 反映海洋表层热力状态,对大气过程(如台风、季风)有反馈。

空间插值与地图投影可能需要处理。

🛠️ 方法:
使用 load_ocean_data() 读取数据,再用 plot_ocean_data() 绘图:

data = load_ocean_data(‘OISST’,‘time’,datetime(2020,1,1),‘var’,‘sst’);
plot_ocean_data(data)
2. 海流矢量图(Current Vector Field)
✅ 场景:
查看某区域的流速流向,用于分析环流、涡旋等。

🧠 知识点:
流速矢量通常包含 u 和 v 分量。

可能需要下采样避免图太密。

🛠️ 方法:
data = load_ocean_data(‘HYCOM’,‘var’,{‘u’,‘v’},‘time’,datetime(2020,1,1));
plot_vector_field(data)
3. 垂向剖面图(Vertical Profile)
✅ 场景:
查看温度或盐度在深度方向的分布,适用于 Argo 数据或模式输出。

🧠 知识点:
利用温跃层、盐跃层判断混合层、密度跃层等。

剖面往往是二维的(深度 vs. 温度/盐度)。

🛠️ 方法:
data = load_ocean_data(‘ARGO’,‘var’,‘temperature’);
plot_profile(data)
4. 时间序列图(Time Series)
✅ 场景:
显示某一站点在一段时间内的 SST、SSH、风速等变量变化。

🧠 知识点:
可用于分析潮汐、风暴潮、季节变化等。

🛠️ 方法:
data = load_ocean_data(‘HYCOM’,‘var’,‘ssh’,‘location’,[-120 35]);
plot_time_series(data)
5. 动画图(Time-lapse Map)
✅ 场景:
显示随时间变化的 SST、流场、海面高度等。

🧠 知识点:
动态展示可更直观地看出涡旋、浪潮传播等过程。

🛠️ 方法:
animate_ocean_data(data)
🧭 三、使用思路和步骤
下面是一个推荐的使用流程(可以作为你的数据处理套路):

✅ Step 1:下载/准备数据
可以用工具箱自动从 HYCOM、Copernicus、ARGO 等获取

或者用你的 WWM / SCHISM 输出 NetCDF 文件

✅ Step 2:读取数据
data = load_ocean_data(‘local’,‘filename’,‘your_file.nc’);
✅ Step 3:裁剪、处理、计算
subset_ocean_data():裁剪时间和空间范围

interp_ocean_data():插值到特定点

average_ocean_data():做时间平均

✅ Step 4:可视化
plot_ocean_data()、plot_time_series()、plot_profile() 等函数

支持 overlay、坐标系统控制、配色方案

🧠 四、你可以怎么结合你的研究用它?
你研究的是浪-潮-流耦合作用对长江口台风浪与风暴潮的影响,可以考虑:

利用工具箱读取 HYCOM / Copernicus 的背景流场

用 GDP 或 Argo 浮标数据验证模型输出

画台风期间不同模型的 SST、SSH、流速图

做剖面图分析台风引起的温跃层变化

比较不同耦合方案下某点的时间序列差异

📚 五、官方文档和推荐资源
GitHub 地址:
👉 https://github.com/lnferris/ocean_data_tools

建议从 demo 文件夹开始入手,很多代码示例都很清楚,比如:

demo_gdp.m:漂流浮标绘图

demo_hycom.m:HYCOM 数据读取与绘图

demo_argo.m:Argo 剖面分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2339982.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MCP:AI时代的“万能插座”,开启大模型无限可能

摘要:Model Context Protocol(MCP)由Anthropic在2024年底开源,旨在统一大模型与外部工具、数据源的通信标准。采用客户端-服务器架构,基于JSON-RPC 2.0协议,支持stdio、SSE、Streamable HTTP等多种通信方式…

静态网页的开发

文章目录 基于 idea 开发静态网页添加web框架前端配置服务器并启动服务资源名字不是 index 静态网页 流转 基于 idea 开发静态网页 添加web框架 方法1 方法2 前端 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&quo…

【CPU】结合RISC-V CPU架构回答中断系统的7个问题(个人草稿)

结合RISC-V CPU架构对中断系统七个关键问题的详细解析&#xff0c;按照由浅入深的结构进行说明&#xff1a; 一、中断请求机制&#xff08;问题①&#xff09; 硬件基础&#xff1a; RISC-V通过CLINT&#xff08;Core Local Interrupter&#xff09;和PLIC&#xff08;Platfor…

uCOS3实时操作系统(任务切换和任务API函数)

文章目录 任务切换任务API函数 任务切换 C/OS-III 将 PendSV 的中断优先级配置为最低的中断优先级&#xff0c;这么一来&#xff0c; PendSV 异常的中断服务函数就会在其他所有中断处理完成后才被执行。C/OS-III 就是将任务切换的过程放到 PendSV 异常的中断服务函数中处理的。…

科学养生指南:解锁健康生活新方式

在快节奏的现代生活中&#xff0c;健康养生已成为人们关注的焦点。科学合理的养生方式&#xff0c;能帮助我们增强体质、预防疾病&#xff0c;享受更优质的生活。​ 饮食是健康养生的基石。遵循 “均衡饮食” 原则&#xff0c;每日饮食需包含谷类、蔬菜水果、优质蛋白质和健康…

第十四届蓝桥杯 2023 C/C++组 有奖问答

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 核心思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 蓝桥云课 有奖问答 思路&…

transformer注意力机制

单头注意力机制 import torch import torch.nn.functional as Fdef scaled_dot_product_attention(Q, K, V):# Q: (batch_size, seq_len, d_k)# K: (batch_size, seq_len, d_k)# V: (batch_size, seq_len, d_v)batch_size: 一次输入的句子数。 seq_len: 每个句子的词数。 d_mo…

QT 5.15 程序打包

说明&#xff1a; windeployqt 是 Qt 提供的一个工具&#xff0c;用于自动收集并复制运行 Qt 应用程序所需的动态链接库&#xff08;.dll 文件&#xff09;及其他资源&#xff08;如插件、QML 模块等&#xff09;到可执行文件所在的目录。这样你就可以将应用程序和这些依赖项一…

【路由交换方向IE认证】BGP选路原则之AS-Path属性

文章目录 一、路由器BGP路由的处理过程控制平面和转发平面选路工具 二、BGP的选路顺序选路的前提选路顺序 三、AS-Path属性选路原则AS-Path属性特性AS-Path管进还是管出呢&#xff1f;使用AS-Path对进本AS的路由进行选路验证AS-Path不接收带本AS号的路由 四、BGP邻居建立配置 一…

Linux系统下docker 安装 redis

docker安装最新版的redis 一、docker拉取最新版redis镜像 拉取镜像若没有指定版本&#xff0c;代表拉取最新版本 二、查询redis镜像 三、挂载配置文件 在docker容器内修改redis配置文件不方便&#xff0c;所以挂载配置文件&#xff0c;这样可以在外边修改redis配置 3.1 创建…

深度学习框架PyTorch——从入门到精通(3.3)YouTube系列——自动求导基础

这部分是 PyTorch介绍——YouTube系列的内容&#xff0c;每一节都对应一个youtube视频。&#xff08;可能跟之前的有一定的重复&#xff09; 我们需要Autograd做什么&#xff1f;一个简单示例训练中的自动求导开启和关闭自动求导自动求导与原地操作 自动求导分析器高级主题&…

【基础算法】二分算法详解

🎯 前言:二分不是找某个数,而是找一个满足条件的位置/值 所以最关键的是:找到单调性,写好 check() 函数,剩下交给模板! 什么是二分算法 二分算法是一种在有序区间中查找答案的方法,时间复杂度:O(log n)。核心思想是: 每次把搜索区间分成两半,只保留可能存在答案的…

mysql——基础知识

关键字大小写不敏感 查看表结构中的 desc describe 描述 降序中的 desc descend 1. 数据库的操作 1. 创建数据库 create database 数据库名;为防止创建的数据库重复 CREATE DATABASE IF NOT EXISTS 数据库名;手动设置数据库采用的字符集 character set 字符集名;chars…

OOA-CNN-LSTM-Attention、CNN-LSTM-Attention、OOA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比

OOA-CNN-LSTM-Attention、CNN-LSTM-Attention、OOA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比 目录 OOA-CNN-LSTM-Attention、CNN-LSTM-Attention、OOA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于OOA-CN…

PCIE Spec ---Base Address Registers

7.5.1.2.1 Base Address Registers (Offset 10h - 24h) 在 boot 到操作系统之前&#xff0c;系统软件需要生产一个内存映射的 address map &#xff0c;用于告诉系统有多少内存资源&#xff0c;以及相应功能需要的内存空间&#xff0c;所以在设备的 PCI 内存空间中就有了这个 …

Spring如何通过XML注册Bean

在上一篇当中我们完成了对三种资源文件的读写 上篇内容&#xff1a;Spring是如何实现资源文件的加载 Test public void testClassPathResource() throws IOException { DefaultResourceLoader defaultResourceLoader new DefaultResourceLoader(); Resource resource …

基于Java的不固定长度字符集在指定宽度和自适应模型下图片绘制生成实战

目录 前言 一、需求介绍 1、指定宽度生成 2、指定列自适应生成 二、Java生成实现 1、公共方法 2、指定宽度生成 3、指定列自适应生成 三、总结 前言 在当今数字化与信息化飞速发展的时代&#xff0c;图像的生成与处理技术正日益成为众多领域关注的焦点。从创意设计到数…

【版本控制】idea中使用git

大家好&#xff0c;我是jstart千语。接下来继续对git的内容进行讲解。也是在开发中最常使用&#xff0c;最重要的部分&#xff0c;在idea中操作git。目录在右侧哦。 如果需要git命令的详解&#xff1a; 【版本控制】git命令使用大全-CSDN博客 一、配置git 要先关闭项目&#xf…

Linux——入门常用基础指令

文章目录 Linux入门常用基础指令使用工具介绍基础指令clear指令pwd指令ls指令cd指令Linux系统下的文件路径及文件存储结构文件结构家目录绝对路径和相对路径tree工具 stat指令which指令alias指令touch指令mkdir指令cat指令rm指令man指令cp指令通配符 * Linux入门常用基础指令 …

【技术追踪】Differential Transformer(ICLR-2025)

Differential Transformer&#xff1a;大语言模型新架构&#xff0c; 提出了 differential attention mechanism&#xff0c;Transformer 又多了一个小 trick~ 论文&#xff1a;Differential Transformer 代码&#xff1a;https://github.com/microsoft/unilm/tree/master/Diff…