Для начала попробуйте на время забыть про физический смысл ваших данных, про все высоты и про 3D вообще. Дальше у вас имеется просто некая функция
z = f(x, y)
от двух аргументов, заданная таблицей значений в некоторых точках (ваши высоты). Вам нужно получить значения этой функции в других точках с меньшим шагом, то есть с большим разрешением по x и y. Это классическая задача 2D-интерполяции. Методов решения
масса. Классикой считаются
Бикубическая интерполяция и
Фильтр Ланцоша.
Что касается готовых решений, то, например, в scipy есть
соответствующие инструменты.