乐于分享
好东西不私藏

GIS中直线转弧线的工具分享及使用说明

GIS中直线转弧线的工具分享及使用说明

前言:

在ArcGIS中,可以通过多种方法在点与点之间构造联系线,其中最常用的方法之一就是“XY转线”,但是这种方法生成的线条是直线,在表达上还可以进一步优化,其中一种优化的方案就是将直线转为弧线。

将直线转为弧线,除了可能带来更好的可视化效果之外,更可以解决一个痛点:区分两点之间联系线的方向:传统方法,A→B和B→A是重合的,但是通过转为弧线可以区分A→B和B→A。

今天分享一款数读城事自制的工具:LinetoCurve_V1.3,包括ArcMap10.X版本和ArcGISPro版本。

1

Part.1

环境要求

三种格式对照(选择其一即可)
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.tbx

ArcGIS Pro:linetocurve_v1.3.atbx(2.0以上测试可以使用)

2

Part.2

使用须知

【输入直线】
使用linetocurve(直线转弧线工具)首先需要有直线。本文不赘述如何制作直线。
输入需要转换为曲线的折线要素类或Shapefile。要求为Polyline几何类型,每条线段以起终点为端点生成贝塞尔曲线。
线要素需要有OBJECTID、FID或者OID三种ID字段之一,建议放在GDB中操作;长度为0的线要素会导致工具失败,运行前请先检查。(建议放在GDB中是因为会自动生成OID)
特别要注意的是,在ArcMap中使用“XY转线”的时候,可能会产生“A→A”这样的长度为0的空几何,空几何会导致工具运行失败,所以在使用工具前要先把空几何删除。
【输出曲线】
输出生成的曲线要素类路径。
结果为贝塞尔插值平滑曲线,并继承输入要素的原始属性字段。
【输出曲线】
输出生成的曲线要素类路径。
结果为贝塞尔插值平滑曲线,并继承输入要素的原始属性字段。
●【曲度】
控制曲线弯曲程度的整数参数,默认值为10。
数值越大曲线越平直;建议取值范围:2-50。
在不同尺度下效果略有不同,但总体遵循数值越大曲线越平直
不同曲度的比较:
【方向】
曲线弯曲的偏转方向。
顺向=顺时针侧偏转;逆向=逆时针侧偏转。
顺向和逆向的输出结果对比:

3

Part.3

双向联系的表达

举例:下图为福建省内各地级市之间的人口迁移数据转为的直线,每一段直线中既包括A→B也包括B→A,但是在显示上两个方向的线段是重合的;在使用直线的时候,两个城市之间的联系往往会采取“A→B+“B→A”,通过汇总来反映“A—B”之间联系的强度,这当然也是一种很好的方式,但是却并不能很好地反映单向的关系/强度;采用弧线区分开“A→B和“B→A”就是一个不错的方法
使用【数读城事】的工具【LinetoCurve_v1.3】将上面的直线转为弧线。
稍微调整下颜色粗细,没仔细弄,大概调整下吧:

4

Part.4

怎么加箭头

之前有人问我,怎么加箭头。其实很简单,直接在符号系统里选择带箭头的符号即可。
如果是使用【XY转线】生成的线段,那使用工具的时候会输入“起点经纬度”和“终点经纬度”,方向即为“起点→终点”。
Pro版:
ArcMap版本:

5

Part.5

如何获取工具

关注公众号后,在公众号私信界面输入“弧线”并发送,根据指引操作即可获取。

作者|数读菌

排版|数读菌

校阅|数读菌

那今天就到这里结束啦,欢迎留言讨论。文中的图片文字未经许可不要随便“引用”。

如果可以的话,希望能够转发分享,点个在看并且点个,给个赞赏~~也欢迎规范转载~

也希望大家和我多留言互动啊!(据说这样可以增加我的推送在你的订阅号里出现的概率)

需要你的“分享”“在看”

END>

如需全文转载文章、投稿或者合作

请后台联系作者