自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 Python与CAD系列高级篇(二十六)根据图片生成cad轮廓矢量

根据图片文件提取出轮廓特征信息并在cad中绘制出相应的轮廓矢量。

2024-04-01 17:23:47 186

原创 Python点云处理(二十二)基于XGBoost的点云分类算法

由于激光点云数据是空间分布的离散三维点,仅考虑点云中每个点的自身信息无法得到连续、准确的分类,为了能够进行分类,需要对每个点的空间邻域分布特征进行计算,得到用以表示各点局部特征的特征向量,用于后续的训练及分类。FPFH与PFH的主要区别在于FPFH计算查询点特征时,没有将邻域点与邻域点间的关系考虑在内,因此减少了计算量和最后的特征维度,由此可得到简化的点特征直方图,但是FPFH在计算完查询点特征时,紧接着计算每个邻域点的特征,最后以加权方式进行组合得到查询点最终的特征,如图所示。(利用已有标注好的数据源)

2024-04-01 11:46:57 98

原创 Python与ArcGIS系列(二十)GDAL之合并shp和geojson要素图层

Shp格式是GIS中非常重要的数据格式,主要在Arcgis中使用,但在进行很多基于网页的空间数据可视化时,通常只接受GeoJSON格式的数据,众所周知JSON是利用键值对+嵌套来表示数据的一种格式,以其轻量、易解析的优点,被广泛使用与各种领域,而GeoJSON就是指在一套规定的语法规则下用JSON格式存储矢量数据。本篇将介绍如何利用Python的GDAL实现多个同类型shp文件和geojson文件的合并。

2024-01-30 22:26:31 684

原创 Python与CAD系列高级篇(二十五)分类提取坐标到excel(补充圆半径、线长度、圆弧)

考虑到进一步提取图形信息,此篇补充对圆半径、线长度以及圆弧几何信息的提取。对点、直线、多段线、圆、样条曲线分类读取坐标并提取到excel。

2024-01-30 22:03:50 420 4

原创 Python与CAD系列高级篇(二十四)分类提取坐标到excel

1.对点、直线、多段线、圆、样条曲线分类读取坐标;2.提取坐标到excel。② 对选定内容分类提取坐标。③ 提取坐标到excel。

2024-01-14 10:52:21 592 2

原创 Python与ArcGIS系列(十九)GDAL之面要素转线要素

在arcgis软件中,我们可以通过加载面数据至图层面板,在arctoolbox中打开数据管理工具——要素——面转线实现面转线的功能。下面介绍如何在python中利用gdal实现这个功能。面要素转线要素是将面状的地理要素(如多边形)转换为线状的地理要素(如折线)。本篇将介绍如何利用Python的GDAL实现面要素转线要素以及一些应用场景。GDAL(Geospatial Data Abstraction Library)是一个开源的地理数据处理库,它提供了处理地理空间数据的功能和工具。

2024-01-14 10:23:07 241

原创 Python点云处理(二十一)基于Gradient Boosting的点云分类算法

由于激光点云数据是空间分布的离散三维点,仅考虑点云中每个点的自身信息无法得到连续、准确的分类,为了能够进行分类,需要对每个点的空间邻域分布特征进行计算,得到用以表示各点局部特征的特征向量,用于后续的训练及分类。FPFH与PFH的主要区别在于FPFH计算查询点特征时,没有将邻域点与邻域点间的关系考虑在内,因此减少了计算量和最后的特征维度,由此可得到简化的点特征直方图,但是FPFH在计算完查询点特征时,紧接着计算每个邻域点的特征,最后以加权方式进行组合得到查询点最终的特征,如图所示。

2024-01-07 13:44:40 1677 4

原创 Python与ArcGIS系列(十八)GDAL之gdb转shp

MDB和GDB数据格式分别是微软Access数据库文件格式(MDB)和Esri文件地理数据库格式(GDB)。而Shp格式是GIS中的一种重要的图层数据格式,MDB和GDB数据通常包含多个图层数据。本篇将介绍如何利用Python完成MDB和GDB数据到Shp格式的转换。GDB格式提供了更高级的功能和性能,适用于大规模和复杂的GIS项目。GDB格式相对于MDB格式来说更加灵活和强大,适用于大型GIS项目和专业的地理空间分析。MDB格式适用于小型和中型的GIS项目,对于处理较大规模的空间数据集可能存在性能限制。

2024-01-01 21:08:27 1095

原创 Python与ArcGIS系列(十七)GDAL之shp转geojson

Shp格式是GIS中非常重要的数据格式,主要在Arcgis中使用,但在进行很多基于网页的空间数据可视化时,通常只接受GeoJSON格式的数据,众所周知JSON是利用键值对+嵌套来表示数据的一种格式,以其轻量、易解析的优点,被广泛使用与各种领域,而GeoJSON就是指在一套规定的语法规则下用JSON格式存储矢量数据。多线要素是多个线要素的组合,因此其coordinates传入三维列表,来组合多条线,对应的geometry下type属性为"MultiLineString"。

2023-12-25 22:45:15 1648

原创 Python与CAD系列高级篇(二十三)导入坐标点txt

本篇介绍以下功能开发:从txt文本中导入坐标点。

2023-12-17 10:11:27 613

原创 Python与CAD系列高级篇(二十二)批量将直线、圆或圆弧改多段线

本篇介绍以下功能开发:一次性选择所有直线、圆或圆弧并批量修改为多段线。

2023-12-17 09:41:56 533

原创 Python与CAD系列高级篇(二十一)批量将横向文本改竖向

本篇介绍以下功能开发:一次性选择所有横向文本并批量修改为竖向。

2023-12-10 15:31:51 425

原创 Python-编写点云处理软件(十五)交互式点云地面点提取

传统的滤波算法大多是考虑在坡度、高程变化之间的不同来进行区分地物点与地面点,而布料滤波算法从一个完全新的思路来进行滤波,首先把点云进行翻转,然后假设有一块布料受到重力从上方落下,则最终落下的布料就可以代表当前地形。5)对于每一个可移动的格网“粒子”,计算其受到重力影响产生的位移,并与当前粒子对应cp点的IHV进行比较,如果粒子的高度低于或者等于IHV,则把粒子的高度设置为IHV并设置为不可移动点。本篇在点云处理软件中实现点云地面点提取功能,通过窗口输入提取参数完成选中的点云对象提取地面点的功能。

2023-12-10 13:41:10 992

原创 Python点云处理(二十)点云轮廓边界提取——基于邻域三角形距离算法

由于扫描对象形状复杂多样、点云数据具有分布不规则和密度不均等特性,以及传感器扫描模式不同和场景中其他地物遮挡等多种因素的影响,自动、准确地提取轮廓仍然具有较大的挑战。通过提取物体的内部轮廓线和外部轮廓线,可以得到物体的边缘轮廓和空间结构等信息。在机器人视觉中,点云轮廓提取可以用于识别和跟踪机器人周围的物体。通过提取物体的轮廓线,可以得到物体的形状、尺寸、位置和方向等信息,从而帮助机器人进行目标定位和操作。点云轮廓提取通过分析点云中每个点的邻域关系,提取点云表面的轮廓线。

2023-12-09 20:39:14 2663

原创 Python与ArcGIS系列(十六)重复节点检测

在处理gis线图层和面图层数据时,有时候会遇到这种情况:数据存在重复节点或伪重复节点(两个节点距离极小),往往我们需要对这种数据进行检测标注或进行修改。本篇将介绍如何利用arcpy及arcgis的工具箱实现这个功能。我们有一个面图层,其中有些面要素存在重复节点或伪重复节点(两个节点距离极小)情况,需要将这些重复节点位置找出来并单独创建一个标注图层。我们采用arcgis的工具箱形式添加我们的脚本,脚本中输入用户界面选择的两个参数,分别是输入图层和输出路径。

2023-12-08 22:17:45 733

原创 Python与ArcGIS系列(十五)根据距离抓取字段

在处理gis数据的时候,会遇到这种需求:将一个图层与另一个图层中相近的要素进行字段赋值。本篇将介绍如何利用arcpy及arcgis的工具箱实现这个功能。我们采用arcgis的工具箱形式添加我们的脚本,脚本中输入用户界面选择的两个参数,分别是道路图层和路口图层。我们分别有一个道路的线图层和一个路口的点图层,现在需要将道路图层的道路名字段赋给相应的路口点要素。为了介绍这个功能的实现,我们需要有一个特定的功能需求。如两个交叉路名分别为1号路和2号路,那么我们为路口字段命名则为:1号路_2号路。

2023-12-08 21:12:00 736

原创 Python与ArcGIS系列(十四)批量输出shp

在处理gis数据的时候,会遇到这种情况:需要将n个mdb文件内的所有图层全部保存成shp格式,或者,将当前工作空间加载的所有图层批量输出shp。首先需要了解的是,完成这个功能我们需要指定输出文件夹,如果每次都修改再加载代码又有点麻烦。这时候前面章节介绍过的工具箱就有用处了,通过工具箱创建一个窗口,指定选择输出路径,通过加载写好的代码,就可以完成将当前工作空间的所有图层输出到指定文件夹。这个功能我们需要指定输入的mdb文件以及输出文件夹(进一步可拓展为多个mdb输出),其他步骤与1基本类似,只展示代码部分。

2023-12-03 21:12:07 2240

原创 Python与ArcGIS系列(十三)UpdateCursor方法

更新游标(UpdateCursor)对象会在正在编辑或删除的数据上设置锁。创建了更新游标(UpdateCursor)实例,你就可以调用updateRow()方法来更新表或要素类中的记录,也可以调用deleteRow()方法删除行记录。如果需要编辑或删除表或要素类中的行数据,可以使用更新游标(UpdateCursor)。接着上一节的例子,我们上一节中为省级行政区图层添加了一行taiwan,现在我们将通过UpdateCursor方法将该添加行中字段为0的进行修改,修改后为-9999。

2023-11-28 20:15:43 1763

原创 Python与ArcGIS系列(十二)InsertCursor方法

InsertCursor()函数可用于创建插入游标(InsertCursor)对象,通过程序向要素类和表中添加新行。本案例中,我们要在要素类中插入两个新数据,要插入的行数据保存在一个列表变量中。之后,在构造函数中使用要素类和字段参数创建一个插入游标对象。我们选取的数据依然是省级行政区图层数据,我们的需求是:在已有数据基础上,添加一行台湾数据,台湾数据保存在txt中,具体如下图所示。插入游标(InsertCursor)对象可以向表或要素类中插入行,如果想在新行中插入属性值,需要按照属性表中字段顺序依次赋值。

2023-11-28 19:58:22 1619

原创 Python与ArcGIS系列(十一)SearchCursor方法

ARCGIS10.1后引入了几何令牌,可以只返回几何的一部分信息,对于只需要特定几何的情况可以明显提高SearchCursor性能。几何令牌以SHAPE@<要返回的要素几何信息>的格式作为字段列表中的字段来传递给游标构造函数。SearchCursor函数返回的对象,只能通过遍历行的方式返回只读目标,不可进行修改。默认情况下SearchCursor将返回一个要素类的所有行,若需要使用某些限制条件约束返回的行,可以通过where子句设置筛选条件实现。若存在中文编码错误问题,可以在代码前加上以下代码。

2023-11-26 20:54:43 1727

原创 Python与ArcGIS系列(十)要素查询与选择

Arcgis的Select by Attributes入门使用、Arcpy的Select Layer by Attribute按属性查询选择方法、Arcpy的Select Layer by Location按空间查询选择方法。通过Select Layer by Location工具可以对要素类执行按空间关系查询和选择,该工具针对的是要素类和相关要素图层进行使用。Select by Attributes是通过SQL语句的方式执行的,构造选择条件时与python有一些语法和类型上的区别。

2023-11-26 20:05:27 1755

原创 Python与ArcGIS系列(九)自定义python地理处理工具

在arctoolbox中的自定义工具箱可以创建自定义的地理处理工具脚本,通过python代码实现功能,它拥有更好地易于使用的用户界面和检查功能。在arcmap中单击ArcToolbox打开工具窗口;在ArcToolbox空白处右键添加工具箱;新创建一个我的工具箱;以裁剪功能为一个简单例子来实现自定义工具箱,先将代码准备好(GetParameterAsText用来接收工具用户界面传入的参数):try:except:为我的工具箱添加4中的脚本;

2023-11-18 21:19:28 1556

原创 Python与ArcGIS系列(八)通过python执行地理处理工具

arcgis包含数百种可以通过python脚本执行的地理处理工具,这样就通过python可以处理复杂的工作和批处理。本篇将介绍如何利用arcpy实现。在脚本执行地理处理工具之前我们需要知道有哪些地理处理工具,可以通过地理处理–搜索工具进行地理处理工具搜索,并通过帮助查看具体使用方法。很多时候需要将一个地理处理工具结果作为另一个的输入,这边需要建立地理处理工具间的联系。确定了我们需要使用的地理处理工具函数后,就可以在arcpy中执行该地理处理工具。执行地理处理工具以及在地理处理工具间建立联系。

2023-11-16 19:56:50 1572

原创 Python与ArcGIS系列(七)自动化打印地图

使用ListPrinterNames()函数生成可用的打印机列表,然后再用PrintMap()函数将打印任务发送给指定打印机。使用ExportToJPEG()、ExportToGIF()、ExportToBMP()函数可以导出不同类型图像文件。以上代码,将数据框打印到默认打印机,若要指定打印机,在第二个参数传入即可,此外还有输出打印质量的参数等。通过arcpy提供的ListPrinterNames()函数可以生成可用的打印机列表。使用ExportToPDF()函数可以将数据框导出至pdf文件。

2023-11-12 14:10:31 1780

原创 Python与ArcGIS系列(六)查找和修复数据源

查找丢失数据源、findAndReplaceWorkspacePaths()方法修复丢失数据源、replaceWorkspaces()方法修复丢失数据源、replaceDataSource()修复单个图层和表对象。本篇将介绍如何利用arcpy实现。通过arcpy.mapping模块中的replaceWorkspaces()方法可以将数据源由文件地理数据库转换至个人地理数据库,对丢失数据链接进行修复。layer和tableview都有replaceDataSource()方法,改变单个图层和表的工作路径。

2023-11-12 14:08:13 1937

原创 Python与ArcGIS系列(五)图层更新

UpdateLayer()函数可以更新图层属性,所有可在图层属性中找到的属性都可以通过这种方法进行修改,包括字段别名、定义查询、标注字段等。其中updateLayer图层是需要更新的图层,sourcelayer是包含更新的符号系统图层。通过UpdateLayer()函数可以改变地图文档中图层的符号系统,也可以改变图层的各种属性。UpdateLayer()函数在arcpy.mapping模块中。改变图层的符号系统、改变图层属性。本篇介绍如何利用arcpy实现。

2023-11-12 13:59:23 1462

原创 Python与ArcGIS系列(四)在地图文档中加入图层

arcpy的mapping模块提供的AddLayer()函数可以实现将图层添加到地图文档中。功能本质上与“add data”功能按钮一致。要实现将图层插入到数据框中的指定位置,可以使用arcpy的mapping模块提供的InsertLayer()函数。对于函数中的AUTO_ARRANGE自动放置图层在数据中,也可指定参数TOP或BOTTOM将其放在最上或最下方。将图层添加到地图文档中,以及将图层插入到地图文档指定的位置。本篇介绍如何利用arcpy实现。

2023-11-12 13:56:08 1677

原创 Python与ArcGIS系列(三)视图缩放

在所有图层中进行缩放使用的方法是DataFrame.zoomToSelectedFeatures(),选择的要素可以来自于数据框的所有图层,若没有选择,则缩放至全图显示。对于以及创建的选择集数据,通常需要进行缩放以更好地显示所选要素,要素缩放可分为两种:第一种是在所有图层中进行缩放,另一种只考虑单独图层进行缩放。本篇介绍如何利用arcpy实现缩放视图到所选要素以及改变地图范围功能。缩放至指定图层所选要素。

2023-11-11 22:49:36 1533

原创 Python与ArcGIS系列(二)获取地图文档

在ArcPy中,要引用当前的地图文档(Map Document),可以使用 mapping 模块中的 MapDocument 类。值得注意的是,在arcgis内部python窗口运行该代码才能访问已加载进arcgis的文档,如果通过其他idle则无法访问。要引用磁盘上的地图文档并对其进行一些设置,同样可以使用ArcPy中的 mapping 模块和 MapDocument 类。对于我们平常的工作,接触最多的就是图层数据处理,获取图层后就可以方便地进行下一步处理。

2023-11-11 22:48:44 1659

原创 Python与ArcGIS系列(一)ArcGIS中使用Python

按照惯例,作为本系列专栏的第一篇,先简单地介绍下本系列文章的内容:通过python语言创建arcgis环境脚本、将脚本以工具箱形式存放在arcgis中、通过脚本自动执行地理处理、数据修复、查找和编辑要素等,以及一系列提高gis工作效率的开发功能案例。arcgis的python窗口也提供了代码补全功能,除了常用的python常用语句补全外,对于arcpy包中的相关函数也会自动补全,极大地方便了我们的代码编写。第一种方式:在“地理处理”工具栏下的“python”,打开python窗口;

2023-11-11 20:51:35 2688

原创 Python与ArcGIS(Arcpy)系列文章【汇总指北】持续更新中

目录一、ArcGIS中使用Python二、获取地图文档三、视图缩放四、在地图文档中加入图层五、图层更新六、查找和修复数据源七、自动化打印地图八、通过python执行地理处理工具九、自定义python地理处理工具十、要素查询与选择十一、SearchCursor方法十二、InsertCursor方法十三、UpdateCursor方法十四、字段列表十五、mdb、gdb输出shp(自定义工具)十六、根据距离范围填充字段(自定义工具)十七、提取要素(自定义工具)十八、待更新(自定义工具)一、ArcGIS中使用Py

2023-11-11 20:50:27 1159

原创 Python与CAD系列高级篇(二十)批量为文本添加递增编号

本篇介绍以下功能开发:一次性选择所有文本并批量添加递增编号。

2023-11-08 18:29:47 1112

原创 Python点云处理(十九)点云地面点提取——CSF布料模拟算法

传统的滤波算法大多是考虑在坡度、高程变化之间的不同来进行区分地物点与地面点,而布料滤波算法从一个完全新的思路来进行滤波,首先把点云进行翻转,然后假设有一块布料受到重力从上方落下,则最终落下的布料就可以代表当前地形。5)对于每一个可移动的格网“粒子”,计算其受到重力影响产生的位移,并与当前粒子对应cp点的IHV进行比较,如果粒子的高度低于或者等于IHV,则把粒子的高度设置为IHV并设置为不可移动点。3)初始布料格网,这时用户需要设置格网的大小(grid resolution, GR)。

2023-11-06 22:11:59 1533

原创 Python与CAD系列高级篇(十九)对含数字文本实现递增

本篇介绍以下几项功能开发:在已有含数字文本基础实现递增。

2023-11-05 21:57:41 1180

原创 Python与CAD系列高级篇(十八)文本前后缀及部分内容替换

本篇介绍以下几项功能开发:1.选择文本并将指定前缀替换为特定文字;2.选择文本并将指定后缀替换为特定文字;3.选择文本并将指定部分内容替换为特定文字。代码实现:2 选择文本并将指定后缀替换为特定文字代码实现:3 选择文本并将指定部分内容替换为特定文字代码实现:

2023-11-05 16:06:04 1250

原创 Python点云处理(十八)点云地面点提取——基于法向量算法

点云法向量是表示点云表面方向的向量,可以用于描述点云的几何特征。在基于法向量的地面点提取算法中,一种常用的方法是通过点云的最近邻点计算法向量。对于每个点P,通过查找其最近的K个邻居点,利用最小二乘法估计该点的法向量。基于法向量的点云地面点提取算法主要依靠点云中点的法向量信息来进行分类。地面点通常具有较平坦的表面,即法向量与垂直于地面的方向接近。因此,该算法首先计算每个点的法向量,然后通过判断法向量与指定阈值之间的夹角来区分地面点和非地面点。根据计算得到的法向量,将点云中的点分为地面点和非地面点。

2023-10-30 21:36:22 2038 4

原创 Python与CAD系列高级篇(十七)批量替换文本

1.单选替换文字对象为指定内容;2.多选替换文字对象为指定内容;

2023-10-30 21:12:24 1251 1

原创 Python与CAD系列高级篇(十六)根据范围提取文本及信息

本篇为Python与CAD系列高级篇系列的第一篇,高级篇主要以需求和功能实现为导向,介绍Python在CAD实际开发与自动化中的作用。根据指定的矩形范围(可拓展为任意范围)提取所有的文本信息,及相关的基本属性等。

2023-10-29 21:30:17 1597

原创 Python与CAD系列基础篇(十五)用户交互

进行用户交互,包括用户窗口选择、用户输入不同类型值的方法。通过pywin32连接AutoCAD方式。

2023-10-28 16:57:53 1917

原创 Python与CAD系列基础篇(十四)拓展属性

拓展属性的定义拓展属性是AutoCAD中的一种元数据,它可以附加在图形对象上,以提供关于对象的额外信息。这些信息可以是与设计相关的属性,如材料、重量、尺寸等,也可以是与管理和组织相关的属性,如创建日期、修改者等。拓展属性以键值对的形式存在,每个属性都有一个唯一的名称和对应的值。拓展属性的用途设计信息记录:拓展属性可以用于记录与设计相关的信息,如构件的材料、厚度、颜色等。这些属性可以帮助设计师在后续的修改和审查中快速获取相关信息,提高工作效率。

2023-10-28 16:57:12 1749

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除