python 对海洋、气象数据进行滤波--带通滤波处理

简介: 如何使用python对其海洋、气象数据进行带通滤波处理,得到我们想要的信号呢?

如何使用python对其海洋、气象数据进行带通滤波处理,得到我们想要的信号呢?



这里以scipy.signal.butter滤波器为例,如何对于气象海洋数据做带通滤波处理进行简单讲解,库的官方说明文档链接如下:

butter滤波器


主要实现过程如下所示:

b,a=scipy.signal.butter(N, Wn, btype='band', analog=False, output='ba', fs=None)
filter_result=signal.filtfilt(b, a, data)


里面主要需要关注的为:

  • N:滤波器阶数
  • Wn:频率 (这里我理解的就是你要滤出的时间天数)
  • btype:滤波器类型,lowpass,  highpass, bandpass, bandstop分别为高通,低通,带通、带阻,默认为低通


构造滤波器并传入相应参数后,一般会返回两个变量:a(分母系数)、b(分子系数),之后通过函数signal.filtfilt(),传入相应变量、数据,就可以得到滤波后的数据了。


对于阶数N来说,我的理解是一般不用设置太高,太高的话可能会滤掉过多的信号,我这里一般使用阶数:3、4


以上就是关于滤波的实现原理,下面主要讲解一下关于带通滤波的频率的理解,因为发现大部分的教程示例不适用于海洋、气象数据滤波的处理,没那么通俗易懂。


举个带通滤波的例子



假如想要通过滤波得到天气尺度3-10天的信号,这儿肯定需要做带通滤波了,那么如何计算Wn呢?


首先,先明白Wn的计算公式,通过官网说明可以得到:

Wn=2*截止频率/采样频率


频率是什么呢,其实很简单,频率=1/周期,可以理解为就是我们数据周期的倒数。

因为天气尺度的范围为3-10天,我们默认周期的单位为:1天,以下基于周期为1天的前提进行计算:


相对于周期为一天来说,


  • 假如你的数据是daily的,一天就一个,那么你的数据周期就是1,采样频率就等于1/1=1,还是1
  • 假如你的数据是一天四个时次的,那么一个数据的周期就是0.25,那么采样频率就是1/0.25=4


截止频率是什么呢?与上面采样频率道理类似,还是以相对于周期为一天来说:

3天的截止频率就是1/3,10天的截止频率就是1/10

所以对于3-10天的带通滤波,如果数据基于周期为一天的话,Wn=[2/10,2/3]

如果是30-60天的带通滤波,Wn=[2/60,2/30]


注意:对于数字滤波器,如果没有指定 fs,则将 Wn 单位标准化为0到1,所以检验我们算的Wn有没有错误,可以看他的范围是否符合要求。

这样下面的处理就比较简单了,传入需要滤波的数据即可了:


b, a = signal.butter(3, [2/10,2/3], 'bandpass',axis=time那一维)
filter_data = signal.filtfilt(b, a, origin_data)


低通和高通滤波比较简单这里就不再阐述了

以上是对于python对于海洋、气象数据进行带通滤波处理时的一些简单理解,水平有限,欢迎交流!


                      一个努力学习python的海气人
                      水平有限,欢迎指正!!!
                        欢迎评论、收藏、点赞、转发、关注。
                        关注我不后悔,记录学习进步的过程~~


相关文章
|
7天前
|
数据采集 Python
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
本文介绍了使用Python Selenium和WebDriver库抓取LinkedIn数据的方法。首先,安装Selenium库和对应的WebDriver,然后配置爬虫代理IP以避免频繁请求被检测。接下来,设置user-agent和cookies以模拟真实用户行为,实现登录并保持状态。登录后,使用WebDriver抓取目标页面数据,如用户名、年龄、性别和简历信息。最后,强调了优化代码、处理异常和遵守使用条款的重要性,以提高效率并避免账号被封禁。
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
|
8天前
|
机器学习/深度学习 数据可视化 数据挖掘
Python处理数据的优势?
Python处理数据的优势?【8月更文挑战第12天】
25 6
|
4天前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
18 1
|
5天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
5天前
|
数据采集 Java PHP
使用Python+requests简单实现模拟登录以及抓取接口数据
本文通过Python的requests库演示了如何实现模拟登录和抓取接口数据的过程,包括设置请求头、发送POST请求进行登录以及使用登录后的会话进行GET请求获取数据。
16 1
|
7天前
|
编解码 算法 Linux
Linux平台下RTSP|RTMP播放器如何跟python交互投递RGB数据供视觉算法分析
在对接Linux平台的RTSP播放模块时,需将播放数据同时提供给Python进行视觉算法分析。技术实现上,可在播放时通过回调函数获取视频帧数据,并以RGB32格式输出。利用`SetVideoFrameCallBackV2`接口设定缩放后的视频帧回调,以满足算法所需的分辨率。回调函数中,每收到一帧数据即保存为bitmap文件。Python端只需读取指定文件夹中的bitmap文件,即可进行视频数据的分析处理。此方案简单有效,但应注意控制输出的bitmap文件数量以避免内存占用过高。
|
6天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。 今天给小伙伴们分享的这份Python数据分析入门手册本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。
|
7天前
|
数据采集 数据挖掘 数据处理
Python爬虫开发:爬取简单的网页数据
本文详细介绍了如何使用Python爬取简单的网页数据,以掘金为例,展示了从发送HTTP请求、解析HTML文档到提取和保存数据的完整过程。通过这个示例,你可以掌握基本的网页爬取技巧,为后续的数据分析打下基础。希望本文对你有所帮助。
|
8天前
|
数据可视化 Python
我是如何把python获取到的数据写入Excel的?
我是如何把python获取到的数据写入Excel的?
23 2
|
8天前
|
数据采集 数据挖掘 数据处理
Python爬虫开发:爬取简单的网页数据
在数据分析中,数据的获取是第一步。随着互联网的普及,网络爬虫成为获取数据的重要手段。本文将详细介绍如何使用Python爬取简单的网页数据。