ERA5再分析资料下载和处理成红黑图教程

2024-04-15 18:44

本文主要是介绍ERA5再分析资料下载和处理成红黑图教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ERA5再分析资料下载和处理教程

1.下载官网:

https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-pressure-levels?tab=form

下载之前需要注册网站的账号认证
选择需要的要素时间气压等要素,注意最后下载的数据格式是grib还是nc格式
在这里插入图片描述
保存为netcdf格式
在这里插入图片描述
ERA5再分析资料的温度使用工具看到
在这里插入图片描述## python处理数据
nc数据基本信息的读取查看

ds = xr.open_dataset('xxxx.nc')  #使用xarray包打开nc数据
print(ds.variables.keys())   # 打印数据的变量信息
time_dim = ds.coords['time']  # 获取时间维度
lon = ds['longitude'].values  # 获取经度列表值
lat = ds['latitude'].values  #获取维度列表的值
data = ds.sel(time=t)   # 获取t这一特定时间的数据
data = data['t'].values   #获取温度的值

我们得到数据后将数据存储到红黑图,保证数据交互的方便,存储小
在这里插入图片描述

# # 垂直翻转数组【根据获取的数组实际旋转】# data = np.flipud(data)minValue = np.nanmin(data)maxValue = np.nanmax(data)# 用计算的最大小值来拉伸fix = (maxValue - minValue) / 256# var2Data[np.isnan(var2Data)] = 0# var3Data = var3Data.to_masked_array()# var3Data[np.isinf(var3Data)] = np.nanvar3Data = np.nan_to_num(data, nan=0)  # 无效值转换为0var3Data[var3Data < minValue] = minValuevar3Data = (var3Data - minValue) / fixvar3Data = np.uint8(var3Data)# 利用拉伸后的数据创建图片的RGB通道ir = Image.fromarray(var3Data[:]) # 写入值ig = Image.fromarray(np.array(np.zeros(var3Data.shape), np.uint8)).convert('L')ib = Image.fromarray(np.array(np.zeros(var3Data.shape), np.uint8)).convert('L')imjpg = Image.merge('RGB', (ir, ig, ib))flipped_img = imjpg.transpose(method=Image.FLIP_TOP_BOTTOM)directory_path11 = os.path.dirname(file_path)directory_path = os.path.dirname(directory_path11) + '\\' + 'era5' + '\\' + element + '\\' + stimeif not os.path.exists(directory_path):  # 如果路径不存在os.makedirs(directory_path)  # 则创建该目录pngfile = directory_path + '\\' + element + '_' + stime + '.png'flipped_img.save(pngfile, 'png')   #保存为png

在我们交互的同时定义相对应的json文件,方便前端的渲染

这篇关于ERA5再分析资料下载和处理成红黑图教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期