Сервер данных THREDDS (TDS) поставляется с сервером WMS, называемым ncWMS, в качестве плагина. Короткий ответ заключается в том, что я не думаю, что ncWMS работает для данных с измерением ансамбля, поскольку, как представляется, не существует способа запроса члена ансамбля через запрос getMap .
Если мое понимание неверно, и ncWMS будет поддерживать данные с измерением ансамбля, тогда вам нужно убедиться, что netCDF-java распознает измерение / переменную ансамбля в вашем примере набора данных (чего в настоящее время нет). Первая проблема заключается в том, что netCDF-java не видит переменную ансамбля в качестве координатной переменной. Чтобы это исправить, вы можете добавить атрибут _CoordinateAxisType
в переменную ensemble, чтобы сообщить netCDF-Java, что это переменная координат. Вы можете сделать это с помощью NcML, так что вам не нужно будет переписывать файл:
<?xml version="1.0" encoding="UTF-8"?>
<ncml:netcdf xmlns:ncml="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" location="/path_to_file/processed_LIS_HIST_201908010000.d01.nc">
<ncml:variable name="ensemble">
<ncml:attribute name="_CoordinateAxisType" value="Ensemble" />
</ncml:variable>
</ncml:netcdf>
Однако переменная ensemble в вашем примере набора данных имеет два измерения, [ensemble, time]
, которые netCDF-Java в настоящее время не обрабатывает. Удивительно (вероятно, из-за того, что измерение времени имеет размер 1
), netCDF-Java и NcML могут выполнить эту задачу еще раз с добавлением элемента logicalReduce
в NcML:
<?xml version="1.0" encoding="UTF-8"?>
<ncml:netcdf xmlns:ncml="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" location="/path_to_file/processed_LIS_HIST_201908010000.d01.nc">
<ncml:variable name="ensemble">
<ncml:attribute name="_CoordinateAxisType" value="Ensemble" />
<ncml:logicalReduce dimNames="time" />
</ncml:variable>
</ncml:netcdf>
На этом этапе netCDF-Java сможет полностью распознавать сетки в вашем примере набора данных.