интерпретация переменных измерения netcdf

Пытаюсь понять, разрешено ли это стандартами NetCDF. Для меня это не имеет значения, но, возможно, есть причина, по которой это не запрещено на уровне библиотеки. Ncdump:

netcdf tt {
dimensions:
    one = 2 ;
    two = 1 ;
variables:
    int64 one(two) ;
data:

 one = 1 ;
}

И код для создания этого файла на Python:

from  netCDF4 import Dataset
rr=Dataset('tt.nc','w')
rr.createDimension('one',2)
rr.createDimension('two',1)
var1=rr.createVariable('one','i8',('two'))
var1[:]=1
rr.close()

Обратите внимание на переменную с тем же именем, что и у измерения, но с другим размером, чем он сам ?!

Итак, два вопроса:

  1. это разрешено стандартом?

  2. если нет, следует ли ограничивать его библиотеками?


person kakk11    schedule 07.07.2015    source источник


Ответы (2)


Это действительно так, потому что имена атрибутов, имена измерений и имена переменных существуют в разных пространствах имен.

person Rob Latham    schedule 07.07.2015
comment
Спасибо, если пространства имен должны быть независимыми и вся интерпретация переменных зависит от пользователя, тогда все в порядке. Просто хотел убедиться. - person kakk11; 07.07.2015

Это действительно так, но, очевидно, приводит к путанице в коде и выводе и неприемлемо в профессиональном смысле. Однако обратите внимание, что одномерные массивы, которые имеют то же имя и размер, что и измерение, которому они назначены, называются «координатными переменными».

Например, вы часто будете видеть переменную с именем latitude, которая является 1D и имеет размерность latitude. ncks или ncdump должны показать (CRD) рядом с этим отображением переменных, указывающее, что оно действительно согласовано с массивом широт.

person N1B4    schedule 07.07.2015
comment
Спасибо. Я знаю принцип координатных переменных, просто хотел проверить, как это может пойти не так. Можете ли вы подтвердить, что ncdump показывает (CRD) рядом с переменной координаты, я не думаю, что видел это, и просто проверил с помощью моего простого тестового файла. На данный момент не могу проверить ncks. - person kakk11; 07.07.2015
comment
Вы правы, ncdump не раскрывает мне эту информацию, но ncks раскрывает. Иногда переменные координат обозначаются (CRD), а иногда, например, (Coordinate is lat). - person N1B4; 08.07.2015
comment
Спасибо, посмотрю ncks. - person kakk11; 08.07.2015