Python脚本入门学习经典手册.doc

上传人:sk****8 文档编号:4070213 上传时间:2019-09-23 格式:DOC 页数:68 大小:630.30KB
下载 相关 举报
Python脚本入门学习经典手册.doc_第1页
第1页 / 共68页
Python脚本入门学习经典手册.doc_第2页
第2页 / 共68页
Python脚本入门学习经典手册.doc_第3页
第3页 / 共68页
Python脚本入门学习经典手册.doc_第4页
第4页 / 共68页
Python脚本入门学习经典手册.doc_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、 1 / 68Python 脚本使用详解目录写在前面的话 .2前言 .2一、PYTHON 语言基础 .31 数学运算符 .32 字符串操作 .43 模块的使用(M ODULES) .54 使用 DEF 构建函数 .65 流程控制结构:I F,WHILE ,FOR .66 简单输入和输出 .9二、ARCGIS&PYTHON .101 如何创建地理处理对象(GEOPROCESSOR OBJECT) .102 获取地理处理帮助 .102.1 举例:如何使用 Geoprocessor Programming Model 中的Lists .113 使用地理处理工具TOOLBOXES 和 ALIASES

2、.114 在建模中使用脚本(SCRIPTS IN MODELBUILDER) .125 在 PYTHONWIN 里调试地理处理脚本 .185.1 调试选择和消息 .195.2PythonWin 的调试工具 .202 / 685.3 地理处理工具举例 .216 使用描述(DESCRIBE )和存在(E XISTS)获取数据信息 .216.1 描述 .226.2 存在( Exists) .236.3 在循环中使用描述和存在 .237 在 PYTHON 脚本中使用地图代数(MAP ALGEBRA) .268 数据管理和指针(DATA MANAGEMENT AND CURSORS) .278.1 数据

3、管理( Data Management) .278.2 指针( Cursors) .28附录 1:地理处理脚本中输入&输出方法指南 .31附录 2:其他 .32写在前面的话一直想学习 ArcGIS 中的 Python 脚本,大四下半学期终于有了时间,可是想找到这么一本好的教材不容易。茫茫互联网,终于找到了 旧金山州立大学 Jerry Davis 教授的个人主页,对其中 Geoprocessing Scripts With Python 如获至宝,独乐乐不如众乐乐,现在将其教程翻译并结合自己的学习情况给出总结。希望能够给更多想学习 Python 的同学一个参考。另外,在我刚开始接触 Python

4、 时,是看了台湾辅仁大学一位老师的视频课件,在此致谢。3 / 68我想从两个大部分总结:一、Python 语言基础;二、ArcGIS&Python。其中第一部分参考了 Python 精要参考(第二版) 、 Python 编程金典(读书笔记) 等书籍文献。对于多数读者来说,可能或多或少有一些编程基础,所以理解起来应该不成问题。文中多数数据来自 Jerry Davis 教授的主页,放在“C:prog”目录下,为了直观,我将运算结果一并编辑,方便参考。值得一提的是 ArcGIS 的在线帮助文档,一个实时更新的GIS 宝库,很多专业性知识都可以找到答案,点击链接 ArcGIS10中文帮助、 ArcGI

5、S9.3.1 或 9.3 英文帮助。 获取更过脚本例子来学习 :ESRI 的地理处理模型和脚本工具库 是个不错的选择。由于我也是初次接触,翻译或者心得难免有纰漏之处,希望同仁们可以多多交流!前言在 GIS 建模或 GIS 数据管理中,你可能经常需要处理一系列步骤才可以完成的工作;你可能有一个工作目录下的数据需要重投影、裁剪到研究区域,或者用某种方法组合成期望的结果;我们也经常需要根据不同情形用不同方法处理数据,因此我们需要作出选择,而高质量的决策需要考虑很多低水平的决策,这可以通过脚本程序模型辅助完成。4 / 68脚本编程的主要目的是使枯燥的处理数据工作自动化,通过逻辑来指挥处理过程。我想自动

6、化和逻辑是关键,它们区别于我们多数使用计算机时的交互活动。我们发 E-mail,写文章或者设计地图,都需要和计算机交互,而处理一系列数据,我们需要自动化和利用逻辑来指导自动化。在地理处理脚本逻辑中,我们需要在允许我们做的事情中作出决定,比如,处理栅格数据不同于矢量数据,或为没投影的数据设置投影,或处理仅在特定时间搜集的数据集。对于重要的 GIS 工作来说,脚本以及其他形式的程序是必需的,而非可有可无。在接下来的联系中,我们会探索 Python 的使用以及创建脚本来使用 ArcGIS 里众多的地理处理工具。所有你能在ArcToolbox 或 Model 中使用的工具都能够用在 Python 脚本

7、中,这些脚本可以生成脚本工具,像其他地理处理工具一样使用。5 / 68一、Python 语言基础安装 PythonWin,在ArcGisDesktop9.3.isoDesktopPythonWin 目录下可以找到 PythonWin 的安装程序,默认是不安装的,。同时会安装 win32com 以及允许任何脚本在基于 Dispatch 的地理处理过程中工作。ArcGIS10中引入了全新的Python Window 来增强内嵌的 Python 体验。警告:不要尝试更新随 ArcGIS 安装的Python 到一个新的版本!下面介绍 Python的一些简单语法和规则。1 数学运算符Python 提供了

8、多样化的通用数学运算符多数编程语言的特征,以及许多通过 import 的 modules 提供的符号。常6 / 68用的有+,-,*,/,*( 幂),%(取模,即除后的余数)。下面的表格显示了整型(Integer)和浮点型(Float)各种组合运算的结果,记住一条规则,只要参与运算的有浮点型,则结果为浮点型;全为整型时,结果才为整型。输入表达式结果Notes2+3 5 整型结果2.+3 5.0 2.是浮点型,结果浮点型2-3 -12*3 6 整型结果2.*3 6.0 浮点型5/2 2 整型5./2 2.55%2 1 取模Az=270Newaz=az+180Print newaz%36090 取

9、模的用途之一方位角加180 后逆转方向5*2 2525*0.5 5.0 没有 sqrt()功能,除非添加 math7 / 68模块2 字符串操作注:使用 Python 帮助:有超过 30 种内置方法来处理字符,请到 Sequence Types 下的 String Methods 寻找帮助!字符串是一串字母,比如San Francisco,字符串下标从0 开始。学习字符串语法的最好方法是自己动手尝试,下标展示之:输入 结果 Notesprint zhulj.capitalize()s=zhuljprint s.capitalize()Zhuljs.capitalize()即将 capitali

10、ze()方法用于 sprint s0 zs1=s1print s1hprint s-2: ljprint s2:3 uprint s2:4 ulprint s2:,s:5 ulj zhuljStrings 可以像一个字母列表一样处理,第一个字母下标为 0,某个字符段可以用 1:3 来格式化:从第 1 个的开头到第 3 个的开头,不包括下标为 3 的字母; s-1表示倒过来第一个,相当于 slen(s)-18 / 68s2=s.upper()print s2ZHULJ我们可以将字符串方法的结果赋给新的变量s3=s+s2print s3zhuljZHULJ 字符串组合用“+ ”print s*3z

11、huljzhuljzhulj字符串重复用“*” ,后为重复次数selstr=“elev“1000print selstr“elev“1000othersel=”elev1000”print otherselelev1000字符串可以使用单引号或双引号,跨行时用双引号。print s.isupper() Falseprint s2.isupper()Truep=d:/work/lu.shpprint p.find(.)10print p.find(/) 2一些方法返回值为布尔型(True或 False) ,一些返回索引值(下标值)plist=p.split(/)print plistd:, wo

12、rk, lu.shpprint plist0 d:你可以用 split()方法解析出不同的字符串片段,并创建一个列表(List) ,我们可以使用其中不同9 / 68print plist1 work 的元素p2=d:worksoil.shpprint p2d:worksoil.shpprint Jerrys KidsJerrys Kidsprint JerrysnKidsJerrysKids反斜线“”和某些字母一起有特殊用法,如n 为换行, “”为转义字符,如“” 则表示“”p3=rd:worksoil.shpprint p3d:worksoil.shp字符串前加“r ”则强制“”代表其本身,

13、而非转义字符,这对于文件路径的操作很方便3 模块的使用(Modules)Python 提供了一系列内置的方法(大量依赖于模块)用于通用编程。Python 安装时自带了大量 Modules,最常用的有 math,sys,random,array 以及 os.path。当然还有好多 Modules 可以下载,比如数字处理(Numeric )numpy ,可在 www.python.org 或 里搜索。www.python.org/moin/NumericAndScientific 页面中列举了一些。使用 Module 前,必须 import 之。通常我们会将一行10 / 68import 放在程序

14、顶部,比如:import arcgisscripting当然,这不必成为你程序的第一行,但必须在使用它里面方法之前。当要引用多个模块是,中间用逗号分隔,比如:import arcgisscripting,sys,string,os,math我们也可以自己为频繁使用的方法创建 Module,下面,我们开始体验内置的 Modules。math 和 random 模块很多常用的数学计算功能都可以通过 math 找到,比如三角计算或对数计算,如果要使用复杂数字,就使用 cmath模块。和之前一样,通过以下表格来体现模块的使用:输入 结果 Notesimport mathprint math.log10(100)2.0 以 10 为底的对数print math.log(100)4.60517018599 自然对数print math.pi 3.14159265359 是一个静态常量,所以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 自然科学

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。