Satpy针对数据的低级容器是xarray.DataArray,在Satpy里称为Datasets。...这些对象不仅类似于numpy数组,而且还保留了数据的元数据和属性。...更多信息参考xarray.DataArray的说明。...为了区别DataArray,Satpy提供了类似于身份证的DatasetID。 DatasetID由多种元数据构成,如:名字,波长,分辨率,校准方式,极化方式等等。...Satpy重采样使用的是pyresample包,提供了邻近,双线性和椭圆加权平均重采样方法。
数据结构 xarray有两大数据类型:DataArray、Dataset。...DataArray 一个带有标签的多维数组,它有如下几个重要的属性 values 获取数组的具体数值 dims 获取维度的名字,如('x', 'y', 'z') coords 获取一个类似于字典的结果,...,结果类似于字典,如{'x': 6, 'y': 6, 'time': 8} data_vars 获取物理量的名字 coords 获取一个类似于字典的结果,里面包含各个坐标 attrs 获取原始数据的属性...xarray.open_dataarray()读取DataArray类型数据,即只能读取单个物理量。...# 取出ds中名为t2m的物理量,可以看到它的维度,坐标系,以及t2m有单位和名字两个属性 >>>ds['t2m'] xarray.DataArray 't2m' (time: 12, latitude
——(唐)元稹《离思五首·其四》 ” xarray 中的DataArray 和 Dataset 对象除了上节介绍过的直接手动创建之外,更多的情况下却是通过其他数据储存结构转换和存储在硬盘中的数据存储文件读取而来...arr = series.to_xarray() arr 运行结果 由于只有一个变量,所以转换的结果是 xarray 中的DataArray类型。...ds.a获得了ds这个 DataSet 中的变量a的 DataArray ds.a 接着我们把这个 DataArray 利用.to_series()转换为 pandas 中的 Series(列表)类型...to_dataframe:将DataArray或Dataset对象转换为pandas.dataframe(数据框)。注意到DataArray对象名称与转换为数据框的名称一样都为a。...ds.a.to_dataframe() ds.a.to_dataframe() 类似于转换为列表,为保证数据的连续性,对于转换为DataFrame数组也会发生广播。
前言 首先,要快速熟悉一个陌生的nc格式数据,你可以使用Python中的xarray库。xarray是一个用于处理多维数组的强大工具,特别适用于处理带有标签的多维数据。...它提供了一种直观的方式来组织、分析和可视化数据,尤其适用于气候科学和地球科学领域的数据处理。 xarray库的核心数据结构是DataArray和Dataset。...DataArray类似于NumPy数组,但它包含坐标和维度标签,使得数据更易于理解和操作。...Dataset是一种类似于字典的数据结构,用于存储多个DataArray,每个DataArray可以共享相同的坐标系。...接下来,我将为你提供一个简单的xarray库介绍,以帮助你更好地理解如何使用它来处理陌生的nc格式数据。
下面举一个例子 对于地球上的各个地区的温度(Temperature)和湿度(Precipitation)而言。...数据结构 Xarray包提供了两种数据储存结构:DataArray类和Dataset类。...Dataset由下列三个部分组成 data_vars:类似于python字典从名称至值的映射关系。对于每一个变量都必须要提供维度名称 和DataArray对象或元组语法。...数据查看 类似于DataArray,Dataset也有text形式输出和html形式输出。...如果要创建一些在同一个坐标(Coordinates)上但有不同值的变量,我们不能采用简化的语法。
xarray 通过使用Groupby 算法使这些类型的转换变得容易。下面给出了计算去除月份温度差异的海温月数据。...2018年1月1日与1960年1月1日之间SST之间的差异 Resample(重采样) xarray 中的Resample(重采样)的处理方法与 Pandas 包几乎相同。...resample(time="5Y")是对如何对时间进行重采样进行设置,维度为time,设置的时间间隔为 5 年。...da 此处创建 DataArray 类型 da 的方法与之前创建 DataArray 稍有不同。...https://github.com/xarray-contrib/xarray-tutorial
xarray (之前的 xray) 是一个开源的python库。通过提供 pandas 的核心数据结构N维变形功能,从而将 pandas 的标签数据功能应用到物理科学领域。...主要是想提供一个类似pandas并且能与pandas兼容的工具包来进行多维数组(而不是pandas 所擅长的表格数据)分析。采用的是地球科学领域广泛使用的自描述数据通用数据模型实现上述功能。...xarray提供了四种索引方式: # 通过整数进行索引 In [12]: data[[0, 1]] Out[12]: xarray.DataArray (x: 2, y: 3)> array([[-...是 xarray.DataArray 对象的类字典容器,也可以认为这是一个多维的 DataFrame。...Dataset 所使用的操作几乎全部适用于 DataArray 对象。
(day: 2, lat: 4, lon: 4)> 16.给前一题的DataArray添加属性author:Heywhale da.attrs['author']='Heywhale' da xarray.dataarray...中取出temperature的DataArray temp = data['temperature'] temp xarray.dataarray 'temperature' (day: 2, lat...'temperature' (lat: 4, lon: 4)> 27.取出上一题ds下temperature变量中第二和第三天的的数据 ds['temperature'][1:3] xarray.dataarray...(lat: 4, lon: 4)> 32.对28题da做数组的转置 da.T xarray.dataarray (lon: 4, lat: 4)> array([[1., 1., 1., 1.],...lon: 4, lat: 4)> 33.将上一题中转置后的数组元素除以2 da.T/2 xarray.dataarray (lon: 4, lat: 4)> array([[0.5, 0.5, 0.5
本来是作为一部分内容的,但是推送有字数限制。因此拆分为三个部分,每部分都是单独的内容,基本不影响阅读。 DataArray xarray.DataArray 是 xarray 库中带标签的多维数组。...维度提供了xarray使用的维度名称,从而代替大多数 numpy 函数所使用的 axis(轴) 参数。...(data, coords=[times, locs], dims=['time', 'space']) 变量 foo 包含的信息如下: xarray.DataArray (time: 4, space...通过属性可以获取 foo 数组中的变量信息: >> foo.dims ('dim_0', 'dim_1') >> foo.dim_0 xarray.DataArray 'dim_0' (dim_0:...每个值必须是以下形式: DataArray 或 Variable (dims, data [, attrs]) 形式的元组,然后被转换为 Variable 的参数 被转换为 DataArray 的 pandas
坐标 坐标是存储在 DataArray 和 Dataset 的 coords 属性中的辅助变量。...xarray中的坐标有两种类型: 维度坐标 是名称和唯一的维度名称相同的1D数组(打印Dataset或 DataArray时 *号标记的变量)。...用于基于标签的索引和对齐操作,就像 pandas 中的 DataFrame 和 Series 的索引。事实上,这些维度坐标内部使用的是 pandas.Index 存储其值。...,'virtual' 层坐标是不会存储在 DataArray 和 Dataset 对象的 coords 属性中的,尽管打印时会显示出来。...因为在 Dataset 和 DataArray 对象中每个多索引层都可以通过 ‘virtual’ 坐标获取,它的名称不能与相同对象的其它层,坐标和数据变量的名称冲突。
类似pandas对象,xarray也对象支持沿着每个维度基于整数和标签的查找。 但是xarray对象还具有命名维度,因此您可以选择使用维度名称代替维度的整数索引。...直接对 DataArray 的索引类似 numpy 数组索引,只不过它返回的是一个新的 DataArray 对象。...主要有两种方式: 使用字典作为基于标签或位置的索引数组参数 # 根据位置索引 >> arr[dict(space=slice(0, 3, 2), time=slice(None, 2))] xarray.DataArray...where 遵循的是所有常规 xarray 广播和对齐原则,索引对象和条件之间二元操作 >> arr.where(arr2.y < 2) xarray.DataArray (x: 4, y: 4)>...会将 Dataset 或 DataArray 添加到响应维度的新坐标集。
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...lat float32 32.75 总和 In [18]: sum_pre = ds.pre.sum() print('两年全球总降水:', sum_pre) 两年全球总降水: xarray.DataArray...'pre' ()> array(199) Coordinates: time datetime64[ns] 2021-01-16, 'lon': xarray.DataArray
黑暗中的我们都没有说话 | xarray2024.11.0读取GRIB数据进阶 前言 上期内容有读者朋友留言如下 grib、bufr这种表驱动格式企图“规范化”所有要素,但是气象海洋等各种学科各种要素茫茫多...的sel对多层变量进行裁剪 更简单 技巧二 :xarray 写入 grib help(xarray_to_grib) Help on module cfgrib.xarray_to_grib in cfgrib...grib_keys, sample_name_template='{geography}_{vertical}_grib{edition}') expand_dims(data_var: xarray.core.dataarray.DataArray...) -> Tuple[List[str], xarray.core.dataarray.DataArray] make_template_message(merged_grib_keys...将 DataArray 写入 GRIB 文件 import xarray as xr from cfgrib.xarray_to_grib import canonical_dataarray_to_grib
Dataset xarray.Dataset 是和 DataFrame 相同的多维数组。这是一个维度对齐的标签数组(DataArray)的类字典容器。它用来展示NetCDF文件格式的数据。...:相应变量的 DataArray 类字典容器 coords:用于 data_vars 标记点的 DataArray 类字典容器,比如数字,datetime对象或字符串数组 attrs:包含任意元数据的...OrderedDict 数据或坐标中变量的区别是语义上的,你可以忽略这些差异。...访问数据集中的字典可以获取任意类别的变量。然而,xarray正是利用了索引和计算之间的差异。坐标中表示的是常数/固定/独立的量,而数据中表示的是变化/测量/依赖的量。...使用 DataArray 或 pandas 对象作为参数值: >> xr.Dataset({'bar': foo}) xarray.Dataset> Dimensions: (dim_0: 4, dim
ds.sst.isel(time=0).plot(vmin=20, vmax=30) 基本计算 xarray 的 DataArray 和 DataSet 对象可以无缝地使用计算操作符(如+, -, *,...需注意的是,许多导入的 xarray 数据集存在单位(units)属性,这些属性可用于绘图,目前独立于 xarray 项目进行开发的包pint[1]可以实现对单位的完全感知并进行转换。...apply_ufunc 函数的使用 上面可以调用np.log(ds)并使其在 xarray 中“正常工作”是非常幸运的,因为并非所有的库都能直接在 xarray 中正常工作。...numpy相关的数学函数均可以直接在 xarray 中直接运算。 我们以一个实例来开始下面的内容:用于海水热力学领域的Gibbs 海水工具包[2]。...类似于上面的np.log函数,我们可以直接将 xarray 的 DataArray 对象放在函数括号里。 gsw.t90_from_t68(ds.sst) ?
向AI转型的程序员都关注了这个号 机器学习AI算法工程 公众号:datayx 上采样与上池化 图示理解,使用三张图进行说明: 图(a)表示UnPooling的过程,特点是在Maxpooling...从图中即可看到两者结果的不同。 简单来说:上采样指的是任何可以让你的图像变成更高分辨率的技术。...最简单的方式是重采样和插值:将输入图片进行rescale到一个想要的尺寸,而且计算每个点的像素点,使用如***双线性插值***等插值方法对其余点进行插值来完成上采样过程。...在FCN、U-net等网络结构中,我们见识到了上采样这个东西。 图(c)为反卷积的过程,反卷积是卷积的逆过程,又称作转置卷积。...附录 反卷积(Deconvolution)、上采样(UNSampling)与上池化(UnPooling)、可视化代码: https://github.com/heuritech/convnets-keras
以下文章来源于MeteoAI ,作者学前班大队长 xarray专题再次开讲,错过第一部分的可以先去补个课从xarray走向netCDF处理(一):数据结构及数据读取。...今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。...索引核心方法 在xarray的官方文档中给出了如下几种索引方式 索引演示 对如下数据进行索引演示:名为ds的DataSet,名为temp的DataArray,数据链接在文末。...根据位置索引 位置索引是最直接也是最简单的索引方式,但是位置索引只对DataArray有效,对DataSet无效。下面用两种不同方法获取相同的值。 1....通过数字索引 >>>temp[:,1,1] xarray.DataArray 't2m' (time: 12)> array([249.14844, 256.4179 , 247.45125, 254.26143
但是在操作之前都会先将 DataArray 转换为 Dataset,从而保证数据的准确性。 一个数据集可以加载或写入netCDF 文件的特定组中。...DataArray.encoding 属性可以查看解码信息: ds_disk['y'].encoding 注意:除了索引外,管理变量的所有操作都会移除编码信息。..._FillValue:当保存 xarray 对象到文件时,xarray 变量中的 Nan 会映射为此属性包含的值。这在转换具有缺省值的浮点数为整数时就显得非常重要了。...>> tmax = remote_data['tmax'][:500, ::3, ::3] >> tmax xarray.DataArray 'tmax' (T: 500, Y: 207, X: 469...比如: >> rio = xr.open_rasterio('RGB.byte.tif') xarray.DataArray (band: 3, y: 718, x: 791)> [1703814 values
xarray专题再次开讲,错过第一部分的可以先去补个课从xarray走向netCDF处理(一):数据结构及数据读取。...今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。 索引核心方法 在xarray的官方文档中给出了如下几种索引方式 ?...索引演示 对如下数据进行索引演示:名为ds的DataSet,名为temp的DataArray,数据链接在文末。...根据位置索引 位置索引是最直接也是最简单的索引方式,但是位置索引只对DataArray有效,对DataSet无效。下面用两种不同方法获取相同的值。 1....通过数字索引 >>>temp[:,1,1] xarray.DataArray 't2m' (time: 12)> array([249.14844, 256.4179 , 247.45125, 254.26143
领取专属 10元无门槛券
手把手带您无忧上云