用于Matlab的Demcmap的Python等价物(高程+/-适当的色彩映射)

时间:2016-11-30 17:52:30

标签: python matlab matplotlib colormap topography

我正在寻找一种方法来获取matplotlib的高程相应色彩映射。

cmap'terrain'看起来很棒,但颜色缩放不是基于零(即如果比例为0-> 5000m,0-> 1000m范围可能是蓝色阴影,你假设是在海平面以下)

例如: enter image description here

Matlab函数等效于: demcmap

让matplotlib在零高度标记周围移动地形色彩图的绿色/棕色和蓝色的最佳方法是什么?

1 个答案:

答案 0 :(得分:6)

不幸的是,matplotlib没有提供Matlab demcmap的功能。 python basemap包中可能存在一些内置功能,我不知道。

因此,坚持使用matplotlib on-board选项,我们可以继承Normalize来构建以色彩映射中间点为中心的颜色标准化。这个技术可以在StackOverflow上的another question中找到并适应特定需求,即设置sealevel(可能最好选择为0)和colormap {{中的值这个sealevel应该对应的1}}(范围在0和1之间)。在地形图的情况下,似乎col_val对应于turqoise颜色,可能是一个不错的选择。
然后可以将Normalize实例作为0.22的参数给出。可以在图片的第一行中看到结果数字。

由于围绕海平面的平滑过渡,imshow周围的值以turqoise颜色显示,因此很难区分陆地和海洋。
因此,我们可以稍微改变地形图并剪切这些颜色,以便更好地看到海岸线。这是由地图的combining two parts完成的,范围从0到0.17,从0.25到1,从而切掉了它的一部分。

0

enter image description here