arcgis python实例_ArcGIS Python编程案例(14)-五个常用Python处理任务

我们将在本章介绍以下案例:

从分隔符文本文件中读取数据

发送电子邮件

访问FTP服务器中的文件

创建ZIP文件

读取XML文件

引言

在本章中,你将学习如何编写Python脚本来执行常用的处理任务。这些任务包括读写分隔符文本文件,发送电子邮件,与FTP服务器交互操作,创建.zip文件以及读写JSON和XML文件。GIS程序员应当了解如何在Python脚本来完成这些功能。

从分隔符文本文件中读取数据

对于GIS程序员来说使用Python处理文件是非常重要的环节。文本文件经常作为不同系统之间的数据交换格式。文本文件简单,跨平台并且易于处理。逗号分隔符文本文件和制表符分隔符文本文件是最为常用的形式。对于GIS程序员来说读取包含X,Y坐标以及其他属性信息的逗号分隔符文本文件是一类常见的处理任务。这些读取后信息再转换成像shapefile或地理数据库的GIS数据格式。

Getting ready

使用Python的文件处理功能前,你必须首先打开文件。文件打开后,文件中的数据就可以通过Python提供的功能进行处理,最后关闭文件。处理完成后要记得关闭文件。

在本案例中,你将学习如何对一个逗号分隔符文本文件执行打开,读取,处理并关闭操作。

How to do it...

按照以下步骤创建Python脚本来读取逗号分隔符文本文件:

1.在C:\ArcpyBook\data文件夹中找到一个N_America.A2007275.txt的文件。用文本编辑器打开该文件,你会看到如下内容:

18.102,-94.353,310.7,1.3,1.1,10/02/2007,0420,T,72

19.300,-89.925,313.6,1.1,1.0,10/02/2007,0420,T,82

19.310,-89.927,309.9,1.1,1.0,10/02/2007,0420,T,68

26.888,-101.421,307.3,2.7,1.6,10/02/2007,0425,T,53

26.879,-101.425,306.4,2.7,1.6,10/02/2007,0425,T,45

36.915,-97.132,342.4,1.0,1.0,10/02/2007,0425,T,100

................

该文件包含的火情数据是从2007年10月02日当天卫星遥感影像判断获取。每行数据包含了经纬度信息以及其他相关信息,比如日期和时间,卫星类型,可信度等等。在本案例中,你将提取出纬度,经度和可信度信息。

2.打开IDLE,创建一个脚本文件并保存为

C:\ArcpyBook\Appendix2\ReadDelimitedTextFile.py文件。

3.调用Pyhon的open()函数来打开要读取的文件:

f = open("C:/ArcpyBook/data/N_America.A2007275.txt","r")

4.读取文本文件中的内容并写入到列表中:

lstFires = f.readlines()

5.添加一个for循环语句来迭代遍历lstFires变量中的所有行:

for fire in lstFires:

6.调用split()函数并使用逗号作为分隔符,将分离后的值保存到列表中,然后赋值给变量lstValues。保证语句的缩进使其位于for语句中:

lstValues = fire.split(",")

7.使用索引值来获取纬度,经度和可信度,并分别创建新的变量:

latitude = float(lstValues[0])

longitude = float(lstValues[1])

confid = int(lstValues[8])

8.使用print语句打印所有值:

print "The latitude is: " + str(latitude) + " The longtitude is " + str(longtitude) + "The confidence value is " + str(confid)

9.关闭文件:

f.close()

10.完整代码如下:

f = open("C:/ArcpyBook/data/N_America.A2007275.txt","r")

lstFires = f.readlines()

for fire in lstFires:

lstValues = fire.split(",")

latitude = float(lstValues[0])

longitude = float(lstValues[1])

confid = int(lstValues[8])

print "The latitude is: " + str(latitude) + " The longtitude is " + str(longtitude) + "The confidence value is " + str(confid)

f.close()

11.保存并运行脚本。你将看到如下结果显示:

The latitude is: 18.102 The longitude is: -94.353 The confidence value is: 72

The latitude is: 19.3 The longitude is: -89.925 The confidence value is: 82

The latitude is: 19.31 The longitude is: -89.927 The confidence value is: 68

The latitude is: 26.888 The longitude is: -101.421 The confidence value is: 53

The latitude is: 26.879 The longitude is: -101.425 The confidence value is: 45

The latitude is: 36.915 The longitude is: -97.132 The confidence value is: 100

...................

The latitude is: 54.19 The longitude is: -122.502 The confidence value is: 92

How it works...

Python中open()函数创建一个文件对象,该对象引用一个链接地址来指向计算机中的文件。open()函数中的第一个参数是你想要打开文件的路径。第二个参数指定一种模式,该模式通常是只读(r),写入(w)或添加(a)。r模式表明你打开文件进行只读操作,而w模式则表明你打开文件要进行写入操作。如果你以写入模式打开的文件已存在,那么Python就会覆盖掉该文件中已有数据,因此使用该模式应当注意。添加模式(a)则会打开文件进行写入操作,但是不会覆盖已有数据,而是在文件末尾添加写入的数据。在本案例中,我们以只读模式打开N_America.A2007275.txt文件。

readlines()函数会读取整个文件内容并写入一个Python列表中。该列表保存到变量lstFires。文本文件中的每一行数据是列表中的一个元素。由于该函数会读取整个文件到列表中,因此调用该方法时需要注意,一个大文件会显著影响性能。

for循环语句用于迭代遍历lstFires中的每一个值,在该语句中的split()函数用于从以某种分隔符分隔文本行中创建一个列表对象。本案例中的文件是以逗号作为分隔符,因此我们可以调用split(",")语句。你还可以使用其他像制表符,空格或其他分隔符来分割文本。split()函数创建的列表对象保存在lstValues变量中。该变量包含了每一个火情数据。如下图所示。你会看到纬度数据占据第一个位置,经

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于ArcGISPython编程可以用于处理空间数据、地理分析和地图制作等任务ArcGIS是一套强大的地理信息系统软件,而Python是一种易于学习且功能丰富的编程语言,两者结合可以实现更高效的地理数据处理和分析。 首先,PythonArcGIS中的应用可以帮助我们自动化地理数据的处理过程。通过编写Python脚本,可以批量处理大量的空间数据,例如导入/导出数据、数据转换、数据合并等。这可以大大节省时间和精力,并提高工作效率。 其次,利用ArcPy模块,我们可以进行各种地理分析。基于Python编程,可以使用ArcPy模块中提供的空间分析工具来处理和分析空间数据。这些工具包括缓冲区分析、路径分析、空间插值等。同时,我们还可以使用Python编程语言的强大功能,如条件语句、循环和函数等,来控制和优化分析流程。 此外,Python编程还可以与ArcGIS的地图制作功能相结合。通过Python脚本,我们可以自动化生成地图、修改地图元素和布局,以及添加其他图层和样式。这使得地图制作过程更加高效和灵活,并可以快速应对不同需求。 总的来说,基于ArcGISPython编程可以让地理信息系统专业人员更好地利用空间数据,实现自动化和批量处理,进行地理分析和地图制作。这门编程技能对于地理信息系统领域的工作人员来说是非常有价值的,能够提升工作效率和数据分析能力。 ### 回答2: 基于ArcGISPython编程秘随书数据是指使用Python语言编写ArcGIS软件的程序时所使用的秘册或手册。ArcGIS是由Esri公司开发的一款强大的地理信息系统软件,可以用于地图制作、空间分析、数据管理等多个领域。 Python是一种简洁、易学且功能强大的编程语言,它与ArcGIS软件的集成使得用户可以通过编写Python程序来实现更加复杂和定制化的功能。基于ArcGISPython编程秘随书数据一般包含以下内容: 1. ArcGIS基础知识:介绍ArcGIS软件的核心概念、主要组件和工作流程,帮助用户理解ArcGIS的基本原理和使用方法。 2. Python语法和基础:介绍Python编程语言的语法规则、基本数据类型、函数和控制流等基础知识,为编写ArcGIS程序打下基础。 3. ArcPy模块使用:ArcPy是ArcGIS软件的Python模块,提供了丰富的函数和类来处理地理数据、执行空间分析和操作地图等任务。秘随书数据会详细介绍ArcPy模块中各个功能的使用方法和示例代码。 4. 数据处理与分析:介绍如何使用Python编写程序来处理地理数据,包括数据读取、编辑、转换、分析和可视化等方面的操作。这些功能可以通过ArcPy模块中的工具和函数来实现。 5. 定制化工具和应用:介绍如何利用Python编写工具和应用程序,以满足特定的地理数据处理和分析需求。通过使用ArcPy模块和其他Python库,用户可以实现更加复杂和高级的功能。 基于ArcGISPython编程秘随书数据对于初学者来说,是学习ArcGISPython编程的重要参考资料。它提供了丰富的实例代码和教程,帮助用户快速上手并掌握ArcGISPython编程技巧,提高工作效率和数据处理能力。 ### 回答3: 基于ArcGISPython编程需要用到一些特定的库和模块来处理地理空间数据。ArcPy是其中最常用的库,它提供了与ArcGIS软件交互的接口,可以执行诸如数据查询、空间分析、地图制作等任务。 ArcPy提供了丰富的功能,可以操作Shapefile、特征类和栅格数据等各种地理数据格式。通过ArcPy,可以读取、写入、编辑和分析这些地理数据。 在编程中,可以使用ArcPy创建和管理地理空间数据,包括创建、删除和修改要素类、特征集和栅格数据集等。可以使用ArcPy来执行各种地理数据分析操作,如缓冲区分析、裁剪和合并等。此外,还可以使用ArcPy进行地图制作,包括添加图层、设置符号和标注、生成图例等。 除了ArcPy,Python还提供了其他一些用于地理空间数据处理的库和模块,如GeoPandas、Fiona和Shapely等。这些库可以与ArcPy结合使用,提供更多的地理数据处理功能。 总的来说,基于ArcGISPython编程可以实现对地理空间数据的读取、写入、修改和分析,还可以进行地图制作等任务。通过编写Python脚本,我们可以对地理数据进行一系列操作,实现自动化的地理数据处理和分析。这样,我们可以更高效地利用地理数据,为地理空间分析和决策提供支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值