Мне очень нравится NetCDF для непрерывных / массив данных (то есть растров). Плюсы для NetCDF:
- NetCDF описывает себя (т. Е. Определения данных доступны через заголовок файла), поэтому вам не нужно предоставлять вторичные файлы метаданных
- NetCDF4 позволяет хранить n-мерные данные (используя формат данных HDF5 на диске, что является преимуществом, так как это позволяет файлам настолько больших размеров, сколько может обрабатывать ваша ОС). Это обеспечивает разумное сжатие и быстрый доступ к данным. Обратите внимание, что NetCDF3 не поддерживает n-мерные данные и имеет ограничение размера файла примерно 2 ГБ в 32-разрядной системе.
- NetCDF - это открытый формат, поэтому доступ к данным, как правило, также не является проблемой через общие библиотеки. Например, в python достаточно просто из scipy прочитать часть данных:
from scipy.io import netcdf
f = netcdf.netcdf_file('source.nc')
print(nc.dimensions) #take a look at the dimensions of the data
print(nc.variables) #A dictionary containing all the variables
nc.variables["some_data"].dimensions #The dimensions this variable is in, e.g. lat, lon
out_array = nc.variables["some_data"].data
f.close() #and we're done
Единственный недостаток NetCDF4, который я вижу, - это не очень хорошая поддержка в стандартных ГИС-пакетах, таких как ArcGIS и QGIS (хотя я очень хотел бы, чтобы это исправили!).
РЕДАКТИРОВАТЬ Некоторые другие пакеты, которые поддерживают NetCDF
Некоторые стандартные языки программирования, которые поддерживают NetCDF (хотя, честно говоря, все, что может читать HDF, может читать NetCDF4):
Для пользователей по математике и статистике у вас есть:
Конкретно в ГИС:
- GDAL преобразует данные для вас
- Аналогично FME
- ArcGIS поддерживает NetCDF (хотя в моем опыте это не лучший уровень поддержки)
- Существует QGIS плагин в разработке
Если вы хотите быстро просмотреть файл NetCDF, я бы использовал кроссплатформенный Panoply от NASA. И если вы заинтересованы в большем, UCAR Unidata имеет список программного обеспечения .