GIS中直线转弧线的工具分享及使用说明
前言:
在ArcGIS中,可以通过多种方法在点与点之间构造联系线,其中最常用的方法之一就是“XY转线”,但是这种方法生成的线条是直线,在表达上还可以进一步优化,其中一种优化的方案就是将直线转为弧线。
将直线转为弧线,除了可能带来更好的可视化效果之外,更可以解决一个痛点:区分两点之间联系线的方向:传统方法,A→B和B→A是重合的,但是通过转为弧线可以区分A→B和B→A。
今天分享一款数读城事自制的工具:LinetoCurve_V1.3,包括ArcMap10.X版本和ArcGISPro版本。
LinetoCurve_v1.3.pyt→ ArcMap 10.x 推荐(Python源码,GBK编码,右键Add Toolbox添加)LinetoCurve_v1.3.tbx → ArcMap 10.x 备用(二进制OLE2格式,右键Add Toolbox添加)
linetocurve_v1.3.atbx → ArcGIS Pro 专用(ZIP/JSON格式,通过Catalog添加或直接文件夹中打开)
ArcMap 10.x :LinetoCurve_v1.3.pyt、LinetoCurve_v1.3.tbxArcGIS Pro:linetocurve_v1.3.atbx(2.0以上测试可以使用)
使用linetocurve(直线转弧线工具)首先需要有直线。本文不赘述如何制作直线。输入需要转换为曲线的折线要素类或Shapefile。要求为Polyline几何类型,每条线段以起终点为端点生成贝塞尔曲线。线要素需要有OBJECTID、FID或者OID三种ID字段之一,建议放在GDB中操作;长度为0的线要素会导致工具失败,运行前请先检查。(建议放在GDB中是因为会自动生成OID)特别要注意的是,在ArcMap中使用“XY转线”的时候,可能会产生“A→A”这样的长度为0的空几何,空几何会导致工具运行失败,所以在使用工具前要先把空几何删除。结果为贝塞尔插值平滑曲线,并继承输入要素的原始属性字段。结果为贝塞尔插值平滑曲线,并继承输入要素的原始属性字段。在不同尺度下效果略有不同,但总体遵循数值越大曲线越平直。举例:下图为福建省内各地级市之间的人口迁移数据转为的直线,每一段直线中既包括A→B也包括B→A,但是在显示上两个方向的线段是重合的;在使用直线的时候,两个城市之间的联系往往会采取“A→B”+“B→A”,通过汇总来反映“A—B”之间联系的强度,这当然也是一种很好的方式,但是却并不能很好地反映单向的关系/强度;采用弧线区分开“A→B”和“B→A”就是一个不错的方法。使用【数读城事】的工具【LinetoCurve_v1.3】将上面的直线转为弧线。之前有人问我,怎么加箭头。其实很简单,直接在符号系统里选择带箭头的符号即可。如果是使用【XY转线】生成的线段,那使用工具的时候会输入“起点经纬度”和“终点经纬度”,方向即为“起点→终点”。关注公众号后,在公众号私信界面输入“弧线”并发送,根据指引操作即可获取。作者|数读菌
排版|数读菌
校阅|数读菌
那今天就到这里结束啦,欢迎留言讨论。文中的图片文字未经许可不要随便“引用”。
如果可以的话,希望能够转发分享,点个在看并且点个赞,给个赞赏~~也欢迎规范转载~
也希望大家和我多留言互动啊!(据说这样可以增加我的推送在你的订阅号里出现的概率)
▼