чтение массивов из netCDF, почему я получаю размер (1,1, n) - PullRequest
2 голосов
/ 22 марта 2019

Я пытаюсь прочитать, а затем построить данные из файла 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 голосов
/ 22 марта 2019

Возможно ли, что ваши переменные - altitude, backscatter и 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'][:]);
...