#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
больше максимально возможного размера».