Я пытался прочитать мой файл nc. В нем есть 3 переменные:
zonalWind (высота, долгота, широта)
meridionalWind (высота, долгота, широта)
вертикальная скорость (высота_2, долгота, широта)
Ниже мой код, читающий массивы:
vtkNetCDFCFReader *reader = vtkNetCDFCFReader::New();
reader->SetFileName(fileName);
reader->SetOutputTypeToStructured();
reader->UpdateMetaData();
reader->Update();
reader->Print(std::cout);
reader->SetVariableArrayStatus("verticalVelocity", 1);
reader->SetVariableArrayStatus("zonalWind", 1);
reader->SetVariableArrayStatus("meridionalWind", 1);
Но затем я получил следующую ошибку в termianl, пропустив массив verticalVelocity из-за проблемы с размерами:
vtkNetCDFCFReader (0x7fb1f1517350): Variable verticalVelocity dimensions (height_2 lat lon) are different than the other variable dimensions (height lat lon). Skipping
Есть ли какой-нибудь метод, который я могу прочитать во всех 3 переменных данных вместо «пропуска» и выполнить некоторую обработку после этого?
ТИА
Нет. Вы должны создать 2 экземпляра vtkNetCDFCFReader и читать переменные с одинаковыми измерениями для каждого.
Если вы хотите извлечь только часть более крупной сетки и использовать эти значения в меньшей сетке, то присоедините фильтр vtkExtractGrid к одному или обоим выходным данным средства чтения, чтобы получить наборы данных одинакового размера. Наконец, запустите фильтр vtkMergeArrays для результатов, чтобы сгенерировать один набор данных со всеми значениями массива.
Других решений пока нет …