mapnik渲染raster tiff栅格图

Mapnik简介与安装 Mapnik is an open source toolkit for developing mapping applications. At the core is a C++ shared library providing algorithms and patterns for spatial data access and visualization. Mapnik is basically a collection of geographic objects like maps, layers 阅读详情

之前的文章写了怎么渲染shp格式的矢量地图,这里记录下怎么渲染栅格图tiff格式。

0.环境配置参考

1.mapnik的demo运行
2.python支持下的mapnik安装
3.几个shape格式、tiff格式地图免费下载网站
4.vc调用python接口操作mapnik
5.python操作多个图层的mapnik

1.需要的文件

1.shp格式1:50m全球海岸线
2.1:50m全球栅格图
注意
文件下载后解压缩的文件名为数字开头,并且有下划线,这些在python里做文件路径的时候跟在\后 ,容易形成转义字符,这里为了方便,改成Coastline.shp Coastline.tiff

2.python代码

import mapnik
#----------create map---------------------
m = mapnik.Map(10800,5400);

m.background = mapnik.Color('white');
#----------create layer 1-----------------
SHP_layer = mapnik.Layer('SHP');
#----------create layer 1 datasource------
SHP_layer.datasource = mapnik.Shapefile(file='C:\coastline\coastline.shp');
#----------get layer 1 style & rule------
SHP_style = mapnik.Style();
SHP_rule = mapnik.Rule();
#----------set layer 1 Polygon & Line color------
SHP_rule.symbols.append(mapnik.PolygonSymbolizer(mapnik.Color('#FFF5EE')));
SHP_rule.symbols.append(mapnik.LineSymbolizer(mapnik.Color('rgb(50%,50%,50%)'),0.1));
#----------set layer 1 style & rule------
SHP_style.rules.append(SHP_rule);
#----------append layer 1 style----------
m.append_style('SHP Style',SHP_style);
SHP_layer.styles.append('SHP Style');
#----------append layer1 to map----------
m.layers.append(SHP_layer);




#----------create layer 2-----------------
RASTER_layer = mapnik.Layer('RASTER');
#----------create layer 2 datasource------
RASTER_layer.datasource = mapnik.Gdal(file='C:\coastline\coastline.tif',band = 1);
RASTER_style = mapnik.Style();
RASTER_rule = mapnik.Rule();
RASTERsym = mapnik.RasterSymbolizer();
RASTERsym.colorizer = mapnik.RasterColorizer(mapnik.COLORIZER_DISCRETE  ,mapnik.Color("transparent"))

for value, color in [
                ( 20, "#7FFFD4"),           
                ( 30, "#76EEC6"),           
                ( 40, "#66CDAA"),
                ( 50, "#458B74"),               
                ( 60, "#DAA520"),           
                ( 70, "#EEDD82"),           
                ( 80, "#7FFFD4"),
                ( 90, "#76EEC6"),
                ( 100, "#66CDAA"),
                ( 110, "#458B74"),            
                ( 200, "transparent"),
        ]:
            RASTERsym.colorizer.add_stop(value, mapnik.Color(color))
RASTER_rule.symbols.append(RASTERsym);
RASTER_style.rules.append(RASTER_rule);
#----------append layer 1 style----------
m.append_style('RASTER Style',RASTER_style);
RASTER_layer.styles.append('RASTER Style');

#----------append layer 2 to map----------
m.layers.append(RASTER_layer);


m.zoom_all();

mapnik.render_to_file(m,"SHPandRASTER.png", 'png');

3.结果截图

原始tiff图
渲染后的png图

4.结果说明

这里可以看到图片的颜色与原版差别很大,这是因为不知道原版用的渲染color数组,实在没办法还原。这里提现个大意即可。

5.参考文档

1.RasterColorizer

高分辨率世界海岸线shape文件 世界海岸线矢量shape文件以及其他文件格式, 包括一些主要岛屿,高分辨率,可以使用相关软件进行删减等操作,免费下载使用。 立即下载

相关推荐

Mapnik简介 说明 Mapnik是一套gis引擎

简单介绍mapnik,并简单介绍Mapnik渲染地图和开发的流程步骤 其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。

Mapnik简要介绍

<br />Mapnik<br />一、Mapnik介绍<br />Mapnik 是一个开源的Python/C++地图渲染引擎,他的功能是把数据形式的地图,包含一些地理对象,如地图、层、数据源、特征和地理几何等,通过一个样式表的定义,渲染成位图格式,用来提供WMS服务。其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。该共享库支持多种操作系统,可以在多线程环境下很好的运行,主要面向一些提供GIS服务的Web应用开发。图一为使用mapnik渲染出来的街区图:<br /><br />图一<br

mmtxcp的专栏 1万+

mapnik-styles:此存储库包含用于 Mapnik 地图渲染引擎和 Open StreetMap 数据的自定义样式。 Mapnik 可用于创建静态地图或滑动地图的瓷砖。 这些样式需要具有 Open StreetMap 数据的 PostGIS 数据库才能呈现。 该 repo 附带一些免费的 shapefile,其中一些许可证不明确。 因此,回购是私有的

地图风格 此存储库包含用于 Mapnik 地图渲染引擎和 Open StreetMap 数据的自定义样式。 Mapnik 可用于创建静态地图或滑动地图的瓷砖。 这些样式需要具有 Open StreetMap 数据的 PostGIS 数据库才能呈现。 该 repo 附带一些免费的 shapefile,其中一些许可证不明确,以及一些默认的 J++ 服务器设置。 因此,回购是私有的。 ##Styles 每个样式都包含一个 OSM XML 文件,该文件可以引用patterns和symbols文件夹中的图像、 shapes文件夹中的 shapefile 以及 PostGIS 数据库中的表。 OSM明亮 这是我们对克隆,一个很棒的通用地图。 使用osm2pgsql填充名为gis的 PostGIS 数据库,您就可以开始使用了。 用 Nik4 试试: nik4.py -b 12.54 56.

从5个方面介绍Mapnik

原文发布时间:2014/8/13  9:46:47翻译:lkfree  原文地址: http://blog.safe.com/2014/04/mapnik-automation/Mapnik是一个免费的、开源的工具包,它采用了矢量和栅格空间数据,并可以将矢量和栅格数据转换为一幅美丽的影像。在FME 2014版本中, FME和Mapnik已经集成在一起用于创建MapnikRasterizer 。这种...

fmechina的博客 4525

全球海岸线SHP数据,精准漂亮

全球海岸线数据。格式为线SHP。

C++常见面试题总结

C++常见面试题总结

xu_fu_yong的专栏 8万+

基于 Mapnik 的地图服务器

目录一、简介二、安装 PostgreSQL 数据库和 PostGIS 扩展三、下载地图样式表和上传地图数据四、将地图数据导入 PostgresSQL五、生成 Mapnik Stylesheet六、安装 mapnik七、地图生成1、安装 Express 框架2、创建地图前端页面3、启动地图4、nodejs 服务后台持续运行三种方法 一、简介 该地图服务器是基于优麒麟系统的安装部署!!! 优麒麟设置 root 密码: sudo passwd root 升级系统 sudo apt update sudo apt

绿萝蔓蔓绕枝生 2853

从“盲控”到“预见”:聊聊永磁同步电机负载观测器(PMSM Load Observer)如何让控制更丝滑

本文深入探讨了永磁同步电机负载观测器(PMSM Load Observer)如何通过前馈补偿和转动惯量辨识技术实现智能抗扰控制。从传统‘盲控’到预见性调节,负载观测器显著减少转速波动和能耗,提升系统响应速度。文章详细解析了观测器算法架构、工程调参技巧及前沿发展趋势,为电机控制领域提供实用解决方案。

weixin_33737774的博客 406

【Python Mapnik+GDAL实现免发布切片服务】

基于Mapnik创建切片的方案,实现数据免发布预览

qq_22865879的博客 1164

交换机基本介绍(分类、性能指标、硬件构成及工作方式)

一、交换机的分类与性能指标 1.1交换机的分类 按照网络构成方式来分的话,交换机分为三类:接入层交换机、汇聚层交换机和核心层交换机。 按照OSI模型来划分的话,分为:二层交换机、三层交换机和四层交换机 还有一种按照硬件形态来划分,可以分成两类:盒式交换机和机框式交换机。 盒式交换机是一种有固定端口数,有时也会带有少量扩展槽的交换机。机架式交换机是一种插槽式的交换机,这种交换机扩展性较好,可支持不同的网络类型,可支持更大端口密度的网络。一般在数据中心的接入层都会采用盒式交换机,盒式...

monologuezjp的博客 4万+

Ubuntu终端AI编程助手配置:Claude Code接入DeepSeek模型全攻略

在软件开发领域,AI编程助手正成为提升开发效率的重要工具。其核心原理是通过大语言模型理解自然语言指令,生成、解释或调试代码。这类工具的技术价值在于将AI能力无缝集成到开发工作流中,减少上下文切换,实现更流畅的人机协作。常见的应用场景包括代码生成、错误调试、代码重构和技术问答等。本文聚焦于在Ubuntu系统中,将流行的终端AI助手Claude Code的后端模型从原版Claude替换为DeepSeek。通过配置环境变量实现API端点和模型的映射,这一过程涉及Node.js环境管理、npm包安装和关键环境变量设

weixin_42527654的博客 377

Mapnik矢量瓦片:高效的地理数据渲染工具

`mapnik-vector-tile` 是一个基于 [Mapbox Vector Tile 规范](https://github.com/mapbox/vector-tile-spec) 的 Mapnik 实现。该项目提供了 C++ 头文件,支持将地理数据渲染为矢量瓦片,并将矢量瓦片渲染为图像。通过 `mapnik-vector-tile`,开发者可以高效地处理和展示大规模地理数据,适用于各种地

gitblog_00510的博客 1033

YOLOv11改进策略【损失函数篇】| 将激活函数替换为带有注意力机制的激活函数 ARelu

将ELSA中的函数Φ\PhiΦ用具有可学习参数α\alphaα和β\betaβ的网络层表示为LxiαβCαxixi0σβxixi≥0Lxi​αβCαxi​σβxi​​xi​0xi​≥0​,结合标准的Rectified Linear UnitsRxi0xi0xixi≥0Rxi​0xi​​xi​0xi​≥0​,得到可学习激活函数Fxiα。

Limiiiing的博客 2117

搭建地图服务器(使用Mapnik)

渲染引擎Mapnik 上一篇文章中大概介绍了 Mapnik ,它是一个渲染引擎,一般开发中都会使用他的python的bind做开发。 Mapnik的文档写的比较详细,我们这里只是做一些必要的介绍,详细的细节可以参看Mapnik在 Github上的文档 。 在Mac下,安装Mapnik十分容易,使用brew即可,注意我们在此处带上 --with-postgresql 选项,使得Ma

ACM Dream 9867

攻克反光难题!YOLOv9工业缺陷检测实战:高反光件、微小划痕精准识别(附抗反光代码+产线数据)

文章摘要:本文针对不锈钢、铝合金等高反光工业件的缺陷检测难题,提出了一套“硬件抗反光+YOLOv9小目标增强”的解决方案。通过分析反光干扰(镜面/漫反射)和微小划痕(0.1mm级)两大核心问题,详细介绍了500万像素工业相机+偏振光源的硬件配置方案,以及基于偏振图像融合和超分辨率放大的预处理方法。最终实现误检率1.2%、微小划痕检出率99.3%的工业级检测效果,并提供了可落地的代码实现和车间实测数据。(148字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1041

YOLO26涨点改进 | 全网独家,注意力创新改进篇 | Arxiv2025 | YOLO26引入MSLA多尺度线性注意力模块,高效提取多尺度特征和建模长程依赖,含多种创新改进,助力有效涨点

本文提出了一种多尺度线性注意力模块(MSLA)来优化YOLO26模型。MSLA通过并行使用不同尺寸的深度可分离卷积(3×3至9×9)提取多尺度特征,并结合线性注意力机制高效建模全局依赖关系。该模块显著提升了模型对多尺度目标的检测能力,同时保持了轻量化特性。实验表明,MSLA能有效增强小目标检测和复杂场景下的分割精度。文章详细介绍了MSLA的网络结构、核心优势及实现代码,并提供了两种集成MSLA的YOLO26改进方案,为实时目标检测任务提供了高效解决方案。

Ai缝合怪、助力小伙伴高效发论文 294

开源地图数据可视化库——mapnik

  最近的工作重心放在了后端地图渲染引擎上,因此接触到了mapnik,用了一段时间感觉它的功能相当丰富,具有很强的拓展性,生态也比较强大,想对学习过程做一个记录。OK,废话少说。 什么是Mapnik   Mapnik是一款开源的具有地图渲染功能的库,它能够为Postgis,Shapefile,Geojson,SQLite等在内的多种数据源...

weixin_33911824的博客 1827

广东省低应变题库

11.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,采用低应变法对混凝土预制桩进行检测时,地基基础设计等级为甲级的桩基工程抽检桩数不应少于总桩数的30%,其余桩基工程抽检桩数不应少于总桩数的20%,且不得少于10根;16.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,当对某桩的桩身完整性判定为III类时,可认为该桩不满足验收条件,不用进一步确定该桩桩身缺陷对桩身结构承载力的影响程度。2.地基基础检测所用计量器具均应在检定(校准、验证)的有效期内,性能符合相关技术要求。

ZShy001238的博客 318

mapnik3.10服务安装3

需要用mapnik加载shp文件展示数据:需要给mapnik安装gdal插件:我的环境是centos8 之前安了proj6.3.2。

Never_My的博客 1064

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mapnik3.10服务安装

安装个mapnik库用python接入可以当做服务运行。1,先安装docker镜像,使用centos8。2.安装boots(Mapnik 是一个用于制作地图的开源工具包,它使用 C++ 编写,依赖于一些其他的开源库,Boost 是其中之一)

Never_My的博客 1302

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Mapnik:打造高性能地图应用的开源利器

Mapnik 是一个广受欢迎的开源工具包,专注于助力开发者构建高效、美观的地图应用程序。它以C++为核心编程语言,秉承跨平台的设计理念,不依赖特定的操作系统窗口系统,因此无论是服务器环境还是其他场景,都能灵活部署。 ## 核心功能概览 Mapnik 的核心魅力在于其提供的地理信息处理能力。它包含了创建地图所需的各种地理对象,如地图定义、图层管理、数据源接入、特征处理以及几何图形渲染等。通过这些...

gitblog_00912的博客 519

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Mapnik xml配置

资料 思维导图 XML配置详解 Map对象 Style对象 Rule对象 Layer对象 DataSource对象 XML配置优化

爱莫能助 3331

mapnik 3.0.23 和python-mapnik-3.0.16 安装部署

源码安装部署:https://github.com/mapnik/mapnik/blob/master/INSTALL.md 安装相关的依赖,自己安装部署的过程中发现几个问题,是因为两个依赖没有安装好: 1.boost https://www.boost.org/users/download/ boost安装前要先删除就版本,一般安装在/usr目录下,把这里相关的boost文件删除即可。 ./bootstrap.sh --with-libraries=all --with-toolset=gcc

aganliang的专栏 2312

python操作多个图层的mapnik

操作单个图层的见之前的文章 vc调用python接口操作mapnik 0.准备工作 1.见之前的文章 2.中国地图包(文件夹里CHN_adm0为国界,CHN_adm1为省界,CHN_adm2为市界) 1.流程 1.新建map 2.创建新图层,包括数据源、样式和规则 3.添加新图层的样式、规则 4.向地图添加刚创建的图层 5.重复2-4步骤添加其他图层

小猿一枚的专栏 2745

OpenStreetMap初探(七)——渲染和地图瓦片之安装Mapnik

主要的渲染和瓦片工具有这么几个: 渲染 和地图瓦片: Mapnik 见mapnik.org [1] Osmarender (XSLT) svn trac Tiles@home distributed rendering svn - Kosmos desktop rendering source bugs T

Mr.An 的专栏 1万+

Mapnik Python 绑定使用教程

Mapnik Python 绑定使用教程 项目介绍 Mapnik 是一个开源的地图渲染工具库,广泛用于地理信息系统(GIS)和地图应用开发。Python-Mapnik 是 Mapnik 的 Python 绑定,允许开发者使用 Python 语言来调用 Mapnik 的功能,进行地图的渲染和处理。 项目快速启动 安装 首先,确保你的系统上已经安装了 Python 和 pip。然后,使用以下命令安装 ...

gitblog_00569的博客 857
上一篇: python操作多个图层的mapnik
下一篇: CMFCToolTipCtrl 应用详解
洗洗睡去
博客等级 码龄19年 277粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值