python语言作为一种高级语言提供了一个与这类地球科学数据提供了一个良好的交互环境基础,而由python语言编写的xarray包[1]则为该类数据的处理提供了良好的平台。...不同时间的温度、降水量也是不同的。一般而言,夏季的降水量、温度都是大于冬季的。那么我们就必须在温度、湿度变量上再引入一个维度——时间t进行描述。这时候你就可以知道任意时间、任意地点的温度、湿度大小了。...DataArray将维度名称,坐标和属性添加到多维数组,而Dataset则是多个DataArray数组的集合。 “什么叫做类,什么叫做实例? 苹果是水果的组成部分,那么苹果称为水果的类。...的对象可以将多个变量放在一起。...coords: 与 DataArray类似 attrs: 与 DataArray类似 作为例子,下面我们来创建一个有两个变量的Dataset对象 : ds = xr.Dataset( data_vars
wrf.to_np 函数按照以下流程执行: 如果没有缺省值或填充值,那么将直接调用 xarray.DataArray.values 属性返回值 如果有缺省值或填充值,那么会用 xarray.DataArray.attrs...3d_ndarray)) 返回: 文件序列 使用 cat 方法合并多个文件 cat 方法会将序列中所有文件沿着 'Time' 维进行合并,时间维度将作为返回数组的最左侧维度...如果 timeidx 是单个值,那么将假设时间索引取自所有文件所有时间的连接。 注意:执行 wrf.getvar 时并不会进行排序,也就是说在执行函数之前应在序列中按时间对文件进行排序。...如果指定值的话,那么从每个文件中提取变量时,指定值将应用于每个文件。在具有多个时刻的多个文件中,这样做可能是没有意义的,因为每个文件的第 n 个索引可能表示不同的时刻。...然而,在字典中所有的WRF文件都应包含相同的维度。结果是一个数组,最左侧的维度是字典中的键。同样允许使用嵌套字典。
本来是作为一部分内容的,但是推送有字数限制。因此拆分为三个部分,每部分都是单独的内容,基本不影响阅读。 DataArray xarray.DataArray 是 xarray 库中带标签的多维数组。...维度提供了xarray使用的维度名称,从而代替大多数 numpy 函数所使用的 axis(轴) 参数。...名称和属性严格应用于用户代码,并且xarray 不会试图解释这些信息,仅在特定情况下才会传播这些信息。...=['time', 'space']) 变量 foo 包含的信息如下: array([[ 0.703916, 0.145702...对象或标量 1D数组或列表 (与坐标名称相同的维度名对应的1D坐标变量的值) {coord_name: coord} 字典,值与列表形式相同。
类似pandas对象,xarray也对象支持沿着每个维度基于整数和标签的查找。 但是xarray对象还具有命名维度,因此您可以选择使用维度名称代替维度的整数索引。...主要有两种方式: 使用字典作为基于标签或位置的索引数组参数 # 根据位置索引 >> arr[dict(space=slice(0, 3, 2), time=slice(None, 2))] <xarray.DataArray...以上方法均是针对维度坐标变量。...xarray 返回的结果比 pandas 更明确,不会返回 SettingWithCopy warnings 对齐与重索引 xarray 中的 reindex,reindex_like 及 align...会将 Dataset 或 DataArray 添加到响应维度的新坐标集。
DataArray 一个带有标签的多维数组,它有如下几个重要的属性 values 获取数组的具体数值 dims 获取维度的名字,如('x', 'y', 'z') coords 获取一个类似于字典的结果,...里面包含各个坐标 attrs 获取原始数据的属性,比如变量的名字、单位等 Dataset Dataset可以简单的理解为由多个DataArray组成的集合,它有如下几个重要的属性 dims 获取维度的名字...,比如变量的名字、单位等 ?...# 取出ds中名为t2m的物理量,可以看到它的维度,坐标系,以及t2m有单位和名字两个属性 >>>ds['t2m'] <xarray.DataArray 't2m' (time: 12, latitude...xarray封装了matplotlib的部分绘图函数,一行代码就可以将数据画出来,不过作为一个负责的公众号,还是用cartopy顺带加载了地图。
DataArray 一个带有标签的多维数组,它有如下几个重要的属性 values 获取数组的具体数值 dims 获取维度的名字,如('x', 'y', 'z') coords 获取一个类似于字典的结果,...里面包含各个坐标 attrs 获取原始数据的属性,比如变量的名字、单位等 Dataset Dataset可以简单的理解为由多个DataArray组成的集合,它有如下几个重要的属性 dims 获取维度的名字...,比如变量的名字、单位等 数据结构图示 数据类型的使用 读取数据: xarray.open_dataset()读取Dataset类型数据,即能读取多个物理量。...# 取出ds中名为t2m的物理量,可以看到它的维度,坐标系,以及t2m有单位和名字两个属性 >>>ds['t2m'] <xarray.DataArray 't2m' (time: 12, latitude...xarray封装了matplotlib的部分绘图函数,一行代码就可以将数据画出来,不过作为一个负责的公众号,还是用cartopy顺带加载了地图。
Dataset xarray.Dataset 是和 DataFrame 相同的多维数组。这是一个维度对齐的标签数组(DataArray)的类字典容器。它用来展示NetCDF文件格式的数据。...使用 DataArray 或 pandas 对象作为参数值: >> xr.Dataset({'bar': foo}) Dimensions: (dim_0: 4, dim...当使用 pandas 对象作为键值时,pandas 索引名会用作维度名,并且其数据会和已有变量进行对齐。...数据集转换 除了上述的类字典方法外, xarray 还有一些其它方法可以将数据集转换为其它对象。...对比上述结果可以发现,维度变量 time 变为 day。
xarray中的坐标有两种类型: 维度坐标 是名称和唯一的维度名称相同的1D数组(打印Dataset或 DataArray时 *号标记的变量)。...非维度坐标 是包含坐标数据的变量,但不是维度坐标。它们可以是多维的,而且非维度坐标名称和它的维度名称没有关系。非维度坐标在绘图或索引时非常有用。除此之外, xarray 不会限制使用与其相关的值。...注: xarray 中的术语和 CF 中的术语不同。CF中的维度坐标称作坐标变量,而非维度坐标称作辅助坐标变量 [注1]。CF是指 Climate and Forecast [注2]。...更改坐标 如果要完整的添加或移除坐标数组,你可以使用类字典语法(如上所示)。...,其余的非维度坐标变量均转换为坐标变量。
对于字符串而言,可以将字符串中的各个字符提取出来,其结果如下所示 list("abcdefghij")运行结果 上述的 list 函数创建了一个列表。这个列表赋予了 index 值。...索引和数据 综上,对于 pd.Series 函数的理解可如下进行理解 pd.Series函数 若要将变量 series(pandas 类型)转为 xarray 类型只需在变量后加上.to_xarray...arr = series.to_xarray() arr 运行结果 由于只有一个变量,所以转换的结果是 xarray 中的DataArray类型。...若要将 xarray 转为 pandas 类型,类似的在变量后加上.to_pandas() arr.to_pandas() 运行结果 对于 xarray 的多变量Dataset对象同理可用类似对pandas...Xarray 采用open_dataset / open_dataarray 函数读取NetCDF 文件,采用to_netcdf方法将数据写入文件。
ds.sst.isel(time=0).plot(vmin=-2, vmax=30) 上述代码选取了时间维度第一个的变量 sst,同时通过vmin和vmax定义色标的绘制变量数值范围为-2 至 30....ds.sst.isel(time=0).plot(vmin=20, vmax=30) 基本计算 xarray 的 DataArray 和 DataSet 对象可以无缝地使用计算操作符(如+, -, *,...sst_kelvin 可以发现再进行计算操作后,数据集的维度和坐标都没有发生变化。...类似于上面的np.log函数,我们可以直接将 xarray 的 DataArray 对象放在函数括号里。 gsw.t90_from_t68(ds.sst) ?...这对于一些不能直接应用于 xarray 对象的函数是非常便捷的。 xr.apply_ufunc(gsw.t90_from_t68, ds.sst) ?
一般将这个残差称为距平。 对转换(Transformations)操作而言,消除数据的气候平均是一个很好的例子。转换操作对分组的对象进行操作,但不改变原数据的维度尺寸。...应当指出这里的时间间隔写法与之前pd.date_range函数中的freq的时间间隔的关键词是一致的。...(50°N, 60°E) 的海温变化 第一行代码将原始海温变化的时间序列画了出来,第二行画了经逐 5 年平均后的海温变化的时间序列。...ds_anom_rolling 参数time=12指定了对维度time以 12 个月为周期(月数据)变动时间窗,center参数表明以当前窗的两侧筛选数据,否则是以当前窗的前 12 个月作为筛选目标(包括本身...foo 多个维度dims需用小括号或者方括号包裹。不同的 coords 之间的参数用逗号间隔,因为用列表创建坐标维度的特性,无需写坐标维度名称。坐标维度的名称将沿用维度名称的名字。
(day: 2, lat: 4, lon: 4)> 16.给前一题的DataArray添加属性author:Heywhale da.attrs['author']='Heywhale' da 27.取出上一题ds下temperature变量中第二和第三天的的数据 ds['temperature'][1:3] 39.对上一题聚合后的结果求平均 da.groupby('lat').mean() D:\Anaconda3...'day6' 'day7' 'day8' 48.沿着day维度拼接ds_1中的temperature1变量和ds_2中的temperature2变量 day = ['day1','day2','day3...'day6' 'day7' 'day8' 49.沿着day维度拼接ds_1和ds_2(两个Dataset具有相同的变量) day = ['day1','day2','day3','day4'] da_1
xarray (之前的 xray) 是一个开源的python库。通过提供 pandas 的核心数据结构N维变形功能,从而将 pandas 的标签数据功能应用到物理科学领域。...,创建时将直接复制元数据信息: In [7]: xr.DataArray(pd.Series(range(3), index=list('abc'), name='foo')) Out[7]: array(-1.4526610277231344) 但在集合操作时使用维度名代替轴: In [20]: data.mean(dim='x') Out[20]: <xarray.DataArray...是 xarray.DataArray 对象的类字典容器,也可以认为这是一个多维的 DataFrame。...0.01396 , -0.362543]]) Coordinates: * x (x) <U1 'a' 'b' Dimensions without coordinates: y 数据集中的变量可以有不同的类型甚至不同的维度
转换 将 time,step 和 pl 都扩展为维度,并将单位转为摄氏度 field = field.expand_dims(["time", "step", "pl"]) field = field...使用 meb.xarray_to_griddata() 函数将要素场对象转为 meb.grid_data() 函数生成的 xr.DataArray 对象 可以看到,对于单个要素场,该函数自动生成了 memeber...修改坐标值,与 t850_grid 保持一致: 添加 member 名称 将时间从世界时改为北京时 meb.set_griddata_coords( cropped_grid_data,...计算 计算 024 时效与该时刻分析场的均方根误差 载入数据 整合函数,实现如下功能: 使用 nwpc-data 从 GRIB 2 文件中加载要素场 将返回的要素场转换为 xr.DataArray 对象...计算指标 计算均方根误差 RMSE 使用 squeeze 方法删掉长度为 1 的维度,将数据变为二维矩阵 mem.rmse( anal_grid.squeeze(), fcst_grid.squeeze
插值 xarray中对scipy的插值函数进行了进一步的封装,可以让我们方便的调用。 只需要对DataArray,DataSet使用interp()函数就可以实现插值了,就像索引一样简单。...下面是官方给出的例子,DataArray的时间维度总共有四个值[0,1,2,3]。 da.sel(time=3),索引时间维的值为3(12行)。...da.interp(time=2.5),将时间维原本不存在的2.5插值了出来(22行)。...space (space) float64 0.1 0.2 0.3 time float64 2.5 数据掩膜 日常数据处理中经常要用到掩盖陆地或者海洋数据,一种方法就是在画图的时候最后添加地理信息...对任意的DataArray或者Dataset创建一个新的坐标,将海陆数据附给他。 根据海陆分布数据中海洋或者陆地的值来提取掩膜数据。
Scene既可以降低用户的使用门槛,又可以为底层的函数提供接口。...一个单独的Scene对象代表了一块单独的区域(通常是在某个连续时间段内)。...Satpy针对数据的低级容器是xarray.DataArray,在Satpy里称为Datasets。...更多信息参考xarray.DataArray的说明。...Reader就是在这种情形下,为用户提供一个固定的读取界面,同时也能让用户灵活地添加新的文件格式。
今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。...索引核心方法 在xarray的官方文档中给出了如下几种索引方式 索引演示 对如下数据进行索引演示:名为ds的DataSet,名为temp的DataArray,数据链接在文末。...根据位置索引 位置索引是最直接也是最简单的索引方式,但是位置索引只对DataArray有效,对DataSet无效。下面用两种不同方法获取相同的值。 1....通过维度的名字就可以不必按照指定的维度顺序对数据进行切片了。...,该函数主要用来创建地图相关的信息,后面画图的时候可以随时调用。
DataArray.encoding 属性可以查看解码信息: ds_disk['y'].encoding 注意:除了索引外,管理变量的所有操作都会移除编码信息。..._FillValue:当保存 xarray 对象到文件时,xarray 变量中的 Nan 会映射为此属性包含的值。这在转换具有缺省值的浮点数为整数时就显得非常重要了。...时间单位 'units' 和 ‘calendar’ 属性控制 xarray 如何将 datetime64 和 timedelta64 数组序列化为数值数组。'...默认情况下,xarray 使用 'proleptic_gregorian' 作为日历,两个值之间的最小时间差作为单位。第一个时间值作为标准时间。..../*.nc') 此函数会自动合并并连接多个文件为一个 xarray 数据集。
xarray专题再次开讲,错过第一部分的可以先去补个课从xarray走向netCDF处理(一):数据结构及数据读取。...今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。 索引核心方法 在xarray的官方文档中给出了如下几种索引方式 ?...索引演示 对如下数据进行索引演示:名为ds的DataSet,名为temp的DataArray,数据链接在文末。...通过维度的名字就可以不必按照指定的维度顺序对数据进行切片了。...,该函数主要用来创建地图相关的信息,后面画图的时候可以随时调用。
领取专属 10元无门槛券
手把手带您无忧上云