GIS 文件格式 及 常规应用总结
文章目录
- GIS 中常见的文件格式 以及 再次打开注意事项
- 资源网站应用
- 地图瓦片数据
- 地形数据
- 倾斜模型
- QGS 应用
- 矢量数据格式
- 栅格数据格式
- 数据库格式
- 更改图层样式
- 更改图层范围
- 导出为不同分辨率图片
- 导出矢量文件
- 直接保存图层
- 通过打印布局导出
- 使用插件导出
- tiff 图片前端处理方式
GIS 中常见的文件格式 以及 再次打开注意事项
一、Shapefile(.shp)格式
- 文件类型
- Shapefile是一种矢量数据格式,用于存储地理要素的几何形状和属性信息。它实际上是由多个文件组成的文件集,包括主文件(.shp)、索引文件(.shx)和属性文件(.dbf)等。其中,.shp文件存储地理要素的几何形状,如点、线、多边形等;.shx文件包含要素几何形状的索引信息,用于快速定位和读取几何数据;.dbf文件则存储与地理要素相关的属性数据,如地名、面积、人口等。
- 再次打开条件
- 需要使用支持Shapefile格式的GIS软件,如ArcGIS、QGIS等。这些软件能够识别并读取Shapefile文件集的各个组成部分,将几何形状和属性信息正确地显示和关联起来。在打开时,软件会根据索引文件来快速定位几何数据,并结合属性文件展示完整的地理要素信息。
二、GeoJSON(.geojson)格式
- 文件类型
- GeoJSON是一种基于JavaScript Object Notation(JSON)的地理数据交换格式。它可以用来表示各种地理要素,包括点、线、面、多点、多线、多面等几何类型,并且可以方便地存储地理要素的属性信息。例如,一个表示城市位置的GeoJSON文件可以包含城市的坐标(点几何类型)以及城市名称、人口等属性信息。
- 再次打开条件
- 许多现代的GIS软件和Web地图库都支持GeoJSON格式。在打开时,软件会解析JSON结构,提取其中的几何信息和属性信息来显示地理要素。由于GeoJSON是一种文本格式,它的内容相对直观,易于阅读和编辑。一些代码编辑器也可以打开GeoJSON文件,方便用户手动修改其中的数据,但要正确显示地理空间信息,还需要专门的GIS软件或具有地理数据处理功能的工具。
三、KML / KMZ(.kml、.kmz)格式
- 文件类型
- KML(Keyhole Markup Language)是一种用于描述地理数据的XML格式,主要用于在Google Earth等软件中显示地理信息。它可以用来表示点、线、多边形、地标、路径等多种地理要素,并且支持添加样式信息,如颜色、图标等。KMZ是KML的压缩文件格式,将KML文件和相关的资源(如图标文件)打包在一起。
- 再次打开条件
- 要再次打开KML或KMZ文件,需要使用支持KML格式的地理软件,如Google Earth、ArcGIS Earth等。这些软件会解析KML或KMZ文件中的XML结构,根据其中定义的地理要素类型、坐标和样式信息,将地理数据以直观的方式显示在地图上。对于KMZ文件,软件会自动解压其中的内容来获取KML文件和相关资源进行显示。
四、Raster(栅格)文件格式(如.tif、.img等)
- 文件类型
- TIFF(.tif)是一种常用的栅格图像文件格式,在GIS中用于存储遥感影像、数字高程模型(DEM)等数据。它可以存储多波段数据,例如,卫星遥感影像通常包含多个波段,分别对应不同的光谱范围,这些波段可以用于进行植被分析、土地利用分类等操作。IMG文件格式(如Erdas Imagine的. img格式)也是一种栅格数据格式,常用于存储和处理遥感和地理空间数据。
- 再次打开条件
- 再次打开栅格文件需要使用能够处理栅格数据的GIS软件。这些软件需要具备对相应文件格式的解码能力,例如,对于TIFF文件,软件要能够读取其文件头中的元数据信息,包括图像的尺寸、分辨率、波段数量等,然后将每个像素的灰度值或彩色值正确地显示出来。对于多波段的栅格文件,软件还应该提供工具用于选择和处理不同的波段,如进行波段组合、增强等操作。同时,为了准确显示地理空间位置,栅格文件通常还需要与地理坐标系统信息相关联,软件要能够正确读取和应用这些坐标系统信息。
五、Geodatabase(.gdb)格式
- 文件类型
- Geodatabase是ArcGIS软件体系中的一种数据存储格式,它是一种高级的、面向对象的数据模型,用于存储和管理各种地理数据,包括矢量数据(如要素类)、栅格数据、拓扑关系、网络数据等。它提供了强大的数据组织和管理功能,例如,可以定义数据的完整性规则、建立要素之间的关联关系等。
- 再次打开条件
- 主要由ArcGIS系列软件打开,如ArcMap、ArcGIS Pro等。这些软件可以识别Geodatabase的内部结构,包括其包含的不同类型的数据对象,如要素数据集、表等。在打开时,软件会根据Geodatabase中定义的规则和关系,正确加载和显示地理数据,并且可以利用其管理功能进行数据编辑、查询等操作。
资源网站应用
以下是一些可以免费下载地图瓦片数据、地形、倾斜模型的网站:
地图瓦片数据
- OpenStreetMap:网址为https://www.openstreetmap.org/,是全球性开源地图项目,可在官网下载所选区域矢量数据,也可通过API获取.
- 天地图:网址是https://t{s}.tianditu.gov.cn/dataserver?t=img_w&x={x}&y={y}&l={z}&tk={tk},可根据范围、层级等参数下载影像底图瓦片.
- 谷歌地图:可通过非官方搭建瓦片服务下载,如https://bgn1.gpstool.com/maps/vt?lyrs=s&v=982&gl=cn&x={x}&y={y}&z={z},但需注意其地址可能变更.
- MapTileGenerator:项目地址为https://gitcode.com/gh_mirrors/ma/MapTileGenerator,支持TMS、WMTS标准瓦片下载及百度、高德等地图瓦片下载.
地形数据
- OpenTopography:网址http://www.opentopography.org,提供高空间分辨率地形数据及操作工具,可下载LiDAR数据等.
- USGS Earth Explorer:网址https://earthexplorer.usgs.gov/,能找到卫星影像、地形高程等多种数据.
- ETOPO:由美国地球物理中心打造,涵盖陆地和海底地形数据.
- SRTM15:数据集分辨率为15弧秒,精度达0.5公里,兼顾陆地和海洋深度.
- GMTED:是USGS与NGA合作成果,精度为250米,对GTOPO30的升级版本.
倾斜模型
- 倾斜摄影数据下载仓库:项目地址https://gitcode.com/open-source-toolkit/49b96,提供约2GB的倾斜摄影数据,适用于多领域.
- 四维轻云:地理空间数据云管理平台,可在线预览和管理倾斜摄影模型、正射影像和激光点云等数据.
- LocaSpace Viewer:网址https://m.onlinedown.net/soft/10009088.htm,支持倾斜摄影三维模型格式如*.osgb、*.dae等的浏览.
QGS 应用
QGIS软件格式转换:
矢量数据格式
- Shapefile(.shp):可与MapInfo Tab格式相互转换,通过“添加矢量图层”加载数据后,选择“另存为”来转换.
- GeoJSON(.geojson):能和Shapefile等格式转换,导入GeoJSON文件后,使用“另存为”功能可保存为其他支持的矢量格式.
- KML / KMZ(.kml、.kmz):可与其他矢量格式互转,QGIS支持读取KML、KMZ文件并转换为如Shapefile等格式,反之亦然.
- GPX(.gpx):能转换为Shapefile等格式,导入GPX文件后,借助“另存为”操作实现格式转换.
栅格数据格式
- GeoTIFF(.tif):可与其他栅格格式或矢量格式相互转换,如将其转换为JPEG格式的图片,或依据其生成Shapefile格式的矢量数据.
- JPEG(.jpg):能转换为GeoTIFF等格式,在QGIS中打开JPEG图像后,通过“另存为”并选择相应格式来转换.
数据库格式
- PostGIS:QGIS可连接PostGIS数据库,将其中的数据转换为如Shapefile等格式输出,也可将其他格式数据导入到PostGIS数据库.
- Spatialite:可与Shapefile等矢量数据格式相互转换,QGIS能读取Spatialite数据库中的数据并另存为其他格式,也可将数据导入到Spatialite数据库.
更改图层样式
- 在QGIS项目内更改:在QGIS中打开工程并加载图层后,可直接双击图层打开“属性”对话框,切换到“符号系统”页面进行样式设置,如对矢量图层可选择渐变渲染等方式,并按需调整参数,调整完毕后点击“应用”即可查看效果,最后点击“样式”下的“保存样式”可将其保存下来供后续使用.
- 结合GeoServer更改:先在QGIS中打开矢量或栅格数据集,进入图层“属性”的“符号系统”页面设置好样式并以SLD格式保存样式文件。然后登录GeoServer,在“样式”部分点击“添加新样式”,上传之前导出的SLD文件,验证无误后点击“保存”。最后在GeoServer的“图层”页面找到相应图层,进入“发布”页面,将样式设置为默认样式并保存,即可在图层预览中查看更改后的样式.
更改图层范围
- 手动编辑顶点:将需要修改的图层添加进QGIS后,选中图层并右键选择“切换编辑模式”,再点击工具栏中的“顶点工具”,将鼠标移到需修改的多边形上,选中顶点后右键拖拽即可修改范围,若修改位置无顶点,可选中线上的“x号”再右键拖拽来改变范围.
- 使用裁剪工具:例如要按特定区域裁剪路网数据,先准备好裁剪范围的数据,如湖南省的shp数据。然后打开QGIS的矢量叠加分析工具中的“裁剪”按钮,在弹出窗口中依次选择输入图层、叠加图层及裁剪结果图层的保存位置,点击“保存”和“运行”按钮执行裁切操作,即可得到按指定范围裁剪后的图层.
导出为不同分辨率图片
- 点击菜单栏的【Projects】-【Import/Export】-【Export Map to Image】,打开导出图片界面。
- 在导出图片界面的“分辨率”部分,通过输入不同的DPI值来设置所需的分辨率,DPI即每英寸点数,数值越大,分辨率越高,图片越清晰。
- 在“出图范围”中选择合适的界定方式,如按照工程文件坐标系四至范围、根据图层范围、以布局中地图范围、以书签范围导出、以当前地图区域显示窗口为界或画一个临时窗口为界等。
- 在QGIS状态栏调整比例尺,或直接缩放地图窗口至合适的尺度,再拾取到【出图设置】中,以确保导出的图片比例符合预期。
- 点击“输出图片的图片高宽值”旁的箭头,选择合适的图片格式,QGIS支持jpg、png等多种主流格式,然后点击“保存”即可导出不同分辨率的地图图片 。
导出矢量文件
直接保存图层
在图层列表中找到需要导出的矢量图层,右键点击该图层,选择“另存为”,在弹出的“另存为”对话框中,选择要保存的矢量文件格式,如Shapefile、GeoJSON、KML等,还可以设置文件的编码和坐标参考系统等参数,最后点击“确定”即可.
通过打印布局导出
先选择菜单栏的“工程”,点击“新建打印布局”,为新建的布局命名后会弹出新界面,点击“添加地图”,将地图添加到布局中。还可以根据需要添加指北针、比例尺等组件,调整好布局后,点击菜单栏“布局”中的“导出为图像”,在弹出的对话框中选择“SVG”格式进行导出,SVG是一种矢量图形格式.
使用插件导出
安装mapflow插件后,在菜单栏上点击插件按钮启动,输入申请到的key登录插件,在设置界面中设置相关参数,如项目名称、使用的模型、处理的范围、影像的来源等,点击“开始处理”按钮,插件会自动识别并生成矢量数据,最后可将其导出.
tiff 图片前端处理方式
- 使用JavaScript库 - Tiff.js
- 安装与引入:
- 首先,你可以通过npm安装Tiff.js(
npm install tiff.js
),或者在HTML文件中直接引入在线版本(<script src="https://unpkg.com/tiff.js@0.4.0/dist/tiff.min.js"></script>
)。
- 首先,你可以通过npm安装Tiff.js(
- 加载并显示TIFF图像:
- 假设你有一个TIFF图像文件(例如
image.tif
),你可以使用以下代码加载并显示它。
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF - 8"><title>TIFF Image Processing</title><script src="https://unpkg.com/tiff.js@0.4.0/dist/tiff.min.js"></script> </head> <body><canvas id="tiffCanvas"></canvas><script>// 创建一个XMLHttpRequest对象来加载TIFF文件var xhr = new XMLHttpRequest();xhr.open('GET', 'image.tif', true);xhr.responseType = 'arraybuffer';xhr.onload = function (e) {if (this.status === 200) {// 将加载的数组缓冲区数据传递给Tiff.js的Tiff构造函数var tiff = new Tiff({ buffer: this.response });var canvas = document.getElementById('tiffCanvas');var ctx = canvas.getContext('2d');// 获取TIFF图像的第一页(如果有多个页面)var imgData = tiff.getImageData();canvas.width = imgData.width;canvas.height = imgData.height;// 将图像数据绘制到Canvas上ctx.putImageData(imgData, 0, 0);}};xhr.send();</script> </body> </html>
- 在这个例子中,首先使用
XMLHttpRequest
对象以arraybuffer
类型加载TIFF文件。然后,通过Tiff
构造函数创建一个Tiff
对象,使用getImageData
方法获取图像数据,设置canvas
的大小,并将图像数据绘制到canvas
上。
- 假设你有一个TIFF图像文件(例如
- 安装与引入:
- 使用HTML5 Canvas进行简单处理(假设已经将TIFF转换为Canvas可处理的格式)
- 图像缩放:
- 假设你已经将TIFF图像显示在一个
canvas
元素(id="tiffCanvas"
)上,以下代码可以实现图像的缩放。
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF - 8"><title>TIFF Image Scaling</title> </head> <body><canvas id="tiffCanvas"></canvas><button onclick="scaleImage(0.5)">Scale to 50%</button><script>function scaleImage(scaleFactor) {var canvas = document.getElementById('tiffCanvas');var ctx = canvas.getContext('2d');var newWidth = canvas.width * scaleFactor;var newHeight = canvas.height * scaleFactor;var scaledCanvas = document.createElement('canvas');scaledCanvas.width = newWidth;scaledCanvas.height = newHeight;var scaledCtx = scaledCanvas.getContext('2d');scaledCtx.drawImage(canvas, 0, 0, newWidth, newHeight);canvas.width = newWidth;canvas.height = newHeight;ctx.drawImage(scaledCanvas, 0, 0);}</script> </body> </html>
- 当点击
Scale to 50%
按钮时,scaleImage
函数会被调用。它首先计算缩放后的宽度和高度,创建一个新的canvas
用于绘制缩放后的图像,然后使用drawImage
方法将原始图像绘制到新canvas
上进行缩放,最后将缩放后的图像更新到原始canvas
中。
- 假设你已经将TIFF图像显示在一个
- 图像裁剪:
- 以下代码可以实现对已经显示在
canvas
(id="tiffCanvas"
)上的图像进行裁剪。
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF - 8"><title>TIFF Image Cropping</title> </head> <body><canvas id="tiffCanvas"></canvas><button onclick="cropImage(50, 50, 200, 200)">Crop Image</button><script>function cropImage(x, y, width, height) {var canvas = document.getElementById('tiffCanvas');var ctx = canvas.getContext('2d');var croppedCanvas = document.createElement('canvas');croppedCanvas.width = width;croppedCanvas.height = height;var croppedCtx = croppedCanvas.getContext('2d');croppedCtx.drawImage(canvas, x, y, width, height);canvas.width = width;canvas.height = height;ctx.drawImage(croppedCanvas, 0, 0);}</script> </body> </html>
- 当点击
Crop Image
按钮时,cropImage
函数会被调用。它根据传入的坐标(x
和y
)以及宽度和高度创建一个新的canvas
用于绘制裁剪后的图像,使用drawImage
方法将原始图像的指定部分绘制到新canvas
上,最后将裁剪后的图像更新到原始canvas
中。
- 以下代码可以实现对已经显示在
- 图像缩放:
相关文章:
GIS 文件格式 及 常规应用总结
文章目录 GIS 中常见的文件格式 以及 再次打开注意事项资源网站应用地图瓦片数据地形数据倾斜模型 QGS 应用矢量数据格式栅格数据格式数据库格式更改图层样式更改图层范围导出为不同分辨率图片导出矢量文件直接保存图层通过打印布局导出使用插件导出 tiff 图片前端处理方式 GIS…...
《Pytorch框架CV开发-从入门到实战》
目录 1.环境部署2.自动梯度计算张量 tensor3.线性回归4.逻辑回归6.人工神经网络的基本概念6.1 感知器6.2 激活函数6.3多层感知器6.4 反向传播算法——前向传播6.5 反向传播算法——反向传播6.6 反向传播算法——训练方法7.Pytorch基础数据集8.手写数字识别人工神经网络训练8.1 …...
element-ui的el-select多选同时获取label与value值
直接上代码: <!DOCTYPE html> <html><head><meta charset"utf-8"><!-- 引入 Element UI 的 CSS --><link rel"stylesheet" href"https://unpkg.com/element-ui/lib/theme-chalk/index.css"><…...
跨站请求伪造之基本介绍
一.基本概念 1.定义 跨站请求伪造(Cross - Site Request Forgery,缩写为 CSRF)漏洞是一种网络安全漏洞。它是指攻击者通过诱导用户访问一个恶意网站,利用用户在被信任网站(如银行网站、社交网站等)的登录状…...
干部大数据分析系统如何助力构建选人用人的逻辑框架
在当今信息化快速发展的时代,干部大数据分析系统作为一种创新的管理工具,正在逐步改变传统的选人用人方式。这一系统融合了大数据、人工智能等现代信息技术,为组织部门提供了一个强大的辅助决策工具,有助于构建更加科学、准确和公…...
今天最新早上好问候语精选大全,每天问候,相互牵挂,彼此祝福
1、朋友相伴,友谊真诚永不变!彼此扶持绿树荫,共度快乐雨后天!一同分享的表情,愿我们友情长存,一生相伴永相连! 2、人生几十年,苦累伴酸甜,风华不再茂,雄心非当…...
Android开发环境搭建和编译系统
1 工具使用 1.1 将dos格式的文件转换为unix格式文件 直接执行 dos2unix file 例如: dos2unix InotifyMon/AndroidManifest.xml 1.2 Linux Shell FTP使用 ftp <IP addr> 输入ID和password prompt off // 下载文件到本地 mget * 1.3 Linux sed 1.3.1 Linux命令之…...
autMan奥特曼机器人-autMan的PHP环境
直装版请自行安装php环境。 docker版本预置了php环境,如下图: 如果使用插件"test php"测试环境时,实时日志有报错如下: 可进入终端,输入两条命令 apk add curl apk add php-curl...
路径规划之启发式算法之二十:麻雀搜索算法(Sparrow Search Algorithm,SSA)
麻雀搜索算法(Sparrow Search Algorithm,SSA)是一种受麻雀觅食和反捕食行为启发的新型的群智能优化算法,它模拟了麻雀种群的觅食行为和反捕食行为的生物学群体特征。该算法由薛建凯在2020年首次提出,旨在解决全局优化问题,具有求解精度高、效率高等特点。 一、算法原理 S…...
Vue+element 回车查询页面刷新
问题描述: form 表单出查询条件需要实现 input 输入完成后键盘回车查询:keyup.enter“handleQuery”,如果 form 里只有一个input,回车没有触发事件,而是刷新页面,放两个input就没问题 问题原因࿱…...
为何页面搜索应避免左模糊和全模糊查询???
前言 在构建高效且可扩展的Web应用程序时,数据库查询的性能是影响用户体验的关键因素之一。特别是对于涉及大量数据的页面搜索功能,选择正确的查询方式不仅可以提升应用的速度,还能显著改善用户交互体验。 B-Tree索引与最左前缀匹配特性 1…...
源码分析之Openlayers中ZoomSlider滑块缩放控件
概述 ZoomSlider滑块缩放控件就是Zoom缩放控件的异形体,通过滑块的拖动或者点击滑槽,实现地图的缩放;另外其他方式控制地图缩放时,也会引起滑块在滑槽中的位置改变;即ZoomSlider滑块缩放控件会监听地图的缩放级别&…...
Cherno C++学习笔记 P46 箭头运算符
这一篇文章我们讲一下箭头运算符的使用。在之前的一些场景下,我们已经使用到了箭头运算符,这次我们可以更深入的聊一下箭头运算符应该如何使用,以及我们如何实现自己的箭头指针。 我们还是以一个最简单的Entity类举例: class En…...
项目转换微服务架构
文章目录 1.sun-dependencies引入SpringCloud的版本2. 创建sun-cloud-home微服务1.创建maven项目2.目录概览3.pom.xml4.application.yml5.application-prod.yml6.HomeApplicaion.java7.HomeController.java8.测试访问9.打包测试 3.创建sun-cloud-sku微服务1.磁盘将这个sun-clou…...
WebRTC搭建与应用(五)-Coturn踩坑记
WebRTC搭建与应用(五)-Coturn踩坑记 近期由于项目需要在研究前端WebGL渲染转为云渲染,借此机会对WebRTC等有了初步了解,在此记录一下,以防遗忘。 第五章 WebRTC搭建与应用(五)-Coturn踩坑记 文章目录 WebRTC搭建与应用(五)-Coturn踩坑记前…...
Uniapp 手机基座调试App 打包成Apk文件,并上传到应用商店
1.Uniapp手机基座调试App。 1.1 以下是我另一篇文章 讲解 uniapp连接手机基座调试App、 Hbuildx使用SUB运行到手机基座测试_hbuilder基座-CSDN博客 2.打包本地的uniapp项目为apk文件。 打包的方式有很多种,我们可以选择本地打包和远程云端打包两种方式。 我们在打包…...
【AI日记】24.12.24 kaggle 比赛 2-12
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加:kaggle 比赛 Regression with an Insurance Dataset时间:3 小时 读书 书名:我们能做什么 : 胡适与中国青年最真诚的分享时间:2 小时 律己 工作时…...
教师如何打造专属私密成绩查询系统?
期末的校园,被一种特殊的氛围所笼罩。老师们如同辛勤的工匠,精心打磨着每一个教学环节。复习阶段,他们在知识的宝库中精挑细选,把一学期的重点内容一一梳理,为学生们打造出系统的复习框架。课堂上,他们激情…...
【linux】NFS实验
NFS服务 NFS是Network File System(网络文件系统)的缩写。它是一种用于在计算机网络中共享文件和目录的协议。NFS允许计算机上的用户访问和操作远程计算机上的文件,就像访问本地文件一样。它使用客户端-服务端模型,其中客户端机器…...
ubuntu22.04安装PaddleX3
PaddleOCR 安装过程可以参考PaddleX本地安装教程 我的电脑环境配置: ubuntu22.04 cuda11.8(之前安装的是12.4没有匹配的paddle-gpu;这里改成11.8) 一、安装基础环境 1、 conda create -n ppx1 python3.10 2、 conda activate ppx1 3、…...
无标记动作捕捉系统如何赋能体育运动分析,推动体育科学发展?
随着技术的不断发展与社会的需要,健康、科学运动成为了大众关注的一个热词。在韩国首尔的中央大学,其生物运动临床康复实验室和运动训练中心就致力于通过生物力学分析来研究与运动相关的伤害,并通过定制科学的训练计划来帮助运动员改进他们的…...
JavaScript 标准内置对象——Array
1、构造函数 2、静态方法 // 从可迭代或类数组对象创建一个新的浅拷贝的数组实例 // arrayLike 想要转换成数组的类数组或可迭代对象 Array.from(arrayLike, mapFn, thisArg) Array.fromAsync(arrayLike, mapFn, thisArg) // 异步Array.isArray(value) // 判断传递的值是否是一…...
Python超能力:高级技巧让你的代码飞起来
文章一览 前言一、with1.1 基本用法1.2 示例自定义上下文管理器 二、条件表达式三、列表式推导式与 zip 结合 四、map() 函数(内置函数)map用于数据清洗1. 数据清洗:字母大小写规范2. filter() 函数 五、匿名函数 lambda5.1 lambda的参数&…...
move生态
move生态 Move 生态主要围绕着 Move 编程语言及其相关的区块链平台构建,这些平台旨在提供更高的安全性、可扩展性和开发者友好性。以下是关于 Move 生态的一些关键点: 1. 核心区块链平台 Aptos:Aptos 是一个 Layer 1 区块链,专注…...
使用插件时要注意
在使用插件时,需要注意一些关键事项,确保插件能够稳定、安全地工作,并且不会给系统带来风险或负担。以下是使用插件时需要注意的几个重要方面: 1. 插件来源与信任度 官方渠道与可靠来源:总是选择来自官方网站、知名平…...
JVM对象分配内存如何保证线程安全?
大家好,我是锋哥。今天分享关于【JVM对象分配内存如何保证线程安全?】面试题。希望对大家有帮助; JVM对象分配内存如何保证线程安全? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在JVM中,对象的内存分配…...
ApacheStruts2 目录遍历与文件上传漏洞复现(CVE-2024-53677,S2-067)(附脚本)
0x01 产品描述: Apache Struts 2 是一个用于JAVA的MVC框架,它用于快速开发web应用。它的设计目标是使得开发者能够更容易的处理web应用的展现层,数据层,和业务层。0x02 漏洞描述: CVE-2024-53677 漏洞的根本原因是 Struts 框架中不安全的文件上传处理机制。攻击者利用 CVE…...
Scala字符串连接方法—mkString—用法详解
Scala字符串连接方法—mkString—用法详解 在 Scala 中,mkString 是集合(如数组、列表、字符串等)的一种方法,用于将集合中的元素连接成一个字符串。 def mkString(sep: String): Stringdef mkString(start: String, sep: String…...
[实战]Spring Boot启动卡在Root WebApplicationContext initialization completed in
Spring Boot启动 打印Root WebApplicationContext: initialization completed in…这行日志完成后需要等很长时间才能真正启动完成。 分析一下发现是连接某个机器的MySQL就会出现这种情况。使用客户端软件连接MySQL时也很慢,但连接完成后执行MySQL各种语句非常看。…...
什么样的LabVIEW控制算自动控制?
自动控制是指系统通过预先设计的算法和逻辑,在无人工干预的情况下对被控对象的状态进行实时监测、决策和调整,达到预期目标的过程。LabVIEW作为一种图形化编程工具,非常适合开发自动控制系统。那么,什么样的LabVIEW控制算作“自动…...
xshell下载和安装(超详细)
参考:https://blog.csdn.net/hffh123/article/details/135885175 一、xshell官网下载 下载官网:https://www.xshell.com/zh/free-for-home-school/ 二、安装步骤 (一)、直接打开.exe文件 (二)、点击下一步ÿ…...
NS3学习——tcpVegas算法代码详解(2)
NS3学习——tcpVegas算法代码详解(1)-CSDN博客 目录 4.TcpVegas类中成员函数 (5) CongestionStateSet函数 (6) IncreaseWindow函数 1.检查是否启用 Vgas 2.判断是否完成了一个“Vegas 周期” 2.1--if:判断RTT样本数量是否足够 2.2--e…...
PyTorch 神经网络回归(Regression)任务:关系拟合与优化过程
PyTorch 神经网络回归(Regression)任务:关系拟合与优化过程 本教程介绍了如何使用 PyTorch 构建一个简单的神经网络来实现关系拟合,具体演示了从数据准备到模型训练和可视化的完整过程。首先,利用一维线性空间生成带噪…...
链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 场景
在 12 月 4 日,链原生的 Web3 AI 数据网络 Chainbase 正式启动了 Chainbase AVS 主网,同时发布了首批 20 个 AVS 节点运营商名单。Chainbase AVS 是 EigenLayer AVS 中首个以数据智能为应用导向的主网 AVS,其采用四层网络架构,其中…...
es 3期 第18节-分页查询使用避坑的一些事
#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性ÿ…...
linux检测硬盘
通过fdisk 查看显示所有磁盘或闪存的信息 fdisk -l /dev/sd*使用 badlocks检查 linux 硬盘上的坏道/坏块。也可以修复坏道,但仅限于逻辑坏道,物理坏道只能更换硬盘 badblocks -s -v /dev/vdb1 > /badblocks-vdb1.txt tail -f badblocks-vdb1.txt #检…...
Unity3d 基于UGUI和VideoPlayer 实现一个多功能视频播放器功能(含源码)
前言 随着Unity3d引擎在数字沙盘、智慧工厂、数字孪生等场景的广泛应用,视频已成为系统程序中展示时,不可或缺的一部分。在 Unity3d 中,我们可以通过强大的 VideoPlayer 组件和灵活的 UGUI 系统,将视频播放功能无缝集成到用户界面…...
Ubuntu22.04 LTS 安装nvidia显卡驱动
准备跑老师给定的Github上的多模态源码,但是用了这么久ubuntu还没有尝试过安装nvidia驱动,好在也是一次成功,于是记录下来。 借鉴的是Ubuntu22.04安装显卡驱动(高速、避错版)-CSDN博客这篇文章,按照流程来基本没有问题,不过个人觉得有些步骤比较冗余,所以记录下来 主要…...
Linux编程(清华大学出版社2019年1月第1版)第5章课后作业
5.1 对于执行在时间上有重叠的逻辑流,称为并发流,并发流是并发的 并发不并发并发 5.2 几个箭头几个状态转换关系,箭头上写了可能原因。 在就绪状态不会执行指令,不会有IO请求或主动wait的情况,不会有从就绪状态到阻…...
相机雷达外参标定综述“Automatic targetless LiDAR–camera calibration: a survey“
相机雷达外参标定综述--Automatic targetless LiDAR–camera calibration: a survey 前言1 Introduction2 Background3 Automatic targetless LiDAR–camera calibration3.1 Information theory based method(信息论方法)3.1.1 Pairs of point cloud and image attributes(属性…...
JSON 系列之1:将 JSON 数据存储在 Oracle 数据库中
本文为Oracle数据库JSON学习系列的第一篇,讲述如何将JSON文档存储到数据库中,包括了版本为19c和23ai的情形。 19c中的JSON 先来看一下数据库版本为19c时的情形。 创建表colortab,其中color列的长度设为4000。若color的长度需要设为32767&a…...
分布式专题(10)之ShardingSphere分库分表实战指南
一、ShardingSphere产品介绍 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在…...
支付宝订单码支付
1.订单码支付,首先下载官方网站提供的sdk包到你的项目中。 2.选择控制器复制官方文档的获取二维码相关的代码示例。打开sdk包中v2的index.php文件,这个才是你选择语言的具体代码。 3.引用里面所需要的类文件,文件下载到你的项目中后…...
使用 Django 和 AWS ECR 实现容器化应用的管理
在现代云原生应用的开发和部署中,容器化技术已经成为主流。Amazon Elastic Container Registry (ECR) 是一种完全管理的 Docker 容器注册表服务,可以与 Amazon ECS、EKS 和其他容器服务无缝集成。在这篇文章中,我们将介绍如何使用 Django 和 AWS ECR 实现集成管理,包括创建、更…...
DeepWalk 原理详解
概述: DeepWalk 是一种流行的图嵌入方法,用于学习图结构数据中节点的低维表示。它通过将图的节点视作序列数据,利用自然语言处理中的技术(类似于word2vec算法)来捕捉节点间的关系,可以帮助我们理解和利用图…...
深入理解批量归一化(BN):原理、缺陷与跨小批量归一化(CmBN)
在训练深度神经网络时,批量归一化(Batch Normalization,简称BN)是一种常用且有效的技术,它帮助解决了深度学习中训练过程中的梯度消失、梯度爆炸和训练不稳定等。然而,BN也有一些局限性,特别是在…...
基于Spring Boot的雅苑小区管理系统
一、系统背景与意义 随着信息化技术的快速发展,传统的小区物业管理方式已经难以满足现代居民对于高效、便捷服务的需求。因此,开发一款基于Spring Boot的小区管理系统显得尤为重要。该系统旨在通过信息化手段,实现小区物业管理的智能化、自动…...
物理层知识要点
文章目录 物理层接口的四大特性通信基础编码和调制(1)数字数据编码为数字信号(2)模拟数据编码为数字信号(3)常见调制方式(3)信道的极限容量 多路复用技术数据传输方式物理层下的传输…...
项目里用到了哪些设计模式是怎么使用的?
在软件开发项目中,设计模式是解决特定问题的通用模板或最佳实践。它们提供了一种经过验证的方式来组织代码,使其更易于理解、维护和扩展。下面我将详细介绍一些常见的设计模式及其在项目中的应用方式。 1. 单例模式(Singleton Pattern&#…...
CPU性能篇-CPU 100%如何定位根因-Day 03
1. CPU使用率 1.1 关键指标介绍 user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 guest 时间。nice(通常缩写为 ni),代表低优先级用户态 CPU 时…...