Select netCDF 文件中的数据(按变量)
Select data in netCDF file by variable
我正在尝试根据变量从 netCDF 文件中提取天气数据。 .nc 文件包含 14 个变量和 2 个维度。我想提取与第一个变量的值相关的 14 个变量的所有数据。数据来自荷兰计量研究所,可以查到here.
使用 netCDF4 模块在 Python 中加载数据,如下所示:
import netCDF4 as nc
filename = r'path/file.nc'
dataset = nc.Dataset(filename)
印刷变量和尺寸:
dataset.variables.keys()
Out[67]: odict_keys(['station', 'time', 'lat', 'lon', 'DDVEC', 'FHVEC', 'TG', 'RH', 'UG', 'EV24', 'PG', 'iso_dataset', 'product', 'projection'])
dataset.dimensions.keys()
Out[68]: odict_keys(['station', 'time'])
我想提取特定 'station' 的数据并将其放入 pandas DataFrame 中以执行一些计算。
我尝试过类似的方法来提取数据,但我知道这不是 netCDF 文件的工作方式,但我不知道如何操作。
df = dataset['344',:,:,:,:,:,:,:,:,0,0,0,0,0]
问题总结:有没有办法把某个站的数据提取出来放到pandasDataFrame中?
解决方案
import pandas as pd
import xarray as xr
# Open netCDF file and convert to dataframe
open_netcdf = xr.open_dataset(filename)
dataset = open_netcdf.to_dataframe()
# Select data from a tuple index based on station number: 391
df = dataset.iloc[dataset.index.get_level_values(0) == '391',:]
我正在尝试根据变量从 netCDF 文件中提取天气数据。 .nc 文件包含 14 个变量和 2 个维度。我想提取与第一个变量的值相关的 14 个变量的所有数据。数据来自荷兰计量研究所,可以查到here.
使用 netCDF4 模块在 Python 中加载数据,如下所示:
import netCDF4 as nc
filename = r'path/file.nc'
dataset = nc.Dataset(filename)
印刷变量和尺寸:
dataset.variables.keys()
Out[67]: odict_keys(['station', 'time', 'lat', 'lon', 'DDVEC', 'FHVEC', 'TG', 'RH', 'UG', 'EV24', 'PG', 'iso_dataset', 'product', 'projection'])
dataset.dimensions.keys()
Out[68]: odict_keys(['station', 'time'])
我想提取特定 'station' 的数据并将其放入 pandas DataFrame 中以执行一些计算。
我尝试过类似的方法来提取数据,但我知道这不是 netCDF 文件的工作方式,但我不知道如何操作。
df = dataset['344',:,:,:,:,:,:,:,:,0,0,0,0,0]
问题总结:有没有办法把某个站的数据提取出来放到pandasDataFrame中?
解决方案
import pandas as pd
import xarray as xr
# Open netCDF file and convert to dataframe
open_netcdf = xr.open_dataset(filename)
dataset = open_netcdf.to_dataframe()
# Select data from a tuple index based on station number: 391
df = dataset.iloc[dataset.index.get_level_values(0) == '391',:]