python识别弯曲的段

时间:2011-06-06 17:56:28

标签: python gis

我在ESRI论坛上发布了一个类似的问题,但发布的内容似乎很冷淡:(

任何人都知道如何识别ESRI要素类是否包含弯曲的(弧)段?

我有几千个壮举。类,通过python的东西会很棒!

谢谢!

修改:更新

esri的某个人评论说,您可以通过比较要素的“truecentroid”和“centroid”来检测折线要素是否包含弧段。如果真实的话。 <>分:然后该功能包含一个弧。这没关系,但我仍然缺乏多边形的解决方案,因为上述方法不起作用。

这是我们到目前为止所拥有的:

lstFCs = arcpy.ListFeatureClasses("*", "Polyline")

for fc in lstFCs:
    rows = arcpy.SearchCursor(fc)
    print fc
    for row in rows:
        type = row.Shape
        geom = str(type.centroid.X)
        truegeom = str(type.trueCentroid.X)
        if geom != truegeom:
            print row.ObjectID

del row, rows

2 个答案:

答案 0 :(得分:0)

对于多边形,我认为您必须首先遍历多边形的环以找到折线,然后您可以像在代码中一样检查折线。

很抱歉,由于我没有安装ArcGIS,因此我无法帮助您(很久以前我使用过ArcGIS)。您可能会在gis.stackexchange.com上获得更好的回复。

答案 1 :(得分:0)

尝试这样的事情:

import arcpy, json

arcpy.env.workspace = r"..." #Your database
lstFCs = arcpy.ListFeatureClasses("*", "Polyline")

for fc in lstFCs:
    rows = arcpy.SearchCursor(fc)
    print fc
    for row in rows:
        jsonGeometry = json.loads(row.Shape.JSON)
        if 'curve' in jsonGeometry or 'curveRings' in jsonGeometry:
            print row.ObjectID
    del row, rows