繁体   English   中英

通过变量选择netCDF文件中的数据

[英]Select data in netCDF file by variable

我试图基于一个变量从netCDF文件中提取天气数据。 .nc文件包含14个变量和2维。 我想提取与第一个变量的值相关的14个变量的所有数据。 数据来自荷兰计量学院,可以在此处找到。

使用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'])

我想提取特定“站”的数据并将其放在pandas DataFrame中以执行一些计算。

我尝试过类似的方法来提取数据,但是我知道这不是netCDF文件的工作方式,但我不知道如何工作。

df = dataset['344',:,:,:,:,:,:,:,:,0,0,0,0,0]

摘要问题:有没有一种方法可以提取特定站点的数据并将其放入熊猫DataFrame中?

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',:]

是的,有办法。 使用xarray进行调查。 它可以轻松处理更高维度的数据。 一维过滤非常简单,然后有一个.to_dataframe()方法将整个数据集放入具有多索引的pandas数据帧中。

在这里查看将xarray与天气数据一起使用的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM