python 从netcdf文件中读取数据点。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 从netcdf文件中读取数据点。相关的知识,希望对你有一定的参考价值。

import os
import xarray as xr
from pandas import concat, to_datetime
import copy

## extract datapoint from netcdf grid data
def datapointnc(lpath_input:list,lat:float,lon:float,lvars:list) -> 'df':
    """
    Extract datapoint from netcdf grid data.
    lpath_input -- list of input paths of netcdf files.
    lat -- latitude of point to be extracted.
    lon -- longitude of point to be extracted.
    lvars -- list of vars to be extracted.
    return -- requested data.
    """
    # loop of files
    for ifile,ipath_input in enumerate(lpath_input):
        # open data file
        ds = xr.open_dataset(ipath_input)
        # data selection
        dsloc = ds.sel(lon=lon,lat=lat,method='nearest')
        # loop of variables
        for ii,svar in enumerate(lvars):
            try:
                # variable data to df
                VAR = dsloc[svar].to_pandas().to_frame(name=svar)
                # concat
                if ii == 0: FILE = copy.deepcopy(VAR)
                else: FILE = concat([FILE,VAR],axis=1)
                # clean
                del(VAR)
            except:
                print('[warning] the variable "%s" is not available.'%svar)
        # append data
        if ifile==0: DATA = copy.deepcopy(FILE)
        else: DATA = DATA.append(FILE)
        # clean
        del(ds); del(dsloc); del(FILE)
    # format datetime index
    DATA.index = to_datetime(DATA.index)
    # return
    return DATA

以上是关于python 从netcdf文件中读取数据点。的主要内容,如果未能解决你的问题,请参考以下文章

从 netCDF 更快地读取时间序列?

从netCDF读取时间序列与python

netcdf4-python:随着从 netcdf 对象多次调用切片数据,内存增加

加快在python中读取非常大的netcdf文件

如何在 python 中读取 gzip netcdf 文件?

通过python从netCDF中提取数据