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

GIS原理及应用、地理坐标系与投影坐标系

文章目录

  • 一、GIS定义
        • 1.1 地理信息系统
        • 1.2 建模
        • 1.3 相关教程
        • 1.4 GIS前沿方向
  • 二、GIS数据格式
        • 2.1 矢量
        • 2.2 栅格
        • 2.3 矢量与栅格的区别
  • 三、GIS数据组织
        • 3.1 抽象
        • 3.2 分层
        • 3.3 栅格与切片
  • 四、坐标系
        • 4.1 坐标系简介
        • 4.2 大地坐标系GCS
        • 4.3 投影坐标系PCS
        • 4.4 投影变换
  • 五、空间数据库与空间数据索引
        • 5.1 空间索引
  • 六、经验之谈
  • 附录


一、GIS定义

1.1 地理信息系统

1.1.1 简称GIS(Geographic Information System)。GIS四层模型如下。

  • 表现层:直观展示地理数据,如数值化地图。
  • 应用层:集合了对地理要素进行编辑、查询、分析的软件应用平台。
  • 服务层:提供接口API,面向开发用户和最终用户提供数据处理、数据分析和发布服务。
  • 数据层:体现了GIS的数据结构以及存储方式。

1.1.2 数据层
GIS数据库层,具备存储空间数据以及索引空间数据的能力。对应有文件型的ShapeFile、GeoJSON,ArcGIS的GeoDatabase,QGIS的GeoPackage,以及空间数据格式通过SDE-空间数据引擎架设到PostGIS/MySQL/Oracle上的相关数据等,通过空间数据引擎可以索引相关的数据。

1.1.3 服务层
服务层,提供接口API让二次开发人员、用户调用。如ArcGIS Server、QGIS Server、GeoServer等。

1.1.4 应用层
一些列GIS特有的功能和应用:空间数据加载、显示、编辑、查询、分析、处理和转换等。如ArcGIS Pro(ArcMap/ArcCatalog/ArcToolbox)、QGIS Desktop等。

1.1.5 表示层
如数字地图、行政区划图、专题图等。

1.2 建模

在这里插入图片描述
1.2.1 以排水行业为例进行说明,如下建模步骤。

  • 抽象:将检查井抽象为点,管线抽象为线,泵站从整个管网研究尺度上抽象为点,再加上出水口等其他设施,将排水管网相关设施完成空间概化。
  • 分层:虽然检查井和泵站都概化为点,但是由于各自管网模型中有不同角色和功用,且具有不同属性特征,故将其分为两类不同的要素,显示为不同的图层。
  • 建模:构建排水管道专业模型-SWMM。GIS应用如下:
    • 流域分析(坡度分析),划分汇水区;
    • 网络分析,构建节点与管道的连接关系;
    • 叠加分析、提取高程信息。
      在这里插入图片描述
1.3 相关教程

https://www.osgeo.cn/gis-tutorial/index.html
https://www.osgeo.cn/tutorial/
https://huzu.likegis.com/main/general/gis

1.4 GIS前沿方向

在这里插入图片描述


二、GIS数据格式

2.1 矢量

2.1.1 矢量数据就是代表地图图形的各离散点平面坐标 (x,y)的有序集合,主要用于表示地图图形元素几何数据之间及其属性数据之间的相互关系,并通过坐标的方式来记录点、线、面地理实体。

  • 有序坐标集合(方向性);
  • 空间与属性关联;
  • 坐标记录,点(0维)、线(1维)、面(2维);

面的方向性:采用梯形法计算平面上任意三角形的面积,顺时针方向,如果采用终点的X-起点的X,那么面积为正;反之为负,如下:

2 S A B C = ( y A + y B ) ∗ ( x B − x A ) + ( y B + y C ) ∗ ( x C − x B ) + ( y C + y A ) ∗ ( x A − x C ) S_{ABC}=(y_A+y_B)*(x_B-x_A) +(y_B+y_C)*(x_C-x_B) + (y_C+y_A)*(x_A-x_C) SABC=(yA+yB)(xBxA)+(yB+yC)(xCxB)+(yC+yA)(xAxC)
= y A x B + y B x C + y C x A − y B x A − y C x B − y A x C =y_Ax_B+y_Bx_C+y_Cx_A-y_Bx_A-y_Cx_B-y_Ax_C =yAxB+yBxC+yCxAyBxAyCxByAxC

2.1.1 可以采用GeoJSON、shp等格式存储;

2.2 栅格

2.2.1 栅格数据结构上就是像元的阵列,即像元按矩阵形式的集合,栅格中每个像元是栅格数据中最基本的信息存储单元,其坐标位置可以用行号和列号确定。

2.3 矢量与栅格的区别
  • 连续性与离散性:栅格数据表示的地表是不连续的,是量化和近似离散的数据,这意味着地表一定面积内(像元地面分辨率范围内)地理数据的近似性。矢量数据其坐标空间为连续空间,不必像栅格数据结构那样进行量化处理,因此矢量数据更能精确地确定实体的空间位置。
  • 属性值与像元值:矢量数据一般是现实世界实体的图形化抽象,因此其关联的属性数据为对应的抽象实体的属性信息;栅格数据的属性值一般对应波段的像元值;
  • 图形学中的矢量数据,如svg,而GIS中的矢量数据可近似理解为图形学矢量数据+属性信息+投影信息;图形学中的栅格数据,如BMP,而GIS中的栅格数据可近似理解为图形学栅格数据+投影信息。

三、GIS数据组织

3.1 抽象

3.1.1 空间层面,根据研究尺度和应用需求按实际事务抽象为点、线、面要素。

3.1.2 属性层面,数据结构设计,抽象要素(Feature)的属性;

3.2 分层

3.2.1 图层(矢量图层Vector Layer)(FeatureLayer):将具有同类特征的要素(Feature)归为一个要素类(FeatureClass),通过一定的配置(标注、渲染符号等)渲染到地图。

3.2.2 图层的组成与分解

  • 矢量图层(FeatureLayer)
    • 数据源要素类(FeatureClass)
      • 元数据字段结构Field;
      • 数据表要素Feature
    • 图层装饰
      • 图层标注Label
      • 数据时态Timing
      • 符号渲染Symbology
      • 提示框Tooltip
      • 数据过滤Filter
      • 数据关联

3.2.3 矢量图层数据源格式主要有:

  • ESRI ShapeFile(.shp)标准格式;
  • GeoJON常见于WebGIS数据交换;
  • ESRI GeoDatabase
  • QGIS GeoPackage
3.3 栅格与切片

3.3.1 遥感影像
空间分辨率(Spatial Resolution)又称地面分辨率;

  • 后者是针对地面而言,指可以识别的最小地面距离或最小目标物大小;
  • 前者是针对遥感器或者图像而言的,指图像上能够详细区分的最小单元的尺寸或大小;

卫星遥感图像的计量单位为景,即一景指卫星拍摄一次所成像的画面,一景的范围一般在几千至上万平方公里。

3.3.2 栅格数据除了常见的遥感影像,还有一类叫数字地形模型DTM,其中一个分支就是DEM数字高程模型。

  • 数字高程模型DEM:
    • 线表示:等高线;
    • 点表示
      • 侠义的DEM,如规则网格Grid
      • 不规则三角网TIN;

3.3.3 切片

地图切片(地图瓦片),瓦片数据是将矢量数据或影像数据进行预处理,采用高效的缓存机制(如金字塔)形成缓存图片集,采用“级、行、列”方式进行组织,可在网页中快速加载。

3.3.4 地图切片

  • 切片原点:左上角、中点;

    • 大部分切片算法是采用左上角为切片原点,如天地图、高德地图、谷歌地图等。切片原点定义了第一个256*256的切片的位置。
  • 切片分辨率(比例尺)

    • 切片分辨率和比例尺是一一对应的。比例尺是指地图上一个单位代表实际多少距离,而分辨率代表屏幕上一个像素代表实际多少距离,因此,当确定一个后,对应的另一个也就确定了。
  • 单个切片像素大小:一般采用256*256px;


四、坐标系

4.1 坐标系简介

4.1.1 EPSG,即European Petroleum Survey Group,欧洲石油调查组织,它为每个坐标系都分配了一个介于1024~32767的数字代码。

4.1.2 Web Mercator,EPSG:3857,即Web墨卡托投影,投影后整幅世界地图成正方形。不同的坐标投影出来的地图形状各异。
在这里插入图片描述

4.1.3 不同的坐标系有不同的特点,有些投影能保持角度不变,但距离和面积上会有偏差,比如纬度越高的地方偏差越大。

4.2 大地坐标系GCS

4.2.1 大地坐标系。也称地理坐标系(GCS)。

4.2.2 大地水准面:假定海水处于“完全”静止状态,把海水面延伸到大陆上去,形成包围整个地球的连续表面。
4.2.3 地球椭球面:凡与局部地区(一个或几个国家)的大地水准面符合的最好的旋转椭球,称为“参考椭球”。
在这里插入图片描述

4.2.4 地心坐标系与参心坐标系

  • 地心坐标系:选用地球质心作为椭球中心,从拟合全球曲面的角度出发来建立空间坐标系,适用于全球,如WGS84、CGCS2000。
  • 参心坐标系:从拟合局部区域的角度出发来建立空间坐标系,选用最贴合局部地区曲面的椭球中心,适用于地方,如西安80、北京54。
    在这里插入图片描述

4.2.5 地球椭球面(Datum)

  • 椭球体参数
    • 长半轴a
    • 短半轴b
    • 扁率alpha
      a l p h a = ( a − b ) a alpha = \frac{(a-b)}{a} alpha=a(ab)
    • 第一偏心率e
      e = a 2 − b 2 a 2 e=\sqrt{\frac{a^2-b^2}{a^2}} e=a2a2b2
    • 第二偏心率e‘
      e ′ = a 2 − b 2 b 2 e'=\sqrt{\frac{a^2-b^2}{b^2}} e=b2a2b2
      在这里插入图片描述
      WGS84椭球体的参数为:a=6378137,alpha= 1 298.257223563 \frac{1}{298.257223563} 298.2572235631,CGCS2000椭球体的参数为:a=6378137,alpha= 1 298.257222101 \frac{1}{298.257222101} 298.2572221011,根据参数a、alpha就可计算其他参数。

4.2.6 大地坐标系,有两种表示法,分别为采用大地坐标经纬高:(L,B,H)和空间直角坐标系:(X,Y,Z)来表示。
在这里插入图片描述

  • P点向球体做法线,可知(X,Y,Z)与(L,B,H)之间的关系,由于是椭球体,长半轴与短半轴不同,因此法线的延长线与空间直角坐标系不会相交于原点(球心)。

  • 在不考虑小数精度的情况下,此二者转换不会丢失精度。

  • 在地球表面时,H为0;

  • 零纬度线称为赤道;

  • 零经度线称为本初子午线。对于绝大多数地理坐标系,本初子午线是指通过英国格林尼治的经线;

  • 经纬网的原点(0,0)定义在赤道和本初子午线的交点处。

4.3 投影坐标系PCS

4.3.1 投影坐标系=大地坐标系+投影方法(投影函数或映射函数);

  • 平面坐标(X,Y)= F(L,B),F为函数映射,L为经度、B为维度;
    在这里插入图片描述
    为了便于理解几何透视原理,想象地球是一个表面透明的球体,其上绘有经纬网,用一张巨大的纸(称为投影曲面)包裹地球,假设有一个位于地心处的光源穿过地球将经纬网投影到这张上,然后将其展开就可以得到一张地图。

4.3.2 投影坐标系是建立在一种大地坐标系之上的

4.3.3 投影坐标系分类

  • 按照变形性质分为:等角投影、等距、等积投影等;
  • 按照地球与投影面的相对位置称为:横轴、正轴、斜轴投影;
  • 按照投影面分为:圆柱、圆锥、平面投影等;
    在这里插入图片描述

4.3.4 Web Mercator(EPSG:3857)墨卡托投影

  • 大地坐标GCS为:WGS84(EPSG:4326);
  • 投影方法:采用正轴等角圆柱投影,即墨卡托投影。
    • 等角;
    • 正轴;
    • 圆柱投影面;

Web Mercator = WGS1984 + 正轴等角圆柱投影,投影结果为正方形。

投影误区:
投影并非直线照射投影到柱面上,即非简单的几何透视投影。采用反证法可以证明,已知当B约等于85.05度,投影展开为正方形,如简单的理解为透视投影,则正方形的长为赤道长度,宽为2L,有:
长 = 2 ∗ P I ∗ R ,宽 = 2 L = 2 t a n B ∗ R ,则: B = 72.343 度 长=2*PI*R,宽=2L=2tanB*R,则:B=72.343度 =2PIR,宽=2L=2tanBR,则:B=72.343
B与85.05度不相等,因此不能简单的理解为几何透视投影。
在这里插入图片描述

4.3.5 CGCS2000 Gauss-Kruger CM 117E(EPSG:4509)

  • GCS:CGCS2000(EPSG:4490)
  • 投影方法:等角横切圆柱投影,即高斯-克吕格投影;
    • 等角;
    • 横轴;
    • 圆柱投影面;

CGCS2000 Gauss-Kruger CM 117E= CGCS2000 + 高斯-克吕格投影(6度带,以东经117为中央子午线),即117度加减3度;
在这里插入图片描述

4.3.6 投影比较

Web MercatorCGCS2000 CK CM 117E
大地坐标系WGS1984CGCS2000
投影方式墨卡托(等角正轴切圆柱)高斯-克吕格(等角横轴切圆柱)
使用场景(优势)等角(航海);适用于小比例尺,全世界地图;适合Web,利于地区图切片等角(城市交通、道路交叉);适用于大比例尺,城市级别;高斯克吕格投影在长度和面积上变形很小,中央经线无变形
劣势纬度越高,变形严重;面积无参考价值;不适合大范围,全国地图涉及拼接,而每带为瓜瓣状,难以无缝拼接
4.4 投影变换

4.4.1 通过分析源代码,理解投影变换。
https://github.com/proj4js/proj4js,transform.js源代码如下。


import {D2R, R2D, PJD_3PARAM, PJD_7PARAM, PJD_GRIDSHIFT} from './constants/values';
import datum_transform from './datum_transform';
import adjust_axis from './adjust_axis';
import proj from './Proj';
import toPoint from './common/toPoint';
import checkSanity from './checkSanity';function checkNotWGS(source, dest) {return ((source.datum.datum_type === PJD_3PARAM || source.datum.datum_type === PJD_7PARAM || source.datum.datum_type === PJD_GRIDSHIFT) && dest.datumCode !== 'WGS84') ||((dest.datum.datum_type === PJD_3PARAM || dest.datum.datum_type === PJD_7PARAM || dest.datum.datum_type === PJD_GRIDSHIFT) && source.datumCode !== 'WGS84');
}export default function transform(source, dest, point, enforceAxis) {var wgs84;if (Array.isArray(point)) {point = toPoint(point);} else {// Clone the point object so inputs don't get modifiedpoint = {x: point.x,y: point.y,z: point.z,m: point.m};}var hasZ = point.z !== undefined;checkSanity(point);// Workaround for datum shifts towgs84, if either source or destination projection is not wgs84if (source.datum && dest.datum && checkNotWGS(source, dest)) {wgs84 = new proj('WGS84');point = transform(source, wgs84, point, enforceAxis);source = wgs84;}// DGR, 2010/11/12if (enforceAxis && source.axis !== 'enu') {point = adjust_axis(source, false, point);}// Transform source points to long/lat, if they aren't already.if (source.projName === 'longlat') {point = {x: point.x * D2R,y: point.y * D2R,z: point.z || 0};} else {if (source.to_meter) {point = {x: point.x * source.to_meter,y: point.y * source.to_meter,z: point.z || 0};}point = source.inverse(point); // Convert Cartesian to longlatif (!point) {return;}}// Adjust for the prime meridian if necessaryif (source.from_greenwich) {point.x += source.from_greenwich;}// Convert datums if needed, and if possible.point = datum_transform(source.datum, dest.datum, point);if (!point) {return;}// Adjust for the prime meridian if necessaryif (dest.from_greenwich) {point = {x: point.x - dest.from_greenwich,y: point.y,z: point.z || 0};}if (dest.projName === 'longlat') {// convert radians to decimal degreespoint = {x: point.x * R2D,y: point.y * R2D,z: point.z || 0};} else { // else projectpoint = dest.forward(point);if (dest.to_meter) {point = {x: point.x / dest.to_meter,y: point.y / dest.to_meter,z: point.z || 0};}}// DGR, 2010/11/12if (enforceAxis && dest.axis !== 'enu') {return adjust_axis(dest, true, point);}if (point && !hasZ) {delete point.z;}return point;
}

代码流程图如下:
在这里插入图片描述

  • 确保源坐标系或目标坐标系有一个是WGS84,若都不是,则先把目标坐标系转换为WGS84,在从WGS84转换到目标坐标系;
  • 如果源坐标是投影坐标系,则将平面坐标转换为经纬度坐标;
  • 如果源坐标系和目标坐标系椭球体(基准面)参数不一样,则需要进行椭球体参数之间的转换;这两个椭球体对应的空间直角坐标系之间,可以通过三参数或七参数转换方法来进行转换

两个不同的大地坐标下不同的投影坐标系下的转换,简化后的变换流程大致如下:
在这里插入图片描述

4.4.2 空间直角坐标系-7参数或三参数转换

在这里插入图片描述

  • 七参数转换:三个平移参数、三个旋转参数和一个缩放参数M,转换精度更高,适用于区域范围更广,控制点起码3个以上。
    在这里插入图片描述
  • 三参数转换:三个平移参数,适用范围小,最少需要一个控制点。
    在这里插入图片描述

4.4.3 Web Mercator变迁史
在这里插入图片描述

  • 别名:伪墨卡托(Pseudo Mercator)
  • WKID:3857;
  • 基准面:WGS1984;
  • 投影方法:正轴等角圆柱投影;
  • 投影范围:经度 − 18 0 。 -180^。 180~ 18 0 。 180^。 180,南北纬 85.0 5 。 85.05^。 85.05
  • 争议:采用椭球体的坐标系,却用球体的参数来投影计算;导致问题:并非等角,高纬度问题更显著。
    在这里插入图片描述

4.4.4 GCJ02简介
主要用于对在线发布的地图进行坐标的偏移,采用了GCJ02偏移算法,偏移的是经纬度,而不是平面坐标,GCJ02不应该称为坐标系,而应该称之为偏移算法,GCJ02并没有基于任何大地坐标系进行变换。


五、空间数据库与空间数据索引

5.1 空间索引

5.1.1 空间索引是指空间要素的地理位置,形状或空间对象之间的某种空间光系,按一定的顺序排列的一种数据结构,一般包括空间要素标识,外包络矩形以及指向空间要素的指针。

5.1.2 外包络矩形(Envelope)
外包络矩形是指空间要素的封装边界。
在这里插入图片描述
5.1.3 矩形范围索引
基本原理就是对空间要素的外包络矩形进行索引。在在进行空间查询时,根据空间要素外包络矩形与查询范围进行比较,判断是否有叠盖而得到查询结果。

5.1.4 单位网格索引
基本原理就是对空间要素的外包络矩形进行索引,在进行空间范围查询时,分为两级过滤(筛选)。初次过滤根据空间要素外包络矩形来过滤掉大部查询的空间要素,因为空间要素外包络矩形已被索引,所以初次过滤过程比较快,花费的代价较小。第二级过滤则用查询空间范围直接和初次过滤结果集中空间要素的二进制边界坐标比较,从而查询到准确的结果。
在这里插入图片描述
5.1.5 单位网格索引改进
采用二维格网索引+外包络矩形来进行空间索引。
在这里插入图片描述

5.1.6 R树索引

B树的空间版,根据空间位置来维护插入和删除的B树。
在这里插入图片描述

5.1.7 四叉树索引
在这里插入图片描述

5.1.8 总结
https://www.osgeo.cn/gis-tutorial/ch06-06/sec05-5.html
在这里插入图片描述

六、经验之谈

6.1 在GIS中,投影坐标系下模型顶点坐标[x,y]值的范围及数量级通常与具体的投影方法和分带有关。在中国范围内,通常采用高斯-克吕格投影,其中x坐标通常是一个较大的值,而y坐标则是一个相对较小的值。y坐标通常是7位的,而x坐标有两种情况,6位和8位。6位x坐标通常省略带号,是中央经线形式的投影坐标,而8位x坐标带有带号。

6.2 在高斯投影直角坐标中,为了避免出现负的横坐标,横坐标一般会加上500km,意味着x坐标通常是以十万(500000米)位单位的,而y坐标的最大值(在赤道上,6度带)约为330公里。

附录

https://www.bilibili.com/video/BV1Sa411V7aM?spm_id_from=333.788.videopod.sections&vd_source=d5f54bdbe1c20d376b8816eaa36c75b0

相关文章:

GIS原理及应用、地理坐标系与投影坐标系

文章目录 一、GIS定义1.1 地理信息系统1.2 建模1.3 相关教程1.4 GIS前沿方向 二、GIS数据格式2.1 矢量2.2 栅格2.3 矢量与栅格的区别 三、GIS数据组织3.1 抽象3.2 分层3.3 栅格与切片 四、坐标系4.1 坐标系简介4.2 大地坐标系GCS4.3 投影坐标系PCS4.4 投影变换 五、空间数据库与…...

用github镜像加速, --recursive还是去github站怎么处理?

小伙伴们大多碰到过github抽风的情况,时通时断,时快时慢,非常考验心情。 以前碰到连不上的时候,我大多就是在gitee和gitcode网站找一下镜像,找到后直接git clone 新地址即可。但是碰到 --recursive的时候就不行了&…...

ctfshow-web 151-170-文件上传

151. 我们首先想到就是上传一句话木马。但是看源代码限制了png。 (1)改前端代码。 这里是前端限制了上传文件类型,那我们就改一下就好了嘛,改成php。 这里直接修改不行,给大家推荐一篇简短文章,大家就会了&#xff08…...

【电源专题】开关转换器使能(EN)管脚的几种不同方式

我们的文章说到了很多与使能有关的电源案例和原理,如下所示: 【电源专题】案例:芯片规格书使能定义高电平最小阈值1.4V,那真的是到1.4V时才开始输出?_芯片的电流阀值-CSDN博客...

5G学习笔记之SNPN系列之ID和广播消息

目录 1. 概述 2. SNPN ID 3. SNPN广播消息 1. 概述 SNPN:Stand-alone Non-Public Network,独立的非公共网络,由NPN独立运营,不依赖与PLMN网络。 SNPN不支持的5GS特性: 与EPS交互 emergency services when the UE acce…...

Qt-Advanced-Docking-System配置及使用、心得

Qt-Advanced-Docking-System 1. Qt-Advanced-Docking-System描述2. 功能特点2.1. 灵活的停靠方式2.2. 嵌套停靠2.3. 自定义布局保存与恢复2.4. 外观和行为定制 3. 与Qt原生停靠系统的比较4. 使用场景4.1. 集成开发环境(IDE)4.2. 图形设计软件4.3. 数据分…...

【Bolt.new + PromptCoder】三分钟还原油管主页

【Bolt.new PromptCoder】三分钟还原油管主页 PromptCoder官网:PromptCoder Bolt官网:https://bolt.new/ Bolt 是什么? Bolt.new 是一个提供创建全栈网络应用服务的平台。它允许用户通过提示(Prompt)、运行&#x…...

影像组学+病理组学+深度学习人工智能应用

影像组学 基础学习内容: 特征提取:使用pyradiomics进行形状、纹理、小波变换等特征提取。特征筛选:应用ICC、相关系数、mRMR、Lasso等方法。建模:使用LR、SVM、RF、XGBoost、LightGBM等机器学习算法。模型评估:通过A…...

RK3568平台(基础篇)io命令支持

一.什么是io命令 “io” 命令通常用于显示 Linux 系统中的 I/O 统计信息。它提供了有关磁盘读写操作的详细信息,包括每个块设备的读写次数、读写扇区数、读写延迟等。io命令可以直接操作某个寄存器,用于查看设置某个GPIO 引脚配置了什么iomux。 二.io命令支持 RK平台要支持…...

Yolov8源码分析

1、目录介绍 主要目录ultralitics(重点) 1、assets目录 这个文件保存了YOLO历史上可以说是最经典的两张图片,供大家测试程序来使用的。 2、cfg 这个文件下面保存了我们的模型配置文件,cfg目录是项目配置的集中地,其…...

Python中的装饰器`@functools.lru_cache`:用法、来源与应用 (中英双语)

今天看到一段源码 https://github.com/google-research/google-research/blob/master/instruction_following_eval/instructions_util.py 如下,对其中使用的装饰器函数感到好奇,所以产生了这篇博客。 functools.lru_cache(maxsizeNone) def _get_sentenc…...

思维图(GoT):解锁大模型解决复杂问题的能力

今天分享的是苏黎世联邦理工学院、华沙理工大学和Cledar联合发表的一篇文章:思维图:用大语言模型解决复杂问题 论文题目:Graph of Thoughts: Solving Elaborate Problems with Large Language Models 论文链接:https://arxiv.or…...

使用winscp从windows访问Ubuntu进行文件传输

Ubuntu 系统上的准备工作 • 安装 SSH 服务器: 确保 Ubuntu 系统上已经安装了 SSH 服务器。如果没有安装,可以使用以下命令安装: sudo apt update sudo apt install openssh-server • 启动 SSH 服务: 确保 SSH 服务正在运行&a…...

Java全栈项目:实验室预约管理系统的设计与实现

一、项目介绍 实验室预约管理系统是一个基于Java全栈技术开发的Web应用系统,旨在提供便捷的实验室预约、管理和使用体验。本系统主要面向高校师生,实现实验室资源的智能化、信息化管理。 二、技术栈 前端技术 Vue.jsElement UIAxiosVue RouterVuex …...

使用 esrally race 测试 Elasticsearch 性能及 Kibana 可视化分析指南

前言: 在对 Elasticsearch 集群进行性能测试与调优的过程中,esrally 是官方推荐的测试工具。通过 esrally race 命令,我们可以模拟各种查询与索引负载,对集群进行基准测试。然而,仅看 esrally 的终端输出并不直观&…...

OpenAI 第七日 推出了一项新功能——ChatGPT的“Projects”

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

【小白51单片机专用教程】protues仿真AT89C51入门

课程特点 无需开发板0基础教学软件硬件双修辅助入门 本课程面对纯小白,因此会对各个新出现的知识点在实例基础上进行详细讲解,有相关知识的可以直接跳过。课程涉及protues基本操作、原理图设计、数电模电、kell使用、C语言基本内容,所有涉及…...

正则表达式——元字符匹配(单字符)

单字符匹配: ###注意事项:前面要加r:如(re.findall(r\w,字符串名)) #. :匹配任意一个字符 (.本身通过\.匹配) # [ ]: 匹配[ ]中的字符 # \d: 匹配数字 # \D: 匹配非数字 # \s: 匹配空白(空格) # \S:匹配非空白 # \w: 匹配单词字符(a…...

快速在远程服务器执行命令、批量在多个服务器执行命令(基于sshpass的自定义脚本fastsh)

在日常服务器操作中,很多时候我们需要同时操作多个服务器。特别对于那些每个服务器都需要操作相同命令的场景,不断的切换命令会话窗口会比较麻烦。基于此,编写了本文中的 fastsh 脚本用于轻度解决这种问题,提高一定的便利性。 使…...

【中间件介绍及案例分析】

中间件介绍及案例分析 一、中间件的定义 中间件是一种位于操作系统、网络和数据库之上,应用软件之下的软件。它的主要作用是为处于不同系统中的软件组件提供通用服务,使得这些软件组件能够更好地通信、协同工作,并且帮助开发人员更高效地构…...

CRMEB PHP多商户版DOCKER部署实战

#首先,制作docker 镜像# 官方有一个镜像,但是拉不来下,也不知道是没是没有维护,嘎了。只能自己动手做一个。 这里选择ubuntu 24 为基础,制作crmeb-mer的镜像,Dockerfile内容如下: # 使用官方…...

Node.js基础入门

1.Node.js 简介 Node 是一个让 JavaScript (独立)运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。 简单的说 Node.js 就是运行在服务端的…...

Hive——HQL数据定义语言

文章目录 Hive HQL数据查询语言更多大数据资源持续更新中。。。学习目标一、HQL数据定义语言(DDL)概述1、DDL语法的作用2、Hive中DDL使用☆ 创建数据库☆ 查询数据库☆ 切换数据库☆ 修改数据库☆ 删除数据库 二、Hive DDL建表基础1、完整建表语法树2、H…...

vLLM 教程上新!覆盖从入门到进阶 4 种应用方式;中文文档同步上线,0 帧起手加速大模型推理

如今,大语言模型 (LLM) 的发展正在从规模参数迭代升级拓展至应用场景的适配与创新,在这个过程中,其也暴露出一系列问题。例如,在推理环节的效率较低,处理复杂任务时耗时较长,难以满足对实时性要求较高的场景…...

Kubernetes# RBAC访问控制

目录 定义 配置对象 Role ClusterRole ServiceAccount RoleBinding ClusterRoleBinding 配置示例 定义 Kubernetes的运行是由多种类型的资源组合起来,每种资源各司其职完成整个集群的功能。那么自然也需要一套机制控制资源的访问权限,保证安全性…...

如何实现后端返回excel文件,在前端下载功能

前言 简单记录一下,excel文件导出下载功能 一、后端接口返回excel文件 把自己生成的workbook 以文件流的方式,返回前台 Workbook workbook employeeConfirmationDefectService.exportPoorPolishExcel(budatBegin, budatEnd, queryWrapper);//传输到…...

编程:一场不设防的智慧江湖

在数字的汪洋中,有一片从未设置年龄禁区的领地——编程世界。许多人会问:35岁了,还能学编程吗?答案是:不仅能学,还能学得很精彩。 时光荏苒,科技浪潮汹涌澎湃。曾经,人们以为编程是…...

电脑游戏运行时常见问题解析:穿越火线提示“unityplayer.dll丢失”的修复指南

电脑游戏运行时常见问题解析:穿越火线提示“unityplayer.dll丢失”的修复指南 在探索电脑游戏的无限乐趣时,我们时常会遇到一些不期而遇的挑战。今天,我们将聚焦于一个常见的游戏运行错误——穿越火线(或其他使用Unity引擎的游戏…...

【C++】CUDA线程在全局索引中的计算方式

文章目录 1. 一维网格一维线程块2. 二维网格二维线程块3. 三维网格三维线程块4. 不同组合形式4.1 一维网格一维线程块4.2 一维网格二维线程块4.3 一维网格三维线程块4.4 二维网格一维线程块4.5 二维网格二维线程块4.6 二维网格三维线程块4.7 三维网格一维线程块4.8 三维网格二维…...

【笔记】C语言转C++

网课链接:【C语言 转 C 简单教程】 https://www.bilibili.com/video/BV1UE411j7Ti/?p27&share_sourcecopy_web&vd_source4abe1433c2a7ef632aeed6a3d5c0b22a 网课老师B站id:别喷我id 视频总时长:01:55:27 以下笔记是我通过此网课整理 建议先…...