GIS算法基础知识点总结

news2025/1/8 23:28:03

绪论

基本计算方法:穷举法、贪心算法、分治法、动态规划法、迭代法、分支界限法(Branch and Bound)

  • 穷举法:通过枚举所有可能的解来寻找最优解。优点是简单直接,缺点是计算量大,适用于小规模问题。

  • 贪心算法:每一步都选择当前最优的局部解,期望通过局部最优达到全局最优。优点是计算速度快,缺点是不一定能得到全局最优解。

  • 分治法:将问题分解为若干子问题,分别解决后再合并结果。(归并排序和快速排序)

  • 动态规划法:将问题分解为重叠子问题,通过保存子问题的解来避免重复计算。(背包问题和最短路径问题)

  • 迭代法:通过反复迭代逐步逼近问题的解。(牛顿迭代法)

  • 分支界限法(Branch and Bound):通过分支和界限策略来搜索解空间,常用于组合优化问题。(最佳工作序列)


空间数据编码

Morton码

  • 原理:将二维或多维空间中的点编码为一维的Morton码,便于存储和检索。通过将坐标的二进制位交错排列生成Morton码。

  • 过程:将每个坐标转换为二进制,然后按位交错合并成一个二进制数(行列行列行列...),最后转换为十进制数。

数据压缩

文字数据压缩:哈夫曼编码(Hoffman Coding)

  • 原理:基于字符出现频率构建最优前缀码,频率高的字符用短码,频率低的字符用长码。

  • 过程

    1. 统计字符频率。

    2. 构建哈夫曼树:每次选择频率最低的两个节点合并,直到所有节点合并为一个树。

    3. 从根节点开始,左子树路径标记为0,右子树路径标记为1,生成每个字符的编码。

矢量数据压缩(已考):间隔取点法、垂距法和偏角法、道格拉斯-普克算法(DP)

  • 间隔取点法:按固定间隔选取点,简单但可能丢失重要细节。

  • 垂距法:计算点到直线的垂直距离,保留距离大于阈值的点。

  • 偏角法:计算相邻线段之间的夹角,保留夹角大于阈值的点。

  • 道格拉斯-普克算法

    1. 连接起点和终点形成直线。

    2. 计算所有中间点到直线的距离,找到最大距离点。

    3. 如果最大距离大于阈值,则在该点处分割线段,递归处理。

    4. 否则,删除所有中间点。

栅格数据压缩:游程长度编码(Run-Length)、四叉树(QuadTree)

  • 游程长度编码:将连续的相同值合并为一个值和一个计数值。适用于大量重复数据的压缩。

  • 四叉树:将二维空间递归划分为四个象限,直到每个象限内的值相同或达到最小粒度。适用于稀疏数据的压缩。

空间索引

查找与目标距离小于50m的POI:暴力法->矩形过滤法->B-tree索引

  • 暴力法:计算所有点与目标的距离,筛选出距离小于50m的点。

  • 矩形过滤法:先筛选出目标点周围50m矩形区域内的点,再计算距离。

  • B-tree索引:适用于一维数据,通过B-tree定位经度范围,再定位纬度范围
    n阶B树:[n/2(向上取整)-1,n-1],n阶R树:[n/2(向上取整),n]
    B树的删除:删除非叶子结点转换为删除叶子结点;删除叶子结点时先看左右兄弟是否够借,够借则借,不够则合并(合并时也要考虑父结点是否会下溢出)。

B-tree不适合于二维索引的不足->R树、Spatial Fitting Curve

  • R树:将空间对象用最小外接矩形(MBR)表示,构建层次结构,支持高效的空间查询。

  • Spatial Fitting Curve:将多维空间映射到一维空间(Morton码)。

R树分裂策略:Linear Split、Quadratic Split、Exponential Split

  • Linear Split:线性选择分裂点,简单但效果一般。

  • Quadratic Split(已考):选择使两个新矩形面积和最小的分裂点,效果较好。

  • Exponential Split:考虑所有可能的分裂组合,选择最优解,计算量大但效果最好。

地图投影

兰伯特等角投影、墨卡托投影

空间度量算法

折线段拐向判断、判断点是否在线段上:向量叉积

判断点是否在多边形内部:射线法(Ray Casting algorithm)、Winding number algorithm(环绕数法)

  • 射线法:从点引一条射线,计算与多边形边界的交点数目,奇数在内部,偶数在外部。
    向上的线算起点,向下算终点;平行线不算;

  • 环绕数法:计算点与多边形顶点的环绕数,非零在内部,零在外部。
    看环绕角度

计算点到直线距离、多边形面积量算(平面/地球椭球表面)

空间拓扑

拓扑关系生成过程:①弧段处理:检查是否除交点外没有相交;②建立结点弧段关系;③左转算法生成多边形,建立多边形与弧段关系;④建立多边形与多边形之间的关系。

左转算法、岛的判断
岛的判断:①计算所有多边形面积,没有负面积直接结束;②对正负面积多边形进行排序;③顺序取一个正面积的多边形,并依次取出负多边形,若包含则形成复杂多边形(含岛),并从负多边形集合中删去该多边形,直至所有负多边形都被访问。
这里要注意一个正多边形中可能包含多个岛。
包含的判断:先看面积。再看包围盒,最后看逐个点。

Voronoi生成算法:sweep line/plane
site event和circle event发生对应的变化

内插方法

普通克里金插值、Voronoi图插值(用面积比)

降水插值(已考)
降水插值公式、降水调整系数公式
步骤:①两两站点高程与降水数据,用最小二乘法求逐月降水调整系数;②定义虚拟面,用降水插值公式计算该虚拟面上每个站点的降水;③应用普通克里金插值得到虚拟面的降水插值结果;④再利用降水插值公式得到真实高度的降水插值结果。

地表温度插值算法(SCSG效应)

地形分析

坡度、坡向计算(Sobel梯度算子)

D8流向、D-ifinity

  • D8流向:将水流方向分为8个方向。

  • D-infinity:考虑水流方向的连续变化。

在3X3窗口中找最大坡度的三角形面(通过向量叉积求法向量,再求法向量与水平面夹角)
该坡度作为中心格网的坡度,由法向量得到坡向。
由三角形面以及坡向确定流量分配。

图论

期末考试时间安排问题->四色问题

贝肯数->最短路径问题

Dijkstra算法、A*算法

  • Dijkstra算法:通过贪心策略求解单源最短路径。[dist]、[path]

  • A*算法:通过启发式搜索求解最短路径。

证明A*算法中的(f(n)=g(n)+h(n))可以找到最短路径:
S为起点,T为终点。假设另一条路径Popt最短,则有
①f(T)opt=g(T)opt+h(T)opt=g(T)opt<g(T)A*;
②存在一个路径点n'不在PA*上;
③S->n1->n2->...->T,则有f(n1)<=f(n2)
假设从一个路径点之后,Popt经过点n',而PA*经过的点为n'',若f(n'')>f(n),则n'在PA*上,矛盾;若f(n'')<f(n'),则存在nk,使得f(nk)>f(n'),因此n’会被选入到PA*上,矛盾。

GWR and RF

信息熵、信息增益

空间优化算法

Hill Climber、Simulated Annealing、Genetic algorithm、Particle Swarm optimization、Ant colony optimization

下午看GWR、RF和PSO

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

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

相关文章

Idea(中文版) 项目结构/基本设置/设计背景

目录 1. Idea 项目结构 1.1 新建项目 1.2 新建项目的模块 1.3 新建项目模块的包 1.4 新建项目模块包的类 2. 基本设置 2.1 设置主题 2.2 设置字体 2.3 设置注释 2.4 自动导包 2.5 忽略大小写 2.6 设置背景图片 3. 项目与模块操作 3.1 修改类名 3.2 关闭项目 1. I…

Android Audio基础(53)——PCM逻辑设备Write数据

1. 前言 本文,我们将以回放(Playback,播放音频)为例,讲解PCM Data是如何从用户空间到内核空间,最后传递到Codec。 在 ASoC音频框架简介中,我们给出了回放(Playback)PCM数据流示意图。: 对于Linux来说,由于分为 user space 和kernel space,而且两者之间数据不能随便…

Android Audio基础(54)——数字音频接口 I2S、PCM(TDM) 、PDM

1. 概述 本文介绍的数字音频接口全部是硬件接口,是实际的物理连线方式,即同一个PCB板上IC芯片和IC芯片之间的通讯协议。 PCM、PDM也可以用于表示音频编码格式,。编码格式是指模拟信号数字化的方式。 I2S和PCM(TDM)接口传输的数据是PCM格式的音频数据。这两种协议是最为常见…

HDFS架构原理

一、HDFS架构整体概述 HDFS是Hadoop Distribute File System 的简称&#xff0c;意为&#xff1a;Hadoop分布式文件系统。HDFS是Hadoop核心组件之一&#xff0c;作为大数据生态圈最底层的分布式存储服务而存在。HDFS解决的问题就是大数据如何存储,它是横跨在多台计算机上的文件…

windows11(或centos7)安装nvidia显卡驱动、CUDA、cuDNN

本文是我瞎搞时写的问题汇总及参考文献&#xff0c;记录了一些问题解决的进度及对问题的思考。 最近一次更新时间&#xff1a;2025年1月4日 一、安装或更新nvidia显卡驱动 首先&#xff0c;需要确保你的设备安装了最新的显卡驱动。 &#xff08;1&#xff09;centos7安装显…

2025-01-04 Unity插件 YodaSheet2 —— 基础用法

文章目录 环境配置1 创建 YadeSheetData2 读取方式2.1 表格读取2.2 列表读取 3 自定义设置3.1 修改代码生成位置3.2 添加列表支持3.2.1 修改 DataTypeMapper.cs3.2.2 修改 SheetDataExtensions.cs3.2.3 修改 CodeGeneratorEditor.cs3.2.4 测试 ​ 官方文档&#xff1a; Unity …

STM32 拓展 RTC(实时时钟)

RTC简介 RTC(Real Time Clock,实时时钟)。是一个掉电后仍然可以继续运行的独立定时器。 RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。 RTC实质…

微信小程序实现登录注册

文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…

[大模型开源]SecGPT 网络安全大模型

模型介绍 SecGPT的愿景是将人工智能技术引入网络安全领域&#xff0c;以提高网络防御的效率和效果。其使命是推动网络安全智能化&#xff0c;为社会提供更安全的数字生活环境。 ① SecGPT开源地址&#xff1a;https://github.com/Clouditera/secgpt② 模型地址&#xff1a;htt…

解决“KEIL5软件模拟仿真无法打印浮点数”之问题

在没有外部硬件支持时&#xff0c;我们会使用KEIL5软件模拟仿真&#xff0c;这是是仿真必须要掌握的技巧。 1、点击“Project”&#xff0c;然后点击“Options for target 项目名字”&#xff0c;点击“Device”,选择CPU型号。 2、点击“OK” 3、点击“Target”,勾选“Use Mi…

C语言 扫雷程序设计

目录 1.main函数 2.菜单打印menu函数 3.游戏game函数 4.宏定义 5.界面初始化 6.打印界面 7.设置雷 8.统计排查坐标周围雷的个数 9.排查雷 10.总代码 test.c代码 game.h代码 game.c代码 结语&#xff1a; 一个简单的扫雷游戏&#xff0c;通过宏定义可以修改行列的…

Excel 技巧03 - 如何对齐小数位数? (★)如何去掉小数点?如何不四舍五入去掉小数点?

这几个有点儿关联&#xff0c;我都给放到一起了&#xff0c;不影响大家分别使用。 目录 1&#xff0c;如何对齐小数位数&#xff1f; 2&#xff0c;如何去掉小数点&#xff1f; 3&#xff0c;如何不四舍五入去掉小数点&#xff1f; 1&#xff0c;如何对齐小数位数&#xff…

【大模型+本地自建知识图谱/GraphRAG/neo4j/ollama+Qwen千问(或llama3)】 python实战(中)

一、建立基本的知识图谱并导入neo4j 这里我举例用的属性表、关系表&#xff0c;大概格式如下 id名字颜色a1苹果红色 startrelenda1属于b1 启动neo4j&#xff08;关于neo4j的安装此处不再赘述&#xff09; import pandas as pd from py2neo import Graph, Node, Relationship…

量子计算遇上人工智能:突破算力瓶颈的关键?

引言&#xff1a;量子计算遇上人工智能——突破算力瓶颈的关键&#xff1f; 在数字化时代的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度改变着我们的生活&#xff0c;从语音助手到自动驾驶&#xff0c;从医学诊断到金融分析&#xff0c;无不彰显其…

jenkins入门12-- 权限管理

Jenkins的权限管理 由于jenkins默认的权限管理体系不支持用户组或角色的配置&#xff0c;因此需要安装第三发插件来支持角色的配置&#xff0c;我们使用Role-based Authorization Strategy 插件 只有项目读权限 只有某个项目执行权限

IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)

时序预测 | MATLAB实现IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元) 目录 时序预测 | MATLAB实现IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现IWOA-GRU和GRU时间序列预测…

分享3个国内使用正版GPT的网站【亲测有效!2025最新】

1. molica 传送入口&#xff1a;https://ai-to.cn/url/?umolica 2. 多帮AI 传送入口&#xff1a;https://aigc.openaicloud.cn?inVitecodeMYAAGGKXVK 3. 厉害猫 传送入口&#xff1a;https://ai-to.cn/url/?ulihaimao

Personal APP

1、Matlab 2023b https://www.bilibili.com/opus/887246540317392920 https://blog.csdn.net/qq_25719943/article/details/138096918 https://www.jokerdown.com/22886.html 2、 3、

Vue2:el-table中的文字根据内容改变颜色

想要实现的效果如图,【级别】和【P】列的颜色根据文字内容变化 1、正常创建表格 <template><el-table:data="tableData"style="width: 100%"><el-table-column prop="id" label="ID"/> <el-table-column …

ArmSoM RK3588/RK3576核心板,开发板网络设置

ArmSoM系列产品都搭配了以太网口或WIFI模块&#xff0c;PCIE转以太网模块、 USB转以太网模块等&#xff0c;这样我们的网络需求就不止是上网这么简单了&#xff0c;可以衍生出多种不同的玩法。 1. 网络连接​ 连接互联网或者组成局域网都需要满足一个前提–设备需要获取到ip&a…