描述
将参与拓扑的面和线要素加载到目标宗地结构中。拓扑需要一组预定义的拓扑规则:
- 线 - 必须被(面的)边界覆盖
- 线 - 不能自重叠
- 线 - 不能自相交
- 线 - 必须为单一部分
- 线 - 不能相交或内部接触
- 面 - 边界必须被(线)覆盖
使用方法
由“面 - 边界必须被(线)要素覆盖”拓扑规则生成的错误可以标记为异常。这允许加载连接线、未闭合宗地和相关线。
可以选择加载整个数据集或选择的要素。在加载大型数据集时,性能取决于所用计算机的内存规格。该工具最适用于每次加载部分的宗地数据。
将拓扑加载到已包含宗地的宗地结构中时,如果新宗地点和现有宗地点间的容差为要素数据集 XY 容差的 2 倍之内,则二者将合并。
为了将面要素和线要素加载到宗地结构,拓扑应该经过验证、规整并且没有错误。如果执行编辑操作纠正了拓扑错误,请务必在运行工具之前,重新验证拓扑。
要验证整个拓扑,请使用验证拓扑工具。
如果不想验证整个拓扑,可在 ArcMap 中通过单击位于拓扑工具栏上的验证当前范围中的拓扑工具 验证地图显示的当前范围。
面要素类或线要素类都可以作为输入(拓扑)要素类参数使用。如果已经在输入要素类的要素图层中做好选择,则将仅加载所选要素。如果线要素类用作输入要素类,则没有形成闭合环(悬挂线)且没有对应面的任何选定线,都将作为未闭合宗地的一部分加载。如果在线要素类中具有类别字段,则可将悬挂线的类别值设置为 3 以表示连接线,或者设置为 1 以表示相关线。
COGO 在线要素类中不是必要属性。如果宗地线没有 COGO 属性,则导入程序将基于线几何生成 COGO 属性。如果有 COGO 属性,则工具将加载现有 COGO 属性。
可以使用源宗地面和宗地线要素类中的属性字段,在宗地结构表中填充系统属性。例如,如果要将宗地标识号 (PIN) 加载到宗地结构表中的 Name 字段,则源面要素类需要有 PIN、NAME、LOT 或 APN 属性字段。
如果将线要素类用作输入要素类以加载未闭合宗地,则可以通过填充线要素类中的属性字段来填充宗地表中的系统属性字段。例如,要加载未闭合宗地的宗地标识号 (PIN),请将 Name 属性字段添加到线要素类。要为未闭合宗地分配测量图,请添加 PlanName 属性字段。
只要在加载数据之前宗地结构表中已经创建了与面要素类和线要素类中用户定义的属性字段相同的属性字段,就可以将该用户定义属性字段加载到宗地结构中的宗地和线表。
要将用户定义的属性字段和系统属性值加载到宗地结构的点表中,需要为输入点要素(可选)参数指定一个点要素类。在加载过程中,将自动创建宗地结构点。加载点要素时,仅将点要素的属性值加载到宗地结构中相应点的属性字段中。属性值可加载到宗地结构点表中的系统属性字段和用户定义的属性字段中。要成功加载用户定义的属性字段,该字段必须位于源点要素类和宗地结构点表上。
最小线串分段记数(可选)参数是将线要素作为线串或自然边界进行加载之前,线要素可以拥有的最小线段数。
如果为控制匹配容差(可选)参数指定了容差,则在任何加载的结构点处于结构中现有控制点指定匹配容差范围内的情况下,这些点将被关联到该控制点。
选中将宗地作为未连接的组导入选项可将宗地作为未连接的组进行加载。未连接宗地存在于宗地结构以外的自己本地的坐标空间中。可以随时将未连接宗地连接到宗地结构中。建议仅将较小的宗地组加载为未连接宗地,以降低将这些宗地连接到结构时连接过程的复杂性。不建议将此选项用于加载较大的宗地组。
语法
arcpy.fabric.LoadTopologyToParcelFabric(target_parcel_fabric, in_topology_class, {in_point_class}, {linestring_minimum_segments}, {control_match_tolerance}, unjoined_group, {direction_units}, {direction_type}, compute_area, {area_units}, {radial_point_tolerance}, {accuracy_units})
参数 | 说明 | 数据类型 |
target_parcel_fabric | 要加载数据的目标宗地结构。 | Parcel Fabric Layer |
in_topology_class | 属于拓扑一部分的输入要素类或图层。要素类可以是线或面。 | Feature Layer |
in_point_class (可选) | 输入点要素类或图层。点要素类不需要是拓扑的一部分。只将输入点要素类中用户定义的属性加载到宗地结构中相应的点上。 | Feature Layer |
linestring_minimum_segments (可选) | 在宗地结构中将折线要素作为线串或自然边界进行加载之前折线要素可以拥有的最少线段数。默认值是最少 10 段线段。 | Long |
control_match_tolerance (可选) | 新宗地结构点与结构中的现有控制点相关联所使用的容差。容差的长度单位与结构坐标系的长度单位完全相同。如果未指定控制匹配容差,则使用默认值 0.1 米。 | Linear unit |
unjoined_group | 确定要素迁移方式。
| Boolean |
direction_units (可选) | 在加载过程中,为线要素生成 COGO 方位角属性时所使用的方向单位。
| String |
direction_type (可选) | 在加载过程中,为线要素生成 COGO 方位角属性时所使用的方向类型。
| String |
compute_area | 确定要素迁移方式。
| Boolean |
area_units (可选) | 如果选中计算新宗地的面积选项,在迁移过程中,计算宗地面积时所使用的面积单位。
| String |
radial_point_tolerance (可选) | 新计算的曲线中心点与结构中找到的现有曲线中心点相匹配所使用的容差。此外,如果几个计算出的曲线中心点位于该容差中,则求出这些点的平均值并将其合并为一个中心点。如果没有指定径向容差,则使用默认值 0.5 米。 | Linear unit |
accuracy_units (可选) | 要迁移的线和面的精度类别。精度类别是由宗地结构的测量日期定义的。精度类别 1 是最高的数据精度(最近测量),而精度类别 6 是最低数据精度(1800 年或更早)。精度类别在结构平差中使用。
| String |
代码示例
LoadATopologyToAParcelFabric 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用 LoadATopologyToAParcelFabric 工具。
import arcpy
arcpy.env.workspace = "C:/Parcel_Editor_Tutorial/Encinitas_City/Cadastral.gdb"
arcpy.LoadTopologyToParcelFabric_fabric("NewFabric", "Enc_polgon", "", "100", "0.5",
"JOINED_GROUP", "DEGREES_MINUTES_SECONDS",
"NORTH AZIMUTH", "COMPUTE_AREA", "HECTARES",
"1", "3 - 1908 to 1980")
LoadATopologyToAParcelFabric 示例 2(独立脚本)
以下独立脚本演示了如何使用 LoadTopologyToParcelFabric 工具来遍历和加载所选宗地组。
# Name: LoadTopologyToParcelFabric_Example2.py
# Description: Iterates through selections of parcels and imports each parcel
# selection into a parcel fabric. Parcels are selected using
# overlying blocks in the IterateBlocks feature class. Each
# polygon in IterateBlock is selected by block number in the
# "BlockNumber" attribute field.
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "c:/data/OaklandCounty.gdb/ParcelData"
# Set variables
# BlockNumber is an attribute on the ItearateBlocks feature class
x = 1
whereclause = '%s = %s' % ("BlockNumber", x)
# Make feature layers from feature classes
arcpy.MakeFeatureLayer_management("c:/data/OaklandCounty.gdb/ParcelData/IterateBlock",
"IterateBlock_lyr")
arcpy.MakeFeatureLayer_management("c:/data/OaklandCounty.gdb/ParcelData/TaxParcelPolygons",
"TaxParcelPoly_lyr")
# Search feature class IterateBlock and obtain all features (block polygons)
rows = arcpy.SearchCursor("IterateBlock")
# Iterate and select each block. For each selected block, select underlying
# parcels and import selected parcels
for row in rows:
arcpy.SelectLayerByAttribute_management("IterateBlock_lyr", "NEW_SELECTION",
whereclause)
arcpy.SelectLayerByLocation_management("TaxParcelPoly_lyr", "COMPLETELY_WITHIN",
"IterateBlock_lyr", "", "NEW_SELECTION")
arcpy.LoadTopologyToParcelFabric_fabric("CountyFabric", "TaxParcelPoly_lyr",
"", "100", "", "JOINED_GROUP",
"DEGREES_MINUTES_SECONDS",
"NORTH_AZIMUTH", "COMPUTE_AREA",
"HECTARES", "0.5", "4_1881_TO_1907")
x += 1
whereclause = '%s = %s' % ("BlockNumber", x)
# Since we only imported parcels that were completely within the IterateBlock
# polygons, we now need to import the perimeter parcels that are crossed by
# the boundary of the IterateBlock polygons
# Clear existing selection on IterateBlock_lyr
arcpy.SelectLayerByAttribute_management("IterateBlock_lyr", "CLEAR_SELECTION")
arcpy.SelectLayerByLocation_management("TaxParcelPoly_lyr", "CROSSED_BY_THE_OUTLINE_OF",
"IterateBlock_lyr", "", "NEW_SELECTION")
arcpy.LoadTopologyToParcelFabric_fabric("CountyFabric","TaxParcelPoly_lyr", "",
"100", "", "JOINED_GROUP",
"DEGREES_MINUTES_SECONDS",
"NORTH_AZIMUTH", "COMPUTE_AREA",
"HECTARES", "0.5", "4_1881_TO_1907")
环境
许可信息
- Basic: 否
- Standard: 是
- Advanced: 是