首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏自学气象人

    xarray库(一) 】创建xarray对象

    那有个问题便可以提出,为什么不直接使用numpy数组读取地球科学数据,而要使用xarray提供的读取方式? 数据结构 Xarray包提供了两种数据储存结构:DataArray类和Dataset类。 这里我们是用来处理地理数据的,那么我们就需要引入处理地理数据的专用包xarray以及配套需要的numpy和pandas包。 /xarray-tutorial[3] 参考资料 [1] xarray包: http://xarray.pydata.org/ [2] NumPy包: https://numpy.org/ [3] xarray-contrib/xarray-tutorial: https://github.com/xarray-contrib/xarray-tutorial

    6.1K100编辑于 2022-11-02
  • 来自专栏气python风雨

    xarray基础之计算篇

    import xarray as xr # 数据 f = '/home/mw/input/cru3546/cru_ts4.07.2021.2022.pre.dat.nc' # 打开数据集 ds = xr.open_dataset version 2.14.1 平均 In [12]: all_mean_pre = ds.pre.mean() print('两年全球平均降水:', all_mean_pre) 两年全球平均降水: <xarray.DataArray time=slice('2021-01-16', '2021-12-16')).mean() print('2021年全球平均降水:', first_mean_pre) 2021年全球平均降水: <xarray.DataArray ', '2021-12-16'),lat=32.75,lon=60.25).mean() print('2021年某格点平均降水:', point_mean_pre) 2021年某格点平均降水: <xarray.DataArray 'pre' ()> array(199) Coordinates: time datetime64[ns] 2021-01-16, 'lon': <xarray.DataArray

    38810编辑于 2024-06-20
  • 来自专栏气象杂货铺

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

    xarray的典型计算工作流程通常包括: 使用xr.open_mfdataset 或 xr.open_dataset(chunks=...) 而目前xarray对于nc格式的大文件存储让人头疼。在存储这些大文件时耗时很长,甚至可能会导致程序挂起。 首先导入所需要的库: import xarray as xr import numpy as np from distributed import Client, performance_report cluster 不同的机器和参数设置上述信息会存在差异 然后加载数据集: ds = xr.tutorial.open_dataset('rasm', chunks={'time': 12}) 此数据集为xarray netCDF可是的写操作一直是xarray的痛点,尤其是在并行写和增量写文件方面。

    3.7K11编辑于 2022-09-23
  • 来自专栏气象杂货铺

    xarray | 索引及数据选择

    类似pandas对象,xarray也对象支持沿着每个维度基于整数和标签的查找。 但是xarray对象还具有命名维度,因此您可以选择使用维度名称代替维度的整数索引。 where 遵循的是所有常规 xarray 广播和对齐原则,索引对象和条件之间二元操作 >> arr.where(arr2.y < 2) <xarray.DataArray (x: 4, y: 4)> xarray 返回的结果比 pandas 更明确,不会返回 SettingWithCopy warnings 对齐与重索引 xarray 中的 reindex,reindex_like 及 align xarray 在执行合并多对象操作时会自动对齐。手动对齐能够提高效率。 coordinates: x 如果两个 xarray 对象至少有一个没有坐标标签,只要有相同的维度名和大小,同样可以执行对齐操作。

    11.6K15发布于 2020-04-21
  • 来自专栏气象杂货铺

    xarray | 数据结构(3)

    -09-08 reference_time datetime64[ns] 2014-09-05 day (time) int32 6 7 8 和属性不同的是,xarray xarray中的坐标有两种类型: 维度坐标 是名称和唯一的维度名称相同的1D数组(打印Dataset或 DataArray时 *号标记的变量)。 除此之外, xarray 不会限制使用与其相关的值。它们不需要进行对齐或自动索引,也不需要在计算时进行匹配。 注: xarray 中的术语和 CF 中的术语不同。 如果你想对 xarray 对象进行二元操作时, coords.merge 方法就显得非常有用了。 尽管 xarray 会提供默认值,但是还是推荐明确指定名称。

    2.2K21发布于 2020-04-21
  • 来自专栏自学气象人

    xarray库(二)】数据读取和转换

    pandas 数据类型转换和读取写入 pandas 若要由pandas对象转换为 xarray 对象或者由 xarray 转为pandas对象,可以对pandas[4] 对象使用to_xarray[5 ]方法或者对 xarray 对象使用to_pandas[6]方法进行转换。 索引和数据 综上,对于 pd.Series 函数的理解可如下进行理解 pd.Series函数 若要将变量 series(pandas 类型)转为 xarray 类型只需在变量后加上.to_xarray arr = series.to_xarray() arr 运行结果 由于只有一个变量,所以转换的结果是 xarray 中的DataArray类型。 Xarray 的 Zarr 后端允许 Xarray 利用这些功能。

    7.9K60编辑于 2022-11-02
  • 来自专栏气象杂货铺

    xarray | 数据结构(2)

    Dataset xarray.Dataset 是和 DataFrame 相同的多维数组。这是一个维度对齐的标签数组(DataArray)的类字典容器。它用来展示NetCDF文件格式的数据。 然而,xarray正是利用了索引和计算之间的差异。坐标中表示的是常数/固定/独立的量,而数据中表示的是变化/测量/依赖的量。 下面是如何为天气预测构造数据集的例子: ? 虽然 xarray 不会强制限制属性设置,但是如果使用的不是 字符串,数字或 numpy.ndarray 对象,那么在序列化某些文件格式时仍可能会失败。 数据集转换 除了上述的类字典方法外, xarray 还有一些其它方法可以将数据集转换为其它对象。 使用 xarray 创建新数据集不会造成性能损失,即使是从文件中加载。创建新对象代替那些存在的”变异“变量,对于理解代码来说是有利的。

    4.5K30发布于 2020-04-21
  • 来自专栏气象杂货铺

    xarray | 数据结构(1)

    DataArray xarray.DataArray 是 xarray 库中带标签的多维数组。 维度提供了xarray使用的维度名称,从而代替大多数 numpy 函数所使用的 axis(轴) 参数。 名称和属性严格应用于用户代码,并且xarray 不会试图解释这些信息,仅在特定情况下才会传播这些信息。 通过属性可以获取 foo 数组中的变量信息: >> foo.dims ('dim_0', 'dim_1') >> foo.dim_0 <xarray.DataArray 'dim_0' (dim_0: 在 V0.9之前,xarray会仿照这种方式:如果没有指定坐标参数的话,xarray会提供默认值。 以下方式可以指定坐标信息: 值列表和维度数大小相同,为每个维度提供坐标标签。

    3K20发布于 2020-04-21
  • 来自专栏MeteoAI

    xarray尾声:TIFF与GRIB处理

    有关如何用xarray处理NetCDF数据前面已经介绍过四期了。把一些处理NetCDF的基本方法都介绍了一下。 但xarray远不止如此,还可以用它处理GRIB和TIFF数据,这两种也是非常常见的数据格式。 看到这里有没有一种买一送三的感觉,学会xarray的基本方法就可以掌握多种数据格式的处理方式了,大大地效降低了学习的成本,剩下来的时间可以更加专注于其他工作。 >>>import xarray as xr >>>url = 'https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif cfgrib安装 如果想用xarray读取GRIB文件,首先要安装一下ECMWF的cfgrib库。它是xarray的用来解析GRIB数据的引擎。 安装就用conda一键安装就好了。

    7.5K42发布于 2019-07-24
  • 来自专栏自学气象人

    气象常用库 | xarray入门用法总结

    1.导入xarray库,简写为xr import xarray as xr import numpy as np import pandas as pd D:\Anaconda3\lib\site-packages (lat: 4, lon: 4)> da.groupby('lat') <xarray.core.groupby.dataarraygroupby at 0x1fb6d5ae400></xarray.core.groupby.dataarraygroupby to the grouped dimension in a future version of xarray. To silence this warning, pass dim=xarray.ALL_DIMS explicitly. . -1.0 -1.0 -1.0 -1.0 ds.groupby('lon') <xarray.core.groupby.datasetgroupby at 0x1fb6d59af98></xarray.core.groupby.datasetgroupby

    4.1K22编辑于 2022-11-14
  • 来自专栏自学气象人

    xarray走向netCDF处理(二):数据索引

    以下文章来源于MeteoAI ,作者学前班大队长 xarray专题再次开讲,错过第一部分的可以先去补个课从xarray走向netCDF处理(一):数据结构及数据读取。 今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。 索引核心方法 在xarray的官方文档中给出了如下几种索引方式 索引演示 对如下数据进行索引演示:名为ds的DataSet,名为temp的DataArray,数据链接在文末。 通过数字索引 >>>temp[:,1,1] <xarray.DataArray 't2m' (time: 12)> array([249.14844, 256.4179 , 247.45125, 254.26143 1.通过数字索引 >>>ds.isel(longitude=1, time=0) <xarray.Dataset> Dimensions: (latitude: 241) Coordinates:

    2.1K122编辑于 2022-11-02
  • 来自专栏气象杂货铺

    xarray | 序列化及输入输出

    xarray 支持多种文件格式(从 pickle文件到 netCDF格式文件)的序列化和输入输出。 比如 netCDF 或 OPeNDAP 只要 xarray 对象的内部数据结构不变, Pickle 就能工作。因为 xarray 的内部设计是重新定义的,所以无法保证能够适用于所有版本。 更为重要的一点是:当你改变数据集的值时,如果只是改变了内存中 xarray,那么源文件是不会被改变的。 技巧: xarray 对服务器或本地磁盘文件的延迟加载并不总是有利的。 xarray 整合了 dask.array 来提供完整的流计算。 _FillValue:当保存 xarray 对象到文件时,xarray 变量中的 Nan 会映射为此属性包含的值。这在转换具有缺省值的浮点数为整数时就显得非常重要了。

    7.5K22发布于 2020-04-21
  • 来自专栏MeteoAI

    xarray走向netCDF处理(二):数据索引

    xarray专题再次开讲,错过第一部分的可以先去补个课从xarray走向netCDF处理(一):数据结构及数据读取。 今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。 索引核心方法 在xarray的官方文档中给出了如下几种索引方式 ? 通过数字索引 >>>temp[:,1,1] <xarray.DataArray 't2m' (time: 12)> array([249.14844, 256.4179 , 247.45125, 254.26143 通过标签索引 >>>temp.loc[:, 89.25, 0.75] <xarray.DataArray 't2m' (time: 12)> array([249.14844, 256.4179 , 247.45125 1.通过数字索引 >>>ds.isel(longitude=1, time=0) <xarray.Dataset> Dimensions: (latitude: 241) Coordinates:

    8.3K57发布于 2019-07-24
  • 来自专栏气python风雨

    xarray+eofs:对EOF的简单实现

    昨日有读者说想看看EOF和小波分析,近期也在搞xarray的推文,就拿xarray的数据直接做了。 就直接转载了(偷懒) 本想写几种eof库比较的,在pyeof和xeof安装都失败后还是简单写一下eofs 导入库 In [54]: from eofs.standard import Eof import xarray return df.set_index([time_dim]+lumped_space_dims).unstack(lumped_space_dims) 数据预处理 In [80]: import xarray # 计算模态函数(EOFs) s_eofs =solver.eofs(neofs=4, eofscaling=2) s_eofs = s_eofs.reshape(4,100,80) # 创建xarray # 计算模态函数(EOFs) s_eofs1 =solver.eofs(neofs=4, eofscaling=2) s_eofs1 = s_eofs.reshape(4,100,80) # 创建xarray

    43210编辑于 2024-06-20
  • 来自专栏好奇心Log

    Python可视化 | xarray 绘图时序图

    封图:嵊雨饧 @巴音布鲁克 导入本期所需的包和数据 import matplotlib.pyplot as plt import numpy as np import xarray as xr ds1 /∂x$", "units": "°C/m"} ds.dTdy.attrs = {"long_name": "$∂T/∂y$", "units": "°C/m"} 一维数据绘图(Ⅰ) 基础线图绘制 xarray xarray 提取坐标名称和与此紧密相关的元数据attrs.long_name, attrs.standard_name, DataArray.name, attrs.units(若存在该项值)标记坐标轴的标签 xarray 数据的属性可用.attrs方法获取。 data1d.attrs ? data1d.attrs 类似于MATLAB 线图绘制[2],可用类似的参数指定绘制线型、标记和颜色。

    3.9K40发布于 2021-07-30
  • 来自专栏好奇心Log

    Python可视化 | xarray绘图样式配置

    xkcd') fm.fontManager.ttflist.insert(0, fe) mpl.rcParams['font.family'] = fe.name 所需字体xkcd.ttf可通过在后台回复xarray 首先导入数据 import xarray as xr import matplotlib.pyplot as plt import numpy as np ds1 = xr.open_dataset( xkcd.com/ [6] plt.xkcd: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.xkcd.html # TIPS # Xarray 专题资料下载可在公众号前台回复xarray 获取。

    1.5K31发布于 2021-08-26
  • 来自专栏气象杂货铺

    xarray系列|WRF模式前处理和后处理

    距离上次xarray的更新已经过去两个多星期了... ,关于xarray插值方法的介绍官方文档已经给的比较详细了,也有公众号推送过相关文章 xarray指南:插值 基于xarray的气象场站点和格点插值,所以xarray的插值部分就不单独说了。 WRF模式前处理 WRF模式后处理 数据提取 投影转换 插值 可视化 本文除了xarray之外,主要使用了 salem 和 xesmf 这两个库,salem 主要是进行前处理和部分后处理操作,xesmf 由于WRF模式的输出并不完全兼容NetCDF格式的CF标准,所以无法直接利用 xarray 的很多函数。这里同样需要用到 salem 来进行转换。 的兼容接口,很难利用其 xarray 很多便利的函数。

    3.8K61编辑于 2022-09-23
  • 来自专栏好奇心Log

    xarray系列|WRF模式前处理和后处理

    距离上次xarray的更新已经过去两个多星期了... ,关于xarray插值方法的介绍官方文档已经给的比较详细了,也有公众号推送过相关文章 xarray指南:插值 基于xarray的气象场站点和格点插值,所以xarray的插值部分就不单独说了。 WRF模式前处理 WRF模式后处理 数据提取 投影转换 插值 可视化 本文除了xarray之外,主要使用了 salem 和 xesmf 这两个库,salem 主要是进行前处理和部分后处理操作,xesmf 由于WRF模式的输出并不完全兼容NetCDF格式的CF标准,所以无法直接利用 xarray 的很多函数。这里同样需要用到 salem 来进行转换。 的兼容接口,很难利用其 xarray 很多便利的函数。

    6K66发布于 2021-08-26
  • 来自专栏好奇心Log

    利用 pandas 和 xarray 整理气象站点数据

    利用 pandas 和 xarray 整理气象站点数据 平时用 xarray 库在处理 nc 格式的数据非常方便,但偶尔还是要用到一些站点数据来辅助分析,而站点数据一般都是用文本文件存储的,比如下图这种格式 用Python处理这种文本列表就需要用上 pandas 库了, xarray 库就是基于 pandas 的,虽然天天在用 xarray ,但是这还是第一次正儿八经用 pandas 处理数据,就当做一次学习的过程啦 文件读取与预处理 导入所需的库 import numpy as np import pandas as pd import xarray as xr import matplotlib.pyplot as 但是我自己还是习惯了直接用 xarray 处理文件,因此还是做了进一步处理。 首先读取站点的地理资料,比如下图这种格式 ?

    11.3K41发布于 2021-07-08
  • 来自专栏好奇心Log

    数据处理 | xarray的NC数据基础计算(1)

    需注意的是,许多导入的 xarray 数据集存在单位(units)属性,这些属性可用于绘图,目前独立于 xarray 项目进行开发的包pint[1]可以实现对单位的完全感知并进行转换。 apply_ufunc 函数的使用 上面可以调用np.log(ds)并使其在 xarray 中“正常工作”是非常幸运的,因为并非所有的库都能直接在 xarray 中正常工作。 更多可查阅Xarray docs[3]。 docs: http://xarray.pydata.org/en/latest/generated/xarray.apply_ufunc.html 注:本文基于Xarray Tutorials进行改写 ,遵循Apache-2.0 License https://github.com/xarray-contrib/xarray-tutorial

    7.8K121发布于 2021-04-22
领券