资源描述:
《ArcGIS Python开发.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ArcGISPython开发Esri中国(北京)有限公司黄炎内容摘要•ArcGISPython开发概述•Python脚本语言快速入门•ArcPy——ArcGISPythonAPI•ArcGISPython开发和使用-GP工具的批处理脚本-新建ArcGIS脚本工具-通过GP服务在线调用•总结与展望ArcGISPython开发概述Python是什么?•“Pythonisaneasytolearn,powerfullanguage…(with)high-leveldatastructuresandasimplebuteffectiveapproachtoobject-orie
2、ntedprogramming.Python’selegantsyntaxanddynamictyping…makeitanideallanguageforscripting…inmanyareasandonmostplatforms.”–python.org•ArcGIS的脚本语言•免费、跨平台、简单易用、使用广泛、社区火热为什么使用Python脚本?•Python是一种高效率的语言•显著减少花费在项目上的时间-快速执行工具和函数-自动化执行常用任务•代码易于阅读和维护-这是Python设计的初衷-易于修改和不断更新Python可以帮助完成那些工作?影像处理制图自动化
3、网络分析批处理脚本空间分析构建GP工具空间统计在线分析空间数据库GP服务管理和维护等等…在ArcGIS中使用Python的几种方式DesktopServerScriptToolPythonWindowGeoprocessingServiceStandaloneScript:IDE,CommandLine,ScheduledTaskPython脚本语言快速入门Python101•在哪写Python代码?-IDE,例如:IDLE、PythonWin、PyScripter-PythonwindowinArcGIS•怎样运行一段Python脚本?-双击脚本或者通过命令行•哪些是
4、Python中的变量?-Anamethatstoresavalue;assignedusing=input="C:/Data/Roads.shp"distance=50both=[input,distance]#Variablesactassubstitutesforrawvaluesarcpy.Buffer_analysis(input,"Roads_buffer.shp",distance)Python101•充分利用Python核心数据结构的优势TypeExplanationExampleList成员类型皆可变L=["10feet","20feet","50fee
5、t"]列表Tuple成员类型皆固定T=("Thurston","Pierce","King")元组DictionaryD={"ProductName":"desktop",键/值对词典"InstallDir":“c:\ArcGIS\Desktop10.0"}Python101•Python中的分支结构和条件表达式-if/else语句-冒号跟在if/else语句之后-代码缩进表示此为条件执行的代码(对比其它语言中的{})-==测试相等;其它操作符例如>,<,!=var="a"ifvar=="a":#Executeindentedlinesprint("variable
6、isa")else:print("variableisnota")Python101•Python中的循环结构-while循环,for循环-冒号跟在while/for语句之后-代码缩进表示此为循环执行的代码x=1whilex<5:printxx=x+1x=[1,2,3,4]fornuminx:printnumPython101•Python中定义函数-def关键词-组织和重用代码的最简方式importarcpydefincrease_extent(extent,factor):定义函数"""Increasestheextentbythegivenfactor"""XMi
7、n=extent.XMin‐(factor*extent.XMin)YMin=extent.YMin‐(factor*extent.YMin)XMax=extent.XMax+(factor*extent.XMax)YMax=extent.YMax+(factor*extent.YMax)returnarcpy.Extent(XMin,YMin,XMax,YMax)返回结果oldExtent=arcpy.Describe("boundary").extentnewExtent=increase_extent(oldExtent,.1)调用