Questions tagged «arcpy»

由Esri创建的网站包,用于将Python桌面(ArcMap和ArcGIS Pro)的地理处理,地图绘制等内容暴露给Python。

2
使用ArcGIS Desktop在多边形(孔路径)内绘制平行线?
我想使用具有多个不规则多边形的多边形要素类,并让Arc在每个多边形内部绘制平行线。理想情况下,对于Arc来说,找出多边形最长边的角度并在该边上绘制平行线会很好,但是为了简单起见,我想如果我可以为所有平行线输入一个角度,那会更容易。 因此,线的角度,线之间的宽度,最小/最大长度以及从多边形侧面开始的缓冲区宽度是我的基本标准。 如果有帮助,请附上图像。

3
从shapefile在ArcPy图层上设置定义查询?
我正在尝试确定使用ArcPy设置图层定义查询的选项。 我知道使用arcpy.mapping.ListLayers()时是可能的。 但是,在这种情况下,我正在加载shapefile,并在ArcPy中使用arcpy.MakeFeatureLayer_management()。 我想在使用此地理处理器创建的图层上设置定义查询。 这可能吗?

2
编写可以同时在Arcpy和PyQGIS上调用的脚本吗?
我花了很多时间来寻找这个主题的明确答案,但仍然无法真正实现以独立脚本访问PyQGIS的目标。 已针对许多不同的问题提供了部分答案,例如: 使用QGIS和环境变量的独立应用程序 独立脚本中的pyQgis,矢量加载错误 使用PyQGIS编写独立的Python脚本? 我发现的最困难的答案是@gene 在这里提供的。 我特别感兴趣的是能够编写可以在Arcpy和PyQGIS上调用的脚本。我已经根据PyQGIS Cookbook文档将PATH和PYTHONPATH系统变量设置为: C:\OSGeo4W\apps\qgis\bin,%PATH%;C:\Python27\ArcGIS10.2\Lib\site-packages\PyQt4;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\ 和 C:\OSGeo4W\apps\qgis\python; C:\OSGeo4W\apps\Python27\Lib\site-packages 分别。 我从以下脚本开始: from qgis.core import * QgsApplication.setPrefixPath("C:\OSGeo4W\bin\qgis.bat", True) QgsApplication.initQgis() # or your solution # …

3
使用工具验证而不使用频率在ArcGIS中生成多值选择列表?
我正在尝试改编ESRI博客网站上的模型和脚本组合,标题为 “生成多值选择列表”。 但是,我得出的结论是,嵌入式脚本中使用的部分验证依赖于“频率”工具才能正常运行,但这仅适用于Advanced许可(lam)。博客文章解释了工作流程以及在何处下载模型和脚本(但我会根据要求将它们愉快地发布在此处)。据我所知,我所追求的功能的核心是生成一个多值选择列表: ..取决于验证脚本是否正常运行。没有验证,我无法从字段中获取值以列表形式显示。有什么我可以从验证脚本中删除的东西来获得我想要的功能,还是有解决方法?我不熟悉验证过程。这是验证的代码(我打算作为代码示例发布,但是看起来可能更容易理解): [ 编者注:这是实际的验证码,图片不正确] import arcpy class ToolValidator(object): """Class for validating a tool's parameter values and controlling the behavior of the tool's dialog.""" def __init__(self): """Setup arcpy and the list of tool parameters.""" self.params = arcpy.GetParameterInfo() def initializeParameters(self): """Refine the properties of a tool's parameters. This method is …

4
使用ArcPy而不是ArcObjects刷新ArcMap中的开放属性表?
我正在从ArcMap中的arcpy运行“计算字段GP”工具。更新行值后,直到我使用“重新加载缓存”工具(“表选项”>“重新加载缓存”)后,它才会显示。如何在不使用ArcObjects的情况下自动刷新属性表? 我已尝试按照@ blah238建议使用python更新定义查询,您如何“重新加载”打开的属性表,但这无济于事。重置数据源不是一种选择,因为要素类可能正在编辑会话中,并且我不想失去与源数据的连接。

2
寻求用于创建.mxd文件的Python脚本?
我是ArcGIS和Python的新手。我的要求是使以下手动过程自动化: 在ArcGIS for Desktop中创建图层。换句话说,创建一个ArcMap文档(.mxd)。 将创建的ArcMap文档(在步骤1中)作为服务发布到ArcGIS Server。 目前,我们正在手动执行此操作。我遇到了使用Python自动执行第2步的脚本。 如何自动执行步骤1和步骤2?

4
使用ArcPy从点对坐标创建线?
我有一些点对坐标(起点和终点),必须将它们转换为线。到现在为止,我曾经在这两个坐标的追加pippo.Point(),一个pippo.CalculateGeometry()定义每个PIONT的几何形状,并pippo.append(defined geometry)找出一对点,然后PointsToLine获得我行。对于数百行而言,这是相当昂贵的时间。 有更短的方法吗? 例如,将每条线的起点和终点放置在单个表的不同字段中,然后直接导入线而无需传递点几何。

5
在ArcGIS Python脚本工具的下拉框中是否选择了图层的完整路径?
我在ArcGIS中有一个基于Python脚本的工具。该工具的参数之一是输入栅格文件,我已将其设置为栅格层(使用工具箱中的工具属性)。这意味着当我执行该工具时,我可以选择从当前加载的栅格图层的下拉列表中选择该参数,或者通过导航在文件系统中查找新的栅格图层。 然后,我使用标准arcpy.GetParameterAsText(0)代码将参数放入我的Python脚本中。当我通过文件系统进行浏览,如对话框中的文本选择一个文件也能正常工作是对文件的完整路径,但是,当我刚刚从下拉列表中选择我回来的文本只是文件名(如file.tif) 。 我正在运行的代码需要知道文件的完整路径-如何获得此文件? 如果我可以假定文件始终在工作区中,则可以将文件名附加到arcpy.env.workspace,但是我不能假设。我是否需要遍历所有已加载的层,直到找到具有相同名称的层,然后找到其完整路径,或者是否有更简单的方法?

3
解除对要素类的锁定
当我尝试删除要素类时,在使用使用相同要素类的Arcgis引擎应用程序后或使用过程中,出现关于锁的错误,因此在重新启动计算机之前无法使用该锁。 我想知道一种使用arcpy或arcobjects 10.1删除锁的方法,如果我能在也可以锁定地理数据库的arcengine应用中使用锁,那将是完美的选择,我在SE中看到过有关锁的不同文章,但没人它们提供了使用ArcObjects释放锁的解决方案。

5
使用ArcPy用线分割多边形?
在考虑使用ArcGIS for Desktop缓冲物理障碍吗?,这使我不知道如何使用ArcGIS中的地理处理工具以编程方式用线分割多边形。 手动使用拓扑工具栏上的 “ 切割多边形”工具或“ 分割多边形”工具,但是如何使用modelbuilder或python groprocessing脚本工具完成同一任务? 马上,我想到了Analysis toobox中的所有工具,例如Union,Identity等,但它们都是Polygon-Polygon工具,而不是 Polygon-Line工具。甚至“ 分割”工具也是“多边形”。 有任何想法吗?

4
避免使用ArcPy排他的架构锁定错误?
我有一个脚本,每晚都可以更新数据库中的某些功能(仅用于复制和替换某些功能)。此功能是“只读的”。我的问题是我无法避免用户打开了这些功能,并且我的脚本可能显示以下错误: ExecuteError: ERROR 000464: Cannot get exclusive schema lock. Either being edited or in use by another application. 我可以通过某些命令强制phyton脚本复制文件,甚至由某些用户打开吗?我可以在运行脚本之前断开数据库上的所有连接吗?

2
使用带有Python的ArcGIS Desktop,基于另一个属性的更改来计算新属性?
我正在尝试将一组gps时间编码的点数据分类为基于不同属性的行为。 我已经创建了一个属性,该属性基于位置,对于家来说是0,对于外出来说是1,现在想对离开家的旅程进行编号(一组点将01111111111110是一次旅程,因为它是在家中开始和结束的)。我添加了将具有行程编号的属性字段,但不知道如何计算该字段,因此它基于家庭/离开字段。 以下是 GPS数据的示例(使用“ *”表示无关的信息,并将索引时间简单地标记为1、2等),上述“回家/离开”指示器以及所需的行程指示器“行程”,我需要计算: Time Lat Lon Home/Away Trip 1 * * 0 0 2 * * 1 1 3 * * 1 1 .... 12 * * 1 1 13 * * 0 0 14 * * 0 0 15 * * 1 2 16 * * 1 …

1
使用数据驱动页面创建表的Python脚本
我正在尝试转换一些python脚本,以显示位于特定数据驱动页面内的功能表(基于dbf)。到目前为止,我已经使脚本成功地能够将地图刷新到特定的表,但是它不会更新表。 我将其设置为三个文本框,当用户从ArcToolbox运行脚本时,应使用三个特定字段进行更新。 关于为什么我的表没有更新的任何建议? import arcpy, sys, os #Reference current MXD mxd = arcpy.mapping.MapDocument("current") #Get input parameter Name = arcpy.GetParameterAsText(0) #Reference data frames mapatlasDF = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] locatorDF = arcpy.mapping.ListDataFrames(mxd, "Locator Map")[0] #Reference appropriate layers atlasLyr = arcpy.mapping.ListLayers(mxd, "PinalCreekMapAtlas_HalfMile", mapatlasDF)[0] locatorLyr = arcpy.mapping.ListLayers(mxd, "Locator Map", locatorDF)[0] atlasoutlineLyr = arcpy.mapping.ListLayers(mxd, "Map Atlas …

4
ArcGIS Python SearchCursor文件锁定?
我有一个脚本,该脚本从shapefile的字段获取值以返回给用户。 似乎只有当arcpy.SearchCursor称为ArcMap 10.0时,该文件才会锁定,并且在脚本运行完成后不会将其删除。要解除锁定,我必须关闭ArcMap。在脚本中,我在使用SearchCursor对象以及行对象后将其删除。 我使用脚本的方式是它尝试在后续运行中删除工作空间文件夹,但是由于锁定而无法执行……直到我关闭ArcMap。 有什么建议可以让这个锁消失吗?

2
使用ArcPy列出文件夹中多个地理数据库中的要素类?
我有一个包含大量地理数据库的文件夹。地理数据库中包含要素类。我想使用Python脚本获取这些地理数据库中要素类的列表。到目前为止,我只列出了地理数据库。有没有人建议在地理数据库中列出要素类? 我的脚本中的打印项目行为我提供了以下结果: C:\output\data.gdb C:\output\otherdata.gdb C:\output\somethingelse.gdb 我想在上面的地理数据库中生成要素类的列表。以下是到目前为止的脚本。 import arcpy, os, sys from arcpy import env arcpy.env.workspace = "D:\\output" inWorkspace = arcpy.env.workspace workspaces = arcpy.ListWorkspaces("*", "FileGDB") for item in workspaces: print item #This part gives me the print statements I shared above # fcList = arcpy.ListFeatureClasses() #I haven't figured this part out …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.