ArcGIS10中的Python&ArcPy使用指南2
- 格式:pdf
- 大小:502.22 KB
- 文档页数:10
1.ArcGIS 10 Desktop 安装完全攻略安装Desktop跟License Manager,先后顺序无所谓,装完了,我们开始破解,下面的才是重头戏。
1、使用附件的Service.txt替换掉C:\Program Files\ArcGIS\License10.0\bin里的service.txt内容2、修改授权管理及启动服务打开ArcGIS Administrator选择ArcInfo(浮动使用),输入许可管理器计算机名,这里输入localhost就可以了PS:打开License Server Administrator,看下服务是否已经启动,如果没有启动,要先启动服务,然后再设置许可服务器地址为localhost打开License Server Administrator然后再次打开ArcGIS Administrator,查看license服务器配置结果,到这里,ArcGIS desktop 10就完成了安装和授权,可以正常使用了。
2.Arcgis10 server安装2.1 ArcGIS Server 操作系统要求和限制1、服务器显示要求:(1)推荐在标准尺寸(96dpi) 下使用1024 x 768 或更高(2)24 位颜色深度2、某些ArcGIS Server 功能诸如GlobeServer 和Geometry 需要OpenGL 1.3 库功能。
这些库通常包括在ArcGIS Server 所支持的操作系统中。
在Microsoft Windows 操作系统中,这些库随操作系统同时提供。
3、某些核心地理处理工具需要Python 2.6.X 和Numerical Python 1.3.0 支持。
建议使用ArcGIS Server 安装程序安装Python 2.6.5 和Numerical Python 1.3.0。
用户可通过在安装过程中取消选择Python 功能来选择不安装Python 2.6.5 和Numerical Python 1.3.0。
Arcgis使用字段计算器对同一地类图斑自动编号使用字段计算器对同一地类图斑自动编号(标记重复记录) 问题描述:在某个表中把某个字段(如字段一)中具有相同值的记录标出来,并且按照从小到大的排序自动增加一个编号,存储在字段二中,实现如下的效果:
FID 字段1 字段2
1 001 0011
2 001 0012
3 002 0021
4 002 0022
解决方法:在ArcGIS10中实现方法如下,字段2右键调出字段计算器,选择Python脚本,在代码块中写: UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return str(inValue)+str(UniqueDict[inValue])
(无须重复标记)
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
在字段2=的语句下面写:
isDuplicateIndex( !字段1! )
即可实现问题中的要求,字段计算器是一个强大的为字段赋值的工具,支持Python和VBScript代码,并且可以在Model Builder中调用。
该代码可以按照地类对图斑进行编号,或者按某个行政区的字段对图斑进行编号。
ArcGIS 10 新特性之表和属性在 ArcGIS 10 中,使用属性表和许多新增功能将带来全新的用户体验。
“表”窗口表窗口是用于显示 ArcMap 中所打开的所有属性表的容器。
打开的所有属性表在表窗口中均以选项卡形式显示;单击某个选项卡即可激活特定的表。
表窗口还包括一个工具条以及多个菜单,用于与表或地图(对于空间数据)的属性进行交互。
在表的“所选”视图中操作时,窗口顶部的工具条得到扩展,以包含处理高亮显示记录的命令。
查看多个表在 ArcMap 中打开任意属性表时,该表都将放置在“表”窗口中。
“表”窗口的作用类似于所有打开属性表的容器。
在“表”窗口中,所有打开的表都有其各自的选项卡,通过单击选项卡可以查看相应的表。
您还可以在“表”窗口中拖动并停靠属性表的选项卡,以便同时查看多个表。
此外,还可以使用表选项菜单中的下列排列表命令在“表”窗口中移动表:∙新建水平选项卡组 - 将活动表放置到下方水平排列的新组中∙新建垂直选项卡组 - 将活动表放置到右侧垂直排列的新组中∙移动到前一个选项卡组 - 将活动表放置到左侧或上方相邻的现有组中∙移动到下一个选项卡组 - 将活动表放置到右侧或下方相邻的现有组中使用连接在创建连接前,可使用连接数据对话框上的验证连接按钮可对其进行分析。
连接验证用于评估在创建连接时可能遇到的任何潜在问题。
连接验证将对两个参与数据集进行分析,以确定数据是否存在任何常见问题。
以下列出了数据中要检查的内容:∙检查字段名称是否以无效字符开头。
∙检查字段名称是否包含无效字符。
∙检查字段名称是否与保留字匹配。
∙检查是否存在非地理数据库 MS Access 表。
字段计算器在 ArcGIS 10 中,字段计算器得到增强,可以使用 Python 脚本。
您无法再使用 VBA 代码块;但该版本完全支持 VB 脚本和 Python。
系统将基于所选脚本语言来填充数值、字符串和日期函数。
“表”窗口中的新增选项和命令在表选项菜单下,使用恢复默认字段顺序可对表中的字段应用原始顺序。
Arcgis 10.0 下载链接http://180.158.108.194/ESRI.ArcGIS.10.CS.iso?fid=MehXhlNhTY12D9YHrWZj7xWq9F4 ACCoHAQAAALOaqWblY1GCc3k6kd*dykgR5Xea&mid=666&threshold=150&tid=48869 73D6534D748CE8DA8800E40179C&srcid=119&verno=1注册机下载链接/share/link?shareid=3073380796&uk=2248679273ArcGIS软件安装其实都比较简单的,只要大家清楚每个步骤,顺序安装即可。
但是安装过程要注意一些问题,license先安装,安装完成先停止服务,然后再安装desktop。
完成后就是破解步骤了,很多同学都是在后边的破解出问题,输入localhost等,和计算机名称等都不能解决。
下面本人安装破解的方法很实用,花时间做两个详细的安装教程。
大家可以参考一下!(本人的方法适合破解10.0和10.1及10.2)先注意:10.1安装包的license如果不行,就需要在网上下载一个破解版的license,不要安装包里的license。
∙电脑(要求内存2G以上),win7或者XP系统∙ArcGIS10.1安装包+注册机破解工具方法/步骤1. 1ArcGIS10.2安装准备工作要求:XP系统注意:首先确保系统已安装 .NET Framework4.0,如没有请下载安装,win7系统不需要安装,系统自带了。
2. 2打开arcgis10.1安装包双击“ESRI”运行安装程序,界面如下图:3. 3安装前先【检测冲突】,如果之前安装了其他版本的arcgis软件,必须先卸载,或者安装了其他arcgis desktop的软件版本不是10.1的也要卸载。
版本必须一致。
如图,检测无冲突的版本。
ArcGIS使用Python调用arcpy实现自动计算地形湿度指数(Topographic Wetness Index,TWI)的方法赵岩1.简介TWI是当地地形对径流流向和蓄积影响的物理指标或指标。
该指数是斜率和上游贡献面积的函数。
TWI的计算同时使用地理信息系统(GIS)和Python (Python)进行,Python是一种用于增强计算能力的编程软件。
这些指数有助于识别降雨径流模式、潜在土壤含水量增加区域和积水区域。
地形湿润度指数(TWI),量化了地形对基本水文过程的控制(Schillaci等,2015)。
TWI是通过细尺度地形与上梯度对地表面积的贡献相互作用,根据以下关系得到的(Beven et al.,1979):TWI = ln [CA/Slope]其中,CA是通过网格单元排水的局部上坡集水区,slope是每个网格单元最陡的向外坡度,以落差/距离衡量,即坡度角度的tan值(Tarboton, 1997)。
ArcGIS通过使用工具箱可以实现地形湿度指数的计算,但传统方法操作麻烦,而通过Python调用arcpy可以实现自动自取,这样我们就可以一边喝着咖啡,一边等待电脑帮我们完成任务了。
ArcPy 是一个Python 站点包,可提供以实用高效的方式通过Python 执行地理数据分析、数据转换、数据管理和地图自动化。
2.传统方法步骤以30m*30m分辨率的图层为例。
(原文作者:qrz110)。
①基于表面工具箱Surface计算Slope。
②单位转换:Scale_slope=Slope*pi/180。
③填洼(Fill_dem)-Fill。
④水流方向(FlowDir_Fill)-Flow Direation。
⑤汇流累积量(FlowAcc_Flow)-Flow Accumulation。
⑥单位面积的汇流量(SCA)-Raster Calculator。
⑦地形湿度指数(TWI)-Raster Calculator:TWI=ln(SCA/Tan(Scale_slope))。
arcpy in 语句arcpy是ArcGIS软件中的一个Python库,用于进行地理信息系统(GIS)分析和地理数据处理。
它提供了许多功能强大的工具和函数,可以帮助我们在ArcGIS中自动化处理数据、创建地图和执行空间分析。
下面是关于arcpy中in语句的一些使用示例:1. 使用in语句查询要素类中的特定字段数据:```pythonimport arcpyfc = "C:/data/mydata.gdb/myfeatureclass"fields = ["name", "age", "gender"]with arcpy.da.SearchCursor(fc, fields) as cursor:for row in cursor:if row[0] in ["John", "Mary"]:print(row[0], row[1], row[2])```以上代码中,我们使用arcpy.da.SearchCursor函数从要素类中读取指定字段的数据,并使用in语句判断字段值是否在指定的列表中。
2. 使用in语句查询要素类中满足多个条件的数据:```pythonimport arcpyfc = "C:/data/mydata.gdb/myfeatureclass"fields = ["name", "age", "gender"]with arcpy.da.SearchCursor(fc, fields) as cursor:for row in cursor:if row[0] in ["John", "Mary"] and row[1] > 30:print(row[0], row[1], row[2])```以上代码中,除了使用in语句查询特定字段的数据外,我们还使用了and运算符来同时满足多个条件。
arcgis批量计算十进制度xy坐标python语句(原创实用版3篇)目录(篇1)1.引言2.ArcGIS 批量计算十进制度 XY 坐标的方法3.Python 语句示例4.总结正文(篇1)【引言】ArcGIS 是一款功能强大的地理信息系统软件,它广泛应用于地理数据处理、分析和制图等领域。
在实际应用中,我们可能需要对大量的地理数据进行批量处理,如计算十进制度下的 XY 坐标。
本文将介绍如何使用Python 在 ArcGIS 中实现这一功能。
【ArcGIS 批量计算十进制度 XY 坐标的方法】在 ArcGIS 中,我们可以通过 Python 脚本实现对批量地理数据的XY 坐标计算。
这里,我们假设你已经安装了 ArcGIS,并且熟悉 Python 编程。
【Python 语句示例】以下是一个简单的 Python 语句示例,用于计算输入地理数据的 XY 坐标:```pythonimport arcpy# 定义输入图层和输出图层input_layer = "input_layer"output_layer = "output_layer"# 创建游标fields = ["OID@", "SHAPE@"]with arcpy.da.SearchCursor(input_layer, fields) as cursor: for row in cursor:# 获取几何形状geometry = row[1]# 计算 XY 坐标x, y = geometry.get_coords()# 更新输出图层with arcpy.da.UpdateCursor(output_layer, fields) as update_cursor:for update_row in update_cursor:update_row[0] = row[0]update_row[1] = "POINT(" + str(x) + "," + str(y) + ")"update_cursor.updateRow(update_row)# 如果需要,可以将上述代码保存为一个.py 文件,然后在 ArcGIS 中运行```【总结】通过以上示例,我们可以看到如何使用 Python 在 ArcGIS 中批量计算十进制度下的 XY 坐标。
Arcgis从上到下,从左到右按顺序编号1、打开所要编号的图层属性表,添加字段xmin,ymax,字段类型选择双精度2、添加字段后如图:3、分别在xmin、ymax字段上单击字段计算器,按如图输入Python语句,计算每个面xmin、ymax的值4、打开工具箱arctoolbox,找到数据管理工具(Data Management)——常规——排序工具,输入要排序的图层,将字段ymax,xmin分别按下列排序方法选择,输出数据集5、打开输出图层,OBJECTID即为图层内所有图形按照从上到下,从左到右重新排序后的结果,编号可通过新建字段将OBJECTID赋值给编号字段。
6、排序前后如图所示,为展示效果,随手所画图中所示图形,无实际使用意义,仅供参考。
排序前图形编号自上而下,从左到右排序后图形编号Arcgis批量条件语句赋值以三调地类编码为例,将地类名称根据地类编码条件赋值Arcgis字段计算器Python脚本代码如下:def FZ(f):if f =="0102":return "水浇地"elif f =="0103":return "旱地"elif f =="0201":return "果园"elif f =="0204":return "其他园地"elif f =="0301":return "乔木林地"elif f =="0305":return "灌木林地"elif f =="0307":return "其他林地"elif f =="0404":return "其他草地"elif f =="05H1":return "商业服务业设施用地"elif f =="0601":return "工业用地"elif f =="0602":return "采矿用地"elif f =="0701":return "城镇住宅用地"elif f =="0702":return "农村宅基地"elif f =="0508":return "物流仓储用地"elif f =="0809":return "公园与绿地"elif f =="0810":return "公园与绿地"elif f =="0810A":return "广场用地"elif f =="08H1":return "机关团体新闻出版用地"elif f =="08H2":return "科教文卫用地"elif f =="09":return "特殊用地"elif f =="1001":return "铁路用地"elif f =="1003":return "公路用地"elif f =="1004":return "城镇村道路用地"elif f =="1005":return "交通服务场站用地"elif f =="1006":return "农村道路"elif f =="1009":return "管道运输用地"elif f =="1101":return "河流水面"elif f =="1103":return "水库水面"elif f =="1104":return "坑塘水面"elif f =="1104A":return "养殖坑塘"elif f =="1106":return "内陆滩涂"elif f =="1107":return "沟渠"elif f =="1107A":return "干渠"elif f =="1109":return "水工建筑用地"elif f =="1201":return "空闲地"elif f =="1202":return "设施农用地"elif f =="1206":return "裸土地"else:return ""调用定义函数DLMC=FZ(!DLBM!)注意:Python 强制要求将缩进作为语法的一部分,所以空格为两个或四个来定义每个逻辑级别。
arcpy输出路径函数arcpy是ArcGIS中的一个Python库,可以用于对地理空间数据进行分析、编辑和管理。
arcpy提供了很多用于处理地理空间数据的函数和工具,其中包括用于输出路径的函数。
在arcpy中,输出路径函数可以用于创建新的路径,将结果保存到路径中,或者获取路径的信息。
下面是一些常用的arcpy输出路径函数:1. arcpy.CreateFeatureclass_management():该函数用于创建一个新的要素类。
它将根据指定的参数创建一个空要素类,并返回一个指向新要素类的路径。
2. arcpy.CopyFeatures_management():该函数用于复制要素类。
它将指定要素类中的要素复制到新的要素类中,并返回一个指向新要素类的路径。
3. arcpy.CopyRows_management():该函数用于复制表格数据。
它将指定表格中的行复制到新的表格中,并返回一个指向新表格的路径。
4. arcpy.CreateTable_management():该函数用于创建一个新的表格。
它将根据指定的参数创建一个空表格,并返回一个指向新表格的路径。
5. arcpy.Buffer_analysis():该函数用于创建缓冲区。
它将为指定的要素类或要素集生成缓冲区,并返回一个指向缓冲区要素类的路径。
6. arcpy.FeaturetoRaster_conversion():该函数用于将要素类转换为栅格数据集。
它将指定的要素类转换为栅格数据集,并返回一个指向新栅格数据集的路径。
7. arcpy.ExportCAD_conversion():该函数用于将地理空间数据导出为CAD格式。
它将指定的要素类或栅格数据集导出为CAD格式的文件,并返回一个指向导出文件的路径。
8. arcpy.SaveToLayerFile_management():该函数用于将地理空间数据保存为图层文件。
它将指定的地理空间数据保存为图层文件,并返回一个指向保存文件的路径。
streetsCopy = "c:/output/Output.gdb/streetsBackup"DM.CopyFeatures(streets, streetsBackup)EDIT.TrimLine(streets, "10 Feet", "KEEP_SHORT")EDIT.ExtendLine(streets, "15 Feet", "EXTENSION")许可:为适应“地图代数”,“空间分析”工具的处理方式有所不同,这些工具只能通过arcpy.sa 模块调用,而不以ArcPy 函数的形式提供。
从工具获取结果当作为结果对象执行时,ArcPy 会返回工具的输出值。
结果对象的优点是可以保留工具执行的相关信息,包括消息、参数和输出。
即使在运行了多个其他工具后仍可保留这些结果。
下面的示例说明了如何在执行地理处理工具后获取结果对象的输出。
import arcpyarcpy.env.workspace = "D:/St_Johns/data.gdb"# Geoprocessing tools return a result object of the derived# output dataset.#result = arcpy.CopyFeatures_management("roads", "urban_roads")# A print statement will display the string# representation of the output.#print result# To get the output value, the result object has a getOutput method#resultValue = result.getOutput(0)注意:结果对象的getOutput 方法会返回一个Unicode 字符串,来表示含有输出值的结果对象。
当运行诸如GetCount(提供表中的记录数)或CalculateDefaultClusterTolerance(提供拓扑容差值)之类的工具时,需要重点考虑这一点。
要将值转换为所需类型,需要使用内置Python 函数(如int() 或float())从Unicode 字符串进行转换。
import arcpyfrom arcpy import envimport typesenv.workspace = "c:/St_Johns/data.gdb"# Many geoprocessing tools return a result object of the derived# output dataset. A print statement will display the string# representation of the output.#result = arcpy.GetCount_management("roads")resultValue = result.getOutput(0)# The result object's getOutput method returns values as a# unicode string. To convert to a different Python type, use# built-in Python functions: str(), int(), long(), float() #count = int(resultValue)print countprint types.TypeType(count)结果属性和方法从服务器工具获取结果与其他地理处理工具类似,地理处理服务器工具有一组固定的参数,这些参数为工具提供执行所需的信息。
在脚本中使用异步服务器工具时,可通过结果的getOutput 方法检索输出。
提示提示:IsSynchronous 函数可用于确定工具是同步运行还是异步运行。
当工具为同步运行时,结果会自动返回,但在工具运行结束前不能执行任何其他操作。
在下面的示例中,GetParameterValue 函数用于从服务器工具获取FeatureSet 对象。
此FeatureSet 对象包含工具输入参数的模式。
该FeatureSet 对象随后通过要素类加载,而服务器工具则在服务器上执行。
脚本以使用结果对象的getOutput 方法获取工具的输出而结束,然后使用FeatureSet 的保存方法将输出保存在本地。
import arcpyimport time# Add a toolbox from a server#arcpy.ImportToolbox("http://flame7/arcgis/services;GP/BufferByVal", "mytools")# Use GetParameterValue to get a featureset object with the default# schema of the first parameter of the tool 'bufferpoints'#inFeatureSet = arcpy.GetParameterValue("bufferpoints", 0)# Load a shapefile into the featureset#inFeatureSet.load("c:/base/roads.shp")# Run a server tool named BufferPoints with featureset created above#result = arcpy.BufferPoints_mytools(inFeatureSet, "5 feet")# Check the status of the result object every 0.2 seconds until it has a value# of 4 (succeeded) or greater#while result.status < 4:time.sleep(0.2)# Get the output FeatureSet back from the server and save to a local geodatabase#outFeatSet = result.getOutput(0)outFeatSet.save("c:/temp/base.gdb/towers_buffer")从服务器工具获取栅格数据结果栅格数据结果以标记图像文件格式(TIFF) 的形式返回。
默认情况下,使用getOutput 时,TIFF 被写入到系统的TEMP 文件夹。
要控制TIFF 的位置,请将scratchWorkspace 环境设置为一个文件夹。
import arcpyimport time# Set the scratchworkspace to a folder.#arcpy.env.scratchWorkspace = "c:/temp/rasteroutput"# Add a toolbox from a server#arcpy.ImportToolbox("http://flame7/arcgis/services;SlopeByVal", "mytools")dem = "c:/dems/k_ne_g"# Run a server tool named RunSlope#result = arcpy.RunSlope_mytools(dem)# Check the status of the result object every 0.2 seconds until it has a value# of 4 (succeeded) or greater#while result.status < 4:print result.statustime.sleep(0.2)# Raster output will be written to the scratchworkspace#outTIFF = result.getOutput(0)获取地图影像地理处理服务可包含结果地图服务,以创建任务结果的数字地图图像。
数字地图包含向用户传达信息的地理数据集的直观表示。
数字地图以图像形式(如.jpeg)通过Web 进行传输。
与要素类中的原始要素相比,字节组成的地图图像中包含的信息更易于为人类所理解。
地图图像也是易于管理的- 可轻松地将其压缩,将其分成易于管理的块,并且已建立在Web 上传输和查看图像的方法。
地图图像由ArcGIS Server 地图服务创建,通过发布ArcMap 文档(.mxd) 而生成。
鉴于地图图像的上述特征,您最好为地理处理任务的结果创建一个地图图像,然后在Web 上传输该图像,而不是传输一个或多个结果数据集。
地理处理服务可包含由ArcGIS Server 使用的结果地图服务,以创建输出数据的地图图像。
import arcpyimport timeimport urllib# Add a toolbox from a server#arcpy.ImportToolbox("http://flame7/arcgis/services;GP/BufferByVal", "mytools")# Use GetParameterValue to get a featureset object with the default schema of the# first parameter of the tool 'bufferpoints'#inFeatureSet = arcpy.GetParameterValue("bufferpoints", 0)# Load a shapefile into the featureset#inFeatureSet.load("c:/base/roads.shp")# Run a server tool named BufferPoints with featureset created above#result = arcpy.BufferPoints_mytools(inFeatureSet, "5 feet")# Check the status of the result object every 0.2 seconds until it has a value# of 4 (succeeded) or greater#while result.status < 4:time.sleep(0.2)print result.status# Return a map service#mapimage = result.getMapImageURL(0)# Use Python's urllib module's urlretrieve method to copy the image locally#urllib.urlretrieve(mapimage, "c:/base/road_buffer.jpg")通过Python使用函数函数是用于执行某项特定任务并能够纳入更大的程序的已定义功能。