Сохранение переменной netCDF4 в качестве собственного файла netCDF4

#netcdf #python-xarray

Вопрос:

Я использую очень большой файл карты netcdf на python и хочу «вытащить» и сохранить в нем одну переменную (остальное мне не нужно). Исходный файл слишком велик, чтобы открывать его в одиночку, я получаю ошибку «Ошибка значения: массив слишком велик; arr.size * arr.dtype.itemsize больше максимально возможного размера». должен сделать это, потому что в противном случае файл слишком велик для использования в моей системе.

Я использовал:

ds2= netCDF4.Набор данных(«2020_original_Map.1.1.nc»).переменные[‘lccs_class’]

Это дает мне правильные данные в размере, который я могу прочитать, но тогда ds2 <класс ‘netCDF4._netCDF4.Переменная’>. Я перепробовал все обычные способы сохранить это как netcdf, но ни один из них не работает. Кто-нибудь знает, как я сохраняю ds2 как собственный файл nc или другой способ вытащить «класс llcs» и сохранить его отдельно? Как я могу создать новый файл nc и передать в него эту переменную?

Большое спасибо!

Ответ №1:

Используя xarray , вы можете писать :

 import xarray as xr

xr.open_dataset("2020_original_Map.1.1.nc")[['lccs_class']].to_netcdf('outfile.nc')
 

Комментарии:

1. К сожалению, исходный файл слишком велик. Я получаю «Ошибка значения: массив слишком большой; arr.size * arr.dtype.itemsize больше максимально возможного размера».