首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

xarray系列 | 基于xarray和dask并行写多个netCDF文件

读取单个或多个文件到 Dataset 对读取输入对象执行一系列变换操作 使用to_netcdf方法保存结果 上述步骤通常会产生很大nc文件(>10G),尤其是在处理大量数据时。...最近在处理卫星数据时,最终生成文件甚至超过了50G,有些甚至超过了100G。目前xarray对于nc格式文件存储让人头疼。在存储这些大文件时耗时很长,甚至可能会导致程序挂起。...netCDF可是的写操作一直是xarray痛点,尤其是在并行写和增量写文件方面。...之前也介绍过另一种文件格式 Zarr真的能替代NetCDF4和HDF5吗,在文件并行写和增量写方面非常友好,尤其是涉及到大文件时。...目前新版本netCDF库也逐渐支持zarr格式,但还没测试过效果如何。如果不是一定要netCDF格式的话,可以尝试使用zarr格式。 后话:虽然本文使用了dask,但是涉及到dask内容比较少。

2.4K11

龙行龘龘!如何批量提取wrfout变量存为nc

为了更好地处理WRF模型输出数据(当然因为wrfout文件太大了!),我们经常需要批量提取其中变量,并将提取数据保存为NetCDF格式(.nc文件),这样可以方便我们后续分析和可视化操作。..., mode='w', format='NETCDF4', group=None, engine=None, encoding=None): """将 xarray 数据写入 NetCDF 格式输出文件...:param xarray_array: xarray.DataArray :param output_path: str,输出文件路径 :param mode: str,文件打开模式(..., mode='w', format='NETCDF4', group=None, encoding=None): """将 xarray 写入 NetCDF 格式输出文件 使用适用于...将投影对象转换为字符串,以便可以将其作为 NetCDF 属性使用 :param xarray_array: xarray.DataArray :param mode: 文件打开模式,默认为

9310

用Python批处理指定数据-以WRF输出结果为例演示按照指定维度合并(附示例代码)

使用过WRF的人都知道,它模拟结果是按照我们指定时间间隔和模拟时间段依次输出。但在处理数据时候呢,比如想画一个时间趋势图之类时候,挨个读取数据非常繁琐。...下面我就分享一下我在日常科研中为了解决这个问题代码,供大家参考使用(代码很简单, 大家只需要把文件名、路径改成自己就可以用了)。...因为一般WRF 默认输出文件文件名后缀没有.nc,无法直接使用xarray进行读取,也就用不了concat函数。所以这里我们先给所有的输出文件批量添加后缀名".nc"。...#导入库 import numpy as np import xarray as xr import os from netCDF4 import Dataset #选择 notebook 所在文件夹...(也可自行指定文件路径) path = os.getcwd() #一般 WRF 默认输出文件文件名后缀没有.nc,无法直接使用xarray进行读取,进而用不了concat函数 #这里我们批量修改文件

2.3K52

netCDF 文件导出到 *.csv 文件

1、问题背景问题:需要将 netCDF 文件数据导出到 *.csv 文件,但希望在不使用循环情况下完成。目前使用代码存在性能和代码可读性问题,因为使用了三重循环。...2、解决方案方法:为了解决上述问题,可以使用 xarray 库来将 netCDF 文件数据转换为表格格式,然后使用 csv 库将表格格式数据导出到 *.csv 文件。...() 函数打开 netCDF 文件。...示例:import xarray as xr# 打开 netCDF 文件dataset = xr.open_dataset('path/to/netcdf_file.nc')# 导出数据到 csv 文件...代码可读性增强:使用 xarray 库可以简化代码,使其更加易于阅读和维护。局限性:如果 netCDF 文件数据量非常大,则可能需要对代码进行进一步优化以提高导出数据速度。

12210

多年暴雨tif数据集合成为一个nc数据

前言 当处理多年暴雨 TIF 数据集时,我们可以使用 rioxarray 库将这些数据合成为一个 NetCDF (nc) 文件。...NetCDF 是一种常用科学数据格式,它具有跨平台、可扩展和自描述特点,非常适合存储和共享地理空间数据。...我们需要首先定义一个包含多个 TIF 文件路径列表,并使用 rioxarray.open_rasterio 函数打开这些文件,得到相应 xarray 数据集。...然后,通过使用 xr.concat 函数将这些数据集沿时间维度进行合并,形成一个大数据集。最后,我们可以使用 to_netcdf 方法将合并后数据集保存为 NetCDF 文件。...glob import rioxarray import warnings warnings.filterwarnings('ignore') 获取tif文件列表 path = '/home/mw/input

6910

wrf-python 详解之如何使用

p = getvar(ncfile, "P") 关闭 xarray 和 metadata 有时候你只需要返回常规 numpy 数组,不关心元数据。通过以下两种方式可以禁用元数据。...然而,在字典中所有的WRF文件都应包含相同维度。结果是一个数组,最左侧维度是字典中键。同样允许使用嵌套字典。...对这三种绘图系统,当使用 xarray 时通过变量可直接确定地图对象,如果没有使用 xarray,可从 WRF 输出文件获取。 还包括直接从 xarray 切片中获取地理边界函数。...这在当你想要使用一个大区域子集,不想在此子集区域定义地图对象时非常有用。...因此,当检测到多个时间或是文件时,依赖于地理边界方法将返回对象数组不是单个对象。 wrf.get_cartopy 获取地图对象中并不包含地理边界信息。

19.2K1012

xarray | 数据结构(2)

Dataset xarray.Dataset 是和 DataFrame 相同多维数组。这是一个维度对齐标签数组(DataArray)类字典容器。它用来展示NetCDF文件格式数据。...访问数据集中字典可以获取任意类别的变量。然而,xarray正是利用了索引和计算之间差异。坐标中表示是常数/固定/独立量,数据中表示是变化/测量/依赖量。...注: 因为数据集使用是投影坐标,因此 latitude 和 longitude 表示2D数组, reference_time 表示做出预测时参考时间,不是应用预测有效时间 time。...虽然 xarray 不会强制限制属性设置,但是如果使用不是 字符串,数字或 numpy.ndarray 对象,那么在序列化某些文件格式时仍可能会失败。...使用 xarray 创建新数据集不会造成性能损失,即使是从文件中加载。创建新对象代替那些存在”变异“变量,对于理解代码来说是有利

3.9K30

优秀开源推荐 | 数据可视化利器psyplot

与通常使用matplotlib不同是,这个软件是建立在不重复原则上,它最终结果是大部分时间都是复制粘贴部分代码。...我向你保证,这是值得。所以开始吧,如果你有不同意见,请告诉我。 它是什么,它不是什么? 注: 首先,它是开源! 所以,如果你不同意下面的观点,请编辑这个文档,然后点击提出文件更改和创建拉动请求。...然后我们可以讨论你修改。 周围有大量软件工具用于可视化,那么psyplot有什么特别之处呢?下面的列表应该希望能为你提供一些指导。 它是什么? 它速度很快。...它能自动解码CF协议 它直观地集成了netCDF文件结构。所以如果你经常使用netCDF文件,psyplot可能是一个不错选择。 它是pythonic。...我们主要关注点是灵活性、简单命令行使用和GUI集成,这不可避免地带来了一些缺点。 它不是最快,因为我们使用matplotlib来灵活地进行可视化,而且这是在CPU上运行,不是在GPU上运行。

1.1K20

用Python复现一篇Nature研究: 1.数据下载及预处理

此文使用神经网络、数据处理都不是很复杂,适合作为气象神经网络入门第一个尝试性工作。 本文是复现工作第一篇文章,主要讲解 数据下载及预处理。...我们根据上述规律,使用wget就可以很简单下载数据了。 接下来是处理CMIP数据,为了统一语言,我使用python中xarray来处理、merge文件。缺点是很慢,优点是易学。...对于保存nc文件,需要使用**TosAD = xr.Dataset({"TosA": TosAInterped})来将Dataarray转化为Dataset,然后使用TosAD.to_netcdf("..../Cmip6" # 使用 xarray 把分散几个文件merge起来 FileList = os.listdir(loc) Toslist = [] Zoslist = [] for FName in.../ersstv5D") print(file) 同样,我们使用xarray来merge下载多个nc文件,并且保存。

1.2K32

xarray系列|数据处理和分析小技巧

以下内容没有过多代码,对于很新新手可能不是很友好,但如果你已经接触 xarray 一段时间,对其数据结构和常用函数有所了解,相信会对你有帮助。...因为我主要接触是nc格式,以nc数据为主: 在利用 xr.open_mfdataset 批量读取文件时,建议设置 engine=h5netcdf,比默认 engine=netcdf4 要更快; 利用...,有时性能可能会降低,如果发现读取时间特别长,可以先测试单文件读取看是否正常; xr.save_mfdataset 可以进行nc文件批量写入操作,但是使用时需要注意,后面单独推一下批量写nc文件; 如果不是必须要用...由于xarray索引特点,在使用 .isel 和 .sel 等函数索引时,所给定参数类型应该是 xarra.DataArray,如果是其它参数得到可能就不是索引站点数据,这个之前也提到过...其实数据处理和分析过程中会碰到很多问题,可以直接 google 搜索,不是百度之类搜索引擎。因为 google 给出搜索结果更简单直接,节省时间。

2.3K21

xarray系列|数据处理和分析小技巧

以下内容没有过多代码,对于很新新手可能不是很友好,但如果你已经接触 xarray 一段时间,对其数据结构和常用函数有所了解,相信会对你有帮助。...因为我主要接触是nc格式,以nc数据为主: 在利用 xr.open_mfdataset 批量读取文件时,建议设置 engine=h5netcdf,比默认 engine=netcdf4 要更快; 利用...,有时性能可能会降低,如果发现读取时间特别长,可以先测试单文件读取看是否正常; xr.save_mfdataset 可以进行nc文件批量写入操作,但是使用时需要注意,后面单独推一下批量写nc文件; 如果不是必须要用...由于xarray索引特点,在使用 .isel 和 .sel 等函数索引时,所给定参数类型应该是 xarra.DataArray,如果是其它参数得到可能就不是索引站点数据,这个之前也提到过...其实数据处理和分析过程中会碰到很多问题,可以直接 google 搜索,不是百度之类搜索引擎。因为 google 给出搜索结果更简单直接,节省时间。

2.8K30

用Python复现一篇Nature研究: 1.数据下载及预处理

此文使用神经网络、数据处理都不是很复杂,适合作为气象神经网络入门第一个尝试性工作。 本文是复现工作第一篇文章,主要讲解 数据下载及预处理。 ?...我们根据上述规律,使用wget就可以很简单下载数据了。 接下来是处理CMIP数据,为了统一语言,我使用python中xarray来处理、merge文件。缺点是很慢,优点是易学。...对于保存nc文件,需要使用**TosAD = xr.Dataset({"TosA": TosAInterped})来将Dataarray转化为Dataset,然后使用TosAD.to_netcdf("..../Cmip6" # 使用 xarray 把分散几个文件merge起来 FileList = os.listdir(loc) Toslist = [] Zoslist = [] for FName in.../ersstv5D") print(file) 同样,我们使用xarray来merge下载多个nc文件,并且保存。

2.1K42

wrf-python 详解之API

这部分包含时 wrf-python 模块中API,如果wrf-python提供函数不能满足你需求,你也可以根据已有的API重新编写一个处理函数或是其它诊断函数。...函数效果相同 numpy 提取 返回 xarray.DataArray 实例中包含 numpy.ndarray 数组 变量提取 从NetCDF文件NetCDF文件对象序列中提取变量 辅助绘图 返回文件或是变量地理边界...原始诊断方法 返回2D网格中一个线上x,y点 配置方法 如果安装并打开xarray 则返回 True 其他 如果输入变量名是时间坐标则返回 True 类 异常 当诊断过程中发生错误是触发异常 CoordPair...装饰器 算法装饰器 从封装函数输出进行单位转换装饰器 元数据装饰器 为封装函数输出设置元数据装饰器 装饰器工具 确定文件中包含哪个变量可调用类 类 可迭代封装器类 一个生成器和自定义可迭代类封装类...__iter__() 时会返回一个新迭代器到序列开头

2.2K11

气象数据常用格式以及处理工具

这次我们来简单了解下气象数据常用格式以及处理工具,常用数据格式包括普通二进制格式、文本数据、NetCDF、HDF4/5以及GRIB1/2数据。...二进制文件和文本数据   气象中二进制文件是指利用ASCII及扩展ASCII字符编写数据或程序指令文件,一般没有格式,用文本编辑器打开只能看到无意义乱码,需要特定解码说明才能使用,例如气象雷达数据...(Network Common Data Form)   NetCDF数据是常用气象和卫星数据存储数据格式,结构形式包含维数、变量、属性和数据四个子域,公众号前几期有过利用python对netCDF...数据处理介绍,有感兴趣同学可以关注公众号查看历史精彩文章使用python处理NetCDF格式文件,这里介绍大家利用CDO如何处理netCDF格式文件   CDO(Climate Data Operators...)是用来处理气候数据命令行集合,支持netCDF3/4以及Grib1/2数据格式,常用功能: cdo info a.nc ###查看文件信息 cdo -f grb copy a.nc a.grb

10.5K1413

python计算与绘制WRF降水量

前言 1.使用os库循环读取文件夹下wrf‍数据,并用nc库dataset读取,可使用wrf_list = [Dataset(f) for f in wrf_files] ,wrf_files是os...读取形成文件列表 2.使用wrfpythongetvar读取多个wrf文件RAINC,RAINNC,RAINSH,利用cat将多时次数据合并 例如,RAINC = getvar(wrf_list,...# 导入数据读取模块 import numpy as np import pandas as pd from netCDF4 import Dataset import xarray as xr #...plot作图,更多细致作图敬请自己实现,以下示例小时降水量组图绘制 此处使用了xarraydata.diff计算每小时降水量 wrfout中降水变量都是累计降水量,因此需要根据用后一时次减去前一时次才能得出这小时下了多少.../typhoon9537/" filename_prefix = "wrfout_d01_" # 获取 WRF 文件列表,并按照文件名排序 wrf_files = sorted([os.path.join

9510

又一个优秀气象数据高维可视化工具

今年ECMWF Summer of Weather Code (ESoWC)其中一个主题就是基于Blender构建气象数据高维可视化插件--BlenderNC,主要是面向netCDF格式文件。...此工具基于Python进行开发,充分利用了xarray等工具处理netCDF文件。...Blender是开源免费跨平台三维软件,本身并不是专门面向气象数据可视化,但其功能很强大,今年ESoWC竟然挑选了一个以此进行高维数据可视化主题,不是专门用于气象数据高维可视化工具,比如Vapor...ECMWF部分示例文档内容都是空,然后我就用ERA5数据简单测试了一下,加载速度还有可视化效果还可以,而且创建三维动态可视化非常方便,只需要选中 Animate netCDF即可。...ERA5 2m温度测试效果 简单说一下目前存在问题:建议用英文界面,中文支持似乎存在一些问题;功能和文档还不是很完善。

92030
领券