当前位置: 首页 > news >正文

ArcMap:第二届全国大学生GIS技能大赛(广西师范学院)详解-上午题

目录

01 题目

1.1 第一小题

1.2 第二小题

1.3 第三小题

1.4 数据展示

02 思路和实操

2.1 第一问思路

2.2 第一问操作过程

2.2.1 地理配准

2.2.2 镶嵌

2.2.2.1 第一种镶嵌方法

2.2.2.2 第二种镶嵌方法

2.2.3 裁剪

2.2.4 DEM信息提取

2.2.5 分类

2.3 第二问思路

2.4 第二问实操

2.4.1 监督分类

2.4.2 面积制表

2.5 第三问思路

2.6 第三问实操


01 题目

1.1 第一小题

现有某区域一幅有投影信息的单波段遥感图像(tm00.img)、DEM数据、两幅多光谱遥感图像(tm01.img\tm02.img)及该区域的矢量数据图层文件(bound.shp),其中有一幅多光谱图像无投影信息(tm02.img),现需要对无投影信息的多光谱图像进行几何校正、镶嵌、裁切等处理,并利用矢量数据裁剪镶嵌后的多光谱数据,利用裁剪后的多光谱数据及DEM数据,提取区域植被覆盖信息。

竞赛要求:

  • 以有投影信息的单波段遥感图像为参考空间,对tm02img进行几何校正;命名为jztm02img, 对jztm02img及tm01.img进行镶嵌,并用bound.shp进行裁剪,记录主要操作过程及结果,要求结果中体现几何校正中控制点分布、控制点数量,RMS要求在0.5个像元内。
  • 利用裁剪后的多光谱数据及DEM数据,提取区域缓坡植被信息、非朝北缓坡植被、陡坡植被、水体、裸地、背景区,提取规则如下:

朝北缓坡植被:NDVI大于0.25,坡度小于20°,朝北

非朝北缓坡植被:NDVI大于0.25,坡度小于20°,非朝北

陡坡植被:NDVI大于0.25,坡度大于等于20°

水体:NDVI小于等于0.25,波段4的DN值大于0且小于20

裸地:NDVI小于等于0.25,波段4的DN值大等于20

背景区:NDVI小于等于0.25,波段4的DN值等于0

要求规则表达正确,统计各类植被信息百分比,并对分类结果进行专题制图,专题要求有经纬网、图名、指北针、比例尺、图例,制图符合规范。

1.2 第二小题

现有某地区2000年8月15日与2011年8月22日的两时相TM遥感图像(tm20000815.img\tm20110822.img),要求采用适当的分类方法提取该区域两时相的土地利用信息,提取两时相土地利用变化信息,要求分类合理,列出土地利用变化变化转移矩阵,并分析可能导致土地利用类型变化的主要原因,完成土地利用变更报告,制作两时相土地利用类型专题图,并对整个信息提取过程进行分析与评价。(要求用栅格数据格式进行处理)

1.3 第三小题

从上述两时相土地利用类型数据中提取建设用地,进行栅矢转换,利用GIS空间叠加分析功能提取两时相建设用地空间变化信息,并计算建设用地年均变化面积,对属性数据表进行修改,增加建设用地年均变化字段,制作区域建设用地年均变化空间分布专题图。

1.4 数据展示

02 思路和实操

第二届和第一届的难度还是有提升的,主要是题型的丰富程度不一样了。

2.1 第一问思路

题目:现有某区域一幅有投影信息的单波段遥感图像(tm00.img)、DEM数据、两幅多光谱遥感图像(tm01.img\tm02.img)及该区域的矢量数据图层文件(bound.shp),其中有一幅多光谱图像无投影信息(tm02.img),现需要对无投影信息的多光谱图像进行几何校正、镶嵌、裁切等处理,并利用矢量数据裁剪镶嵌后的多光谱数据,利用裁剪后的多光谱数据及DEM数据,提取区域植被覆盖信息。

梳理一下:
 

绘制流程图太影响效率了,以后不画了.

2.2 第一问操作过程

2.2.1 地理配准

(鸽了好久啊, 我这个博客是6月份写的,现在10月份,一直拖了没有写,正巧最近校赛进前四,继续写吧,虽然现在B站还有一些博客已经写过了,但是我写这个博客的初衷就是为了提高自己的水平,所以也不算重复劳动了。当然我也会参考其他博客以及视频内容)

因为问题1数据实际上缺失(实在找不到,刚想做发现数据残缺),这里仅提供简单的操作过程和思路.

这里是以tm00.img为基准,对tm02.img(无投影信息)影像进行几何校正,那么我们知道,几何校正包括两个部分,一个是针对栅格数据的几何校正,他在ArcGIS中称为地理配准;另外一个是针对矢量数据的几何校正,它在ArcGIS中成为空间校正。

在汤国安老师的书中这么描述:

搞错了,我发现不是数据残缺,而是因为ArcGIS无法识别,这是在ArcGIS中的显示:

这是在文件资源管理器中的显示:

我给没有后缀的tm和dem加上了后缀img,这个数据可能是在ENVI中进行处理的,所以默认没有后缀但是有头文件.hdr。操作后可以正常加载了:

所以这里我们应该使用地理配准工具对tm02.img进行几何校正:

 

为了方便查看两幅影像的对应点,这里可以创建一个查看器窗口:

 此处只演示一次如何进行添加控制点:

 如此重复操作,注意控制点的位置要均匀和各个位置都需要有.

操作完成后进行更新(因为我们把自动校正关闭了需要手动校正):

另外通过下面操作可以查看RMS等信息知道当前你的控制点选择的质量如何:

2.2.2 镶嵌

这里在镶嵌之前存在一个问题,就是图像中存在大块的黑色部分(我猜测可能在ENVI中这一一部分是显示为NoData,但是在ArcGIS中显示为正常值):

为什么要处理黑色部分?因为现在我们查看其像素值发现是正常值,所以再进行镶嵌的时候,黑色部分会作为正常部分与其他真正正常的部分进行镶嵌最后导致镶嵌的结果错误。所以这里需要将黑色部分全部处理为NoData.当然,如果你从一开始就使用ENVI处理可能不需要这么处理。

我们可以大胆猜测,最初的.hdr文件应该是将0作为忽略值也就是视为NoData了。

因此我们需要将所有的0值视为NoData或者赋值为NoData,这里用栅格计算器一般不可行,因为栅格计算器一般是用于单波段的影像的算术运算,对于这种虽然可以做,但是非常繁琐。

这里我们直接使用复制栅格工具,将0作为NoData值进行另存为:

现在就是正常的了:

现在在tm02_nodata.tif中左侧存在显眼的的蓝边,与周围格格不入:

最后镶嵌完会有比较明显的边界:

所以考虑将这一部分裁剪出去(这里不再演示)。

然后现在貌似有两种镶嵌方法(其实可能是同一种,仅仅是实现方式不一样)

2.2.2.1 第一种镶嵌方法

直接使用镶嵌至新栅格工具,操作如下:

由于该方法比较简陋,效果一般,这里不展示结果

2.2.2.2 第二种镶嵌方法

在地理数据库中创建镶嵌数据集,需要执行什么操作都在镶嵌数据集中进行(实际上也是调用各种工具,但是贵在它把各种需要用的功能都给你整合在镶嵌数据集这里)

 弄完之后如下:

还需要平衡一下色彩:

 

 

必须放大了看(不知道为什么不放大看还是会有边界感,不过最后导出没有问题,可能只是显示存在一些问题)

最后导出:

最后镶嵌的效果:

2.2.3 裁剪

这里的裁剪应该是指的掩膜。

2.2.4 DEM信息提取

此处的DEM应该也是存在黑色部分(实际为无效值):

通过复制栅格工具解决该问题(不演示),结果如下。

 这里确实使用ArcGIS进行分类会比较繁琐,如果使用ENVI的专家决策树会快很多。不过后续的GIS“比赛都是规定ArcGIS这里一类产品,没有ENVI相关的说明,所以这里我们都使用ArcGIS实现吧。

首先,计算出NDVI、坡度、坡向:

(可以简单看出,3、2、1对应红绿蓝三个波段,所以第4个波段为近红外)

Float("tm_mask.tif - Band_4"-"tm_mask.tif - Band_3") / Float("tm_mask.tif - Band_4"+"tm_mask.tif - Band_3")

 

2.2.5 分类

这里我们似乎通过栅格计算器是最好的选择.

朝北缓坡植被

("ndvi.tif" > 0.25) & ("slope.tif" < 20) & ("aspect.tif" == -1)

非朝北缓坡植被:

("ndvi.tif" > 0.25) & ("slope.tif" < 20) & ("aspect.tif" != -1)

陡坡植被:

("ndvi.tif" > 0.25) & ("slope.tif" >= 20)

水体:

("ndvi.tif" <= 0.25) & (("tm_mask.tif - Band_4" > 0) & ("tm_mask.tif - Band_4" < 20))

裸地:

("ndvi.tif" <= 0.25) & ("tm_mask.tif - Band_4" >= 20)

背景区:

("ndvi.tif" <= 0.25) & ("tm_mask.tif - Band_4" == 0)

我们上面其实有纰漏,不应这么写的,其实可以这么:

SetNull(~(表达式),1)

这样子后面就不需要重新将各个地类的0值重新赋值为NoData(使用栅格计算器或者重分类,这说明我们后续进行操作的时候,如果有思路就应该先把思路大部分明确,而不是做一步感觉可以做出来然后继续下一步,往往这样会出现纰漏甚至掉进编题组挖的坑里去) 

得到各种地类之后,就应该统计各类植被信息百分比,然后对分类结果进行专题图的制图。

将各个地类合并,可以使用镶嵌也可以使用栅格计算器(比较麻烦但是很准确当然原理上镶嵌也可以,因为按照分类规则各个区域是不会有重叠的),这里我就使用镶嵌了,过程略。

需要统计植被信息百分比,我猜测这里应该是要统计占比面积,也许你会根据属性表中的各个类别的像元个数直接作为面积占比然后归一化,但是我认为目前影像是投影坐标系,可能在不同地理位置上的像元所代表的面积不一样,所以这里我想要通过计算面积得到更为准确的面积。

或许你会想到属性表中的计算几何,但是计算几何是矢量数据才可以使用的,不过你要是栅格转矢量然后进行可能会存在精度损失。

这里可以使用<以表格显示分区几何统计>进行面积的计算,但是该工具计算的时间稍微长了一些:

 这是分区几何统计的结果:

这是单纯的像元个数:

 

至于后面的专题图时间有限就不进行了。

2.3 第二问思路

首先是需要对tm20000815.img\tm20110822.img两幅影像进行监督分类,但是ArcGIS对于监督分类的方法比较少,不过我们还是可以做的,通过影像分类工具条进行。

另外一个就是土地利用变化的变化转移矩阵如何制作?

需要说明的是土地利用变换矩阵是什么?

(参考:【GIS教程】土地利用转移矩阵、土地利用面积变化 - 知乎 (zhihu.com))

土地利用转移矩阵以矩阵的形式将俩个不同时期的土地覆盖类型之间互相转换的数量关系展现出来,可以全面的体现出一个区域土地覆盖类型的数值和转移方向。一般形式如下(下方解释说明可忽略):

其中,TL表示上一时相,TN表示下一时相。C1Cn表示n种不同的土地覆盖类型。假设行Cn=Ci(上一时相土地类型),列Cn=Cj(下一时相土地类型)。Sij表示上一时相Ci转变为下一时相Cj的面积量,Si*表示上一时相Ci的土地覆盖类型面积的总和,S*j表示下一时相Cj的土地覆盖类型面积的总和。Si*-Sii为Ci土地类型的流出量,即上一时相Ci类型土地中转移为下一时相其它土地类型的面积总和。S*j-Sjj表示Cj土地类型的流入量,即下一时相Cj类型土地中由上一时相其它类型土地转变而来的面积总和。

上面的Sij也可以统一替换为Pij,用来展示转移量占整体的比例,能够体现整体与部分的关系,而避免因原某一土地类型总面积较小而得到转移量也较小,从而面积不能很好地表现此土地类型变化程度的情况。

那么这个 如果想到了就比较简单,应该使用面积制表是最简单的方法。

面积制表的意思稍微难理解一些,所以我简单举一些例子。

假如我们有一个四川省各个县的面要素数据,另外还有一个四川省范围的土地利用利用数据(都是Shp文件),然后我想要统计每一个县下不同土地利用类型的面积,那么就可以使用面积制表。

确实,面积制表多用于这样的场景,但是对于今天我们的两个时像的影像的处理你也可以使用面积制表,他们本质上是一样的。

2.4 第二问实操

2.4.1 监督分类

这个不详细讲述了,虽然ArcGIS里面进行监督分类用的很少,但是其实和ENVI基本上差不多。

详情查看Arcmap之监督分类_arcgis监督分类-CSDN博客

这里直接展示结果:

 

接着进行面积制表 。

2.4.2 面积制表

首先需要将两幅栅格图像转化为矢量文件。

另一幅略

接着,由于相同栅格值的栅格块由于位置不同会转化为多个要素(但是GridCode字段值都是一样的)。所以我们为了后面处理时间减短一些,这里我们进行融合。

另一个文件略。

现在开始面积制表:

 最后就是表转excel:

 然后再稍微整理一下。

至于专题图的制作这里略。

2.5 第三问思路

不好意思,看到第三问的要求我就知道我二问做的有点不可理喻,主要还是因为我对面积制表不太理解或者不熟练导致的:

从这里”栅矢转换“我就知道自己做错了,实际上第二问进行变换矩阵的求取不需要转化为矢量就可以我不小心忘记了,大家可以看面积制表的工具:
 

好了我们正式开始第三问。

第三问我感觉就是在第二问的基础上进行更深入的探索,我们原先不是得到变换矩阵就好了吗?现在不仅仅如此,你还得通过专题图的角度从可视化这个方面彻彻底底的告诉我到底哪些地方变成了什么。所以这就要求我们深入的了解面积制表背后的原理(实际上我们只是通过矢量分析的角度求解它摆了)。

那么到底如何做?

通过矢量分析得到第二问的答案并进一步得到可视化结果。

首先,通过栅格转面将两幅监督分类好的影像转化为矢量面数据,接着使用融合工具基于GridCode字段进行融合并添加字段用于描述要素的类别(方便后面可视化);

接着,使用相交工具进行进行两个面的相交(主要是相交后属性表的变化),接着基于相交结果进行属性表的编辑,最后出土即可。

2.6 第三问实操

栅格转面和融合在前面已经操作过了,这里就不重复进行。

这里添加字段:

 接着进行相交:

 

[old]+"-->"+ [new]

然后稍微调整一下符号系统:
 

好了,其他就不过多赘述了,至于专题图这里略。

相关文章:

ArcMap:第二届全国大学生GIS技能大赛(广西师范学院)详解-上午题

目录 01 题目 1.1 第一小题 1.2 第二小题 1.3 第三小题 1.4 数据展示 02 思路和实操 2.1 第一问思路 2.2 第一问操作过程 2.2.1 地理配准 2.2.2 镶嵌 2.2.2.1 第一种镶嵌方法 2.2.2.2 第二种镶嵌方法 2.2.3 裁剪 2.2.4 DEM信息提取 2.2.5 分类 2.3 第二问思路 …...

Blender 导出 fbx 到虚幻引擎中丢失材质!!!(使用Blender导出内嵌材质的fbx即可解决)

目录 0 引言1 Blender导出内嵌纹理的fbx模型 0 引言 我在Blender处理了一些fbx模型后再次导出到UE中就经常出现&#xff0c;材质空白的情况&#xff08;如下图所示&#xff09;&#xff0c;今天终于找到问题原因&#xff0c;记录下来&#xff0c;让大家避免踩坑。 其实原因很简…...

C++交换a和b的方法

以下是用C编写的交换a和b的六种方法&#xff1a; 1. 方法一&#xff1a;使用临时变量 #include <iostream>int main() {int a 5;int b 10;std::cout << "Before swapping: a " << a << ", b " << b << std::end…...

3D孪生场景搭建:模拟仿真

前面几期文章介绍如何使用NSDT 编辑器 搭建3D应用场景&#xff0c;本期介绍下孪生场景中一个一个非常重要的功能&#xff1a;模拟仿真。 1、什么是模拟仿真 模拟仿真是一种用于描述、分析和模拟现实世界中系统、过程或事件的计算机模型和程序。仿真通过输入各种参数和条件&am…...

美国各流域边界下载,并利用arcgis提取与处理

一、边界数据的下载 一般使用最普遍的流域边界数据是从HydroSHEDS官网下载: HydroBASINS代表一系列矢量多边形图层&#xff0c;以全球尺度呈现次级流域边界。该产品的目标是提供一种无缝的全球覆盖&#xff0c;其中包含了不同尺度&#xff08;从数十到数百万平方千米&#xf…...

A Survey and Framework of Cooperative Perception 论文阅读

论文链接 A Survey and Framework of Cooperative Perception: From Heterogeneous Singleton to Hierarchical Cooperation 0. Abstract 首次提出统一的 CP&#xff08;Cooperative Percepetion&#xff09; 框架回顾了基于不同类型传感器的 CP 系统与分类对节点结构&#x…...

【SkyWalking】SkyWalking是如何实现跨进程传播链路数据?

文章目录 一、简介1 为什么写这篇文章2 跨进程传播协议-简介 二、协议1 Standard Header项2 Extension Header项3 Correlation Header项 三、跨进程传播协议的源码分析1 OpenTracing规范2 通过dubbo插件分析跨进程数据传播3 分析跨进程传播协议的核心源码 四、小结参考 一、简介…...

px4仿真实现无人机自主飞行

一,确定消息类型 无人机通过即在电脑是现自主飞行:思路如下。 通过Mavros功能包,将ROS消息转换为Mavlink消息。实现对无人机的控制。 几种消息之间的关系如下: 对于ROS数据,就是我们机载电脑执行ROS系统的数据。 对于Mavros消息,就是Mavros功能包内部的消息。查询网站…...

详解Linux的系统调用fork()函数

在Linux系统中&#xff0c;fork()是一个非常重要的系统调用&#xff0c;它的作用是创建一个新的进程。具体来说&#xff0c;fork()函数会在当前进程的地址空间中复制一份子进程&#xff0c;并且这个子进程几乎完全与父进程相同&#xff0c;包括进程代码、数据、堆栈以及打开的文…...

构建捡垃圾机器人的 ROS 2 项目

一、说明 本系列是关于学习如何使用 ROS2、Docker 和 Github 设计、设置和维护机器人项目。 先决条件 — ROS2 软件包的基本知识、实现发布者、订阅者、操作并连接它们。 我们之前在 ROS2 中了解了不同的部分。但是&#xff0c;在我们转向实际的基于硬件的项目之前&#xff0c;…...

Spring常用注解(2)

6、切面&#xff08;AOP&#xff09;相关注解 Spring AOP详细介绍 Spring支持AspectJ的注解式切面编程。 Aspect 声明一个切面 After 在方法执行之后执行&#xff08;方法上&#xff09; Before 在方法执行之前执行&#xff08;方法上&#xff09; Around 在方法执行之前与之后…...

upload-labs靶场通关

文章目录 Pass-01 前端检测&#xff08;JS检测&#xff09;1.1 原理分析1.2 实验 Pass-02 后端检测&#xff08;MIME检测&#xff09;2.1 原理分析2.2 实验 Pass-03 后端检测&#xff08;黑名单绕过&#xff0c;特殊后缀名&#xff09;3.1 原理分析3.2 实验 Pass-04 后端检测&a…...

git拉取代码过程

第一步&#xff1a;先在本地创建文件夹 &#xff0c;比如我这里的文件夹名称是 fengkgong_zntjfx 第二步&#xff1a;执行命令&#xff1a;git init 第三步&#xff1a;git clone 第四步&#xff1a;git fetch 第五步&#xff1a;git branch -a 第六步&#xff1a;cd 项目 【…...

Swift | 属性包装器

Swift | 属性包装器 1. 什么是 Swift Property Wrapper&#xff1f; Swift Property Wrapper 是一种特性&#xff0c;它允许我们在声明属性时添加自定义的包装逻辑。通过使用属性包装器&#xff0c;我们可以在不修改类或结构体定义的情况下&#xff0c;定制属性的访问和存储方…...

Android改造CardView为圆形View,Kotlin

Android改造CardView为圆形View&#xff0c;Kotlin 可以利用androidx.cardview.widget.CardView的cardCornerRadius特性&#xff0c;将CardView改造成一个圆形的View&#xff0c;技术实现的关键首先设定CardView为一个宽高相等的View&#xff08;正方形&#xff09;&#xff0c…...

Idea下面git的使用:变基、合并、优选、还原提交、重置、回滚、补丁

多分支和分支切换 变基和合并 变基是把本项目的所有提交都列出来按顺序一个个提交到目标分支上去 而合并是把两个分支合并起来&#xff0c;但是旧的分支还是可以启动其他分支&#xff0c;在旧的分支上继续开发 master: A -- B -- C -- M/ feature: D -- Emaster: A -…...

【数据结构】什么是算法

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.算法的定义 1.算法的概念 2.数据结构与算法的关系 二.算法的特性 输入 输出 有穷性 确定性 可行性 三.算法的设计要求 1.正确性 2.可读性 3.健壮性 4.效…...

复旦大学EMBA:揭秘科创企业,领略未来战略!

智能制造&#xff0c;国之重器。作为制造强国建设的主攻方向&#xff0c;智能制造的发展水平关系到我国未来制造业在全球的地位与影响力。发展智能制造&#xff0c;是加快建设现代化产业体系的重要手段&#xff0c;提升供给体系适配性的有力抓手&#xff0c;也是建设数字中国的…...

根据您的数据量定制的ChatGPT,改变客户服务的方式

在当今竞争激烈的商业环境中&#xff0c;提供优质的客户服务对于保持忠诚的客户群和推动业务增长至关重要。客户满意度已成为各行各企业的首要任务&#xff0c;因为它直接影响客户留存和品牌声誉。随着技术的进步&#xff0c;公司不断探索创新解决方案&#xff0c;以增强客户服…...

《Unity Shader 入门精要》笔记03

UnityShader的内置变量&#xff08;数学篇&#xff09; Unity内置的变换矩阵摄像机和屏幕参数float3 _WorldSpaceCameraPosfloat4 _ProjectionParamsfloat4 _ZBufferParamsfloat4 unity_OrthoParamsfloat4x4 unity_CameraProjectionfloat4x4 unity_CameraInvProjectionfloat4 u…...

LINUX系统使用软件异地同步数据(灾备)

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步&#xff0c;支持本地复制&#xff0c;或者与其他SSH、rsync主机同步 一、宝塔环境: 有宝塔软件商城支持&#xff0c;参考&#xff1a;https://www.bt.cn/bbs/thread-98022-1-1.html 二、…...

IDEA Rogstry中找不到compiler.automake.allow.when.app.running问题解决

网上大部分人教我们 先 File > Settings 然后 勾选 Build 下的 Compiler中的 Build project automatically 这些步骤都不会有问题 然后就会让我们 ctrl shift alt / 点 Rogstry 打开后 我人就麻了 根本没有什么 compiler.automake.allow.when.app.running 也不用慌 我们…...

c#设计模式-行为型模式 之 状态模式

&#x1f680;简介 状态模式是一种行为设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为&#xff0c;我们可以通过创建一个状态接口和一些实现了该接口的状态类来实现状态模式。然后&#xff0c;我们可以创建一个上下文类&#xff0c;它会根据其当前的状态对象来改…...

使用Docker安装JupyterHub

安装JupyterHub 拉取Jupyter镜像并运行容器 docker run -d -p 8000:8000 --name jupyterhub jupyterhub/jupyterhub jupyterhub # -d&#xff1a;后台运行 # -p 8000:8000&#xff1a;宿主机的8000端口映射容器中的8000端口 # --name jupyterhub&#xff1a;给运行的容器起名…...

SpringCloudGateway网关整合swagger3+Knife4j3,basePath丢失请求404问题

在集成 Spring Cloud Gateway 网关的时候&#xff0c;会出现没有 basePath 的情况&#xff0c;例如定义的 /jeeplus-auth、/jeeplus-system 等微服务前缀导致访问接口404&#xff1a; maven依赖&#xff1a; swagger2于17年停止维护&#xff0c;现在最新的版本为 Swagger3&am…...

html通过使用图像源的协议(protocol)相对 URL 来防止安全/不安全错误

有人知道使用 protocol relative URLs 是否有问题吗&#xff1f;用于图像源以防止混合内容安全警告。 例如链接一张图片: <img src"//domain.com/img.jpg" /> 代替: <img src"http://domain.com/img.jpg" /> or <img src"https…...

【SpringBoot】| Thymeleaf 模板引擎

目录 Thymeleaf 模板引擎 1. 第一个例子 2. 表达式 ①标准变量表达式 ②选择变量表达式&#xff08;星号变量表达式&#xff09; ③链接表达式&#xff08;URL表达式&#xff09; 3. Thymeleaf的属性 ①th:action ②th:method ③th:href ④th:src ⑤th:text ⑥th:…...

Vue Router的进阶

进阶 导航守卫 官方文档上面描述的会比较深奥&#xff0c;而守卫类型也比较多&#xff0c;其中包含了全局前置守卫、全局解析守卫、全局后置钩子、路由独享守卫、组件内守卫。每一种守卫的作用和用法都不相同。这会使得大家去学习的时候觉得比较困难&#xff0c;这边主要介绍…...

方案:快递站智能视频监控3大亮点汇总

快递站智能视频监控方案是一种利用先进的技术和设备&#xff0c;来提升快递站安全管理和快递流程监控的解决方案。具体包括哪些方面呢&#xff1f;今天小编就带大家来看看&#xff01; 1、视频监控系统 在快递站的关键区域安装旭帆科技高清摄像头&#xff0c;如快递仓库、操作…...

Direct3D网格

创建网格 我们可以用D3DXCreateMeshFVF函数创建一个"空"网格对象 &#xff0c;空网格对象是指我们指定了网格的面片总数和顶点总数&#xff0c;然后由该函数为顶点缓存、索引缓存和属性缓存分配大小合适的内存&#xff0c;之后即可手工填入网格数据。 HRESULT WINA…...

docker安装wiki

1.docker pull mediawiki 2.docker run -d --name mywiki -p 8666:80 mediawiki 访问ip:8666,就可以看到配置页面了 3.docker pull mysql docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD123456 -p 3307:3306 mysql 4.在配置页面链接ip:3307,连接数据库&#xff0c;接下…...

bigemap在林业勘测规划设计行业的一些应用

选择Bigemap的原因&#xff1a; 主要注重影像的时效性&#xff0c;软件的影像时效性比其他的更新快&#xff0c;更清晰。 使用场景&#xff1a; 1.林业督查&#xff0c;主要是根据国家下发的图斑&#xff0c;结合测绘局的影像以及bigemap的较新影像对比去年和今年的林地变化。…...

设计模式学习

文章目录 前言设计模式的七大原则单一职责原则开放封闭原则里氏替换原则依赖倒转原则接口隔离原则合成复用原则迪米特原则总结 GoF二十三种设计模式创建型模式&#xff08;五种&#xff09;结构型模式&#xff08;七种&#xff09;行为型模式&#xff08;十一种&#xff09; 游…...

Openfire身份认证绕过漏洞

漏洞详情&#xff1a; Openfire是采用Java编程语言开发的实时协作服务器&#xff0c;Openfire的管理控制台是一个基于Web的应用程序&#xff0c;被发现可以使用路径遍历的方式绕过权限校验。未经身份验证的用户可以访问Openfire管理控制台中的后台页面。同时由于Openfire管理控…...

类目体系设计总结

一、背景 公司窗帘产品在做分类调整&#xff0c;从原先二级类目调整为三级类目&#xff0c;相对于平台电商我们的类目层次结构要简单很多&#xff08;没有定义商品动态属性等&#xff09;&#xff0c;但对于也有上万款SKU的系统来讲,做好基础的分类对于采购、商品促销、数据报…...

gRPC之proto数据验证

1、proto数据验证 本篇将介绍grpc_validator&#xff0c;它可以对gRPC数据的输入和输出进行验证。 这里复用上一篇文章的代码。 1.1 创建proto文件&#xff0c;添加验证规则 这里使用第三方插件go-proto-validators 自动生成验证规则。 地址&#xff1a;https://github.co…...

计算机竞赛 题目: 基于深度学习的疲劳驾驶检测 深度学习

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 &#x1f525; 优…...

css--踩坑

1. 子元素的宽高不生效问题 设置flex布局后&#xff0c;子元素的宽高不生效问题。 如果希望子元素的宽高生效&#xff0c;解决方法&#xff0c;给子元素添加如下属性&#xff1a; flex-shrink: 0; flex-shrink: 0;2. 横向滚动&#xff08;子元素宽度不固定&#xff09; /* tab…...

C超市商品信息查询系统

一、系统界面介绍 1. 超市商品信息查询系统 1、显示商品信息&#xff0c;包括&#xff1a;商品名称、商品种类&#xff08;休闲食品、奶品水饮、生鲜水果&#xff09;、商品价格、商品保质期、商品生产日期&#xff1b; 2、从文件中导入数据、显示、排序、查询的功能。&…...

黑马JVM总结(二十七)

&#xff08;1&#xff09;synchronized代码块 synchronized代码块的底层原理&#xff0c;它是给一个对象进行一个加锁操作&#xff0c;它是如何保证如果你出现了synchronized代码块中出现了问题&#xff0c;它需要给这个对象有一个正确的解锁操作呢&#xff0c;加锁解锁是成对…...

软件测试/测试开发丨Python异常处理 学习笔记

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/27722 异常处理 编写程序时&#xff0c;即使语句或表达式使用了正确的语法&#xff0c;执行时仍可能触发错误。执行时检测到的错误称为异常&#xff0c;大…...

026 - STM32学习笔记 - 液晶屏控制(三) - DMA2D快速绘制矩形、直线

026- STM32学习笔记 - 液晶屏控制&#xff08;三&#xff09; - DMA2D快速绘制矩形、直线等 上节直接操作LTDC在先视频上直接显示&#xff0c;我们直接操作显存地址空间中的内容&#xff0c;用来显示图形&#xff0c;但是相对来说&#xff0c;这种方法费时费力&#xff0c;这节…...

【牛客网】OR59 字符串中找出连续最长的数字串

题目 思路 创建两个字符串 temp 和 ret 创建指针i用来遍历字符串通过i遍历字符串,如果遇到数字则将这个数组加到字符串temp中 i,如果遇到字母,则判断temp字符串的长度和ret字符串的长度,如果temp<ret则说明这个字符串不是要的字符串,如果temp>ret则说明此时temp字符串是…...

云原生监控系统Prometheus:基于Prometheus构建智能化监控告警系统

目录 一、理论 1.Promethues简介 2.监控告警系统设计思路 3.Prometheus监控体系 4.Prometheus时间序列数据 5.Prometheus的生态组件 6.Prometheus工作原理 7.Prometheus监控内容 8.部署Prometheus 9.部署Exporters 10.部署Grafana进行展示 二、实验 1.部署Prometh…...

C++ 学习系列 -- std::list

一 std::list 介绍 list 是 c 中的序列式容器&#xff0c;其实现是双向链表&#xff0c;每个元素都有两个指针&#xff0c;分别指向前一个节点与后一个节点 链表与数组都是计算机常用的内存数据结构&#xff0c;与数组连续内存空间不一样的地方在于&#xff0c;链表的空间是不…...

YOLOv8血细胞检测(6):多维协作注意模块MCA | 原创独家创新首发

💡💡💡本文改进:多维协作注意模块MCA,效果秒杀ECA、SRM、CBAM,创新性十足,可直接作为创新点使用。 MCA | 亲测在血细胞检测项目中涨点,map@0.5 从原始0.895提升至0.910 收录专栏: 💡💡💡YOLO医学影像检测:http://t.csdnimg.cn/N4zBP ✨✨✨实战医学影…...

FFmpeg横竖版视频互换背景模糊一键生成

视频处理是现代多媒体应用中常见的需求。其中横竖版视频互换和背景模糊是视频编辑中常见的操作。FFmpeg是一个功能强大的工具,适用于这些任务。 本文将详细介绍如何使用FFmpeg进行横竖版视频互换和背景模糊。 文章目录 操作命令与命令说明横版转竖版竖版转横版背景模糊处理横…...

Java 华为真题-小朋友分班

需求&#xff1a; 题目描述 幼儿园两个班的小朋友在排队时混在了一起&#xff0c;每位小朋友都知道自己是否与前面一位小朋友同班&#xff0c;请你帮忙把同班的小朋友找出来小朋友的编号是整数&#xff0c;与前一位小朋友同班用Y表示&#xff0c;不同班用N表示学生序号范围(0&…...

机器学习必修课 - 编码分类变量 encoding categorical variables

1. 数据预处理和数据集分割 import pandas as pd from sklearn.model_selection import train_test_split导入所需的Python库 !git clone https://github.com/JeffereyWu/Housing-prices-data.git下载数据集 # Read the data X pd.read_csv(/content/Housing-prices-data/t…...

ClickHouse进阶(二十二):clickhouse管理与运维-服务监控

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情! 👍点赞:赞同优秀创作,你的点赞是对我创…...