netcdf.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:earthio 作者: ContinuumIO 项目源码 文件源码
def load_netcdf_array(datafile, meta, layer_specs=None):
    '''
    Loads metadata for NetCDF

    Parameters:
        :datafile: str: Path on disk to NetCDF file
        :meta: dict: netcdf metadata object
        :variables: dict<str:str>, list<str>: list of variables to load

    Returns:
        :new_es: xr.Dataset
    '''
    logger.debug('load_netcdf_array: {}'.format(datafile))
    ds = xr.open_dataset(datafile)
    if layer_specs:
        data = []
        if isinstance(layer_specs, dict):
            data = { k: ds[getattr(v, 'name', v)] for k, v in layer_specs.items() }
            layer_spec = tuple(layer_specs.values())[0]
        if isinstance(layer_specs, (list, tuple)):
            data = {getattr(v, 'name', v): ds[getattr(v, 'name', v)]
                    for v in layer_specs }
            layer_spec = layer_specs[0]
        data = OrderedDict(data)
    else:
        data = OrderedDict([(v, ds[v]) for v in meta['variables']])
        layer_spec = None
    geo_transform = take_geo_transform_from_meta(layer_spec=layer_spec,
                                                 required=True,
                                                 **meta)
    for b, sub_dataset_name in zip(meta['layer_meta'], data):
        b['geo_transform'] = meta['geo_transform'] = geo_transform
        b['sub_dataset_name'] = sub_dataset_name
    new_es = xr.Dataset(data,
                    coords=_normalize_coords(ds),
                    attrs=meta)
    return new_es
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号