商务服务
python与地理空间分析(一)
2024-11-11 09:48

在气象数据分析中,地理空间要素是一个必须考虑的关键特征项,也是重要的影响因素。例如气温会随着海拔的升高而降低,地形的坡向朝向也会影响风速的分布,此外,典型的地形会形成特定的气候条件,也是数据挖掘中可以利用的区域划分标准。数据分析中,地理空间分析往往能提供有效的信息,辅助进行决策。随着航空遥感行业的发展,积累的卫星数据也成为了数据挖掘的重要数据来源。 地理空间分析有好多软件可以支持,包括Arcgis,QGIS等软件平台,本系列文章将会着重分享python在地理空间分析的应用。主要包括地理空间数据的介绍,常用的python包,对矢量数据的处理,对栅格数据的处理,以及常用的算法和示例。 地理空间数据包括几十种文件格式和数据库结构,而且还在不断更新和迭代,无法一一列举。本文将讨论一些常用的地理空间数据,对地理空间分析的对象做一个大概的了解。 地理空间数据最重要的组成部分:

python与地理空间分析(一)

•地理位置 标示数据空间位置的信息,例如经纬度•主题信息 主题信息涵盖的范围广泛,可以是卫星的光谱数据,也可以是对应地理位置的统计数据如人口,面积,长度等•此外,空间索引一般也是地理空间数据的共性,空间索引创建了一个向导,能够让软件无需扫描数据集中的每一行记录快速定位查询结果。

矢量数据目前是最常用的地理空间格式,因为它是存储空间信息最有效的一种方式。矢量数据只存储几何图元,包括点、线和多边形。可供选择的矢量格式数目很饿的,开源矢量库OGR支持超过86种矢量格式,FME支持超过188种矢量格式。下面将简单介绍击中常用的数据格式:

Shapefile文件

使用最普遍的地理空间格式是Esri的Shapefile文件,可以通过arcgis软件或者第三方转换工具包将任意格式的矢量数据转换成Shapefile文件格式,例如OGR库,python中解析Shapefile文件的模块大都是基于OGR库的。 Shapefile文件格式是有多个文件组成,最重要的文件包括3种,.shp、.shx、.dbf文件。•.shp 用于存储要素几何的主文件,其中包含几何图形(读取的对象)•.shx 形状索引文件,可以加快访问速度•.dbf 数据库文件,包括几何要素的属性信息•其他 .prj 以WKT格式存储的地图投影信息 Shapefile文件是一个整体,重命名文件和编辑文件时,需要相关文件保持一致,否则很容易导致数据错误无效。

CAD文件

CAD是工程制图常用的文件格式,一般是通过AutoCAD软件创建的,格式后缀一般为DXF或DWG虽然,在工程制图中也会应用到一些地理空间分析的算法,但是一般的地理空间分析工具对其支持非常少,在实际应用中也很少见。

标签和标记格式

当用arcgis或者QGIS等软件打开数据的时候,会产生相应xml结尾的文件,这就是一种最常见的基于标签的标记格式,XML格式,此外还有用作投影信息文件的WKT格式,google earth常用的KML文件格式,以及GPS中常用的GPX文件。 标签和标记格式的文件一般具有可读性高,编辑方便,兼容性和扩展性较好等特点,但数据的存储比较低效,在数据庞大的情况下,编辑体验非常糟糕。

GeoJSON文件

GeoJSON文件是基于Javascript对象表示格式的一种新的、智能化的文本格式,已被主流的地理空间软件和大部分网站发布数据所采用,因为Javascript是动态网页支持的语言,GeoJSON能够和Javascript无缝集成。 GeoJSON和python的字典和列表等数据类型几乎一模一样,python内置的json库,可以直接解析JSON文件

这就定义了一个包含一个点的GeoJSON文件,可以直接赋值给python的数据结构。由于结构紧凑,使用Javascript语法编写对于互联网格式友好,并且支持主流编程语言,GeoJSON也是当前流行的地理空间REST Web API的一个重要组件。

栅格数据是由若干行或列的单元或者像素构成的,每个单元代表一个数值。地理空间栅格数据常用来存放卫星遥感数据,使用一个像元对应的地面距离来表达空间分辨率;此外栅格数据可以包含多个光谱波段的数据,例如常用的可见光以及红外波段,有的像高光谱数据,会包含成百上千个波段数据,可以通过不同波段的组合生成不同的专题地图。 栅格数据另外一种常见的应用是科学计算,例如HDF数据以及气象中常用的NetCDF,GRIB数据等,这些格式更像是文件系统中的字典,并且包含多个数据集或者相同数据集的多个版本。 和矢量数据类似,栅格数据也包含多种格式,比较常用的开源栅格库是地理空间数据抽象库(GDAL),支持超过130种栅格数据格式。常用的栅格数据格式包括:

TIFF文件

标记化图片文件格式(TIFF)是地理空间最常用的栅格格式。TIFF文件可以包含多波段,整型高程数据,基本元数据,内部压缩以及其他常用的存储辅助信息的文件格式。TIFF文件可以通过添加标记数据进行扩展,GeoTIFF就是扩展定义的地理空间数据的存储,常用的后缀.tif,.tiff和.gtif。

JPEG,GIF,BMP和PNG文件

JPEG、GIF、BMP和PNG格式是很常见的图片格式,但是一般来说,他们也可以存储基本的地理空间数据。通常这些格式依赖于相关的地理参考信息的辅助文本文件才能够在GIS软件中使用,例如WKT,prj等文件。

压缩格式

地理空间栅格数据往往占用的空间比较大,需要采用高级的压缩算法进行存储。最新的开放格式是JPEG2000,包含小波压缩算法和地理参照数据。多分辨率无缝影像数据库(MrSID).sid和增强型小波压缩.ecw是地理空间分析应用中常用到的两种小波压缩格式。TIFF格式支持的压缩算法包括Lempel-Ziv-Welch算法。压缩算法节省了数据的存储空间,但数据本身会被修改,丢弃了部分原始数据信息,因此在做分析中需要注意。

ASCII格式

ASCII网格文件就是将栅格数据存放在一个文本文件中,包含数据本身和数据的信息,通过文件头,读取数据。文件头基本包含行列数,起始坐标,单位,无效值的定义等信息

全球文件

世界文件由一些简单的文本构成,能够以外部文件的形式提供地理空间参考信息,世界文件结构非常简单,常包含的信息包括:•x方向单位大小•y轴偏转角的•x轴偏转角度•y方向单元大小•左上角x坐标•左上角y坐标 通过世界文件提供的信息(常用的6要素),可以计算坐标系内任意单元的坐标,从而获取文件的地理参考信息。

除了矢量和栅格数据外,地理空间数据还有其他形式例如:

•点云数据:点云数据根据物体表面的反射能量获取相应的三位坐标信息。一般通过激光器,雷达波,声学探测仪以及其他波形设备获取。目前常用到的场景包括全球地形绘制以及智能驾驶的距离探测,常用的格式LIDAR交换格式(LAS)•Web服务 地理空间Web服务允许用户执行数据发现,数据可视化和数据跨平台访问等操作。常用的协议有返回一张地图图片的网络地图服务(WMS)和返回GML格式文件的网络要素服务(WFS),目前天地图提供了多种Web服务,可以去尝试

python是一门非常强大的编程语言,对于地理空间分析方面的应用有多种包提供支持,常见的python

python的标记、标签解析器

python的minidom模块是一个历史悠久、简便易用的XML解析器,它能够解析XML文件并且可以把XML源当作数据串处理。适用于处理XML,KML格式的数据。

可以获取kml文件的标签,坐标信息。 此外python中也提供了元素树(ElementTree)解析XML的工具,允许使用路径样式的语法对XML文档进行查询。

minidom和ElementTree能够解析处理结构完好的XML文档,但是并不是所有的XML文档都是规范的。BeautifulSoup模块主要用来处理格式错误的XML文件,也可以解析HTML文件

此外,WKT也是周婵次常用的表达几何图形和空间索引的标记文本文件,读写WKT格式最佳的是使用Shapely库

这就定义了一个多边形的几何图形,此外利用OGR也可以处理wkt文件。

python的JSON库

javascript对象标记是目前非常流行的一种数据格式,python也提供了读写JSON文件的库。 可以通过eval函数直接解析为python中的字典的数据形式,但是eval并不能支持所有JSON中的字符集,因此并不是一种可靠的处理方式。 python标准库中提供的json模块可以提供可靠的JSON文本解析处理。

此外,geojson库可以更好的支持geojson文本的解析

OGR库

OGR库是python处理矢量数据的通用库,也是许多处理矢量数据包的依赖项。

这个是OGR读取shp文件的简单示例

PyShp

PyShp是一个简单的完全使用python实现的包,主要用来读写shapefile文件,但是它并不能支持几何操作。

和上面一样,简单的读取shp文件的示例

dbfpy3

除了OGR,PyShp这种直接操作shp文件的库外,dbfpy3提供了直接处理shp文件中的dbf文件项的功能,更方便快捷。

对dbf文件进行读写和编辑

Shapely

Shapely在wkt操作中有了简单的演示,可以提供对矢量数据的读写,但是着重于对矢量数据的几何操作。

通过wkt,定义了一个多边形,计算多边形的面积;计算5个单位的缓冲区分析,并计算缓冲区的面积

Fiona

Fiona模块为OGR哭的数据访问功能提供了一套简洁的python api,大大提高了OGR库在python中的易用性。Fiona默认的输出格式是GeoJSON

GDAL

GDAL库是处理栅格数据的主流地理空间库,也是多种地理空间分析软件和程序包的栅格处理的基础包。

简单的读取栅格文件的示例 此外可以结合其他模块进行交互处理。 依赖与numpy库可以读取遥感图像为数组,方便处理。

读取遥感图像的第一个波段为数组,并存成jpg文件

PIL

PIL库原本是用来处理遥感影像数据的,但现在一般用于图像编辑,PIL库有点庞大,如果只是轻量级处理图像,可以使用PNGCanvas库进行代替。

GeoPandas

GeoPandas是由Shapely,Fiona,PyProj,matplotlib以及其他必需的库一同构建的Pandas的地理空间扩展。下面的示例将会打开一个ShapeFile文件并将其转存为GeoJSOM格式,之后使用matplotlib库创建地图

Spectral Python

python的光谱功能包,是一个专门处理遥感波段数据的高级光能包,适用于高光谱处理方面的应用。

    以上就是本篇文章【python与地理空间分析(一)】的全部内容了,欢迎阅览 ! 文章地址:http://lanlanwork.gawce.com/news/9531.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 阁恬下移动站 http://lanlanwork.gawce.com/mobile/ , 查看更多   
最新新闻
百度识图怎么用(百度识图功能好用吗)(百度产品大全)
识图搜索提供两种图片输入方式,用户可以上传本地图片或者输入网络图片的URL地址,将图片传给搜索引擎之后,百度识图将会自动识
更多资讯行业资讯
从合资到自主,从数量到质量,中国汽车产业的整体水平和中国人的生活水平同步提高的同时,也发生着深刻的变化。乘着产业发展的东
忻州关键词seo优化排名
百度关键词搜索排名系统优化的方法:中,选择错误的的关键词、合理使用标题和描述、内部链接优化系统、外部链接360优化、关键词密
springboot整合百度AI的图片和文字违规识别
1.用户注册登录:用户进行注册,登录。2.商品浏览:以列表方式显示商品信息或者可以查看商品。3.商品搜索:用户可以通过关键字或
谁还在用百度搜索?
文/周音微软必应超越百度,成为中国桌面搜索第一大引擎。曾经的百度搜索,跌落王座。这是一家美国数据统计机构发布的中国桌面搜
锚定「AI向实」,百度研究院发布2023年十大科技趋势
机器之心报道机器之心编辑部过去四年,智能技术构筑起了科技变革的主线,AI 向实,成为当今时代科技发展的主干道。—— 百度首席
百度新闻史诗级大调整
作者|奇袭来源|品牌公关实验室继2017年3月宣布取消新闻源库后,百度新闻在2023年年中迎来了历史上最大规模的新闻收录展示调整
盘点:14款免费的关键词研究工具
选好关键词对于卖家来说至关重要,本文盘点了一些免费的关键词工具。以下是14种不同的免费关键词研究工具的清单,可以帮助卖家找
韩文翻译器拍照扫一扫
微信使用更方便:1、微信搜索小程序“ 拍照翻译精灵 ”不仅仅是翻译,是一个功能多样的小程序 :拍照翻译、拍照提取文字、拍照识
手机百度 10.3.8 For iphone
华军软件园频道,为您提供手机百度iPhone版下载、手机百度苹果版下载。手机百度iPhone版来自全世界最大的中文搜索引擎百度的iPho