气象数据下载服务平台(二)

前言

继上一次更新气象数据下载服务平台已经有一年多了,上一版链接,这次在上一版本中添加了ERA5数据下载模块(采用最新的CDSAPI访问代码),并且使用Github Page制作了一个下载访问页面。
接下来话不多说直接开始介绍

更新日志

2024.12.11更新
主要内容:
添加台站下载终止、ERA5数据下载终止;
优化CDSAPI配置界面的UI;
优化声明界面的UI;

核心功能介绍

国际交换站数据下载

本模块主要下载全球各个国家或地区的气象台站观测数据,这些数据主要是1小时或者3小时分辨率,部分地区可能为6小时分辨率,时间是标准的UTC时区,因此在后需处理过程中需要注意(本程序并并未对时区进行处理)

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

选择好国家或者地区,输入起止年份,直接点击’开始下载即可’
在这里插入图片描述
随后慢慢的等待数据下载完毕即可!!!
在这里插入图片描述
下载完毕后的数据可以直接在根目录的Download文件下找到!!!!

国际交换站数据处理

在导出数据之前一定要先更新数据,这一步会自动解压之前下载的文件,并根据官网提供的数据格式,将数据写入到SQLite数据库中。
在这里插入图片描述

随后,选择想要查看的日期范围,然后点击‘查询数据’就能看到详细的数据啦!!

在这里插入图片描述
不过这里我们需要注意一下:官网提供的数据是没有相对湿度这一项的,我们需要自己根据露点温度和当前气温反向计算。

当然,不想查询,直接导出数据也行!!
导出的数据目前支持csv和excel两种格式,我个人比较推荐csv格式,因为这个格式不会限制数据行数上限
在这里插入图片描述

在这里插入图片描述

ERA5数据下载

在这里插入图片描述

在下载ERA5数据之前我们需要配置ERA5的CDSAPI,因此需要先点击‘配置CDSAPI’。
在这里插入图片描述
如果大家会配置CDSAPI的话,可以直接把key复制到这个框中即可,如果不会的话,可以点击“如何配置API”会跳转到一个网页,一步一步教大家怎么用。
在这里插入图片描述

大家注册好之后,将url和key这两个字段复制到里面,然后点保存就好了!
在这里插入图片描述

随后,即可使用本软件批量下载ERA5数据了。
目前本软件支持下载ERA5-Land、ERA5-single-level和ERA5-pressure-level。以及这三个数据集逐小时、逐日(支持时区转换)、逐月数据。
在这里插入图片描述
以ERA5-Land的逐日数据为例
在这里插入图片描述
下载好的数据就是如下的形式
在这里插入图片描述

下载地址

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

https://funnybiscuit613.github.io/ClimateCatcher/

github可能访问不成功,大家可以试试切换host或者下载一个watt 工具箱!

### 构建环境气象数据服务平台 构建环境气象数据服务平台涉及多个层面的技术集成,包括数据采集、存储管理、处理分析以及最终的可视化展示。平台的设计需考虑高并发访问需求、大规模数据量处理能力和实时响应性能。 #### 数据采集层 为了获取全面且精确的原始气象资料,通常采用多源异构的方式收集来自卫星遥感、地面观测站网、雷达监测等多种渠道的信息[^1]。这些设备产生的海量非结构化或半结构化的流式数据构成了后续工作的基础素材库。 #### 存储管理层 考虑到气象领域内存在大量历史积累下来的长期序列记录文件,在选择合适的数据库产品时不仅要满足写入吞吐率的要求还要兼顾查询效率上的表现。分布式文件系统如HDFS配合NoSQL型宽表数据库Cassandra可以很好地解决这一难题;而对于一些需要频繁读写的热数据,则更适合存放在关系型数据库MySQL或是内存级缓存Redis当中以便快速检索调用。 #### 处理分析层 此部分主要依赖于MapReduce框架下的Spark Streaming组件来完成对源源不断流入系统的在线增量更新操作,并借助机器学习算法模型训练预测未来一段时间内的天气状况趋势走向。此外还可以引入图计算引擎Neo4j用于探索复杂网络关联模式下不同地理区域间的相互影响机制。 #### 可视化展示层 最后也是最为直观的一环便是将经过深加工提炼后的成果以图表形式呈现给终端用户查看理解。ECharts开源项目提供了丰富的交互控件可供开发者灵活定制开发专属界面样式;Tableau商业软件则以其强大的BI报表生成功能著称业界内外广受好评。 ```python import pyspark.sql.functions as F from pyspark.ml.feature import VectorAssembler from pyspark.ml.regression import RandomForestRegressor # 假设df是一个包含了气象特征列和目标变量'precipitation'(降水量)的数据框 assembler = VectorAssembler(inputCols=["temperature", "humidity"], outputCol="features") data = assembler.transform(df) rf = RandomForestRegressor(featuresCol="features", labelCol="precipitation") model = rf.fit(data) ```
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卷心没有菜

你若晌饭便是义父!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值