Как сохранить gdal.ReprojectImage от игнорирования нулей? - PullRequest
0 голосов
/ 23 января 2019

Я использую gdal.ReprojectImage для перерисовки растра GRIB из конформного Ламберта в координаты долготы / широты, и некоторые части домена lon / lat (углы, более или менее) выходят за пределы входной сетки.Я хочу, чтобы у результата были значения без данных в этих областях.Вот как должен выглядеть результат: белый означает отсутствие областей данных, а светло-розовый - нулевое значение:

HRRR APCP 2019-01-22 12Z f03 (контур)

Это правильный результат, но он происходит внутри функции contourf, которая не работает для меня.Я не просто пытаюсь нарисовать картину.Мне нужны данные.Обратите внимание, что в этом случае у входного набора данных нет никаких значений без данных.

Если я определяю значение без данных, но не заполняю его растровым диапазоном явно перед вызовом ReprojectImage, как нулевые значения, так и выходв результате обнуляются области:

Код: dest_ds.GetRasterBand(1).SetNoDataValue(ndv) gdal.ReprojectImage(source_ds, dest_ds, source_ds.GetProjection(), dest_ds.GetProjection(), gdalconst.GRA_Bilinear)

HRRR APCP 2019-01-22 12Z f03 (без предварительного заполнения ndv)

Если я явно заполнил диапазон значениями без данных, добавив

Код: dest_ds.GetRasterBand(1).Fill(ndv)

перед вызовом gdal.ReprojectImage, allнули в исходной сетке выводятся на значения без данных.

HRRR APCP 2019-01-22 12Z f03 (предварительное заполнение ndv)

Похоже, что ReprojectImage, когда он сталкивается с интерполяционной окрестностью всех нулей, оставляет эти области выходной сетки в их значение по умолчанию.Как будто в исходном коде есть какая-то инструкция continue, создающая проблему.

Полагаю, я мог бы создать маску, перепроектировать ее и применить результат к перепроектированным данным, но есть ли лучшее решение?Я скучаю?

Использование python3-gdal 2.2.3 в Ubuntu Linux 18.04.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...