添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

转贴自Stack Overflow netcdf - Drop duplicate times in xarray - Stack Overflow

xarrray读取多维度的.nc文件时,发现会有重复的时间戳,这时候用

import numpy as np
import netCDF4 as nc4
import xarray as xr
# Create example NetCDF files
for t in range(2):
    nc    = nc4.Dataset('test{}.nc'.format(t), 'w')
    dim_t = nc.createDimension('time', None)
    var_t = nc.createVariable('time', 'f8', ('time',))
    var_s = nc.createVariable('var', 'f8', ('time',))
    var_t.setncattr('units', 'hours since 2001-01-01 00:00:00')
    var_t[:] = t*5+np.arange(6)
    var_s[:] = t*5+np.arange(6)+t
    nc.close()
# Read with xarray
f = xr.open_mfdataset(['test0.nc', 'test1.nc'])
array(['2001-01-01T00:00:00.000000000', '2001-01-01T01:00:00.000000000',
       '2001-01-01T02:00:00.000000000', '2001-01-01T03:00:00.000000000',
       '2001-01-01T04:00:00.000000000', '2001-01-01T05:00:00.000000000',
       '2001-01-01T05:00:00.000000000', '2001-01-01T06:00:00.000000000',
       '2001-01-01T07:00:00.000000000', '2001-01-01T08:00:00.000000000',
       '2001-01-01T09:00:00.000000000', '2001-01-01T10:00:00.000000000'], dtype='datetime64[ns]')
In [7]: _, index = np.unique(f['time'], return_index=True)
In [8]: index
Out[8]: array([ 0,  1,  2,  3,  4,  5,  7,  8,  9, 10, 11])
In [9]: f.isel(time=index)
Out[9]: 
<xarray.Dataset>
Dimensions:  (time: 11)
Coordinates:
  * time     (time) datetime64[ns] 2001-01-01 2001-01-01T01:00:00 ...
Data variables:
   var      (time) float64 dask.array<shape=(11,), chunksize=(6,)>
xarray -simlab:用于计算机模型仿真的 xarray 扩展 xarray -simlab是一个Python库,它提供了用于以模块化方式构建计算模型的通用框架,还提供了用于使用 xarray 的Dataset结构设置和运行仿真的扩展。 它是为快速,交互式和探索性建模而设计的。 xarray -simlab与PyData生态系统的其他库(例如和 )很好地集成在一起。 下面显示的Conway的“人生游戏”示例改编自Jake VanderPlas的这篇。 通过编写紧凑的Python类来创建新的模型组件,即非常类似于 : import numpy as np import xsimlab as xs @ xs . process class GameOfLife : world = xs . variable ( dims = ( 'x' , 'y' ), in
使用python 3.7安装有效的conda安装(请参阅)。 如果已经安装了conda,请确保已安装conda v4.8.4 +。 如果不是,请使用conda update conda从旧版本进行conda update conda 。 如果要将xb与DeepSS一起使用,请按照DeepSS的。 还包含有关使用GUI注释音频记录的说明。 图形用户界面 与GUI一起使用: conda env create -f https://raw.githubusercontent.com/janclemenslab/ xarray -behave/master/env/xb_gui.yml -n xb 可以通过激活新环境conda activate xb ,然后在终端 键入xb来启动GUI。 有关用法/参数/键,请参见xb --help 。 GUI使用记录。 非图形用户界面 如果您不想使
StackSTAC 将项目列表转换为4D DataArray(: time, band, y, x ),包括重新投影到公共网格。 该数组是一个懒惰的,因此可以在本地或并行加载和处理数据,而只需调用 compute() 。 有关更多信息和示例,请。 import stackstac import satsearch stac_items = satsearch . Search ( url = "https://earth-search.aws.element84.com/v0" , intersects = dict ( type = "Point" , coordinates = [ - 105.78 , 35.79 ]), collections = [ "sentinel-s2-l2a-cogs" ], datetime = "2020-04-
xr_data为输入的 xarray 数组,year为输入年份,如 1979 或 1980 等等,返回 xarray 数组 主要调用了pandas进行处理 def delet_a_var(xr_data,year): #删除选 年的 时间 并返回 xarray 对象 xr_return_data=xr_data.sel(time=(xr_data['time.year']==year)).to_dataframe().reset_index().drop('time',axis=1).se
1、读取grib2 ds = xr.open_dataset('xxx.grib2', engine='cfgrib', backend_kwargs={'filter_by_keys':{'typeOfLevel': 'isobaricInhPa'}}) isobaricInhPa 气压坐标系、垂直坐标系,一般是多层高空数据 surface是地面数据 读取会生成.idx文件,读取报错时记得删除.idx文件 xarray 的实现在./lib/ xarray .c xarray 的解释如下: The XArray is an abstract data type which behaves like a very large array of pointers. It meets many of the same needs as a hash or a conventional resizable a...
待办事项:添加更多内容 TensorDB诞生于处理并存储多个 时间 序列矩阵的必要性,这些 时间 序列矩阵之间存在某种关系(通常是一些数学公式),并且每天都需要进行一组转换,因此考虑到这一问题,我决定创建一个支持DB和DBMS的数据库。使用一组预定义的方法或公式以及相同的 Xarray 语法创建N维数组(张量)。 为什么要使用TensorDB 张量的定义是高度个性化和简单的。 使用 Xarray 来读取张量,这是一个非常受支持的库(语法几乎等于pandas)。 由于使用Zarr(将来会有更多格式),因此可以实现快速读写。 使用最常用的云存储系统S3之一的简单高效的备份系统(将来会更多) 从公式创建新张量很简单。
我期待使用自定义绘图功能。 在本月晚些时候给大家。 drpy.core.GPMDPR(): 此类旨在从NASA的全球降水测量任务双频降水雷达(GPM-DPR) 读取hdf5文件到 xarray 数据集 。 drpy.core.APR(): 此类旨在用于从NASA的机载降水雷达(主要在OLYMPEX 开发) 读取hdf5文件,因此,如果您使用其他活动时要当心,则某些数据集名称可能会有所不同。 创建此程序包的原因不是重新发明轮子(即h5py可以正常工作),而是允许用户访问 xarray 的有用功能。 具体来说,当前支持的数据文件是2级DPR文件(2A.DPR *)。 拥有帐户后,您可以从这里免费下载它们:ftp://arthurhou.pps.eosdis.nasa.gov dataset = xr . open_dataset ( "tiledb_array_uri" , backend_kwargs = { "key" : key , "timestamp" : timestamp }, engine = "tiledb" 图块数据库 TileDB- xarray 需要当前的 xarray 开发分支。 要安装TileDB- xarray ,请克隆此存储库,然后从克隆的存储库内部运行以下命令: pip install . 要启用带有 xarray 的Dask并使用'parallel'附加功能: pip install ' .[parallel] ' Dimensions: (time: 365, lat: 180, lon: 360) Coordinates: * lon (lon) float32 0.0 1.0 2.0 3.0 ... 356.0 357.0 358.0 359.0 * lat (lat) float32 -89.0 -88.0 -87.0 -86.0 ... 86.0 87.0 88.0 89.0 * time (time) datetime64[ns] 2019-01-01 2019-01-02 ... 2019-12-31 Data variables: data_var (time, lat, lon) float32 ... 在 xarray ,可以通过 `sel()` 函数选择数据集的子集,包括选择 时间 范围。例如,选择 2019 年 1 月 1 日至 2019 年 1 月 31 日的数据: ```python subset = ds.sel(time=slice('2019-01-01', '2019-01-31')) 其 ,`slice()` 函数用于指定 时间 范围,`time` 表示选择的是 时间 维度。`subset` 就是选择后的子集,可以进行后续的数据分析和处理。