Miałem ten sam problem kilka lat temu, a potem stworzyłem własny program Imhof, używając Pythona i liczb. Sztuczka polega na wybraniu zakresu wysokości i zastosowaniu liniowej palety kolorów. Na koniec musisz połączyć różne wyniki. To jest fragment mojego kodu (bardzo uproszczony)
......
abajos = nrange(dtm, 0,500)
amedias = nrange(dtm, 499, 4000)
amaximas = where (dtm > 4000, dtm, 0)
.......
abajos_i = convert.num2img(abajosbin)
abajos_ic = ImageOps.colorize(abajos_i, (147, 160, 150),(215, 210, 188))
amedias_i = convert.num2img(amediasbin)
amedias_ic = ImageOps.colorize(amedias_i, (215, 210, 188), (206, 187, 173))
amaximas_i = convert.num2img(amaximasbin)
amaximas_ic = ImageOps.colorize(amaximas_i, (206, 187, 173), (255,255,255))
ImageOps jest częścią pakietu Image Python.
Konwersja tiff (16b) na numeryczny była szalona przy użyciu pynumerycznych (myślę, że nie pamiętam zbyt dobrze).
Krotki takie jak (147, 160, 150), (215, 210, 188) oznaczają, od jakiego koloru do jakiego koloru chcę moją rampę kolorów, a te RGB odzwierciedlają paleete Imhof.
Rezultatem jest DTM z bardzo szczegółową paletą Imhof, o wiele więcej niż 256 kolorów.
Jeśli ktoś chce stworzyć wtyczkę Imhof, bardzo miło mi przekazać kod.