Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >meteostat,站点数据获取竟如此简单

meteostat,站点数据获取竟如此简单

作者头像
用户11172986
发布于 2024-12-23 06:16:22
发布于 2024-12-23 06:16:22
54302
代码可运行
举报
文章被收录于专栏:气python风雨气python风雨
运行总次数:2
代码可运行

温馨提示

由于可视化代码过长隐藏,可点击运行Fork查看 若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可

前言

在当今数据驱动的世界中,气象数据对于众多领域如农业、能源、交通、环境科学等都至关重要。无论是进行科学研究还是商业决策,准确且易于获取的气象数据都是不可或缺的。然而,收集和处理这些数据往往是一个复杂且耗时的过程。幸运的是,Python 社区提供了许多强大的工具来简化这一过程,其中 meteostat 库就是一个非常实用的选择。

meteostat 是一个开源的 Python 库,旨在提供简单而高效的接口来访问历史和实时气象数据。它支持全球数以万计的气象站,包括月度、每日和每小时的数据记录。通过 meteostat,开发者和研究人员可以轻松地下载所需的数据,无需担心复杂的 API 调用或数据格式转换问题。

数据源包括国家气象局,如美国国家海洋和大气管理局 (NOAA) 和德国国家气象局 (DWD)。

本文将详细介绍如何使用 meteostat 库来下载气象站点的月度、每日和每小时数据,并展示一些实际应用案例。无论你是初学者还是有经验的开发者,都能从本文中获得有价值的信息,从而更高效地利用气象数据进行分析和研究。

安装库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!pip install meteostat -i https://pypi.mirrors.ustc.edu.cn/simple/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Looking in indexes: https://pypi.mirrors.ustc.edu.cn/simple/ Collecting meteostat Downloading https://mirrors.ustc.edu.cn/pypi/packages/90/23/34e8913fa75d064be09303914ea0056ef2968b639ebc8e70decfecd8299b/meteostat-1.6.8-py3-none-any.whl (31 kB) Requirement already satisfied: pytz in /opt/conda/lib/python3.9/site-packages (from meteostat) (2022.1) Requirement already satisfied: numpy in /opt/conda/lib/python3.9/site-packages (from meteostat) (1.26.4) Requirement already satisfied: pandas>=1.1 in /opt/conda/lib/python3.9/site-packages (from meteostat) (2.0.3) Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.9/site-packages (from pandas>=1.1->meteostat) (2.8.2) Requirement already satisfied: tzdata>=2022.1 in /opt/conda/lib/python3.9/site-packages (from pandas>=1.1->meteostat) (2024.1) Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas>=1.1->meteostat) (1.16.0) Installing collected packages: meteostat Successfully installed meteostat-1.6.8

查询某地站点数量

下面我们查询一下该库能访问的天津的气象站数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from meteostat import Stations

stations = Stations()
stations = stations.region('CN','TJ')

print('Stations in Ontario:', stations.count())
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Stations in Ontario: 2

根据经纬度查询临近站点信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Import Meteostat library
from meteostat import Stations

# Get nearby weather stations
stations = Stations()
stations = stations.nearby(39, 118)
station = stations.fetch(1)

# Print DataFrame
print(station)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name country region wmo \ id ZBTJ0 Fanzhuangzi / Tianjin / Tian-jun / T'ien-chin ... CN TJ <NA> icao latitude longitude elevation timezone hourly_start \ id ZBTJ0 ZBTJ 39.1833 117.35 3.0 Asia/Shanghai 1981-11-25 hourly_end daily_start daily_end monthly_start monthly_end \ id ZBTJ0 2024-10-26 1996-03-07 2022-04-25 2005-01-01 2022-01-01 distance id ZBTJ0 59684.566333

以上可以看出各种时间分辨率的数据时间范围不尽相同 小时数据是最全的

下载月数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Import Meteostat library and dependencies
from datetime import datetime
import matplotlib.pyplot as plt
from meteostat import Stations, Monthly

# Set time period
start = datetime(2000, 1, 1)
end = datetime(2018, 12, 31)

# Get Monthly data
data = Monthly('ZBTJ0', start, end)
data = data.fetch()

# Plot line chart including average, minimum and maximum temperature
data.plot(y=['tavg', 'tmin', 'tmax'])
plt.show()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.

下载日数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Import Meteostat library and dependencies
from datetime import datetime
import matplotlib.pyplot as plt
from meteostat import Point, Daily

# Set time period
start = datetime(2022, 1, 1)
end = datetime(2022, 12, 31)

# Create Point for Vancouver, BC
location = Point(39.183 , 117.35 , 3.0)

# Get daily data for 2018
data = Daily(location, start, end)
data = data.fetch()

# Plot line chart including average, minimum and maximum temperature
data.plot(y=['tavg', 'tmin', 'tmax'])
plt.show()

下载小时数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Import Meteostat library and dependencies
from datetime import datetime
from meteostat import Hourly

# Set time period
start = datetime(2018, 1, 1)
end = datetime(2018, 12, 31, 23, 59)

# Get hourly data
data = Hourly('ZBTJ0', start, end)
data = data.fetch()

# Print DataFrame
print(data)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
temp dwpt rhum prcp snow wdir wspd wpgt pres \ time 2018-01-01 00:00:00 -6.0 -10.1 73.0 NaN NaN 340.0 7.2 NaN NaN 2018-01-01 01:00:00 -4.0 -6.9 80.0 NaN NaN 10.0 7.2 NaN NaN 2018-01-01 02:00:00 -1.0 -7.0 64.0 NaN NaN 70.0 10.8 NaN NaN 2018-01-01 03:00:00 1.0 -7.0 55.0 NaN NaN 80.0 18.0 NaN NaN 2018-01-01 04:00:00 2.0 -6.1 55.0 NaN NaN 90.0 18.0 NaN NaN ... ... ... ... ... ... ... ... ... ... 2018-12-31 19:00:00 -9.0 -14.0 67.0 NaN NaN NaN 0.0 NaN NaN 2018-12-31 20:00:00 -9.0 -15.0 62.0 NaN NaN 330.0 3.6 NaN NaN 2018-12-31 21:00:00 -9.0 -15.0 62.0 NaN NaN 330.0 3.6 NaN NaN 2018-12-31 22:00:00 -10.0 -13.9 73.0 NaN NaN NaN 0.0 NaN NaN 2018-12-31 23:00:00 -11.0 -13.9 79.0 NaN NaN 260.0 3.6 NaN NaN tsun coco time 2018-01-01 00:00:00 NaN NaN 2018-01-01 01:00:00 NaN NaN 2018-01-01 02:00:00 NaN NaN 2018-01-01 03:00:00 NaN NaN 2018-01-01 04:00:00 NaN NaN ... ... ... 2018-12-31 19:00:00 NaN NaN 2018-12-31 20:00:00 NaN NaN 2018-12-31 21:00:00 NaN NaN 2018-12-31 22:00:00 NaN NaN 2018-12-31 23:00:00 NaN NaN [8701 rows x 11 columns]

小结

通过本文的介绍,我们已经了解了如何使用 meteostat 库来下载气象站点的月度、每日和每小时数据。meteostat 提供了一个简洁而直观的 API,使得即使是非专业人员也能快速上手并获取高质量的气象数据。我们探讨了如何安装库、查询可用的气象站、选择合适的时间范围以及下载不同类型的数据。

此外,我们还展示了几个实际的应用案例,通过这些示例,我们可以看到 meteostat 不仅简化了数据获取的过程,还极大地提高了数据分析的效率和准确性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气python风雨 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
基于 IBTrACS数据的台风路径快速可视化
关注我获取更多学习资料,第一时间收到我的Python学习资料,也可获取我的联系方式沟通合作
用户11172986
2025/03/27
2970
基于 IBTrACS数据的台风路径快速可视化
如何以峰峦图展示降水数据
降水数据是气象学中一个重要的指标,它对于了解和预测天气变化非常关键。在本期中,我们将使用 joypy 库来进行降水数据的可视化,展示降水的变化趋势和分布情况。
用户11172986
2024/06/20
1710
如何以峰峦图展示降水数据
一句代码!将气象数据可视化为生动的GIF动画
在气象学的世界里,数据不仅仅是冰冷的数字,它们是自然界中风、云、雨、雪的直观反映。随着技术的发展,我们不仅能够收集到更加详尽的气象数据,而且还能以更加直观的方式分享这些信息。对于气象爱好者和博主来说,能够将复杂的气象模式转换成易于理解且吸引人的视觉内容,是一种既有趣又具挑战性的技能。
用户11172986
2024/07/16
2550
一句代码!将气象数据可视化为生动的GIF动画
雷达系列:两种方法将气象雷达数据转为易处理的格式
由于可视化代码过长隐藏,可点击运行Fork查看 若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可
用户11172986
2024/09/12
5020
雷达系列:两种方法将气象雷达数据转为易处理的格式
雷达系列:两种基于雷达基数据绘制雷达CAPPI图的方式
由于可视化代码过长隐藏,可点击运行Fork查看 若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可
用户11172986
2024/09/20
5611
雷达系列:两种基于雷达基数据绘制雷达CAPPI图的方式
​雷达系列:必须更新!测试cinrad最新更新的read_auto
由于可视化代码过长隐藏,可点击运行Fork查看 🔜🔜若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可
用户11172986
2024/07/19
2960
​雷达系列:必须更新!测试cinrad最新更新的read_auto
基于geopandas的精美地图绘制:geoplot
由于可视化代码过长隐藏,可点击运行Fork查看 若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可
用户11172986
2024/10/08
2020
基于geopandas的精美地图绘制:geoplot
WRFOUT 单层水汽通量散度与整层水汽通量散度实现 2.0
📢 版权声明:公益性质转载需联系作者本人获取授权。转载本文时,请务必文字注明“来自:和鲸社区:酷炫用户名”,并附带本项目超链接。
用户11172986
2024/11/29
2640
WRFOUT 单层水汽通量散度与整层水汽通量散度实现 2.0
Scikit-fdiff | 二维浅水方程计算与可视化
在科学计算和工程领域,偏微分方程(PDE)的求解一直是一个复杂且耗时的任务。Scikit-fdiff是一个旨在简化这一过程的Python库,它通过有限差分法(Finite Difference Method)来离散化空间导数,并结合方法线(Method of Lines)将PDE转化为高维常微分方程(ODE),从而利用标准的ODE数值积分方法进行求解。
用户11172986
2025/03/21
1350
Scikit-fdiff | 二维浅水方程计算与可视化
两种降水站点数据克里金插值及可视化方法
gma库是洛大神写的一个地理库, 其中有许多可以使用的函数, 今天简单介绍一下它克里金插值的使用,并与meteva进行对比
用户11172986
2024/06/20
3830
两种降水站点数据克里金插值及可视化方法
雷达系列:两个国产雷达Python库读取对比
pycwr和pycinrad都是用于读取和处理气象雷达数据的Python库。 它们的作用是帮助用户方便地读取、处理和分析气象雷达数据,包括反射率、速度和谱宽等信息。 对比这两个库可以让用户更好地了解它们的特点、功能和适用场景,从而更好地选择合适的库来处理气象雷达数据。
用户11172986
2024/06/20
1.2K0
雷达系列:两个国产雷达Python库读取对比
velocyto的正确安装方法
如果你已经尝试了100种错误方法,恭喜你,找到家了。这个是99.9%能保证成功的安装方式。如果你第一篇就看到这个,更加恭喜你,你少走了一万里弯路!
生信技能树jimmy
2022/01/10
5K0
github爆火的1brc:气象站点数据计算挑战
在这个数据爆炸的时代,气象科学作为一门与人类生活息息相关的学科,正以前所未有的速度积累着庞大的数据量。想象一下,全球数以万计的气象站点,每分钟、每小时不间断地记录着气温、湿度、风速、降水量等关键气象参数,这些数据汇聚起来,形成了一个浩瀚的数据海洋
用户11172986
2024/06/20
2760
github爆火的1brc:气象站点数据计算挑战
不用 SHP 文件进行气象绘图的三种方式
在气象绘图中,使用 SHP 文件经常会带来一些麻烦。为了摆脱对 SHP 文件的依赖,我们需要思考如何直接进行绘图而不受其限制。本文将介绍三种不使用 SHP 文件进行气象绘图的工具。
用户11172986
2024/06/20
2200
不用 SHP 文件进行气象绘图的三种方式
重磅!Python台风路径还能这样画
读者来信,想优化一版台风路径绘制 在检索了半天终于找到一个库,tcmarkers。
用户11172986
2024/06/20
5010
重磅!Python台风路径还能这样画
如何使用 Python 更加精确地计算两地距离
在地理信息处理中,计算两点之间的距离、方位角以及从一个点出发给定距离和方位角求解另一个点的位置等问题是非常常见的需求。Python 提供了多种方式来实现这些功能,其中 pygc 是一个特别强大的库,它使用 Vincenty 的公式来精确地进行大圆相关的计算。
用户11172986
2025/02/08
2170
如何使用 Python 更加精确地计算两地距离
Python气候数据分析的简要指南+代码
By: Ali Ahmadalipour (LinkedIn, Twitter)
气象学家
2022/04/18
3K0
Python气候数据分析的简要指南+代码
数据获取:如何在线获取的GFS雪深两周后预报
上次测试的是0.5分辨率的GFS数据 这次试试更高分辨率0.25的效果 实际上TDSCatalog还有很多产品,可以在这里看看
用户11172986
2024/06/20
2630
数据获取:如何在线获取的GFS雪深两周后预报
MindSponge分子动力学模拟——使用MDAnalysis工具进行后分析(2024.02)
分子动力学模拟(Molecule Dynamics Simulation,MD),本质上是一门采样技术。通过配置力场参数、拓扑结构和积分器,对一个给定的体系不断的采样,最终得到一系列的轨迹。那么得到分子动力学模拟的轨迹之后,如何使用后分析工具进行轨迹分析,也是一项很重要的工作。目前来说,基于Python的开源工具MDAnalysis(简称mda)是一个比较常用的MD后分析工具。本文主要介绍基于MindSponge分子动力学模拟框架生成了相应的轨迹之后,如何使用MDAnalysis工具进行分析。
DechinPhy
2024/03/01
7690
MindSponge分子动力学模拟——使用MDAnalysis工具进行后分析(2024.02)
PHP使用简单强大OCR工具EasyOCR
EasyOCR是一个功能强大的开源光学字符识别OCR(Optical Character Recognition,光学字符识别)库,它基于深度学习模型,能够快速准确地识别图片中的文字,并将这些文字转换为可编辑和可搜索的文本格式。与传统的 OCR 工具相比,EasyOCR 不仅识别速度快,还能处理各种复杂的文本图像,如弯曲的文本、不同字体、各种语言混合的文本等。
Tinywan
2024/09/10
4850
PHP使用简单强大OCR工具EasyOCR
推荐阅读
相关推荐
基于 IBTrACS数据的台风路径快速可视化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验