将参数添加到 Python Intake LocalCatalogEntry
Add parameters to Python Intake LocalCatalogEntry
我正在尝试为 Python 的 Intake 包构建一个 LocalCatalogEntry
(作为更大目录的一部分,它可能有多个条目,其中一个我正在尝试创建这里)。但是,我似乎无法弄清楚如何向它提供用户参数来描述组变量名称(从 hdf5 文件中)而不会出错。
from intake.catalog.local import LocalCatalogEntry
import intake_xarray
LocalCatalogEntry(name='is2_local',
description= '',
driver=intake_xarray.netcdf.NetCDFSource,
args= {'urlpath': '/full/path/to/data/file/ATL06-20181214041627-Sample.h5',
'path_as_pattern': 'ATL{product:2}-{datetime:%Y%m%d%H%M%S}-Sample.h5',
'xarray_kwargs': {'engine': 'h5netcdf',
'group': '/{{laser}}/land_ice_segments'}},
parameters= [{'name': 'laser',
'description': 'Laser Beam Number',
'type': 'str',
'default': 'gt1l',
'allowed': ['gt1l', 'gt1r', 'gt2l', 'gt2r', 'gt3l', 'gt3r']}]
)
结果为 AttributeError: 'dict' object has no attribute 'describe'
。我已经尝试了各种排列并通过源 code/docs 进行了挖掘,但无法弄清楚我应该如何输入此信息才能使其成为有效输入。我是不是输入错了用户参数?
你很接近!像这样直接实例化时,需要显式创建UserParameter,不能只传一个dict:
from intake.catalog.local import LocalCatalogEntry, UserParameter
import intake_xarray
LocalCatalogEntry(
name='is2_local',
description= '',
driver=intake_xarray.netcdf.NetCDFSource,
args= {'urlpath': '/full/path/to/data/file/ATL06-20181214041627-Sample.h5',
'path_as_pattern': 'ATL{product:2}-{datetime:%Y%m%d%H%M%S}-Sample.h5',
'xarray_kwargs': {'engine': 'h5netcdf',
'group': '/{{laser}}/land_ice_segments'}},
parameters= [UserParameter(**{
'name': 'laser',
'description': 'Laser Beam Number',
'type': 'str',
'default': 'gt1l',
'allowed': ['gt1l', 'gt1r', 'gt2l', 'gt2r', 'gt3l', 'gt3r']})]
)
我正在尝试为 Python 的 Intake 包构建一个 LocalCatalogEntry
(作为更大目录的一部分,它可能有多个条目,其中一个我正在尝试创建这里)。但是,我似乎无法弄清楚如何向它提供用户参数来描述组变量名称(从 hdf5 文件中)而不会出错。
from intake.catalog.local import LocalCatalogEntry
import intake_xarray
LocalCatalogEntry(name='is2_local',
description= '',
driver=intake_xarray.netcdf.NetCDFSource,
args= {'urlpath': '/full/path/to/data/file/ATL06-20181214041627-Sample.h5',
'path_as_pattern': 'ATL{product:2}-{datetime:%Y%m%d%H%M%S}-Sample.h5',
'xarray_kwargs': {'engine': 'h5netcdf',
'group': '/{{laser}}/land_ice_segments'}},
parameters= [{'name': 'laser',
'description': 'Laser Beam Number',
'type': 'str',
'default': 'gt1l',
'allowed': ['gt1l', 'gt1r', 'gt2l', 'gt2r', 'gt3l', 'gt3r']}]
)
结果为 AttributeError: 'dict' object has no attribute 'describe'
。我已经尝试了各种排列并通过源 code/docs 进行了挖掘,但无法弄清楚我应该如何输入此信息才能使其成为有效输入。我是不是输入错了用户参数?
你很接近!像这样直接实例化时,需要显式创建UserParameter,不能只传一个dict:
from intake.catalog.local import LocalCatalogEntry, UserParameter
import intake_xarray
LocalCatalogEntry(
name='is2_local',
description= '',
driver=intake_xarray.netcdf.NetCDFSource,
args= {'urlpath': '/full/path/to/data/file/ATL06-20181214041627-Sample.h5',
'path_as_pattern': 'ATL{product:2}-{datetime:%Y%m%d%H%M%S}-Sample.h5',
'xarray_kwargs': {'engine': 'h5netcdf',
'group': '/{{laser}}/land_ice_segments'}},
parameters= [UserParameter(**{
'name': 'laser',
'description': 'Laser Beam Number',
'type': 'str',
'default': 'gt1l',
'allowed': ['gt1l', 'gt1r', 'gt2l', 'gt2r', 'gt3l', 'gt3r']})]
)