• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gisoracle

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

【arcpy】创建点、线、面(孔洞、环、多部件)要素、要素类

创建点要素、要素类

复制代码
#coding=utf-8
import arcpy

# 点并非几何类,但通常用于构造几何。PointGeometry是几何。
point=arcpy.Point(10,10)
point_Geometry=arcpy.PointGeometry(point)

# 调用创建要素类工具创建一个 点要素类
point_featureClass=arcpy.CreateFeatureclass_management(r'E:\3 coding\py code\arcpy\create\point','point.shp','POINT')

# 使用arcpy.da.InsertCursor类插入新创建的 点要素 到 点要素类
insertCursor = arcpy.da.InsertCursor(point_featureClass, ['Shape@'])
insertCursor.insertRow([point_Geometry])

del insertCursor
复制代码

创建线要素、要素类

复制代码
#coding=utf-8
import arcpy

points=[[0,0],[0,10],[10,10],[10,0]]

# 组成Path的Array对象
path=arcpy.Array([arcpy.Point(*p) for p in points])

# 通过path(Array)创建Polyline对象
line_Geometry=arcpy.Polyline(path)

# 调用创建要素类工具创建一个 线要素类
polyline_featureClass=arcpy.CreateFeatureclass_management(r'E:\3 coding\py code\arcpy\create\polyline','polyline.shp','POLYLINE')

# 使用arcpy.da.InsertCursor类插入新创建的 点要素 到 点要素类
insertCursor = arcpy.da.InsertCursor(polyline_featureClass, ['Shape@'])
insertCursor.insertRow([line_Geometry])

del insertCursor
复制代码

创建简单面要素、要素类

复制代码
#coding=utf-8
import arcpy
# 环的组成点集合
points=[[0,0],[0,10],[10,10],[10,0],[0,0]]

# 组成环的Array对象
ring=arcpy.Array([arcpy.Point(*p) for p in points])

# 创建features列表,用于存放要素,在内存
features=[]
# 通过ring(Array)创建Polygon对象
# 将Polygon要素添加到features列表
features.append(arcpy.Polygon(ring))

# 调用复制要素工具,将内存中的features列表创建为shapefile
arcpy.CopyFeatures_management(features, r"E:\3 coding\py code\arcpy\create\polygon\polygon.shp")
复制代码

创建多部件面要素、要素类

创建一个多环面。

内环的点可以是逆时针,也可以是顺时针的,在创建面的时候arcpy会自动处理拓扑,创建多环面。

复制代码
#coding=utf-8
import arcpy
# 3个环的组成点集合
points1=[[0,0],[0,10],[10,10],[10,0],[0,0]]
points2=[[2,2],[2,8],[8,8],[8,2],[2,2]]
points3=[[4,4],[4,6],[6,6],[6,4],[4,4]]

# 3个环的Array对象
ring1=arcpy.Array([arcpy.Point(*p) for p in points1])
ring2=arcpy.Array([arcpy.Point(*p) for p in points2])
ring3=arcpy.Array([arcpy.Point(*p) for p in points3])

# 创建features列表,用于存放要素,在内存
features=[]
# 通过Array组成的Array创建Polygon对象
# 将Polygon要素添加到features列表
features.append(arcpy.Polygon(arcpy.Array([ring1,ring2,ring3])))

# 调用复制要素工具,将内存中的features列表创建为shapefile
arcpy.CopyFeatures_management(features, r"E:\3 coding\py code\arcpy\create\polygon\polygon_multiPart.shp")
复制代码

 

作者:yzhyingcool
博客:https://www.cnblogs.com/yzhyingcool/

posted on 2021-05-28 22:46  gisai  阅读(1318)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3