У меня есть большая папка netCDF (.nc) файлов с одинаковым именем. Файлы данных содержат переменные времени, долготы, широты и ежемесячных осадков. Цель состоит в том, чтобы получать среднемесячные осадки за X лет в течение каждого месяца. Поэтому, в конце концов, у меня было бы 12 значений, представляющих среднемесячные осадки за X лет в течение каждого лата и долго. Каждый файл является одним и тем же местом на протяжении многих лет. Каждый файл начинается с тем же именем, и заканчивается в «date.sub.nc», например:Сочетание большого количества файлов netCDF
'data1.somthing.somthing1.avg_2d_Ind_Nx.200109.SUB.nc'
'data1.somthing.somthing1.avg_2d_Ind_Nx.200509.SUB.nc'
'data2.somthing.somthing1.avg_2d_Ind_Nx.201104.SUB.nc'
'data2.somthing.somthing1.avg_2d_Ind_Nx.201004.SUB.nc'
'data2.somthing.somthing1.avg_2d_Ind_Nx.201003.SUB.nc'
'data2.somthing.somthing1.avg_2d_Ind_Nx.201103.SUB.nc'
'data1.somthing.somthing1.avg_2d_Ind_Nx.201203.SUB.nc'
концовка YearMonth.SUB.nc То, что я до сих пор:
array=[]
f = nc.MFDataset('data*.nc')
precp = f.variables['prectot']
time = f.variables['time']
array = f.variables['time','longitude','latitude','prectot']
Я получаю KeyError: ('время', 'долгота', 'широта', 'prectot'). Есть ли способ объединить все эти данные, чтобы я мог манипулировать им?
Что вы подразумеваете под «объединением» данных? Это уже все в одном объекте MFDataset благодаря вашей строке 'f = nc.MFDataset ... '. Другими словами, массив 'f.variables ['prectot'] [:]' уже представляет собой трехмерный массив с размерами (время, широта и долгота), содержащие значения «prectot» для каждого (время, широта, долгота) , –
Кроме того, re: ваш KeyError, 'f.variables' является Dict, и для любого Dict вы можете получить доступ только к одному из своих значений за раз, то есть' f.variables ['time'] 'или' f.variables [ 'longitude'] ', а не' f.variables ['time', 'longitude'] '. Но, как сказал мой предыдущий комментарий, все, что вам нужно, это 'f.variables ['prectot']' (при условии, что я правильно понимаю вас). –
Вижу, я не знал, что на самом деле сделал MFDataset. Я пробовал функцию glob.glob, но только что составил список всех моих файлов. Благодарю. – BBHuggin