我有一个宠物项目来创建地图图像,我在地形高程的等高线图上绘制道路和其他东西。它旨在规划山地自行车路线(过去我手工制作了一些矢量图,它们非常适合可视化)。
目前,我从这里下载 GeoTIFF 中的数字高程模型:http: //www.ecologia.ufrgs.br/labgeo/arquivos/downloads/dados/SRTM/geotiff/rs.rar
然后使用 GDAL 和 Matplotlibcontourf
函数创建绘图:
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
创建这些较轻线的方式,或者通过参数设置,或者通过 hack(更改源代码),类似于这里提出的方法:
另外,如果有人知道如何使用其他库以更优雅的方式生成这样的地图,我将非常感谢您的提示!
谢谢阅读。