Python与MapNik 等高线渲染&抽稀

7.1. Mapnik概述

导出的图像不包含坐标信息吗?在.xml文件

Mapnik核心是用C++写的,但是通过Python Bindings也可以调用,通过编写Python脚本来实现应用

>>参考:基于mapnik做切片服务器的几点总结:https://www.cnblogs.com/naaoveGIS/p/10719879.html

7.1.1. Mapnik制图快速开始

>>> import mapnik
>>> m = mapnik.Map(400,200,"+proj=latlong +datum=WGS84")
>>> m.background = mapnik.Color('steelblue')
>>> mapnik.render_to_file(m,'xworld.png', 'png')
>>> from IPython.display import Image
>>> Image('xworld.png')

7.1.2. 创建样式

>>> s = mapnik.Style()
>>> r=mapnik.Rule()
>>> polygon_symbolizer = mapnik.PolygonSymbolizer()
>>> polygon_symbolizer.stroke = mapnik.Color('#0f0f0f')
>>> r.symbols.append(polygon_symbolizer)
>>> line_symbolizer = mapnik.LineSymbolizer()
>>> # line_symbolizer.stroke = mapnik.Color('rgb(50%,50%,50%)')
>>> r.symbols.append(line_symbolizer)
>>> s.rules.append(r)
>>> m.append_style('My Style',s)

7.1.3. 创建数据源

范围Extent:

如何在高程与颜色之间建立联系。。

高程例如:[-137,1087]

对应的颜色其实是没有这个范围的颜色的。。

如果硬是采用某一种配色进行渲染之后,反过来就找不到高程信息了,高程信息会丢失。。

arcgis矢量转栅格:https://jingyan.baidu.com/article/908080223a9f1bfd91c80f00.html

转成栅格后,不同的高程按照不同颜色显示,但是并没有看到圈圈。。

矢量可以设置五米高程值一个颜色。。。从-140到775

 但是栅格。。怎么设置一个值一个颜色

把像素变小10倍,每个cell大小为0.00027881144,图像范围3601x3601

导出

经过这一轮下来,又回到原点,只不过这一次的图像跟原来的DEM图像不一样了,

类似于每5米一个。。。实现DEM图像抽稀

前后对比

原文地址:https://www.cnblogs.com/2008nmj/p/14963790.html