【ArcGIS】PointsToLine执行报999999错误的一种解决方案

ArcToolbox / 数据管理工具 / 要素 / 点集转线

PointsToLine的功能为将离散点连接成折线,使用该工具时需要指定用于转折线的点图层(输入要素)、用于区别不同个体的ID字段(线字段),用于确定点连接顺序的排序字段。该功能一个很常见用处就是将出租车GPS信号连接成连续的折线。

按照使用要求做好设置,执行时报999999错误,原因不明。该问题的解决方案之一:

  1. 新建一个空的点要素类,为该要素类添加ID、ORDER_FIELD两个字段,分别用于保存原点要素类的线字段和排序字段;
  2. 将原点要素类的各个要素复制到新要素类中,做好线字段和排序字段的映射。因为数据量比较大,我采用arcpy.da.InsertCursor()把原点要素类的要素及其字段插入到新点要素类;
  3. 在该新要素类上执行点集转线方法,成功。

附:插入要素脚本

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

import arcpy

in_fc = ""
out_fc = ""

search_fields = ["x", "y", "id_field", "order_field"]
insert_fields = ("SHAPE@", "ID", "ORDER_FIELD")
with arcpy.da.InsertCursor(out_fc, insert_fields) as insert_cursor:
	with arcpy.da.SearchCursor(in_fc, search_fields) as search_cursor:
		for srow in search_cursor:
			x = srow[0]
			y = srow[1]
			point = arcpy.Point(x, y)
			id_field = srow[2]
			order_field = srow[3]
			insert_cursor.insertRow((point, id_field, order_field))

print "---------- Done! ----------"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值