Questions tagged «arcpy»

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

2
在Python脚本工具中为ArcGIS Desktop创建复选框参数吗?
我正在通过编写的Python脚本创建ArcGIS工具。我想知道是否可以有一个复选框参数。 我想要一个参数,用户可以在其中选择要素类,然后从要素类中选择模型中最上层的字段,然后希望用户能够选择他们想要脚本的层并使用从最上层字段派生的复选框结构运行。 python和ArcGIS Desktop可以做到吗?

2
使用ArcPy更改* .lyr文件中涉及要素数据集的数据源路径?
如何使用arcpy更改文件夹X中每个图层文件的源数据路径? 我已尽可能地使用arcpy.mapping来更新和修复数据源,但是得到的却是无济于事的Runtime error <type 'exceptions.ValueError'>: Layer: Unexpected error,它不能告诉我足够的信息来解决问题或遗漏之处。 继承代码(简化为测试单层文件): import arcpy, os fname = r'K:\Layers\xxx.lyr' lyr = arcpy.mapping.Layer(fname) oldpath = lyr.workspacePath print 'oldpath: ', oldpath lyr.findAndReplaceWorkspacePath(oldpath, r'C:\some\other.gdb') print 'newpath: ', lyr.workspacePath 结果: oldpath: K:\Canvec_Utility\Temp.gdb Traceback (most recent call last): File "x10x.py", line 12, in <module> lyr.findAndReplaceWorkspacePath(oldpath, r'C:\some\other.gdb') File "C:\ESRI\ArcGIS\Desktop10.0\arcpy\arcpy\utils.py", line …


5
使用IDLE时避免导入arcpy错误(RuntimeError:NotInitialized)?
ArcGIS版本:ArcGIS 10,Python 2.6.5计算机:Windows 7 64位(Intel) 使用IDLE(gui和cmd提示符)导入arcpy以及使用pythonwin时,出现以下错误。 我从系统中删除了python26和python25,并重新安装了ArcGIS 10和python。因此,我要从此处调用IDLE:“ C:\ Python26 \ ArcGIS10.0 \ pythonw.exe” 错误: **空闲2.6.5 从地理处理中导入arcpy追溯(最近一次调用为最新):文件“”,行1,在导入arcpy文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy__init __。py”中,行17从_base导入gp文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing__init __。py”,第14行*文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10 .0 \ arcpy …
11 arcpy  idle 

5
通过ArcPy检查ArcMap是否处于编辑会话中?
我创建了一个Python加载项按钮,通过将一个要素类属性复制到另一个要素类来帮助加快我的同事的工作流程。它使用arcpy.UpdateCursor函数更新目标要素类中的一行。现在,无论编辑模式如何,都可以运行此按钮脚本。显然,当脚本在编辑会话中运行时,用户可以选择停止编辑而不保存更改,但是当脚本在编辑会话之外运行时,情况并非如此。 如果ArcMap当前不在编辑会话中,如何向脚本添加检查以停止脚本运行? 这关系到ArcMap 10和10.1 我还想与其他ArcMap用户进行核对,以验证在没有进行编辑会话的情况下,通常不允许对表进行更新。 那么该脚本如何在编辑会话之外运行? 该脚本还提出了另一个问题,即当我从列表更新第二要素类表时,ArcMap执行的看似偶然的选择顺序正好对我有用,但这又是一天了。 这是现在可以正常运行的脚本(没有任何10.1编辑器实现): 如何添加检查以确保用户处于编辑会话中? def onClick(self): #Reference mxd mxd = arcpy.mapping.MapDocument("CURRENT") #Reference the main Data frame mm = arcpy.mapping.ListDataFrames(mxd, "MainMap")[0] #Reference the Water System Valve feature class waterValves = arcpy.mapping.ListLayers(mxd, "Water System Valve", mm)[0] #Reference the fire hydrant feature class fireHydrants = arcpy.mapping.ListLayers(mxd, "Water Hydrant", …
11 arcpy  arcmap  editing 

4
获取折线的所有点
我在python中有一些折线要素对象。现在,我想获得折线的所有要点。 例如,如果折线具有起点[0,0]end point [5,5]。结果:[1,1];[2,2];[3,3];[4,4];[5,5]。 我想找到那条线上的所有整数点,包括终点。对于直线来说,这很简单,但是如果折线具有Beizer曲线,圆弧,椭圆弧几何类型,那我该怎么办? 编辑: 我只能使用在所有许可级别的ArcGIS中都可用的那些工具。例如,ArcGIS Basic。

4
尝试使用python从字段中提取唯一值列表
我在FGDB的许多表中都有许多列,我需要在其中提取每列的唯一值。 例如:值可能是[1,2,2,2,3,4],而我正在尝试返回[1,2,3,4] 我可以在ARCGIS中通过其他多种方式来完成这项工作,但是我正在努力扩展自己。 我在网络上找到了一条我认为可以完成工作的python,但是我正在努力使其运行(我不断收到无效的语法错误,因为我一直在第3行中收到语法错误),这无疑是一个非常简单的用户错误。 下面的代码段 import arcpy def unique_values(r'N:\GISProjects\Landuse\Plant_Biosecurity_Project\ArcGIS_Online.gdb\Holdings_Property_Merge' , 'LU_ALUMMaj'): with arcpy.da.SearchCursor(table, [field]) as cursor: return sorted({row[0] for row in cursor}) 这是我从崇高的文字中得到的错误消息: File "C:\Users\hawkinle\Desktop\STDTAS\Unique_Data.py", line 3 def unique_values(r'N:\GISProjects\Steve_Eastwood_Landuse\Plant_Biosecurity_Project\ArcGIS_Online.gdb\Holdings_Property_Merge' , 'LU_ALUMMaj'): ^ SyntaxError: invalid syntax [Finished in 0.1s with exit code 1] 原始问题的更新 我现在使用下面提供的答案更新了我的代码,但是正在收到一个辅助错误。 新代码段: import arcpy def unique_values(table , …

1
识别多边形的形状:伸长率,圆度等
我正在概括地质图。在第一步中,我要处理应删除,放大,聚合等的小多边形。 在应用上述操作之前,我想先进行形状分析,例如细长的多边形或更多的圆形多边形等,因为这可能是处理的关键因素。 地质图的形状非常复杂,应尽可能多地考虑和维护。 是否有任何方法可以根据几何图形识别多边形的形状? 我基本上是在使用ArcGIS,Python。

6
python中有没有更快的方法来查找字段中的最小数字?
使用arcgis桌面10.3.1,我有一个脚本,该脚本使用搜索光标将值附加到列表中,然后使用min()查找最小的整数。该变量然后在脚本中使用。Feature类具有200,000行,脚本需要很长时间才能完成。有办法更快地做到这一点吗?目前,我认为我会手动完成此操作,而不是因为花费时间而编写脚本。 import arcpy fc = arcpy.env.workspace = arcpy.GetParameterAsText(0) Xfield = "XKoordInt" cursor = arcpy.SearchCursor(fc) ListVal = [] for row in cursor: ListVal.append(row.getValue(Xfield)) value = min(ListVal)-20 print value expression = "(!XKoordInt!-{0})/20".format(value) arcpy.CalculateField_management (fc, "Matrix_Z" ,expression, "PYTHON")
10 arcpy  list 

2
创建受海岸线限制的区域缓冲区
我正在尝试使用ArcGIS 10.2基于预定义区域(例如400平方公里)创建点的缓冲区。除此之外,某些点的缓冲区靠近海岸线,因此需要将缓冲区修剪在海岸线上,并且仍然具有与内陆缓冲区相同的面积(400平方公里)。 有谁知道可以使用“模型开发器”或“ Arcpy”完成此操作吗? 我在Arcpy和R方面的技能有限,但是很乐意进行一些脚本编写以获得解决方案。 请参见下面的图片,其中显示了我要实现的目标的图形表示
10 arcpy  arcgis-10.2  r  buffer 


1
ArcGIS Pro任务是否支持可在地图框架上运行的Python Toolbox工具?
ArcGIS Pro任务是否支持可在地图框架上运行的Python Toolbox工具? 我问的原因是我在尝试执行以下操作时被卡住: 启动ArcGIS Pro 1.1.1 创建一个新项目-我叫mine TestProject并放在C:\ Temp中 使用“项目”窗格将“文件夹连接”添加到我拥有“自然地球”(Natural Earth)世界国家/地区的shapefile的位置 将ne_10m_admin_0_countries.shp拖放到地图中以创建名为ne_10m_admin_0_countries的图层 插入新的布局-我使用了A3横向 在布局上插入新的地图框 在“项目”窗格中,在TestProject文件夹中创建一个New Python Toolbox-我称为mine TestPYT 在“项目”窗格中右键单击“ TestPYT”以对其进行编辑 将代码替换为下面的代码,为Python Toolbox提供两个名为Chile和Switzerland的工具 保存脚本并刷新Python Toolbox以查看两个新工具 运行智利工具以查看布局图上的地图框缩放至智利 运行Switzerland工具,以查看版图上的地图框放大到Switzerland 插入新任务项 在任务项1中插入一个新任务,并将其命名为Chile 在智利任务中,插入一个新步骤,并将其命名为Zoom to Chile 对于“步骤行为”,将其设置为“自动”和“隐藏” 在“操作”选项卡上,我尝试选择“智利”工具将“命令/地理处理”设置为“地理处理工具” 当我选择“确定”时似乎会粘住 当我单击“完成”时,似乎“丢失”了该工具 具体来说,我要创建的工作流包含两个任务,可以单击以放大到智利或缩放到瑞士,但在上面的第19步中遇到了麻烦。 我总体上想做的是找到一个与ArcPy(对于ArcGIS 10.x体系结构)中的Python AddIn工具栏等效的ArcPy(对于ArcGIS Pro),并使用两个按钮(智利和瑞士)来放大这些国家/地区。 我已经执行了几次此程序,有一次我能够使智利和瑞士的工具作为任务使用,但即使那样,它们似乎也没有与地图框架交互(没有错误,只是没有变化)到它们在运行时在“地图框架”中显示的位置),即使从Python工具箱运行时这些工具仍然可以正常工作。 这是要复制/粘贴到Python工具箱(TestPYT)中的代码。 import arcpy class Toolbox(object): def __init__(self): """Define …

2
使用ArcGIS Desktop将动态页面的数量减至最少以映射散点?
我有时会制作地图册以显示兴趣点。使用常规网格创建页面的第一步: 我不喜欢该解决方案,因为a)有些页面上的单点(例如第25页)位于边缘,并且b)太多的页面。 第一个问题很容易使用代码来解决,-将页面范围的矩形移动到相关点范围的中心: 我仍然不喜欢它,因为页面数保持不变,所以看起来非常拥挤。请记住,它们最终都是多份报告!的实际A3纸页。 因此,我编写了减少页数的代码。在此示例中,从45到34。 我不确定这是否可以达到最佳结果, 什么是最好的策略(伪代码,出版物,Python库),请通过点排序以最小化给定大小的矩形以捕获所有点的数量?当然,有人在游戏理论,军事艺术或捕鱼业中发现了它 这是原始问题的更新: 这显示了所需的实际范围和页面大小: 放大显示164页中的10页: 采样点要素类 矩形大小只要保持在限制范围内即可更改,即可以较小。

7
用ArcPy将多边形划分为* n *个相等计数的组?
我的工作任务之一是将包裹分成几组。这些小组将由代理商用来与业主交谈。目的是通过将彼此靠近的宗地分组在一起,以及将宗地划分为相等的数量,以便使工作平均分配,来简化代理的工作。特工的数量可以从一对波动到10+。 目前,我会手动执行此任务,但如果可能的话,希望自动执行该过程。我探索了各种ArcGIS工具,但似乎没有一个适合我的需求。我尝试了一个使用near_analysis和选择多边形的脚本(在python中),但它是随机的,要永久完成一个半正确的结果,比起从头开始手动完成所有工作要花费更长的时间进行修复。 有没有可靠的方法可以自动执行此任务? 结果示例(希望没有出现黄色的除法):

1
在Python工具箱工具中设置值表的默认值
我创建了一个Python工具箱工具来对字段重新排序,并使用重新排序的字段创建新的要素类。该工具运行良好,并且我可以使用值表让用户按他们选择的顺序排列字段,也可以为每个字段填写排名值。但是,此工具的烦人之处在于,在重新排序之前,所有字段都必须一次添加到值表中。 我试图将其设置为默认情况下将所有字段引入值表,并且可以在重新排序之前删除所有不需要的字段。以前有人做过这样的事吗?我试图在UpdateParameters方法中实现这一点。这是我正在尝试的代码: import arcpy import os class Toolbox(object): def __init__(self): """Define the toolbox (the name of the toolbox is the name of the .pyt file).""" self.label = "Reorder Fields" self.alias = "Reorder Fields" # List of tool classes associated with this toolbox self.tools = [ReorderFields] class ReorderFields(object): def __init__(self): """Define …

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.