Скрыть контурные линии на pyplot.contourf, чтобы получить только заливки

У меня есть любимый проект по созданию изображений карт, где я рисую дороги и другие вещи поверх контурного участка рельефа местности. для планирования маршрутов на горных велосипедах (в прошлом я делал несколько векторных рисунков вручную, и они отлично подходят для визуализации).

В настоящее время я загружаю цифровую модель рельефа в формате GeoTIFF отсюда: http://www.ecologia.ufrgs.br/labgeo/arquivos/downloads/dados/SRTM/geotiff/rs.rar

, а затем создайте график с помощью функции GDAL и Matplotlib contourf :

from osgeo import gdal
import matplotlib
import matplotlib.pyplot as plt
from pylab import cm
import numpy

f = 'rs.tif'

elev = gdal.Open(f)

a = elev.GetRasterBand(1).ReadAsArray()

w = elev.RasterXSize
h = elev.RasterYSize
print w, h

altura  = (0.35, 0.42)
largura = (0.70, 0.82)

a = a[int(h*altura[0]):int(h*altura[1]),
      int(w*largura[0]):int(w*largura[1])]


cont = plt.contourf(a, origin='upper', cmap=cm.gist_earth, levels=numpy.arange(0,1000,20))
plt.title('Altitudes - max: %d m; min: %d m' % (numpy.amax(a), numpy.amin(a)))
plt.show()

Что дает:

enter image description here

Проблема в том, что контурные линии являются «белыми» и создают некоторое визуальное загрязнение, которое является нежелательно, так как я хочу построить дороги и реки позже.

Итак, я пытаюсь изменить способ contourf создания этих более светлых линий либо с помощью настройки параметров, либо с помощью хака (изменения исходного кода), аналогично предложенному здесь:

Как сделать отформатируйте контурные линии из Matplotlib

Кроме того, если кто-нибудь знает, как сгенерировать такую ​​карту более элегантным способом, используя другие библиотеки, я был бы очень признателен за совет!

Спасибо за чтение.

19
задан Community 23 May 2017 в 12:26
поделиться