Questions tagged «arcpy»

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

2
使用datetime.date.today()中的今天的日期计算Date字段?
我正在使用arcpy.CalculateField_management将当前日期添加到属性表的工具的一部分。我在互联网上徘徊了很多,似乎找不到解决此问题的方法。 使用此代码时,我得到的值是“ 12:00:00 AM” input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013' today = datetime.date.today() dte = today.strftime('%m/%d/%Y') arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON") 使用此代码时,我从今天的“ 10/07/2014”获取值“ 06/19/1905” input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013' today = datetime.date.today() dte = str(today) arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON") 对我在做什么错有任何想法吗?我想避免使用更新游标,但是如果这是最后一个选择,那么会这样做。

1
在Python脚本工具的参数中设置下拉列表?
我正在尝试从我编写的python脚本创建一个工具,该工具将使用我创建的列表,并将其用作完成的工具中的下拉菜单,作为输入之一(例如,请参见随附的图片): 我正在使用的列表是一个很大的列表,其中包括佛蒙特州的所有城镇,我从表格中的脚本中生成它(请参见下面的代码)。我怀疑目前我的问题只是设置工具“属性”以获取此列表并使用它为用户创建一个下拉列表。这是创建用于参数的列表的代码块-有人看到该工具的此代码结束有任何问题吗? import arcpy arcpy.env.workspace = "Z:\\OPS\\TechnicalServices\\Culverts\\GetCulverts\\GetCulverts.gdb" towns = "Database Connections\\GDB_GEN.sde\\GDB_Gen.VTRANS_ADMIN.townindex" arcpy.MakeFeatureLayer_management(towns,"towns_lyr") NameList = [] NameListArray = set() rows = arcpy.SearchCursor("towns_lyr") for row in rows: value = row.getValue("TOWNNAME") if value not in NameListArray: NameList.append(value) town = NameList town = arcpy.GetParameterAsText(0) 这也是工具属性的图像,带有默认的验证代码-我需要更改此验证代码吗? 我寻找了有关更改此验证码的信息,但找不到有关将其用于格式化下拉列表的信息。

3
在地理数据库中按名称搜索要素类或表?
我正在寻找一种使用名称来搜索地理数据库中的要素类或表的方法。 有没有类似的功能? 显然,Windows搜索仅返回地理数据库中表的随机ID。我想实际搜索其中的数据集。 我认为这会对很多人有所帮助,因为我知道我不是唯一将空间数据存储在Geodatabase中的人,只是将其与一千个其他数据集一起存档,而不希望对其进行筛选。 我想在ArcCatalog中搜索这些地理数据库。

2
使用arcpy处理注释层
我想使用arcpy访问注释层(目的是验证文本注释中的几个文本字符串)。注释指的是绘图工具注释,而不是动态标签。这些注释层位于名为“ Default”的组层下。 在ESRI的文件平局注释的会谈为层本身: 地图文档中基本上有三类图层:要素图层,组图层和栅格图层。使用isFeatureLayer,isGroupLayer和isRasterLayer属性可以识别或隔离大多数图层类型,但不能识别或隔离所有图层类型。有一些特殊的图层和数据集不属于以下三类之一:注释子类,尺寸特征,网络数据集,terrain数据集,拓扑数据集等。在这些情况下,您可能需要先测试其他属性以隔离感兴趣的层,​​然后再对其进行处理。 要注意的一件事是ArcGIS如何处理绘图注释,可能有两种平均配置: ArcGIS完全支持两种类型的注释:地理数据库和地图文档 就我而言,它是地图文档。 根据所有这些文档,看起来绘制注释仅仅是层,因此像这样的简单代码应该可以工作: mxd = arcpy.mapping.MapDocument("some\mxdpath\here") df = arcpy.mapping.ListDataFrames(mxd,"Layers") lyr = arcpy.mapping.ListLayers(mxd,"current_annotation_layer",df) 但是问题是注释似乎无法通过数据框获得(考虑到我的每个注释层都与要素层相关联,这很奇怪)。 是否有任何特定的arcpy类可以访问注释(一个类似于ArcObject SDK的IAnnotationFeature2的类)?任何解决方法? 谢谢 !

5
在带有大表的Python中使用ArcGIS游标时如何提高性能?
我在文件地理数据库中有一个很大的点要素类(〜4 000 000条记录)。这是具有100m分辨率的常规点网格。 我需要在这一层上进行某种概括。为此,我创建了一个新网格,其中每个点位于4个“旧”点的中间: * * * * o o o * * * * o o o * * * * [*] =原始网格点-[o] =新网格点 每个新点的属性值都是基于旧网格中其4个相邻点的加权值来计算的。因此,我在我的新网格的所有点上循环,并针对它们中的每一个,在我的旧网格的所有点上循环,以查找邻居(通过比较属性表中的X和Y的值)。一旦找到4个邻居,我们就会跳出循环。 这里没有方法上的复杂性,但是我的问题是,根据我的第一个测试,该脚本将持续数周才能完成... 您是否有提高效率的可能性?我脑海中浮现出一些想法: 索引字段X和Y =>我这样做了,但是没有注意到任何明显的性能变化 进行空间查询以查找邻居,而不是基于属性的查询。这真的有帮助吗?ArcGIS中应该执行哪些空间功能?我怀疑,例如,缓冲每个新点会更有效 将要素类转换为NumPy数组。有帮助吗?到目前为止,我与NumPy的合作并不多,除非有人告诉我这可能真的有助于减少处理时间,否则我不愿涉足其中 还要别的吗?

2
在ArcMap的Python窗口中执行脚本?
我一直在用文本编辑器编写Python,所以我有一个Python脚本script.py。我仍在开发它,所以还不想将其放入工具箱中,目前这意味着将其从文本编辑器复制并粘贴到ArcGIS Desktop中的Python窗口中。 有没有可以从ArcGIS Python窗口调用它的命令? 类似于以下内容: run script.py 它应该存在似乎是合乎逻辑的,但也许不存在。

2
访问Geometry()对象的'length'属性时如何指定度量单位?
使用CalculateField_management工具,可以在计算形状长度时指定度量单位: #Calculate polyline lengths in miles polylines = "C:\sampleShape.shp" arcpy.CalculateField_management(polylines, "shapeLen", "!Shape.length@MILES!", "PYTHON_9.3") 我想使用每个功能的'SHAPE @ LENGTH'在光标内执行相同的操作,并以我选择的单位返回长度: #hypothetical example 1 with arcpy.da.UpdateCursor(polylines, field_names=["SHAPE@LENGTH.FEET", "shapeLen"]) as upCurs: for row in upCurs: row[1] = row[0] upCurs.updateRow(row) 还是可以使用(效率较低的)@SHAPE几何对象? #hypothetical example 2 with arcpy.da.UpdateCursor(polylines, field_names=["@SHAPE", "shapeLen"]) as upCurs: for row in upCurs: row[1] = row[0].length@FEET …

6
使用ArcPy或ModelBuilder移动/偏移点位置?
我有一些具有文本注释功能的非地理参考CAD图层(请参阅此问题)。我创建了一个模型,将文本转换为点,但是将注释转换为Point要素类后,我看到CAD文本锚点与CAD文本的中心(点所在的位置)不一致。 因此,我想以编程方式(使用ArcPy或ModelBuilder )使用将提供的X,Y值相对于其当前位置(delta x,y)[移动]特征。 这将使我可以将GIS点移回它们所属的位置,而不是移到偏移的CAD锚点。 如何完成这项任务? @PolyGeo 使用SHAPE @ XY IN 10.1 提供了一个很好的答案,但目前我正在运行10.0。有10.0个想法吗?

1
使用ArcPy将选定特征导出到新Shapefile?
我目前有一个搜索游标,它遍历ArcGIS 10.1中的shapefile,该文件选择一个要素并对该要素(并且仅对该要素)运行视域分析。在Python中将相同特征导出到具有相同名称的shapefile的最简单方法是什么? fieldFID = 'FID' arcpy.CheckOutExtension("Spatial") arcpy.MakeFeatureLayer_management (inPoints, "pts") with arcpy.da.SearchCursor('pts',[fieldFID]) as cursor: for row in cursor: fid = str(row[0]) print fid arcpy.SelectLayerByAttribute_management ("pts", "NEW_SELECTION", '"FID" = {}'.format(fid)) outViewshed = Viewshed(inDEM,"pts",1,"CURVED_EARTH",0.15) outViewshed.save("C:/temp/output/viewsheds/"+fid)


1
向土地测量师教授Python
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 有没有人有使用Python自动执行或简化常见测量任务的良好示例? 我本周将为GIS课堂教授Python / ArcPy实验室。班上有许多调查学生认为GIS在很大程度上浪费了他们的时间,并且只参加该课程是因为这是必需的。我想给他们一些激动的东西。 一个小背景:大多数学生毕业后可能会在林业或产权公司工作,而我们在阿肯色州,所以这里几乎所有的东西都是基于PLSS。到目前为止,我的想法是向他们展示角度数学函数,并提到了几个免费的基于Python的CAD程序。我还了解到有一个项目可以为AutoCAD编写一个提供Python界面的插件。 我已经教过这堂课,而且正如预期的那样,验船师并不太激动。我仍然很乐意听到使用Python促进测量的任何很好的例子。

1
在同一个Python脚本中使用ArcPy和PyGRASS工具?
我正在尝试编写一个Python脚本,其中包含不同的ArcPy / ArcGIS命令,并希望将其与GRASS地理处理工具结合使用。 不幸的是,导入GRASS库无效。 import grass.script as grass 结束于错误: Traceback (most recent call last): File "<interactive input>", line 1, in <module> ImportError: No module named script 我知道GRASS GIS安装了它自己的Python版本。是否没有办法结合使用ArcGIS和GRASS GIS安装的Python?我尝试将pygrass模块(或我认为的可能是)复制到C:\ Python26 \ ArcGIS10.0 \ Lib \ site-packages \文件夹中。我收到了不同的错误消息,但仍然无法正常工作。 Traceback (most recent call last): File "<interactive input>", line 1, in <module> File …

3
如何对非常大的土地覆盖数据集进行分类?
考虑阿拉斯加的NLCD2001土地覆盖数据集(下载链接)。我需要对该数据集进行重新分类,以便仅保留值41、42和43的像素;所有其他像素值应变为NoData(如果需要,则为0)。 这似乎是一项简单的任务,只需要调用一次“重新分类”工具即可。不幸的是,每次调用都会导致模糊而无益的错误消息: Executing: Reclassify "D:\ak_nlcd_2001_land_cover_3-13-08_se5.img" Value "0 40 0;41 41;42 42;43 43;44 255 0;NODATA 0" "D:\alaska_reclassified.tif" DATA Start Time: Thu Jan 03 09:23:13 2013 ERROR 999998: Unexpected Error. Failed to execute (Reclassify). Failed at Thu Jan 03 09:23:13 2013 (Elapsed Time: 0.00 seconds) 如何对该栅格数据集进行重新分类?我正在使用启用了Spatial Analyst扩展的ArcCatalog 10.0,Build 4000。

2
在ArcMap内部运行的Python脚本与在外部运行的Python脚本?
我刚开始使用Python脚本进行工作。 我当前正在创建一个脚本来自动化一个过程。 基本上,它询问用户客户端名称,获取可用的投影,在客户端的C:驱动器上创建目录,创建客户端专用的文件地理数据库,创建所需的数据集,以及创建客户端数据专用的要素类。最终,它还将必填字段添加到每个要素类中,并可能还会添加其他内容。 我开始时并不真正了解ArcMap的Python脚本的正确礼节。但是我相信到目前为止,我所创建的内容只能在ArcMap之外运行。 这可以接受吗? 我使用的是raw_input(),而不是通过我刚刚发现的arcpy.getparamaterastext()获得用户输入。 这个可以吗? 它确实有效,我不确定这是否是编写脚本的正确方法。 这是我到目前为止的代码。 import sys import arcpy import os #Records name of the client client = raw_input("Enter the name of the client: (letters and underscores only) \n") #Records filepath of client to be created clientpath = "C:/" + client #Inquires if projection file exists …
10 arcpy 

2
如何绕过arcpy for / while循环中的错误?
我有一个方便的脚本工具,该脚本工具在工作空间中循环并重命名shapefile并将其复制到要素数据集。但是,如果工作空间中某个位置的shapefile损坏,则脚本将失败并停止处理。 您如何处理此类错误?有没有办法打印错误文件并继续处理for循环中的下一个shapefile,直到完成? import arcpy from arcpy import env # Allow overwriting of output env.overwriteOutput = True # Parameters env.workspace = arcpy.GetParameterAsText(0) state = arcpy.GetParameterAsText(1) gdb = arcpy.GetParameterAsText(2) # Get a list of shapefiles in folder fcs = arcpy.ListFeatureClasses() # Find the total count of shapefiles in list fcCount = len(fcs) …
10 python  arcpy 

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.