有没有一种在DataArray.rolling窗口上计算分位数的xArray方法?列出的可用方法包括mean或median,但不包括分位数/百分位数。我想知道,即使没有直接的方法,也能以某种方式做到这一点。 目前,我正在将xArray数据本地迁移到pandas.DataFrame,在那里我将应用rolling().quantile()序列。在此之后,我将获取新DataFrame的值并从中构建一个xArray.DataArray。可重现的代码: import xarray as xr
import pandas as pd
import numpy as np
times = np.aran
我有一个netCDF文件,其中的time维度包含2年内按小时计算的数据。我想要取平均值,以获得每个月每天每小时的每小时平均值。我试过这个:
import xarray as xr
ds = xr.open_mfdataset('ecmwf_usa_2015.nc')
ds.groupby(['time.month', 'time.hour']).mean('time')
但是我得到了这个错误:
*** TypeError: `group` must be an xarray.DataArray or the name of
我们知道xarray通过标签来处理数据。也就是说,将两个数据集相加或相乘是在相同的维度和坐标下进行的。然而,我有一个关于xarray乘法运算后结果的形状的问题。
代码如下所示:
import xarray as xr
import numpy as np
a = xr.DataArray([0,1,2,3],dims=['x'],
coords={'x':[10,20,30,40]})
b = xr.DataArray(np.array([[0,1,2,3],[0,100,200,300]]),
我有一个数据数组,其中包含了全球各地lat、lon点数的值列表。我想为特定的城市提供一个lat,lon值的列表,并应用在那些lat,lon点上的值来创建一个数据。为了实现这一点,我执行下面的代码。
df1=pd.read_csv('E:/Riskpulse_HD/TroPYcal/GenscapePortList.csv')
lats=df1['Latitude']
lons=df1['Longitude']
count_city=[]
for idx,(lon,lat) in enumerate(zip(lons,lats)):
v
我有大约75张二维栅格地图(tifs),高度完全相同,每一个都是在不同的时间获得的。我想用xarray将它们堆叠起来。我可以在每个光栅(见下文),但目前,没有时间,因为我需要从每个文件的标题提取时间(2017-02-15T06:13:38Z在下面的文件)。
da = xr.open_rasterio('tifs/DTSLOS_20170122_20190828_D79H_2017-02-15T06:13:38Z.tif')
da
<xarray.DataArray (y: 12284, x: 17633)>
[216603772 values with dtype=
我有一个4d达斯克阵列,其尺寸对应于(时间、深度、纬度、经度)。这是一个海洋数据集。
# Create xarray dataset object for ocean temperature (time x depth x lat x lon)
DS=xr.open_mfdataset([outdir + s for s in flist],combine='by_coords',chunks={'xi_rho':25,'eta_rho':25})
DS.temp
输出:
xarray.DataArray
'temp' (oc
我在xarray数据集中有一些复杂的数据(numpy dtype complex128),我想用to_netcdf保存这些数据。我得到以下错误:
TypeError: illegal primitive data type, must be one of dict_keys(['S1', 'i1', 'u1', 'i2', 'u2', 'i4', 'u4', 'i8', 'u8', 'f4', 'f8']), got c
我只是不理解xarray中的这种行为,我可能只是不理解广播xarray所做的。我做了一个人为的例子来说明这个问题。
import numpy as np
import xarray as xr
# These are coordinates
years = xr.DataArray(np.arange(2018, 2021), dims="year")
ids = xr.DataArray(np.arange(1, 4), dims="id")
# These are data with different coordinates
year_data = x