基于Python学习:Python在地理信息系统(GIS)中的应用代码

Python语言——数据类型

引言:Python的灵活性和可扩展性使得它成为GIS数据处理的理想工具,通过使用Python的库和模块,可以进行各种地理空间分析,如缓冲区分析、叠加分析、网络分析等;Python在GIS中还可以用于地图的绘制和可视化,通过使用Python的库和模块,如Matplotlib和Basemap等,可以将地理数据转换为可视化的地图,并进行各种样式和符号的设置。本文及之后文章将基于Python学习拓展到GIS应用。

变量及其类型:

在Python中,变量是用于存储数据值的标签,你可以把变量看作是用来存储信息的容器,变量的值的以修改和被读取,Python是一种动态类型语言,变量的类型是在运行时确定的,而不是在编译时,

以下是python中的一些常用数据类型:

1.整数(int):表示整数,如1,-6,100等。

2.浮点数(float):表示带小数点的数值,如1.0,-6.0,100.66等。

3.字符串(str):表示文本数据,通常使用英文状态下单引号‘’或双引号”“将文本包围,如’Hello‘ ”world“。

4.布尔值(bool):表示(True)真或(Falus)假,常用于条件语句(如if)中,以决定程序用来执行那一部分代码,

此外也常用于逻辑运算中。

以下为一些使用bool值案例:

#直接声明bool值
logic1=True
logic2=False

#使用bool值进行条件判断
if logic1:
    print(logic1 is True)
else:
    print(logic2 is False)

#使用bool值进行逻辑运算
result1=logic1 and logic2 #结果为False 因为 True and False 是 False
result2=logic1 or logic2  #结果为True  因为 True or False 是 True
result3=not logic2        #结果为True  因为 not True 是 False
print(result1,result2,result3)

#使用比较运算返回bool值
num1=30
num2=60
result=num1<num2
print(result)  #结果为True 因为num1<num2

注意:在Python中bool值不仅只会表示为True和False,在实际操作中许多值可以被解释为布尔值

变量的使用 :

在编程中,变量是用来储存数据的容器。它们允许程序在执行过程中存贮,检索和修改数据。

Python 提供了许多内置函数,用于在变量之间进行类型转换。以下将通过使用一些常用的内置函数,用于处理变量类型之间的转换:

int():将其他任意数据类型转换为整数。

num_str = "159"  
num_int = int(num_str)  # num_int 是整数 159

 float():将其他任意数据类型转换为浮点数。

num_str = "159.753"  
num_float = float(num_str)  # num_float 是浮点数 159.753
str():将其他数据类型转换为字符串。
num = 123.0         # 输入什么什么类型就输出什么类型
num_str = str(num)  # num_str 是字符串 "123.0"

list():将其他可迭代对象(如字符串、元组等)转换为列表。

num=(1,2,3)
num_list=list(num) # lst 是列表 [1, 2, 3]

tuple():将其他可迭代对象(如列表、字符串等)转换为元组。

num=(1,2,3)
num_tuple=tuple(num)  # num_tuple 是元组 (1, 2, 3)

set():将其他可迭代对象(如列表、元组等)转换为集合(无序且不重复)。

num=(1,2,3)
num_set=set(num)  # num_set是集合{1,2,3}

dict():从键值对(如元组列表)或其他可迭代对象创建字典,用dist转换时注意:一个元组中包含两个元素,第一个元素为键,第二个元素为值。

num=[(1,'知'),(2,'青')]
num_dict=dict(num) #num_dict是字典 {1: '知', 2: '青'}

以上变量类型间的相互转换非常常用

对于初学Python GIS的建议从基础的空间数据处理和分析开始涉及解决GIS问题:

1. 筛选指定名称的空间要素

题目:如果你有一个包含多个城市名称的列表,你需要你从这个列表中找出包含“London”的城市,并用列表打印其名称。

城市列表:cities = ['Florida', 'London', 'London East', 'London West', 'Manchester']

 解答:

cities = ['Florida', 'London', 'London East', 'London West', 'Manchester']
#筛选城市
#第一个city是目标列表的变量名
#第二个citr是一个循环变量,用于迭代cities列表
#第三个city是一个条件变量,用于检查当前迭代到的元素是否满足条件。
London_city=[city for city in cities if 'London' in city]
#打印列表
print(London_city)

2.读取CSV文件中的经纬度

题目:如果你有一个CSV文件,其中包含了城市的名称、经度和纬度。你需要使用Python来读取这个文件,并打印出所有城市的名称

CSV文件内容(假设文件名为cities.csv): 

Name,Longitude,Latitude 

New York,-74.0060,40.7128 

London,-0.1278,51.5074 

Paris,2.3522,48.8566

CSV文件因其格式简单、体积小,易于使用,可以直接用Excel、记事本等工具打开和编辑,在GIS实践中,读取CSV文件中的经纬度数据是非常常见的操作(一般新建txt文件,输入内容后,更改文件后缀为csv即可)。

解答:

 需要在使用在命令行界面(CMD)输入以下命令并按回车来安装pandas:

pip install pandas

 安装后即可运行:

import pandas as pd

# 读取CSV文件
cities_read= pd.read_csv('E:/cities.csv') #该csv文件绝对路径为E:/cities.csv
                                         #使用pd库中的read_csv函数读取并存入cities_read中

# 打印所有城市的名称
for index, row in cities_read.iterrows(): #for循环用于遍历cities_read中DataFrame中的每一行
    print(row['Name'])                  #遍历cities_df中的每一行,并打印出每一行的'Name'列的值

解答解释:

 这里主要对打印城市名称进行解释:

1.cities_read这是一个pandas DataFrame对象,它可能包含多个列和行,假设这个DataFrame包含了关于城市的信息,其中有一个列     名为'Name'。(DataFrame是pandas中用于存储表格数据的主要数据结构)

2.iterrows()它返回一个迭代器,该迭代器产生索引和行的对,DataFrame中的每一行iterrows()都会返回该行的索引和一个对象,该对象表示该行的数据。

3.for循环,它遍历由iterrows()产生的索引和行的对,index变量将保存当前行的索引,row变量将保存一个pandas对象,该对象包含当前行的所有列和对应的值。

上述内容均为学习使用,后续将持续发表该方面文章以记录学习过程

  • 32
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python地理信息系统(Geographic Information System,简称GIS)是利用Python编程语言来处理和分析地理空间数据的一种方法。Python提供了许多用于地理信息处理的库和工具,使得开发地理信息系统变得更加简单和高效。 在Python,常用的地理信息处理库包括: 1. Geopandas:用于处理地理空间数据的Python库,提供了对矢量数据(如点、线、多边形)的读取、写入、操作和分析功能。 2. Shapely:一个用于进行几何运算的库,可以用于创建和操作地理空间对象(如点、线、多边形)。 3. Fiona:一个用于读取和写入地理空间数据的库,支持各种格式的矢量数据文件。 4. GDAL:是一个用于读取、写入和处理地理空间数据的库,支持各种格式的栅格和矢量数据文件。 5. PyProj:用于地理坐标系转换的库,可以进行不同坐标系之间的转换。 通过使用这些库和工具,你可以使用Python来读取、分析、处理和可视化地理空间数据,进行空间查询和分析等操作。可以创建地图、执行地理空间分析、计算距离和面积等。同时,Python还提供了很多其他的科学计算库(如NumPy、Pandas、Matplotlib等),可以与地理信息处理库结合使用,进行更复杂的分析和可视化。 总的来说,Python地理信息系统为地理空间数据分析提供了强大的工具和灵活性,使得开发和应用地理信息系统变得更加简单和高效。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值