【笔记】《Python地理空间分析指南(第2版)》
程序员文章站
2024-03-24 22:32:16
...
转载地址:https://blog.csdn.net/jianbinzheng/article/details/80215228
概述部分
- 埃博拉病毒与Ushahidi灾害系统
- 法国西南部的拉斯科山洞,星空图壁画⇒
对事物的抽象1832年的欧洲霍乱疫情中,病情和水井的制图⇒两者分布关系1869年法国工程师绘制的1812年拿破仑东征俄罗斯战败的时序图⇒
- 融合时间线、线宽、颜色、文字等方式表达
- 第一个GIS系统——加拿大国家地理信息系统CGIS
- 遥感——远距离探测,如Landsat等
- DEM——数字高程模型,如SRTM(90m)、GDEM(30m)、WorldDEM(4m、要钱)等
- CAD——计算机辅助制图,与GIS制图的区别在于坐标(GIS地理坐标)
- OSM——OpenStreetMap,开源的GIS众源数据
- GIS基本概念:专题地图、空间数据库、空间索引、元数据、地图投影、渲染、影像数据、遥感颜色
- GIS矢量基本概念:数据结构、缓冲区、融合、简化、叠置、合并、包含、联合、连接、拓扑
- GIS栅格基本概念:波段运算、变化监测、柱状图、特征提取、监督分类、非监督分类
- 用turtle模块做了个小例子,基于Tkinter库的图形引擎
地理空间数据
- 互联网地图用web墨卡托投影,谷歌造的,原编号EPSG:900913,正式编号EPSG:3857
- 空间索引方法:四叉树、R树
- 地图瓦片:网格与概要化,分级图片
- 开源矢量库OGR支持86+种矢量格式、商业的FME支持188+种
- Shapefile格式——Esri的并开放了标准,包括.shp/.shx/.dbf|.sbn/.sbx/.prj等
- AutoCAD文件格式——DXF、DWG,在地理空间分析中使用有限
- 标签和标记格式——XML/KML/OSM/GML/GeoJSON/SVG/WKT(常用于prj)
- GeoJSON:JSON格式的一种,与Javascript无缝集成,WebGIS开发常用
- 影像数据——ASCII文本文件、TIFF、常规图片(JPEG/GIF/BMP/PNG,需要地理参考文本辅助)、复杂类型(NetCDF、GRIB、HDF5,用于海洋、气象等)、压缩格式等
- 点云数据——激光、雷达等产生,用于三维
地理空间技术概览
- 地理空间软件包实现的4个核心功能:数据访问、几何计算、可视化、元数据工具
- GDAL、OGR、GEOS、PROJ.4是地理空间分析产业商业、开源软件的核心与灵魂,都是C/C++编写的。另外Java写的GeoTools了解一下
- GDAL:地理空间数据抽象库,主要面对栅格数据访问处理
- OGR:简单特征库,面向矢量数据访问处理
- PROJ.4:用于地图投影
- CGAL:计算几何算法库,如多边形直骨架线
- JTS:Java拓扑套件,Java实现的地理空间计算几何库
- GEOS:开源几何引擎,是JTS库的C++版实现,现存包括Python的脚本语言都自动绑定GEOS库
- PostGIS:开源关系型数据库PostgreSQL的模块,大多由GEOS提供,实现了SQL查询空间数据
- 其他支持空间分析的数据库:Oracle Spatial、ArcSDE、Microsoft SQL Server、MySQL、SpatialLite
- 路径分析——Esri网络分析、PostGIS的开源pgRouting引擎
- 桌面工具——QGIS、OpenEV、GRASS GIS、uDig、gvSIG、OpenJUMP、Google Earth、NASA World Wind、ArcGIS;(国内:Supermap、MapGIS、GeoStar等)
- 元数据管理——GeoNetwork、CatMDEdit
Python地理空间分析工具
- GDAL的安装——源码编译、大型软件的一部分、安装二进制发行包
-
Python的网络库
import urllib import ftplib import zipfile import tarfile
-
Python的标签解析器
#历史悠久(自带) from xml.dom import minidom #元素树(自带) try: import xml.etree.cElementTree as ET except ImportError: import xml.etree.ElementTree as ET #专业解析HTML(等格式混乱的XML文件) from bs4 import BeautifulSoup
-
WKT文本。注意:shapely为GEOS提供一套Pythonic接口
#使用shapely import shapely.wkt #也可以用OGR库 from osgeo import ogr ...
-
Python处理json
#使用json模块(自带) import json #使用geojson模块 import geojson
-
PyShp,用于读写Shapefile文件,不支持任何几何操作,只调用Python标准库
import shapefile
-
dbfpy3,Python实现,专门处理dbf文件
from dbfpy3 import dbf
-
Shapely,通用几何库,是高级的、提供Python风格的GEOS库几何操作的库,避免访问文件,只聚焦几何操作
import shapely
-
Finoa,为OGR库的数据访问功能提供简洁的Python API,默认GeoJSON格式
import finoa
-
GDAL,处理栅格数据;OGR,通用矢量数据库
from osgeo import ogr from osgeo import gdal
- NumPy,用于Python数组的快速处理、科学计算等,C实现的
- PIL,图像编辑用,C实现的
- PNGCanvas,Python 实现的轻量级的图像编辑
- GeoPandas,由Shapely、Fiona、PyProj、matplotlib、Descartes及其他必须库构建的Pandas的地理空间扩展,数据库支持
- PyMySQL,提供一套完整的Python实现的API实现MySQL的空间数据支持
- PyFPDF,Python写的,处理PDF文件
- Spectral Python,SPy,Python光谱功能包,处理遥感应用,尤其是高光谱
Python与地理信息系统
- 距离两侧:平面(勾股)、球面(半正矢公示)、椭球面(Vincenty公式)
- 方位计算
- 坐标转换
- 重投影
- Shapefile文件编辑
- 查询
- 可视化
- 电子表格
- GPS数据
- 地理编码(geocoder-谷歌地图、geopy-OSM)
Python与遥感
略,主要就是GDAL和PIL、PNGCanvas;例子包括图像波段变换、图像直方图创建、图像分类、图像特征提取、变化监测应用
Python与高程数据
- ASCII网格高程文件:gdal、numpy
- 地貌晕渲图:linecache、numpy
- 创建等高线:gdal
- LIDAE数据网格化:laspy、PIL;voronoi创建Delaunay三角网
Python地理空间高级建模
这一章是几个例子,给出了问题解决流程
示例:一张农作物健康地图、一个洪水淹没模型、一张彩色晕渲地图、一张地形路径地图、一张街道路径地图、一张包含照片地理位置连接的shapefile文件
实时数据
- 一张地图在被制造出来的那一刻,就已经过时了
- 实时路况的API
- 气象追踪,爱荷华州立大学的Mesonet平台提供免费、实时的天气数据应用服务
- NOAA提供了一套访问OSM的WMS接口
- SRTM.py提供DEM下载
上一篇: GDAL(python) 之GeoTransform
下一篇: GCD案例解析