首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的Dataset 4.数据集到xarray数据集的转换

简单的Dataset 4.数据集到xarray数据集的转换
EN

Stack Overflow用户
提问于 2017-09-26 18:52:42
回答 1查看 3K关注 0票数 4

我知道如何手动将xarray 4.数据集转换为xarray DataArray。但是,我想知道是否有任何简单和优雅的方法,例如使用xarray后端来简单地将以下'netCDF4.Dataset‘对象转换为xarray DataArray对象:

代码语言:javascript
复制
<type 'netCDF4.Dataset'>
root group (NETCDF4 data model, file format HDF5):
    Originating_or_generating_Center: US National Weather Service, National Centres for Environmental Prediction (NCEP)
    Originating_or_generating_Subcenter: NCEP Ensemble Products
    GRIB_table_version: 2,1
    Type_of_generating_process: Ensemble forecast
    Analysis_or_forecast_generating_process_identifier_defined_by_originating_centre: Global Ensemble Forecast System (GEFS)
    Conventions: CF-1.6
    history: Read using CDM IOSP GribCollection v3
    featureType: GRID
    History: Translated to CF-1.0 Conventions by Netcdf-Java CDM (CFGridWriter2)
Original Dataset = /data/ldm/pub/native/grid/NCEP/GEFS/Global_1p0deg_Ensemble/member/GEFS_Global_1p0deg_Ensemble_20170926_0600.grib2.ncx3#LatLon_181X360-p5S-180p0E; Translation Date = 2017-09-26T17:50:23.259Z
    geospatial_lat_min: 0.0
    geospatial_lat_max: 90.0
    geospatial_lon_min: 0.0
    geospatial_lon_max: 359.0
    dimensions(sizes): time2(2), ens(21), isobaric1(12), lat(91), lon(360)
    variables(dimensions): float32 u-component_of_wind_isobaric_ens(time2,ens,isobaric1,lat,lon), float64 time2(time2), int32 ens(ens), float32 isobaric1(isobaric1), float32 lat(lat), float32 lon(lon), float32 v-component_of_wind_isobaric_ens(time2,ens,isobaric1,lat,lon)
    groups: 

我使用siphon.ncss实现了这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-26 20:47:40

xarray (0.10)的下一个版本支持这一功能,或者至少从xarray dataset获得xarray数据集,这正是您尝试使用它的原因:

代码语言:javascript
复制
import xarray as xr

nc = nc4.Dataset('filename.nc', mode='r')  # Or from siphon.ncss
dataset = xr.open_dataset(xr.backends.NetCDF4DataStore(nc))

或者使用siphon.ncss,这看起来像:

代码语言:javascript
复制
from datetime import datetime
from siphon.catalog import TDSCatalog
import xarray as xr

gfs_cat = TDSCatalog('http://thredds.ucar.edu/thredds/catalog'
                     '/grib/NCEP/GFS/Global_0p5deg/catalog.xml')
latest = gfs_cat.latest
ncss = latest.subset()
query = ncss.query().variables('Temperature_isobaric')
query.time(datetime.utcnow()).accept('netCDF4')
nc = ncss.get_data(query)
dataset = xr.open_dataset(xr.backends.NetCDF4DataStore(nc))

在发布之前,您可以从主服务器安装xarray。否则,唯一的其他解决方案就是手动完成所有操作。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46433812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档