Questions tagged «arcgis-10.0»

当ArcGIS 10.0是从ArcGIS平台使用的版本时,请使用此标记。

1
使用python向TOC添加层
我一直在努力在TOC中添加图层。我设法添加了单层,但需要遍历文件夹并添加所有层。我根本无法添加Shapefile。仅图层文件。以下是我所在位置的代码: for layer in shp_List: mxd = arcpy.mapping.MapDocument("CURRENT") dataFrame = arcpy.mapping.ListDataFrames(mxd, "*")[0] outlayer = lyr layerfile = os.path.join(base_Folder, lyr + ".lyr") arcpy.MakeFeatureLayer_management(layer, outlayer) arcpy.SaveToLayerFile_management(outlayer, layerfile, "ABSOLUTE") addlayer = arcpy.mapping.Layer(layerfile) arcpy.mapping.AddLayer(dataFrame, addlayer, "BOTTOM") #addLayer = arcpy.mapping.Layer(layer) #arcpy.mapping.AddLayer(dataFrame, addLayer, "BOTTOM") #arcpy.RefreshTOC() #arcpy.RefreshActiveView() del addlayer, mxd 上面的代码会将每一层添加到目录中,然后将其删除,然后添加下一层。整个脚本完成后,目录中什么都没有了。我尝试将此脚本添加到模型中并创建一个派生的输出参数,然后将其作为模型参数添加,并选中“添加到显示”。我还检查了地理处理选项,以确保选中了要添加到显示的框。我正在运行Arc 10(无Service Pack)。有人可以帮忙吗?

1
ArcGIS 10中的“字段映射”-ArcPy
我编写了一个Python脚本,该脚本执行空间连接和一些简单的计算。我的问题是为一个特定字段设置合并规则,而其余字段保持不变。例如,我有一个人口字段,当按空间位置连接时,使用合并规则“ First”,该规则将捕获“人口”计数的第一个匹配项。我希望能够将合并规则设置为“总和”,以在另一个多边形的空间范围内找到的所有多边形之间添加总体值。 我对场图和场图对象做了一些细致的修改,但似乎无法使其正常工作。具体来说,我尝试了以下方法:popFieldMap.mergeRule ='Sum'来设置mergeRule,但是它始终恢复为“ First”。 有什么想法可以通过编程方式更改Spatial Join中一个字段的合并规则吗? 谢谢! 这是我的代码(请记住,它非常特定于我的数据,并且包含用于测试脚本某些阶段的行): import arcpy,sys,os #Get the Files involved, set some variables. SectorTable = sys.argv[1] SectorShape = sys.argv[2] MaxDev = sys.argv[3] PopulationFC = sys.argv[4] OutputFC = sys.argv[5] DeviationField ="Angle_Deviation" ID = "SectorID" newID = "BP_ID" mxd = arcpy.mapping.MapDocument('CURRENT') df = arcpy.mapping.ListDataFrames(mxd)[0] #Check to see …

2
GIS桌面硬件规范
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我正在寻找新的PC /笔记本电脑。从我在这里看到的情况来看,许多人正在讨论为个人GIS使用笔记本电脑。可移植性对我来说不是问题,所以我更倾向于台式机,因为在以后的阶段升级特定组件会更容易。问题是,我的预算有限,但是我需要在本月底之前获得预算(我担心我的双核笔记本电脑每次加载ArcMap时都会大火)。我现在打算获取的基本组件是(从R8到$ 1转换): 处理器:Intel®Core™i7 2600-3.40GHz四核,插槽1155、8MB L3,DMI总线,32nm,x64,Intel HT,Intel VT,Intel HD Graphics @ 850MHz = $ 404.27 主板:INTEL®“经典系列”“ Woodworth” H61芯片组:插槽LGA1155,2.5GT / s DMI,适用:第二代Core i3,i5,i7 LGA1155 = $ 97.33 内存:金士顿4GB 1333MHz DDR3 Non-ECC CL9 DIMM = $ 24.80 塔式机箱:FOXCONN Midi塔式机箱和350W PSU-支持1x 12cm风扇= $ 59.99 硬盘:Seagate®Barracuda™7200.12系列-1TB串行ATA II(SATA3)Plus-具有32MB缓存的串行ATA 600(6Gbps)@ 7200RPM-NCQ = $ …

2
多重处理错误-ArcGIS实施
我想知道这里的社区中是否有人尝试使用多重处理进行空间分析。也就是说,我试图遍历一系列栅格,为每个栅格创建一个多处理作业,并通过一个def函数中的多个地理处理步骤运行它们。遵循以下原则 def net(RasterImage, OutFolderDir): arcpy.env.overwriteOutput = True arcpy.env.workspace = OutFolderDir DEM_Prj = DEM_Prj.tif try: arcpy.ProjectRaster_management(RasterImage, DEM_Prj.... FocalStatistics(DEM_prj....) ... if __name__ == '__main__': InputFolder = r'C:\test\somepath' Output = r'C:\test\somepath2' arcpy.env.workspace = InputFolder arcpy.env.scratchWorkspace = r'C:\test.gdb' fcs = arcpy.ListRasters('*') pool = multiprocessing.Pool(4) jobs = [] for fc in fcs: rIn = os.path.join(InputFolder,fc) …

2
使用标签表达式更改字体大小?
我有两个标签类在宗地多边形上动态显示。所有者信息是字体较大的主要标签,下面我将以较小的字体显示一些属性类型信息。 问题在于2个标签类将不会显示我想要的方式;主标签在顶部,副标签则在下面。我使用了maplex和常规的标签引擎,并使用了选项,但是它并不能满足我的要求,并且标签会遍及整个包裹。 唯一可行的方法是将标签导出为功能链接的注释大小,然后手动调整标签位置。可以,但是我需要经常在此地图上更改比例。 我可以编写标签表达式,以便在一个标签中包含2种不同的字体和大小吗? (类似于在文本图形中使用文本标签)

3
如何在arcpy脚本中使用sys.exit(0)提前退出而不显示错误消息?
我有一个用于ArcGIS 10.0的arcpy工具脚本,该脚本包含两个主要的功能部分。用户可以选择是否运行第二部分。如果用户选择不运行第二部分,我只想运行清理功能并使用sys.exit(0)退出脚本,而不会在工具结果窗口中发布错误消息。 GIS-SE中有两个主要线程与退出arcpy脚本有关,但是其中的解决方案并未专门解决错误消息。该代码的一般结构如下: import sys ##import arcpy def CleanUp(): print 'Cleaning up ...\n' def finish(): CleanUp() print 'Exiting ...' sys.exit(0) do_more = False #or True ... input from user #Section 1: do some stuff print 'Doing some stuff ...\n' if not do_more: finish() #Section 2: do more stuff print 'doing …

2
如何将3D曲面和要素从ArcGIS 10成功导入到Sketchup 8?
什么是需要的步骤成功地导出整个3D模型从ArcGIS 10至SketchUp 8(的TIN面,三维多边形,3D折线和3D点组成)?最好,我希望各种组件排成一行。(不需要保留空间参考) 能够将TIN导出到Sketchup并使用ArcGIS插件轻松导出多边形,折线和点的日子已经一去不复返了。 ESRI似乎认为现在该过程要容易得多 …… “到目前为止,这是一个非常繁琐的过程。在ArcGIS10中,此工作流程变得更加容易。” 我谨不同意;直到ArcGIS 9.3.1之前,这都是一个简单的指向操作(使用插件),然后单击即可选择插件的表面以及插件中的图层或选定要素,然后进行导出。实际上,如果选中复选标记,它甚至可以打开SketchUp并加载所有内容并平滑表面。并保留了空间参考! 有没有人尝试使用Collada技术将复杂的TIN曲面导出到Sketchup?(现在没有直接的TIN导出功能)使用TIN作为输入表面的将多边形插值到Multipatch的结果看起来像输入表面: 至于线和点要素,可以导出到DXF 2007,然后导入到Sketchup。当然,没有引用数据,因此每个导入的DXF都放置在默认的0,0,0位置。我可以通过为每个DXF导出“边界框”功能来克服这一问题,但是仍然很麻烦。 我知道人们(包括我自己在内)都在问类似的问题,但是我似乎仍然无法做到这一点。有没有人有办法解决吗?

3
在ArcGIS 10中删除大量字段
有一种很好的策略,可以使用ArcMap或ArcCatalog从ArcGIS中shapefile的属性表中删除几千个字段? 我知道如何手动右键单击并选择“删除字段”;我想知道是否还有其他策略。如果我可以导出带有选定列的shapefile,那也可以,但是我认为这是不可能的。

4
设置在ArcMap中可选择哪些图层?
我无法弄清楚如何在ArcMap 10中切换可选图层。 在9.3版中,我记得能够从列表中选择希望从地图中选择要素的图层。 假设我正在为建筑物编辑两个不同的要素类-“灭火器”和“疏散路线”。 在编辑时,我不想意外地选择“房间”要素类。 我希望能够关闭“房间”的可选功能,但是我知道如何更改此设置的唯一方法是右键单击目录中的一层,然后选择“选择”->“使其成为唯一的可选层”。 我想更好地控制哪些图层是可选的,哪些图层是不可选择的。 有谁知道如何做到这一点?

2
平行线较少时使用“合并分隔的道路”工具
使用“合并划分的道路”工具时,它会合并“通常相互平行的道路”。这意味着从图1开始。它将合并道路彼此靠近的起点(因此结果如图2所示),而不是我希望的全长(图3)。我认为这是因为线条不够平行(某些线条之间的角度太大)。因为即使将合并距离扩展到300m(这比道路分开的距离还多),我仍然无法从图3中得到结果。 有人知道如何减少必须合并的平行线吗?

5
使用ArcPy脚本删除要素图层?
我有一个基于ArcPy的脚本,在该脚本中,我试图将两层相交,其中一层必须在另一层中具有其质心。 由于我需要知道一层(下面的feature_layer)包括另一层的质心,因此我使用了arcpy.SelectLayerByLocation_management()工具。 我没有打开地图文档(* .mxd),因此要执行此操作,必须使用“生成要素图层”将其输入。 文档指出,功能层将在程序退出时消失,但是我需要尽快将其消失,因为我将其置于类似于下面的循环中 for feature_class in large_list_of_feature_classes: some_function(feature_class) def some_function(): feature = "{path to feature class}" feature_layer = "feature_layer" HUCs_layer = "all_HUCs" #HUCs being Hydrologic Unit Codes arcpy.MakeFeatureLayer_management(feature, feature_layer) arcpy.MakeFeatureLayer_management(feature, HUCs_layer) arcpy.SelectLayerByLocation_management(HUCs_layer, "HAVE_THEIR_CENTER_IN", feature_layer, selection_type="NEW_SELECTION") arcpy.CopyFeatures_management(HUCs_layer, selection_name) 我正在寻找一种功能来删除要素图层,但我一直找不到。 我意识到我可以在其中添加某种计数,或者在程序范围内添加一些使每个数字唯一的方法,但这不是理想的方法,除非无法删除要素图层。

1
在ArcGIS地理处理结果窗口中向用户显示引发的错误消息?
是否可以在“地理处理结果”窗口中显示从自定义例外引发的打印语句? 我修改了一个脚本,发现该脚本从用户处获取两个输入,找到关联的功能,然后缩放到该功能。该工具工作正常。我试图通过自动格式化输入以使其具有正确数量的字符来使其更加用户友好。我添加了一个消息框,告知用户输入框中是否有太多字符,但是我使用easygui创建了该消息框(用于GUI的Python库)。相反,我想使用gp结果窗口显示消息。我以为我正确设置了raise和except语句的格式,但是该工具运行并且得到完整的结果,而不是错误消息。我尝试了esri的arcpy帮助,但没有得到我想要的结果。 class BadInputError(Exception): pass # Import arcpy module import arcpy, sys, string from arcpy import env try: def checkInput(inp): mNCount = len(inp) trigger = 0 while trigger == 0: if mNCount == 4: trigger = 1 elif mNCount > 4: inp = '' trigger = -1 raise BadInputError elif …

2
如何使用Python在ArcMap中禁用和启用绘图?
我正在编写的脚本将重新放置两个数据框并设置其范围。 这样做时,它将重绘整个Active View 4次,从而大大降低了脚本速度。 在运行脚本之前按F9或单击“暂停绘图”按钮将禁用绘图并使脚本运行得更快,但是我希望脚本自动执行此操作。 我想在脚本开头禁用ArcMap 10绘图,并在结尾处启用它。 我该怎么做呢?

4
无法取消对ArcGIS Server的授权并重新获得许可证?
根据我对新许可证模型的了解,在ArcGIS Server v10上,无法取消对ArcGIS Server的授权(就像使用桌面一样) 客户可以使用方便的客户服务门户工具来查看其许可证。 -从这里您可以查看已授权的许可证数量以及仍然可用的许可证数量。 方案:-购买1个ArcGIS Server许可证(与许可证级别无关)CCP:0验证,1个可用)-在开发环境中安装并授权CCP:1个验证,0个可用)-移至生产,安装并尝试授权=由于没有可用许可证而失败=无法释放许可证,因此必须与ESRI Inc客户服务中心联系以重置许可证 如果您在美国居住,这可能不会太棘手,但是世界其他地方呢?与分销商联系->与Redlands /客户服务部门联系->然后再次返回=需要很多时间。 只是想知道我是否缺少某些东西,或者以上是否有更好的解决方法? 在9.3.1及更低版本中,可以多次使用相同的ECP进行安装,并且通过在线注册过程,如果Redlands看到具有一个服务器许可证的ECP得到了多次授权,则客户端将获得一部电话。呼叫。 =我想象新模型试图将工作从ESRI的末端移开,但是在尝试过渡时效率可能很低。 我还假设,如果我的机器死了,并且不得不重新安装,仍然需要联系客户服务中心以重置许可证?

1
错误的F ********空间关系?(我没有在骂)
我希望ISpatialFilter.SpatialRelDescription与IRelationalOperator.Relation保持一致。但是,当我运行下面的代码时,我得到: Total features : 44368 Count1: 9 T******** Count2: 9 T******** Count1: 21 F******** Count2: 44359 F******** Count1: 1 ******F** Count2: 1 ******F** 这是F********关系中的错误吗? private void TestSpatialFilter() { IMxDocument mxdoc = ((IApplication)m_application).Document as IMxDocument; IFeatureLayer fLayer = mxdoc.FocusMap.get_Layer(0) as IFeatureLayer; IEnvelope env = ((IActiveView)mxdoc.FocusMap).Extent; env.Expand(0.5, 0.5, true); env.Project(((IGeoDataset)fLayer.FeatureClass).SpatialReference); Debug.Print("Total features …

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.