以下文章来源于MeteoAI ,作者学前班大队长 xarray专题再次开讲,错过第一部分的可以先去补个课从xarray走向netCDF处理(一):数据结构及数据读取。...今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。...Attributes: Conventions: CF-1.6 history: 2019-03—28 02:03:39 GMT by grib_to_netcdf-2.12.0: grib_to_n...Attributes: Conventions: CF-1.6 history: 2019-03-28 02:03:39 GMT by grib_to_netcdf-2.12.0: grib_to_n...# 生成地图 fig, ax = map() # 数据读取及时间平均处理 ds = xr.open_dataset('EC-Interim_monthly_2018.nc') lat = ds.latitude
xarray专题再次开讲,错过第一部分的可以先去补个课从xarray走向netCDF处理(一):数据结构及数据读取。...今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。 索引核心方法 在xarray的官方文档中给出了如下几种索引方式 ?...Attributes: Conventions: CF-1.6 history: 2019-03-28 02:03:39 GMT by grib_to_netcdf-2.12.0: grib_to_n...Attributes: Conventions: CF-1.6 history: 2019-03-28 02:03:39 GMT by grib_to_netcdf-2.12.0: grib_to_n...# 生成地图 fig, ax = map() # 数据读取及时间平均处理 ds = xr.open_dataset('EC-Interim_monthly_2018.nc') lat = ds.latitude
前面有关xarray已经讲了3期了,介绍了数据索引,数据结构还有插值和掩膜。今天这是最后一期介绍用xarray处理nc数据了,打算聊一下如何做数据合并与计算。...xarray围绕着这两种合并方式介绍了concatenate, merge, combine, update四种方法。 我在这里就挑最常用的跟大家聊聊。...1>>> ds2018 2 3Dimensions: (latitude: 241, longitude: 480, time: 12) 4Coordinates...1>>> xr.merge([ds2018.u10, ds2019.t2m]) 2 3Dimensions: (latitude: 241, longitude...除此以外,xarray还可以帮你快速地求出平均值,方差,最小值,最大值等。你可以指定具体对那个维度进行计算,如果不指定维度默认会对所有维度进行计算。
以下文章来源于MeteoAI ,作者学前班大队长 前面有关xarray已经讲了3期了,介绍了数据索引,数据结构还有插值和掩膜。...今天这是最后一期介绍用xarray处理nc数据了,打算聊一下如何做数据合并与计算。 数据合并 数据合并主要是两种形式 维度的拼接:如将日数据合成为年数据,就属于在时间维度上的合并。...xarray围绕着这两种合并方式介绍了concatenate, merge, combine, update四种方法。 我在这里就挑最常用的跟大家聊聊。...>>> ds2018 Dimensions: (latitude: 241, longitude: 480, time: 12) Coordinates: *...除此以外,xarray还可以帮你快速地求出平均值,方差,最小值,最大值等。你可以指定具体对那个维度进行计算,如果不指定维度默认会对所有维度进行计算。
对于xarray之前已经介绍过两期了,分别是数据结构及数据读取和数据索引。 这一期要介绍的功能是插值与掩膜。 这两个方法在数据处理中会经常用到,实用等级☆☆☆☆☆。...插值 xarray中对scipy的插值函数进行了进一步的封装,可以让我们方便的调用。 只需要对DataArray,DataSet使用interp()函数就可以实现插值了,就像索引一样简单。...0.258859]) Coordinates: * space (space) float64 0.1 0.2 0.3 time float64 2.5 数据掩膜 日常数据处理中经常要用到掩盖陆地或者海洋数据...这里主要想说的是另一种方法,直接对数据进行处理,把海洋或者陆地区域的值设为缺测。...ocean': ds = ds.where(ds.mask > 0.2) return ds if __name__ == '__main__': # 数据读取及时间平均处理
以下文章来源于MeteoAI ,作者学前班大队长 对于xarray之前已经介绍过两期了,分别是数据结构及数据读取和数据索引。 这一期要介绍的功能是插值与掩膜。...这两个方法在数据处理中会经常用到,实用等级☆☆☆☆☆。 插值 xarray中对scipy的插值函数进行了进一步的封装,可以让我们方便的调用。...0.258859]) Coordinates: * space (space) float64 0.1 0.2 0.3 time float64 2.5 数据掩膜 日常数据处理中经常要用到掩盖陆地或者海洋数据...这里主要想说的是另一种方法,直接对数据进行处理,把海洋或者陆地区域的值设为缺测。...ocean': ds = ds.where(ds.mask > 0.2) return ds if __name__ == '__main__': # 数据读取及时间平均处理
以下文章来源于MeteoAI ,作者学前班大队长 想如今气象数据netCDF(.nc)为盛,用者甚多,初学者见之仰天长啸,倘若再由Python经手,netCDF4-python,Iris,xarray...多番比对,选用xarray,解查安抚,化繁为简,最为称心。 说人话就是,经学前班大队长亲测利用Python中的xarray库处理nc数据非常方便。...提取物理量 从文件中读取数据ds = xarray.open_dataset() 假如数据中含有一个名为var的物理量可以通过ds.var或ds[var]来获取 实例 此处使用的是ERA-Interim...Attributes: Conventions: CF-1.6 history: 2019-03-28 02:03:39 GMT by grib_to_netcdf-2.12.0:...cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER import matplotlib.pyplot as plt # 数据读取及时间平均处理
想如今气象数据netCDF(.nc)为盛,用者甚多,初学者见之仰天长啸,倘若再由Python经手,netCDF4-python,Iris,xarray,UV-CDAT选择众多,劳心伤神事小,逼出选择困难症事大...多番比对,选用xarray,解查安抚,化繁为简,最为称心。 说人话就是,经学前班大队长亲测利用Python中的xarray库处理nc数据非常方便。...提取物理量 从文件中读取数据ds = xarray.open_dataset() 假如数据中含有一个名为var的物理量可以通过ds.var或ds[var]来获取 实例 此处使用的是ERA-Interim...Attributes: Conventions: CF-1.6 history: 2019-03-28 02:03:39 GMT by grib_to_netcdf-2.12.0:...cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER import matplotlib.pyplot as plt # 数据读取及时间平均处理
读取单个或多个文件到 Dataset 对读取的输入对象执行一系列变换操作 使用to_netcdf方法保存结果 上述步骤通常会产生很大的nc文件(>10G),尤其是在处理大量数据时。...最近在处理卫星数据时,最终生成的文件甚至超过了50G,有些甚至超过了100G。而目前xarray对于nc格式的大文件存储让人头疼。在存储这些大文件时耗时很长,甚至可能会导致程序挂起。...netCDF可是的写操作一直是xarray的痛点,尤其是在并行写和增量写文件方面。...目前新版本的netCDF库也逐渐支持zarr格式,但还没测试过效果如何。如果不是一定要netCDF格式的话,可以尝试使用zarr格式。 后话:虽然本文使用了dask,但是涉及到dask的内容比较少。...最近在处理数据时用到了dask,后面有时间可能会更一些dask相关的推文,比如数据并行处理。
但在处理数据的时候呢,比如想画一个时间趋势图之类的时候,挨个读取数据非常繁琐。我们希望能够把所有的数据或者某个我们关心的变量单独提取出来,让其按照指定的维度,如时间维度来排序并整合成一个文件。...因为一般WRF 默认输出文件的文件名后缀没有.nc,无法直接使用xarray进行读取,也就用不了concat函数。所以这里我们先给所有的输出文件批量添加后缀名".nc"。...#导入库 import numpy as np import xarray as xr import os from netCDF4 import Dataset #选择 notebook 所在文件夹...这里用了concat函数,具体大家可以见从xarray走向netCDF处理(四):合并与计算进行了解。...后面的数据处理,无论是求平均还是计算趋势,按照个人需求来好了。
xarray 支持多种文件格式(从 pickle文件到 netCDF格式文件)的序列化和输入输出。...一个数据集可以加载或写入netCDF 文件的特定组中。传入 group 关键词参数给 open_dateset 函数可以从特定组加载数据。也可以通过类路径方式指定组。...虽然 Dataset 有 close 方法可以关闭 netCDF 文件,但是通常还是利用 with 来处理,因为这会自动关闭文件。...使用 PyNIO 处理 xarray 可以处理 PyNIO 支持的所有格式文件,只需要在使用 open_dateset 方法时指定 engine 参数为 'pynio' 即可。...使用 pandas 处理 目前 pandas 已经支持了很多文件格式的处理。
简单读取然后存储即可 我们经常需要对大量的模型输出数据进行处理和分析。...为了更好地处理WRF模型输出数据(当然因为wrfout文件太大了!),我们经常需要批量提取其中的变量,并将提取的数据保存为NetCDF格式(.nc文件),这样可以方便我们后续的分析和可视化操作。...import Dataset from wrf import getvar, ALL_TIMES def write_xarray_to_netcdf(xarray_array, output_path...as xr from netCDF4 import Dataset from wrf import getvar, ALL_TIMES def write_xarray_to_netcdf(xarray_array...() # 从变量中删除坐标信息 del xarray_array_out.attrs['coordinates'] # wrf-python 投影对象无法处理,将其转换为字符串
这里主要讲一下如何利用MATLAB,Python,NCL处理NetCDF文件。...Python python中有多个库提供了处理NetCDF文件的功能,比如专门处理nc数据的netCDF4-python,scipy,osgeo,PyNIO(Linux)等。...netCDF4-python 使用 netCDF4-python处理nc数据是非常方便的,而且其提供了非常多的功能,并且正在不断的完善。...文件处理方法,其所使用的外部模块和 netCDF4-python 使用的相同,都不需要使用 Unidata 提供的 netcdf C库。...此节仅记录了怎么读netcdf文件,关于如何写netcdf文件下次再说。 除了上述三种工具之外,CDO和NCO在处理netcdf文件时有时会非常有用,关于这两部分的介绍有空再说。
例如转换 pandas[1] 类型数据为 xarray 类型或者读取一些数据文件,如NetCDF[2]文件或zarr[3]文件。...由于没有指定 index,则在默认情况下,index 默认为数字且从 0 开始,步长为 1....例如,Xarray 可以读取以下格式: NetCDF[7] / GRIB (通过函数open_dataset / open_mfdataset, to_netcdf / save_mfdataset)...Xarray 基于 netCDF 数据模型,因此磁盘上的 netCDF 文件直接对应于数据集对象。...Xarray 采用open_dataset / open_dataarray 函数读取NetCDF 文件,采用to_netcdf方法将数据写入文件。
NCO是目前最强大的处理netCDF文件(包括由netCDF API创建的HDF5文件)的命令行工具,没有之一。...ncks—netCDF Kitchen Sink ncks可以说是NCO中处理netCDF文件的又一神器(毕竟是厨房神器),是最长使用的命令之一。...ncrcat可以从标准输入接受大量文件。 输入文件的大小可以是多变的,但是每个文件必须要有一个记录维度。记录坐标应该是单调的。...ncrcat无法解包数据,只能简单的从输入文件拷贝数据和元数据到输出文件。...NCO提供的上述命令几乎涵盖了平时对netCDF处理的方方面面,可以说是处理netCDF最强大的工具,最大的缺点就是无法执行可视化操作。
气象领域的数据存储格式大多都是netCDF、HDF、Grib格式,这些文件格式已经发展的比较成熟了,大家也都已经习惯了处理这些格式的文件。...由于 Zarr 格式比 NetCDF4/HDF5 格式具有更快的处理速度,已经在云平台得到较为广泛的应用。近几年在国外地球科学领域也得到了广泛关注。...已有相关人员测试了通过netCDF和Zarr两种方式处理NOAA在AWS的GOES卫星数据并进行绘图的效率,结果发现:使用Zarr格式比netCDF格式效率提高非常明显。...在初步尝试时,使用 Zarr 格式写入数据时比使用 xarray 写入 NetCDF 文件快了 2 倍(未进行数据压缩)。...在对数据压缩时,Zarr 格式比 NetCDF 格式的写入速度快了差不多 6 倍,从 184 秒降为 31 秒。数据的存储效率提升非常明显,而且存储空间也有所降低。
有关如何用xarray处理NetCDF数据前面已经介绍过四期了。把一些处理NetCDF的基本方法都介绍了一下。...但xarray远不止如此,还可以用它处理GRIB和TIFF数据,这两种也是非常常见的数据格式。...看到这里有没有一种买一送三的感觉,学会xarray的基本方法就可以掌握多种数据格式的处理方式了,大大地效降低了学习的成本,剩下来的时间可以更加专注于其他工作。...TIFF数据处理 标记化图片文件格式(TIFF)是地理空间最常用的栅格格式。TIFF文件可以包含多波段,整型高程数据,基本元数据,内部压缩以及其他常用的存储辅助信息的文件格式。...cfgrib安装 如果想用xarray读取GRIB文件,首先要安装一下ECMWF的cfgrib库。它是xarray的用来解析GRIB数据的引擎。 安装就用conda一键安装就好了。
,关于xarray插值方法的介绍官方文档已经给的比较详细了,也有公众号推送过相关文章 xarray指南:插值 基于xarray的气象场站点和格点插值,所以xarray的插值部分就不单独说了。...WRF模式前处理 WRF模式后处理 数据提取 投影转换 插值 可视化 本文除了xarray之外,主要使用了 salem 和 xesmf 这两个库,salem 主要是进行前处理和部分后处理操作,xesmf...由于WRF模式的输出并不完全兼容NetCDF格式的CF标准,所以无法直接利用 xarray 的很多函数。这里同样需要用到 salem 来进行转换。...所以这里读取数据的时候需要先用 netCDF4 读取,然后 salem 进行转换。...xarray 的函数进行处理和分析了。
NetCDF(Network Common Data Form)是一种广泛用于存储多维科学数据的文件格式,而MAT文件是MATLAB的二进制文件格式,用于存储变量数据。...在某些情况下,可能需要将NetCDF文件转换为MAT文件,以便在MATLAB环境中进行进一步处理或分析。...选择变量:从Dataset中选择你感兴趣的变量,xarray.Dataset对象允许像字典一样访问其变量。.../mw/input/wrfout3385/wrfout_d02_2022-07-14_0700.nc' # 使用xarray打开NetCDF文件 ds = xr.open_dataset(nc_file...xarray和scipy提供的强大功能简化了这一转换过程,提高了数据处理的效率和灵活性。
领取专属 10元无门槛券
手把手带您无忧上云