9.6 栅格图层符号化唯一值着色渲染

news2024/9/25 9:35:15

文章目录

  • 前言
  • 多波段彩色渲染唯一值着色
    • QGis设置为唯一值着色
    • 二次开发代码实现唯一值着色
  • 总结

前言

  • 介绍栅格图层数据渲染之唯一值着色渲染
  • 说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps

多波段彩色渲染唯一值着色

  • 以“with_color_table.tif”数据为例,在QGis中加载默认显示为多波段彩色如下图
    在这里插入图片描述

QGis设置为唯一值着色

  • 在图层属性的“Symbology”选项卡中选择“Render type”为“Paletted/Unique values”
    在这里插入图片描述

  • 在“Band”中选择需要渲染的波段;在“Color ramp”中选择配色方案。

  • 单击“Classify”按钮会自动统计栅格波段所有的唯一值,并以配色方案的方式显示在列表中。“Value”列表示所有的渲染值;“Color”列表示渲染颜色;“Label”列表示图例文字。

  • 单击列表右下角的“…”下拉按钮,即可从其他图层或外部读取色彩配置表(Color map):

    • Load Classes from Layer:使用其他图层的色彩配置表。
    • Load Color Map from File…:从文件中加载色彩配置表。
    • Export Color Map to File…:导出色彩配置表到文件。
  • 属性设置完成后,图层渲染效果如下图
    在这里插入图片描述

二次开发代码实现唯一值着色

  • QgsPalettedRasterRenderer是对应的渲染器,详情见文档,类图如下
    在这里插入图片描述
  • 几个静态函数用于分类,代码如下
static QgsPalettedRasterRenderer::ClassData classDataFromFile (const QString &path)
static QgsPalettedRasterRenderer::ClassData classDataFromRaster (QgsRasterInterface *raster, int bandNumber, QgsColorRamp *ramp=nullptr, QgsRasterBlockFeedback *feedback=nullptr)
static QgsPalettedRasterRenderer::ClassData classDataFromString (const QString &string)
static QString classDataToString (const QgsPalettedRasterRenderer::ClassData &classes)
static QgsPalettedRasterRenderer::ClassData colorTableToClassData (const QList< QgsColorRampShader::ColorRampItem > &table)
  • 添加文件with_color_table.tif,调用函数colorTableToClassData,根据文件中包含的colorTable生成分类
const QgsPalettedRasterRenderer::ClassData classes = QgsPalettedRasterRenderer::colorTableToClassData( layer->dataProvider()->colorTable( grayBand ) );
  • 调用构造函数生成渲染器并设置给图层
  • 完整测试代码如下
void MainWindow::rasterPalettedSlot()
{
    //添加测试图层
    QgsRasterLayer *layer = addTestRaster("maps/raster/with_color_table.tif");

    const int grayBand = 1;
    const QgsPalettedRasterRenderer::ClassData classes = QgsPalettedRasterRenderer::colorTableToClassData( layer->dataProvider()->colorTable( grayBand ) );
    auto renderer = new QgsPalettedRasterRenderer( layer->dataProvider(),grayBand,classes );
    layer->setRenderer(renderer);
}
  • 效果如下图
    在这里插入图片描述
    在这里插入图片描述

总结

  • 介绍了栅格图层唯一值着色的用法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1924098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【嵌入式DIY实例-ESP8266篇】-LCD ST7789显示DS1307 RTC时间数据

LCD ST7789显示DS1307 RTC时间数据 文章目录 LCD ST7789显示DS1307 RTC时间数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板和 DS1307 RTC 集成电路构建简单的实时时钟和日历 (RTCC),其中时间和日期打印在 ST7789 TFT 显示模块上。 ST7789 TFT 模块包…

Open-TeleVision——通过VR沉浸式感受人形机器人视野:兼备远程控制和深度感知能力

前言 7.3日&#xff0c;我司七月在线(集AI大模型职教、应用开发、机器人解决方案为一体的科技公司)的「大模型机器人(具身智能)线下营」群里的一学员发了《Open-TeleVision: Teleoperation with Immersive Active Visual Feedback》这篇论文的链接&#xff0c;我当时快速看了一…

UML/SysML建模工具更新情况(2024年7月)(1)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 工具最新版本&#xff1a;Enterprise Architect 17.0 BETA 更新时间&#xff1a;2024年7月2日 工具简介 性价比很高&#xff0c;目前最流行的UML建模工具。还包含需求管理、项目估算…

AIGC专栏13——ComfyUI 插件编写细节解析-以EasyAnimateV3为例

AIGC专栏13——ComfyUI 插件编写细节解析-以EasyAnimateV3为例 学习前言什么是ComfyUI相关地址汇总ComfyUIEasyAnimateV3 节点例子复杂例子-以EasyAnimateV3为例节点文件必要库的导入载入模型节点定义Image to Video节点定义节点名称映射 __init__.py文件插件导入comfyUI 学习前…

被动的机器人非线性MPC控制

MPC是一种基于数学模型的控制策略&#xff0c;它通过预测系统在未来一段时间内的行为&#xff0c;并求解优化问题来确定当前的控制输入&#xff0c;以实现期望的控制目标。对于非线性系统&#xff0c;MPC可以采用非线性模型进行预测和优化&#xff0c;这种方法被称为非线性模型…

JS实现:统计字符出现频率/计算文字在文本中的出现次数

要实现这个功能&#xff0c;JavaScript 一个非常强大的方法&#xff0c;那就是reduce() reduce() 它用于将数组的所有元素减少到一个单一的值。这个值可以是任何类型&#xff0c;包括但不限于数字、字符串、对象或数组。 reduce() 方法接收一个回调函数作为参数&#xff0c;这个…

【C++】设计一套基于C++与C#的视频播放软件

在开发一款集视频播放与丰富交互功能于一体的软件时&#xff0c;结合C的高性能与C#在界面开发上的便捷性&#xff0c;是一个高效且实用的选择。以下&#xff0c;我们将概述这样一个系统的架构设计、关键技术点以及各功能模块的详细实现思路。 一、系统架构设计 1. 架构概览 …

截图神器Snipaste

这是我作为测试这么些年来用过的最好用的截图工具&#xff0c;让你将截图贴回到屏幕上&#xff0c;最好用的截图工具&#xff0c;推荐给同事深受好评。 snipaste是一个简单但强大的截图工具&#xff0c;也可以让你将截图贴回到屏幕上。下载打开Snipaste,按下F2来开始截图&…

【已解决】sudo: apt: command not found 或者apt-get: command not found解决方案

一、问题 在CentOS7.5运行apt-get install supervisor遇到如下报错 二、原因 CentOS的软件安装工具不是apt-get &#xff0c;而是yum&#xff0c;应该使用如下命令&#xff1a; yum install supervisor 后面命令换为yum就可以了 三、扩展&#xff1a; 一般来说linux系统…

MVC架构

MVC架构 MVC架构在软件开发中通常指的是一种设计模式&#xff0c;它将应用程序分为三个主要组成部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;。这种分层结构有助于组织代码&#xff0c;使…

AR0132AT 1/3 英寸 CMOS 数字图像传感器可提供百万像素 HDR 图像处理(器件编号包含:AR0132AT6R、AR0132AT6C)

AR0132AT 1/3 英寸 CMOS 数字图像传感器&#xff0c;带 1280H x 960V 有效像素阵列。它能在线性或高动态模式下捕捉图像&#xff0c;且带有卷帘快门读取。它包含了多种复杂的摄像功能&#xff0c;如自动曝光控制、开窗&#xff0c;以及视频和单帧模式。它适用于低光度和高动态范…

《GroupViT: Semantic Segmentation Emerges from Text Supervision》论文解读

会议&#xff1a;CVPR 年份&#xff1a;2022 代码&#xff1a;https://github.com/NVlabs/GroupViT 研究背景与动机&#xff1a; 传统深度学习系统中&#xff0c;图像区域的Grouping通常是隐式通过像素级识别标签的自上而下监督来实现的。作者提出将Grouping机制重新引入深…

本地部署,AnimeGANv3: 将现实世界照片转化为动漫风格

目录 引言 技术背景 架构与原理 实验结果与分析 应用实例 本地部署 运行结果 Photo to Hayao Style Photo to Shinkai Style more suprise 支持多种风格 结论 参考文献 GitHub - TachibanaYoshino/AnimeGANv3: Use AnimeGANv3 to make your own animation works, …

在 PostgreSQL 里如何处理数据的跨库关联查询性能优化?

文章目录 一、了解跨库关联查询的挑战&#xff08;一&#xff09;网络延迟&#xff08;二&#xff09;数据量庞大&#xff08;三&#xff09;索引不一致&#xff08;四&#xff09;数据库配置差异 二、优化策略&#xff08;一&#xff09;合理设计数据库架构&#xff08;二&…

【C++】:继承[下篇](友元静态成员菱形继承菱形虚拟继承)

目录 一&#xff0c;继承与友元二&#xff0c;继承与静态成员三&#xff0c;复杂的菱形继承及菱形虚拟继承四&#xff0c;继承的总结和反思 点击跳转上一篇文章&#xff1a; 【C】&#xff1a;继承(定义&&赋值兼容转换&&作用域&&派生类的默认成员函数…

亿康源用科技引领发展,开启大健康产业新篇章

&#xff08;本台记者报&#xff09;近日&#xff0c;杭州有一家公司凭借深厚的科技研发实力与卓越的创新能力在大健康领域屡受好评&#xff0c;其研发的新品一经推出便成为行业热议。为了探寻该公司的经营秘诀&#xff0c;我们找到了这家公司——亿康源&#xff0c;并有幸与亿…

C语言笔记34 •单链表经典算法OJ题-6.环形链表的约瑟夫问题•

环形链表的约瑟夫问题 1.问题 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数&#xff0c;报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后&#xff0c;只剩下一个人&#xff0c;问最后留下的这个人编号是多少&#xff1f; 数据范围&#xff1a; 1…

postman录制设置

一、前言&#xff1a; ​ postman是一个很好接口调试或是测试工具&#xff0c;简单方便&#xff0c;不需要很复杂的流程与技术&#xff0c;并且也具备录制条件。对于接口不了解&#xff0c;没有明确对应的说明&#xff0c;但又想通过接口进行一些测试使用其录制是一个不错的办…

【YOLOv8系列】(四)YOLOv8使用自己的数据集进行模型训练,成就感满满

目录 一.数据集获取 1.使用开源数据集 2.自定义数据图片 二.数据集标注 1.标注工具介绍 2.labelme安装 3.数据标注 1.选择要标注的数据集文件夹 2.设置自动保存&#xff1a; 3.创建多边形标注 4.格式转换 1.安装labelme2yolo 2.格式转换 3.效果查看 4.其他格式…

腾讯开源 tlbs-map 地图组件库

腾讯宣布开源 tlbs-map&#xff0c;一个基于腾讯位置服务地图 API 开发的 web 端地图组件库&#xff0c;支持在网页绘制地图并在地图上绘制点、线、面、热力图等效果&#xff0c;支持 Vue2、Vue3、React 等业界主流技术栈&#xff0c;旨在帮助开发者低成本开发地图业务 Javascr…