arcgis与python.doc
文本预览下载声明
arcgis与python(zz)
ESRI软件中的脚本语言一直使用两种模式。第一种为AML宏语言,该模型显示了PrimOS系统特性。输出为文件格式,数据处理基于目录和文件系统,代码是线性的。第二个模式是AVENUE语言,继承了Smalltalk的特性。对象响应是调用方法名称,处理事物不必是线性的,有时会引起I/O冲突,集成啦其他语言的混合包。两种语言都有各自的弊端。随着ArcGIS 8的出现,基于地理视图的脚本语言开始引入,基于接口的编程要求用户使用“真正的”编程语言,如,C++,VB,访问ArcGIS 8的功能。没有脚本语言自动完成该系列任务。这用户必须写可执行程序,在复杂的接口树和对象里找到需要的工具,并汇编成DLLs动态库和类型库来使用自定义功能。ArcGIS 9版本的面世,ESRI再次提供了访问该软件的新的脚本语言。ESRI意识到,许多用户并不想或不必是个开发者,但还想使用工具解决他们遇到的问题。这些工具包括,友好一致的界面,脚本对象,用于自定义功能所必须的细致入微的编程工具。满足这些需要,ESRI提供了多种脚本语言-使用ArcObjects-开始空间处理框架。Python,ESRI支持的脚本语言之一,是一种开源的,编译性的,动态类型的,面相对象的脚本语言之一。Python包含在ArcGIS 9中,典型的安装与其他组件一起安装。本篇文章总体介绍如何利用Python的资源帮助大家的GIS编程以及集成ESRI工具。1 Python简介????? Python第一次公开发行是1991年,作者是CWI(阿姆斯特丹国家数学和计算机科学研究所)的研究员Guido van Rossum。名字来源于Guido喜欢的喜剧连续剧“Monty Python”,python继承了许多其他语言的特征,如ABC,Modula,LISP,以及Haskel,这些包括很高级的特征,如元类(metaclass),生成器,列表综合(list comprehension)。但更多的程序员需要的仅仅是python的基本类型,如,列表,字典,字符串。????? 虽然,已经有13年的发展,目前的版本是2.3。这反映了Guido慈善的独裁者设计哲学,以及开发组的精益求精。他们努力增加新的内容,并保持向后的兼容性,当必要时,重新设计在以前发现有问题的地方。2 python设计????? Python语言被设计成易于使用,易于学习的动态脚本语言,这意味着用户不需要编译,交互式的方式可以让用户学习到许多执行层次。????? Python的设计哲学,Tim Peter在The Zen of Python描述的最清晰,python程序员遵照这些哲学指导他们学习这门语言,帮助他们编写代码,以保持python的一贯风格。3 Python与GIS????? Python提供了很多可能:与GIS系统集成、跨平台、容易与其他语言混合使用(C,C++,FORTRAN,Java)。这意味着,python在多语言开发的系统里是最容易成功的。因为各语言的设计,大规模应用的开发也是容易的。许多处理分析GIS数据的包和工具已经被开发出来。基本功能包括,操作shapefile,grid图像,以及更复杂的格式,如arcsde、web服务、数据库等。矢量格式????? 一个调用开源库shapelib()的python包—pyshapelib--,可以处理shapefile文件。可以从/software/pyshapelib上下载。该包提供了访问shape的单个坐标点,访问DBF文件,以及简单的shape索引,如何操作shapefile原始的几何形状,或者通过DBF文件获取专门的记录。????? 另个调用开源库的包为OGR(/ogr/),可以用来处理多种矢量格式,包括MapInfo,ArcInfo coverage,PostGIS,Oracle Spatial,TIGER,SDTS,OPeNDAP,DGN(Microstation DGN)格式。OGR是空间数据提取库(GDAL)的一部分,可以下载GDAL整个包(/gdal-1.2.0win32.exe)。使用python处理GRID数据????? GDAL可以处理arcinfo grid数据,还支持许多栅格数据,包括JPEG2000,BSP,USGS DEM,军事高程数据,ECW(经增强压缩小波处理的数据),GRASS(地理资源分析支持系统数据格式),TIFF/GeoTIFF,NetCDF(网络通用数据格式),ERDAS *.img,SDTS(空间数据转换标准数据)等。该包的window版本可以从/gdal-1.2.0win32.exe网址下载。许多其他格式这里就不一一列出。????? GD
显示全部