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

GECP高程控制点数据集进行展示


总结
这段代码的功能就是——
在一堆高程控制点数据中,找出落在指定多边形(矩形)区域内的点,并把它们导出为 KML 文件,以便在 Google Earth 上查看。

代码流程解析

  1. 初始化环境
fclose all
clear all
clc

关闭所有文件、清除变量、清空命令行。


  1. 加载数据
lidar_dem=load('C:\Users\lizijia\GECP_E120E180_N030N060.mat');

加载一个 .mat 文件,里面存有激光雷达(或高程控制点)数据。


  1. 提取控制点经纬度
point_lon=lidar_dem.EleControlPoint.Lon;
point_lat=lidar_dem.EleControlPoint.Lat;

从结构体里取出所有点的经度和纬度。


  1. 定义一个多边形区域
polygon_lon =  [120.5 121 121 120.5 ];  
polygon_lat = [ 51  51 50.5 50.5 ];  

这里人为定义了一个矩形区域(四个角点的经纬度)。


  1. 判断哪些点落在多边形内
[in, ~] = inpolygon(point_lon, point_lat, polygon_lon, polygon_lat);
indices_inside_polygon = find(in);
  • inpolygon 会返回逻辑数组 in,表示每个点是否在多边形内。
  • indices_inside_polygon 就是这些点的索引。

  1. 打印结果
disp(indices_inside_polygon);

在命令行显示所有落在多边形内部点的索引。


  1. 把这些点写成 KML 文件
LAT=point_lat(indices_inside_polygon);
LON=point_lon(indices_inside_polygon);
filename = 'D:\dxal_point.kml';
shape = geoshape(LAT,LON);
shape.Geometry = 'point';
kmlwrite(filename,shape,'Color','red');
  • 取出多边形内的点的经纬度。
  • geoshape 创建一个点几何对象。
  • 设置几何类型为点(point)。
  • kmlwrite 导出为 Google Earth 可直接打开的 .kml 文件,红色标注。

main_process

fclose all
clear all
clclidar_dem=load('C:\Users\lizijia\GECP_E120E180_N030N060.mat');point_lon=lidar_dem.EleControlPoint.Lon;
point_lat=lidar_dem.EleControlPoint.Lat;% 多边形的经纬度角点坐标
polygon_lon =  [120.5 121 121 120.5 ];  % 多边形的经度
polygon_lat = [ 51  51 50.5 50.5 ];  % 多边形的纬度% 使用 inpolygon 函数找到多边形内部的点
[in, ~] = inpolygon(point_lon, point_lat, polygon_lon, polygon_lat);% 找出在多边形内的点的索引
indices_inside_polygon = find(in);% 显示多边形内的点索引
disp(indices_inside_polygon);%------------------------写为kml文件----------------------------
LAT=point_lat(indices_inside_polygon);
LON=point_lon(indices_inside_polygon);
filename = 'D:\dxal_point.kml';
shape = geoshape(LAT,LON);
shape.Geometry = 'point';
kmlwrite(filename,shape,'Color','red');

高程控制点数据集 GECP

https://data.tpdc.ac.cn/zh-hans/data/2c2b895d-ded5-4e08-9cfa-bc39a9a1af1d

http://www.dtcms.com/a/347914.html

相关文章:

  • 视觉革命:云渲染如何让创意不再受限于硬件
  • RustFS的边缘计算优化方案在5G MEC场景下的实测数据如何?
  • 迭代器模式与几个经典的C++实现
  • 双目密集匹配(stereo dense matching)
  • 从人工巡检到智能监测:工业设备管理的颠覆性变革
  • 97. 小明逛公园,Floyd 算法,127. 骑士的攻击,A * 算法
  • [Redis进阶]---------持久化
  • std::uncaught_exceptions 详解
  • 大模型——深度评测智能体平台Coze Studio
  • 【Cmake】cmake_minimum_required,project,include,install,add_executable
  • 关于链式二叉树的几道OJ题目
  • 【Java SE】抽象类与Object类
  • 什么是正态分布
  • Mysql InnoDB 底层架构设计、功能、原理、源码系列合集【五、InnoDB 高阶机制与实战调优】
  • Manus AI 与多语言手写识别技术文章大纲
  • 夜间跌倒漏报率↓78%!陌讯多模态算法在智慧养老院的精准监测方案
  • Python 地理空间分析:核心库与学习路线图
  • 【三维重建】第二章 Python及Pytorch基础
  • 关于说明锂电池充电芯片实际应用
  • Python Excel
  • C++项目实战——高性能内存池(四)
  • Nacos-11--Nacos热更新的原理
  • 循环中的阻塞风险与异步线程解法
  • 综合测验:配置主dns,dhcp,虚拟主机,nfs文件共享等
  • 操作系统知识
  • (一)算法(big O/)
  • claude-code+kimi实测
  • 当AI成了“历史笔迹翻译官”:Manus AI如何破解多语言手写文献的“密码锁”
  • Redis优缺点
  • leetcode80:删除有序数组中的重复项 II(快慢指针法)