从netCDF读取数组,为什么我得到的大小为(1,1,n)

时间:2019-03-22 11:17:12

标签: size netcdf4

我正在尝试阅读,以后再从netcdf文件中绘制数据。我试图存储为变量的.nc文件中包含的某些数组被创建为大小(1,1,n)。打印它们时,我看到[[[数字,数字,...]]]。为什么创建这三个[[[?如何将这些变量读取为简单的(n,1)数组? 这是我的代码

import pandas as pd
import netCDF4 as nc
import matplotlib.pyplot as plt
from tkinter import filedialog
import numpy as np

file_path=filedialog.askopenfilename(title = "Select files", filetypes = (("all files","*.*"),("txt files","*.txt")))

file=nc.Dataset(file_path)
print(file.variables.keys()) # get all variable names

read_alt=file.variables['altitude'][:]
alt=np.array(read_alt)
read_b355=file.variables['backscatter'][:]
read_error_b355=file.variables['error_backscatter'][:]
b355=np.array(read_b355)
error_b355=np.array(read_error_b355)

变量alt很好,因为另外两个我有上述问题。

1 个答案:

答案 0 :(得分:0)

您的变量(高度,后向散射和error_backscatter)是否可能具有多个维?每当您加载此类数据时,netCDF库都会保留维数。

不过,我通常要做的是,通过挤压数组来删除不需要的尺寸:

read_alt = np.squeeze(file.variables['altitude'][:])
read_b355 = np.squeeze(file.variables['backscatter'][:]);
read_error_b355 = np.squeeze(file.variables['error_backscatter'][:]);