【发布时间】:2016-09-29 14:35:36
【问题描述】:
我是 GIS 编程课程的学生。我的教授在注册之前没有告诉我 Python 经验会有用。我没有使用 Python 的经验,在这个项目上需要帮助。任何示例或清晰的解释都会很棒。这是项目:
复制位于 \cartggp\Geo573&673_Lab\Lab5_Part2 的 FirDepartment.gdb 文件地理数据库 到您的计算机。写一个python单机脚本 计算 44 个中每一个中的所有单户住宅和多户住宅 火灾响应区:(100 分)
1) 每个火灾响应区在数据库中都有一个对应的要素类 名称结构“FireBoxMap_id”。还有一个建筑足迹要素类, BldgFoorprints,带有一个名为 UseCode 的使用代码字段(1=single-family, 2=多家庭)
2) 首先,您需要使用 ListFeatureClasses 创建一个列表对象,其中包含 所有“FireBoxMap_id”要素类。然后使用一个for循环结构来遍历 每个区域。
3) 在每个区域要素类的for循环结构中,需要编写代码 添加两个新字段以计算单户和多户 建筑物。 (检查 AddField 地理处理工具的使用)
4) 然后选择区域内的所有独栋建筑,得到计数, 将计数分配给单户计数的两个新字段之一;进而 选择区域内的所有多户住宅,获取计数,分配 将计数转移到另一个新字段以进行多户计数。 (检查使用 CalculateField 地理处理工具)
5) 您可能需要的工具: where_clause 的 AddFieldDelimiters MakeFeatureLayer(将 where_clause 设置为仅检索单个家庭或 多户住宅。 SelectLayerByLocation(使用“HAVE_THEIR_CENTER_IN”选项) 获取计数
到目前为止,这是我在第 2 步中的内容:
import arcpy
import os
arcpy.env.workspace = "D:\Fehr10\Fehr_Python\Datapdf\FireDepartment.gdb"
featureclasses = arcpy.ListFeatureClasses()
这并不多。我基于 GIS 帮助数据库中的一个示例。
【问题讨论】:
-
您在这里提出了几个不同的问题。您应该考虑将其拆分为多个问题,例如“如何使用 arcpy 获取要素数量?”、“如何使用 arcpy 计算字段?”和“如何使用 arcpy 选择特征?”一旦你这样做了,你就会意识到你的问题要简单得多,而且这些问题在 arcpy 文档和 gis.stackexchange.com 上都有简单的答案。