我有一个宠物项目来创建地图图像,在这里我绘制道路和其他东西在地形高程的等高线图上。它的目的是规划山地自行车路线(我过去曾经手工制作过一些矢量图,而且它们很适合可视化)。隐藏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()
:
问题是轮廓线是“白色”,并产生一些视觉污染,这是不受欢迎的,因为我想稍后再绘制道路和河流。
所以,我想修改的方式contourf
创建这些更轻的线路,或者通过参数设置,或通过黑客(更改源代码),类似于一个建议这里:
How to format contour lines from Matplotlib
而且,如果有人知道如何以更优雅的方式生成这样的地图,使用其他库,我会非常感激这个提示!
感谢您的阅读。
嗯,当然这是现在被接受的答案,因为它似乎有理由地并且不冒昧地解决了底层问题。时间!! – heltonbiker
感谢@heltonbiker更新它这种解决方案的优点是它不会增加文件大小并且不会降低图像质量。 – divenex
太棒了!我一直在等待这个,我希望在下次需要时我不会忘记检查我喜欢的帖子;) –