【问题标题】:Extract Data from OpenDAP Dataset for multi dimensional variables从 OpenDAP 数据集中提取数据以获取多维变量
【发布时间】:2018-11-25 12:06:39
【问题描述】:

我正在创建一个从 ocean dataset 中提取数据的 API

我正在使用 netCDF4 python 模块来处理这些数据。 有一个多维变量 vozocrtx,输入参数为 time_counter、deptht、y、x。

根据文档,如果我想从数据集中提取这个特定变量的数据,我可以这样做

import netCDF4
url = 'http://navigator.oceansdata.ca/thredds/dodsC/giops/daily/201806/giops_2018061300_024.nc'
dataset = netCDF4.Dataset(url)
variable = dataset.variables['vozocrtx']
extracted_data = variable[0:1:1,0:50:1,0:10:1,0:10:1]

但是,我想要的是有一个包含提取和切片索引的变量,比如

data_indexes = 0:1:1,0:50:1,0:10:1,0:10:1
extracted_data = variable[data_indexes]

我想做的原因是创建一个通用函数,该函数将根据输入(开始、结束和步幅)* 不提取数据。尺寸。

我尝试了一些方法并阅读了文档,但找不到任何有用的信息。任何提示或方向将不胜感激。

【问题讨论】:

    标签: python python-3.x multidimensional-array netcdf4 opendap


    【解决方案1】:
    #Step 1 - create a list of all the slices
    
    list = []
    list.append(np.s_[0:1:1])
    list.append(np.s_[0:50:1])
    list.append(np.s_[0:10:1])
    list.append(np.s_[0:10:1])    
    
    #Step 2 - convert the list to a tuple
    tuple_slice = tuple(list)    
    
    #Step 3 - use the tuple as the index input to extract the data
    variable[tuple_slice]
    

    感谢How can I create a slice object for Numpy array?Store Numpy array index in variable 的问题,我找到了解决问题的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      相关资源
      最近更新 更多