利用GDAL vrt实现单波段浮点数dem包装为三波段rgb影像

利用GDAL vrt实现单波段浮点数dem包装为三波段rgb影像

      本文介绍了利用GDAL vrt实现单波段浮点数dem包装为三波段rgb影像,具体为用vrt表达dem、将dem拉伸为0-255 区间的灰度图、灰度着色三个过程,所有中间结果可用vrt格式来表达。


目录

  • 1 dem vrt表达
  • 2 dem灰度拉伸
  • 3 dem着色

  • 1 dem vrt表达
{//vrt表达
		GDALAllRegister();
		std::string srcPath = "test.tif";
		std::string dstPath = "test.vrt";
		GDALDatasetH* srcDs = NULL;

		const char* arr[] = { srcPath.c_str() };
		const char* const* papszSrcDSNames = arr;
		GDALDatasetH hOutDs = GDALBuildVRT(dstPath.c_str(), 1, NULL, papszSrcDSNames, NULL, NULL);
		GDALClose(hOutDs);
	}

        借助GDALBuildVRT构建tif的vrt描述文件。

  • 2 dem灰度拉伸
{//灰度拉伸
		std::string srcPath = "test.vrt";
		std::string dstPath = "gray.vrt";
		GDALAllRegister();
		GDALDataset* inDataset = (GDALDataset*)GDALOpen(srcPath.c_str(), GA_ReadOnly);
		GDALRasterBand*band = inDataset->GetRasterBand(1);
		/*double minValue, maxValue;
		band->ComputeStatistics(false, &minValue, &maxValue, NULL, NULL, NULL, NULL);
		band->SetNoDataValue(0);
		band->SetScale(256 / (maxValue - minValue));
		band->SetOffset(-minValue * 256 / (maxValue - minValue));*/

		CPLStringList options;
		options.AddString("-scale");
		options.AddString("-ot");
		options.AddString("Byte");
		GDALTranslateOptions* psOptions = GDALTranslateOptionsNew(options, NULL);
		GDALTranslate(dstPath.c_str(), inDataset, psOptions, NULL);
		GDALClose(inDataset);
		GDALTranslateOptionsFree(psOptions);
	}

 借助GDALTranslate函数,设置Options参数将高程值拉伸到0-255区间。

  • 3 dem着色
{//颜色映射
		std::string srcPath = "gray.vrt";
		std::string dstPath = "colored.vrt";
		GDALAllRegister();

		GDALDataset* inDataset = (GDALDataset*)GDALOpen(srcPath.c_str(), GA_ReadOnly);
		if (inDataset == NULL)
		{
			printf("Error: Could not open input DEM file\n");
			return 1;
		}

		GDALDEMProcessing(dstPath.c_str(), inDataset, "color-relief", "color-ramp.txt", NULL, NULL);
		GDALClose(inDataset);
	}

借助GDALDEMProcessing函数实现灰度图0-255值赋不同颜色,同时需设置颜色映射表:“color-ramp.txt”,如下:

0 0 0 0
1 17 62 232
2 17 65 230
3 17 68 227
4 17 71 225
5 17 74 222
6 17 77 220
7 17 80 217
8 17 83 215
9 17 86 212
10 17 89 210
11 17 92 207
12 17 95 205
13 17 97 202
14 17 100 200
15 17 103 197
16 17 106 195
17 17 109 192
18 17 112 190
19 17 115 187
20 17 118 185
21 17 121 182
22 17 124 180
23 17 127 177
24 17 130 175
25 17 132 172
26 17 135 170
27 17 138 167
28 17 141 165
29 17 144 162
30 17 147 160
31 17 150 158
32 17 153 155
33 17 156 153
34 17 159 150
35 17 162 148
36 17 165 145
37 17 167 143
38 17 170 140
39 17 173 138
40 17 176 135
41 17 179 133
42 17 182 130
43 17 185 128
44 17 188 125
45 17 191 123
46 17 194 120
47 17 197 118
48 17 200 115
49 17 202 113
50 17 205 110
51 17 208 108
52 17 211 105
53 17 214 103
54 17 217 100
55 17 220 98
56 17 223 95
57 17 226 93
58 17 229 90
59 17 232 88
60 17 235 86
61 20 233 84
62 24 232 83
63 27 231 82
64 31 230 81
65 35 229 80
66 38 228 79
67 42 227 77
68 46 226 76
69 49 225 75
70 53 224 74
71 56 223 73
72 60 222 72
73 64 221 71
74 67 220 69
75 71 219 68
76 75 218 67
77 78 217 66
78 82 216 65
79 86 215 64
80 89 214 63
81 93 213 61
82 96 212 60
83 100 211 59
84 104 210 58
85 107 209 57
86 111 208 56
87 115 207 54
88 118 206 53
89 122 205 52
90 126 204 51
91 129 202 50
92 133 201 49
93 136 200 48
94 140 199 46
95 144 198 45
96 147 197 44
97 151 196 43
98 155 195 42
99 158 194 41
100 162 193 40
101 165 192 38
102 169 191 37
103 173 190 36
104 176 189 35
105 180 188 34
106 184 187 33
107 187 186 31
108 191 185 30
109 195 184 29
110 198 183 28
111 202 182 27
112 205 181 26
113 209 180 25
114 213 179 23
115 216 178 22
116 220 177 21
117 224 176 20
118 227 175 19
119 231 174 18
120 235 173 17
121 235 171 17
122 235 169 17
123 235 167 17
124 235 165 17
125 235 163 17
126 235 161 17
127 235 159 17
128 235 157 17
129 235 156 17
130 235 154 17
131 235 152 17
132 235 150 17
133 235 148 17
134 235 146 17
135 235 144 17
136 235 142 17
137 235 140 17
138 235 139 17
139 235 137 17
140 235 135 17
141 235 133 17
142 235 131 17
143 235 129 17
144 235 127 17
145 235 125 17
146 235 124 17
147 235 122 17
148 235 120 17
149 235 118 17
150 235 116 17
151 235 114 17
152 235 112 17
153 235 110 17
154 235 108 17
155 235 107 17
156 235 105 17
157 235 103 17
158 235 101 17
159 235 99 17
160 235 97 17
161 235 95 17
162 235 93 17
163 235 92 17
164 235 90 17
165 235 88 17
166 235 86 17
167 235 84 17
168 235 82 17
169 235 80 17
170 235 78 17
171 235 76 17
172 235 75 17
173 235 73 17
174 235 71 17
175 235 69 17
176 235 67 17
177 235 65 17
178 235 63 17
179 235 61 17
180 235 60 17
181 235 59 19
182 235 58 22
183 235 58 25
184 235 57 28
185 235 57 31
186 235 56 34
187 235 56 37
188 235 55 39
189 235 54 42
190 235 54 45
191 235 53 48
192 235 53 51
193 235 52 54
194 235 52 57
195 235 51 60
196 235 50 62
197 235 50 65
198 235 49 68
199 235 49 71
200 235 48 74
201 235 48 77
202 235 47 80
203 235 46 82
204 235 46 85
205 235 45 88
206 235 45 91
207 235 44 94
208 235 44 97
209 235 43 100
210 235 43 103
211 235 42 105
212 235 41 108
213 235 41 111
214 235 40 114
215 235 40 117
216 235 39 120
217 235 39 123
218 235 38 126
219 235 37 128
220 235 37 131
221 235 36 134
222 235 36 137
223 235 35 140
224 235 35 143
225 235 34 146
226 235 33 148
227 235 33 151
228 235 32 154
229 235 32 157
230 235 31 160
231 235 31 163
232 235 30 166
233 235 30 169
234 235 29 171
235 235 28 174
236 235 28 177
237 235 27 180
238 235 27 183
239 235 26 186
240 235 26 189
241 235 25 191
242 235 24 194
243 235 24 197
244 235 23 200
245 235 23 203
246 235 22 206
247 235 22 209
248 235 21 212
249 235 20 214
250 235 20 217
251 235 19 220
252 235 19 223
253 235 18 226
254 235 18 229
255 235 17 232
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux部署java1.8(java17)

两种方式: 方式一 1.输入查找命令: yum -y list java*2.输入安装命令: yum install -y java-1.8.0-openjdk.x86_643.测试是否已经安装: java -version方式二: 点击链接进入官网:https://www.oracle.com/…

mysql-sql练习-5-行列互转

目录 成绩单 简单互转 需求 多行转多列 分组 判断 聚合 理解 分组 合并 逆向需求 多列转多行 输出 合并 abc 去重 合并 拆分 需求 建表 多行转多列 逆向需求 多列转多行 拆分 按长度 拆分 按个数 成绩单 简单互转 需求 多行转多列 分组 判断 聚合 with tmp as(--…

3.电源模块趋旺盛,铁路最需可靠性

电源模块趋旺盛,铁路最需可靠性 电源设计需要很高的专业技能。越来越多的电子设备制造商开始采用电源模块来加快设计周期。通信、铁路、电力和军工领域,对电源模块需求越来越旺盛。 通信网络基建设备市场潜力巨大。应市场要求,现代的通信系…

自动化工具:推广神器,精准获客新策略

在当今这个信息爆炸的时代,推广和获客对于企业的生存和发展至关重要。然而,传统的推广方式不仅耗时耗力,而且效果往往难以精准把控。此时,自动化工具的出现无疑为市场推广带来了新的生机。本文将以客观公正的态度探讨如何利用自动…

[软件工具]批量根据文件名查找PDF文件复制到指定的地方,如何批量查找文件复制,多个文件一起查找复制

多个文件目录下有多个PDF, 如何根据文件名一个清单,一次性查找多个PDF复制保存 如图所示下面有7个文件夹,每个文件夹里面有几百上千PDF文件 如何从上千个PDF文件中一次性快速找到我们要的文件呢 ? 我们需要找到文件名是这样的PDF&#xff0…

oracle pl/sql 如何让sql windows 显示行号

oracle pl/sql 如何让sql windows 显示行号 下载最新版的pl/sql第一步,在preferences中对sql Windows进行设置,如下所示第二步,在preferences中对User interface进行设置,如下所示结果如下 其实很简单 下载最新版的pl/sql 官方下…

【LangChain系列 12】Prompt模版——序列化

本文速读: PromptTemplate FewShotPromptTemplate 通常prompt以文件形式存储比python代码更好,一方面可以更容易共享、存储。本文将介绍在LangChain中如何对prompt以不同的方式序列化。 一般来说,对于序列化有以下两个设计原则&#xff1a…

深度学习系列64:数字人wav2lip详解

1. 整体流程 第一步,加载视频/图片和音频/tts。用melspectrogram将wav文件拆分成mel_chunks。 第二步,调用face_detect模型,给出人脸检测结果(可以改造成从文件中读取),包装成4个数组batch:img…

74、堆-数组中的第K个最大元素

思路&#xff1a; 直接排序是可以的&#xff0c;但是时间复杂度不符合。可以使用优先队列&#xff0c;代码如下&#xff1a; class Solution {public int findKthLargest(int[] nums, int k) {if (numsnull||nums.length0||k<0||k>nums.length){return Integer.MAX_VAL…

神之浩劫2测试资格100%获取教程 测试资格获取方法教程

《神之浩劫》是一款基于Unreal 3&#xff08;虚幻3&#xff09;游戏引擎开发的3D团队竞技游戏&#xff0c;由美国Hi-Rez工作室开发、腾讯全球代理。2013年10月31日&#xff0c;游戏开启国服首测&#xff0c;并于2014年3月25日在美国公测。2018年1月20日&#xff0c;国服并入全球…

shell脚本-监控系统内存和磁盘容量

监控内存和磁盘容量除了可以使用zabbix监控工具来监控&#xff0c;还可以通过编写Shell脚本来监控。 #! /bin/bash #此脚本用于监控内存和磁盘容量&#xff0c;内存小于500MB且磁盘容量小于1000MB时报警#提取根分区剩余空间 disk_size$(df / | awk /\//{print $4})#提取内存剩…

Redis(七) zset有序集合类型

文章目录 前言命令ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZPOPMAXZPOPMIN两个阻塞版本的POP命令BZPOPMAX BZPOPMINZRANKZREVRANKZSCOREZREMZREMRANGEBYRANKZREMRANGEBYSCOREZINCRBY集合间操作ZINTERSTOREZUNIONSTORE 命令小结 内部编码使用场景 前言 对于有序集合这个名…

Java核心技术.卷I-上-笔记

目录 面向对象程序设计 使用命令行工具简单的编译源码 数据类型 StringBuilder 数组 对象与类 理解方法调用 继承 代理 异常 断言 日志 面向对象程序设计 面向对象的程序是由对象组成的&#xff0c;每个对象包含对用户公开的特定功能部分和隐藏的实现部分从根本上…

高校宿舍管理

在高等教育的迅猛发展浪潮中&#xff0c;大学校园正经历着前所未有的变革。随着招生规模的不断扩大&#xff0c;学生宿舍管理工作变得日益繁重和复杂。传统的管理方法&#xff0c;如使用Word和Excel进行数据记录和整理&#xff0c;已经无法满足现代高效、精准的管理需求。此外&…

关于几个水表术语的理解

GB/T778.1-2018《饮用冷水水表和热水水表 第 1 部分&#xff1a;量值要求和技术要求》、JJG162-2019《饮 用冷水水表检定规程》和 JJF1777-2019《饮用冷 水水表型式评价大纲》不仅规范了水表行业的专业名词解释&#xff0c;而且给出了影响水表性能的主要因素的定义。本文从影响…

Mellanox网卡打流命令ib_write_bw执行遇到Couldn‘t listen to port 18515原因与解决办法?

要点 要点&#xff1a; ib默认使用18515命令 相关命令&#xff1a; netstat -tuln | grep 18515 ib_write_bw --help |grep port# server ib_write_bw --ib-devmlx5_1 --port 88990 # client ib_write_bw --ib-devmlx5_0 1.1.1.1 --port88990现象&#xff1a; 根因&#xf…

Spring Cloud Feign

序言 本文给大家介绍一下 Spring Cloud Feign 的基础概念以及使用方式。 一、远程调用 在传统的单体系统中&#xff0c;我们通常是客户端去请求服务端的接口。但是在分布式的系统中&#xff0c;常常需要一个服务去调用另外一个服务的接口。在服务端如何去调用另外一个服务端…

docker compose mysql主从复制及orchestrator高可用使用

1.orchestrator 功能演示&#xff1a; 1.1 多级级联&#xff1a; 1.2 主从切换&#xff1a; 切换成功后&#xff0c;原来的主库是红色的&#xff0c;需要在主库的配置页面点击“start replication ”&#xff0c;重新连接上新的主库。 1.3 主从故障&#xff0c;从库自动切换新…

pyqt字体选择器

pyqt字体选择器 pyqt字体选择器效果代码 pyqt字体选择器 pyqt中QFontDialog 类是一个预定义的对话框&#xff0c;允许用户选择一个字体并设置其样式、大小等属性。 效果 代码 from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPushButton, QFontD…

信息收集。

信息收集 接着使用cs进行信息收集 发现域内管理员账号。 然后查看pc信息&#xff0c; 查看进程。 发现域为god.org 尝试定位域控。 提权 使用cs的功能进行权限提权 成功获取管理员权限。 hash抓取 接着抓hash 成功抓到管理员账号、密码。 接着进行横向传递 成功获取AD和…
最新文章