我的问题是,我想在Python中使用Xarray-library的简单功能,但是在汇总数据的情况下,我遇到了时间维的问题。我已经打开了一个数据集,该数据集包含2013年的每日数据:datset=xr.open_dataset(filein).文件的内容是:Dimensions:(bnds:2,rlat:228,rlon:234,time:365)Coordinates:*rlon(rlon)float64-28.24-28.02-27.8-27.58-27.36-27.14...*rlat(rlat)float64-23.52-23.3-23.08-22.86-22.64-22.42...*t
数据结构DataArrayDataArray是xarray对带标签的多维数组的实现。它有几个关键属性:values:保存数组值的numpy.ndarray或类似numpy的数组dims:每个轴的尺寸名称(例如,(’x‘,’y‘,’z'))coords:一个类似dict的数组(坐标)容器,用来标记每个点(例如,一维数组的数字、日期对象或字符串)attrs:保存任意元数据(属性)的dictCreatingaDataArrayDataArray构造函数采用:数据:值的多维数组(例如,numpyndarray、类似numpy的数组、Series、DataFrame或pandas。面板)坐标表:坐标表或
目录一、数据结构1.DataArray(1)DataArray的创建(2)DataArray的属性及常用方法2.DataSet(1)DataSet的创建(2)DataSet的属性和常用方法二、数据的读取1.读取nc文件2.读取grib文件3.读取多个文件并合并三、数据的索引1.通过位置索引2.通过名字索引四、数据的坐标系统1.修改坐标2.增加/删除坐标五、数据统计与计算1.基础运算2.降维3.分组与聚合4.滑窗5.插值六、高维数据可视化1.时间序列可视化2.空间数据可视化3.多子图七、数据的掩膜1.数值掩膜2.空间位置掩膜一、数据结构1.DataArray(1)DataArray的创建impo
我需要向DataArray添加一个维度,填充新维度中的值。这是原始数组。a_size=10a_coords=np.linspace(0,1,a_size)b_size=5b_coords=np.linspace(0,1,b_size)#original1-dimensionalarrayx=xr.DataArray(np.random.random(a_size),coords=[('a',acoords)])我想我可以创建一个具有新维度的空DataArray并将现有数据复制进去。y=xr.DataArray(np.empty((b_size,a_size),coords=([('b'
我有一些数组带有dims'time','lat','lon'和一些只有'lat','lon'。我经常必须这样做,以便使用2d(经纬度)掩码来掩蔽时间相关数据:x.data[:,mask.data]=np.nan当然,计算会按预期广播。如果y是二维经纬度数据,它的值将广播到x中的所有时间坐标:z=x+y但索引并没有像我预期的那样广播。我希望能够做到这一点,但它引发了ValueError:Bufferhaswrongnumberofdimensions:x[mask]=np.nan最后,xr.where确实按预期在时间坐标上广播了掩码的值,但您不能以这种方式设置值。p>x_masked=x
最近在服务器上配置环境遇到了xarray读取nc数据的相关问题,折腾了一下午终于解决了,记录下来,希望帮助后来人。具体报错如下ValueError:didnotfindamatchinanyofxarray'scurrentlyinstalledIObackends['netcdf4','scipy','pydap','zarr'].Considerexplicitlyselectingoneoftheinstalledenginesviathe``engine``parameter,orinstallingadditionalIOdependencies,see:http://xarray.
我正在尝试创建一个cf兼容的netcdf文件。我可以获得大约98%cf与xarray兼容,但我遇到了一个问题。当我对正在创建的文件执行ncdump时,我看到以下内容:floatlon(lon);lon:_FillValue=NaNf;lon:long_name="Longitude";lon:standard_name="longitude";lon:short_name="lon";lon:units="degrees_east";lon:axis="X";lon:valid_min=-180.f;lon:valid_max=180.f;floatlat(lat);lat:_Fill
我需要对xarray数组中的值应用一个非常简单的“匹配语句”:如果值>0,则为2如果值==0,则为0当值为NaN时,使NaN这是我目前的解决方案。我正在使用NaN、.fillna和类型强制代替2d索引。valid=date_by_items.notnull()positive=date_by_items>0positive=positive*2result=positive.fillna(0.).where(valid)result这改变了这一点:In[20]:date_by_items=xr.DataArray(np.asarray((list(range(3))*10)).resh
pandaspivottablesdocumentation似乎建议使用多索引处理多于两个维度的数据:In[1]:importpandasaspdIn[2]:importnumpyasnpIn[3]:importpandas.util.testingastm;tm.N=3In[4]:defunpivot(frame):...:N,K=frame.shape...:data={'value':frame.values.ravel('F'),...:'variable':np.asarray(frame.columns).repeat(N),...:'date':np.tile(np.as
我有一个包含2006-2100年NetCDF文件的文件夹,以十年为单位(2011-2020、2021-2030等)。我想创建一个新的NetCDF文件,其中包含所有这些连接在一起的文件。到目前为止,我已经阅读了文件:ds=xarray.open_dataset('Path/to/file/20062010.nc')ds1=xarray.open_dataset('Path/to/file/20112020.nc')etc.然后像这样合并这些:dsmerged=xarray.merge([ds,ds1])这行得通,但很笨重,必须有一种更简单的方法来自动执行此过程,因为我将对许多装满文件的不