问题标签 [arcpy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arcgis - 使用 SQL Server 表中的变量重新分类 ESRI 栅格(使用 pyodbc 连接)
我正在尝试使用存储在 SQL Server Express 表中的值对栅格文件(表示植被和土地覆盖类型)进行重新分类。我在表中有一组约 400 个物种的记录,每一行代表一个不同的物种,每个植被类型都有一个列。如果每种植被类型适合该物种的栖息地,则将其编码为“1”,如果不适合,则将其编码为“0”。然后,植被栅格将根据与物种记录相关的值重新分类为两个值,“1”或“0”(每个物种的值会略有不同)。
在 PythonWin 中,我使用 pyodbc 连接到 SQL Server Express 数据库表,然后执行选择查询语句将物种记录(行)的值收集到 pyodbc 游标中。然后我想在 remap 语句中将每个列值分配给输出栅格值(参见附加代码)。不幸的是,我不断收到以下错误:
游标具有基于选择查询的 SQL Server Express 表中的所有值,我可以通过游标对象的row
参数访问数据。所以 row.BIOME_X 变量肯定存储的是 1 或 0 值。或者我只是在用 Python 语法做一些愚蠢的事情。有任何想法吗?
谢谢!
python - 排序后填充唯一 ID 字段,Python
我正在尝试在访问表中创建一个新的唯一 id 字段。我已经有一个名为 的字段SITE_ID_FD
,但它是历史性的。该字段中唯一值的格式不是我们当前的格式,因此我正在使用新格式创建一个新字段。
我写了以下脚本:
这很好用,但它会根据 objectID 的默认排序填充新的 id 字段。我需要先对 2 个字段进行排序,然后根据该排序填充新的 id 字段(我想先按一个名为的字段排序SITE
,然后再按旧的 id 字段SITE_ID_FD
)
我尝试手动对 2 个字段进行排序,希望 Python 能够接受排序,但事实并非如此。我不确定如何在 Python 中执行此操作。任何人都可以提出一种方法吗?
python - SDE 的 ListFeatureClasses() 故障
我正在使用 arcpy 在我的 SDE 中的每个要素数据集上运行 ListFeatureClasses() - 该行如下所示:
但是对于我知道(并且可以从中加载数据)的一些特征数据集,没有返回任何内容。有没有人遇到过这个问题?
python - ArcGIS 10 中的 Python 脚本正在使用模块 re 并返回“未定义全局名称‘re’”
我是 python 脚本的新手,我主要在 ArcGIS 10 中使用它。我的脚本应该重新格式化字段 CINTP1 中的字符串。一个示例是“000000100”并返回“1.00”。我已将它导入到工具箱中,以便在表 'MAPCHAR' 中的选定记录上运行。我不断收到的错误是:
:错误000539:错误运行表达式:removeLeadingZeros(“000000100”):未定义全局名称're'执行失败(CalculateField)。
执行失败(脚本)。
这是我的脚本:
任何帮助将不胜感激..谢谢,
python - Python - 停留在从 csv 读取特定行
我需要将列添加到基于 csv 的“匹配”形状文件中。我还有最后一步要完成,即从 csv 获取要输入 shp 的值。
我明白了
readCSV[rowID] Traceback(最近一次调用最后一次):文件“”,第 1 行,类型错误:'_csv.reader' 对象不可下标
精简后的 CSV 是
文件看起来像
该代码将 OVL_CAT + OVL2_DESC 与文件名匹配。
然后,我获取代码以添加名为 LGA_CODE 的列,并需要使用第 2 行第 1 列的“583094”填充它...当我无法调用 FileList 2以从 csv 获取第 2 行时,我该如何获取(在下面的示例中为 3,但在 python 中为 2)?
=== 基于评论的更新代码 - 如果有人需要,一切都可以找到。
python - 将基于 arcpy 的 python 脚本转换为 OGR 以实现半自动元数据创建
我创建了一个脚本来使用基于 arcpy 的编码自动生成基本 ANZLIC 标准元数据。谁能帮我把它转换成 OGR/GDAL python?这样它就可以在 QGIS 中运行并处理所有类型的矢量和栅格数据。
下面是对重要部分进行一些注释的工作代码。
添加/替换为以下内容
...
在这里,我们将需要一个类似的调用来列出 ogr 可访问的数据集(ogrinfo 似乎只列出文件的属性 - 有没有类似于 arcpy.List 的东西......)
上面的代码需要调用 osgeo.ogr.Open(File) 对吧?
以下需要为osgeo重写...
我看到我可以使用以下内容
python - Python arcpy 脚本所需的错误处理建议
我可以就如何处理 Python 脚本中的错误提出一些建议。从我通过阅读该站点上的所有 Python 错误处理帖子所收集到的信息来看,您不能简单地使用 try except continue 语句绕过 for 循环中的错误。相反,您必须直接处理每个错误。这是我在将它们捆绑在一起时遇到问题的地方。我附上了在 for 循环中间发生的错误消息。此外,我附上了我的脚本,该脚本通过以下工作流程:
- 在栅格周围放置一个多边形
- 在多边形的平均中心上放置一个点
- 使用该点来标识与其相应栅格关联的特定县
- 根据选定的县多边形裁剪栅格
如何将错误消息中的信息合并到 try except continue 语句中,以便脚本可以移动到列表中的下一个栅格,而不是在处理过程中停止?
python - 使用更新光标填充要素类名称和 OID 的 2 个字段
我目前正在尝试填充 2 个字段。它们都已经在我想用现有要素类中的数据填充的表中创建。这个想法是从与特定项目#匹配的所需要素类中复制所有数据。与项目 # 匹配的行将复制到具有匹配字段的空白模板。到目前为止,一切都很好,除了我需要将来自 OBJECT ID 字段和要素类名称的数据推送到表中的 2 个字段中。
上面的代码是我尝试使用要素类的名称填充字段的众多方法。我试图对 OID 做同样的事情。
此代码是数据集中要素类的主循环,我创建了一个新图层/表以用于将数据复制到表中。要素类名称和 OID 的数据没有要推送的数据,所以这就是我卡住的地方。
谢谢大家
python - 形状文件编辑库
我需要通过删除我刚收到的一些 ESRI shapefile 中的重复多边形节点来自动更正错误。然而,我对如何使用 ArcPy 来实现这一点感到困惑。
我对图书馆的搜索也没有产生什么结果。最好的一个(Python Shape File Library)能够编辑 shapefile,但错误仍然存在。
是否有任何免费可用的库可供我用于此任务?
如果没有,我如何使用 ArcPy 来自动化该过程?
我更喜欢 .NET(C# 或 VB.NET)或 Python 中的库。
python-2.7 - iterate through paired values in dictionary
I have converted grid1 and grid2 into arrays and using following function which iterates through table and should return corresponding value form table when grid1 and grid2 values are matched. But somehow the final output contain only 4 integer values which isn't correct. Any suggestion what is possibly wrong here?