本文为《Python地理空间分析指南(第2版)》的读书摘录,顺便挖个坑,进一步对python的几个包做学习整理。

本笔记的用途:了解python地理空间处理的技术框架和实现途径。

第三章 地理空间技术概览

一般来说,地理空间软件包不同程度上实现了以下4种高级核心功能:数据访问;几何计算(包括数据重投影);可视化;元数据工具。

GDAL, OGR, GEOS和PROJ.4库是地理空间分析产业商业、开源软件的核心和灵魂。

数据访问

GDAL (The Geospatial Data Abstraction Library) 为栅格数据提供了一个单一、抽象的数据模型。

OGR 处理矢量数据,X11/MIT开源授权协议。

几何计算

PROJ.4 投影库能够描述任何投影信息,为GDAL和OGR库处理矢量、栅格数据提供支持。

CGAL 计算几何算法库

JTS 是Java地理空间计算几何库,实现了SQL的开放地理空间联盟(OGC)简单要素标准。

GEOS 开源几何引擎,JTS的C++版本实现。

PostGIS 空间数据库,是PostgreSQL的一个模块,免费开源。

可视化

QGIS (Quantum GIS) 开源的地理信息系统,是基于GDAL/OGR库和GEOS库构建的,所以能使用PostGIS,并且支持这些软件包提供的数据源。

OpenEV 最快的栅格数据查看器,支持GDAL/OGR库和PROJ.4库的所有功能,方便浏览和数据转换。

ArcGIS

元数据管理

地理空间数据集的元数据能够遵循并保证数据集的完整性,而且可以追溯到数据生产商。格式正确的元数据还允许自动编目、索引搜索和数据集集成。

GeoNetwork 是开源的、使用Java实现的管理地理空间数据的目录服务。

Python库

网络库 urllib ftplib zipfile xml beautifulsoup4 lxml

Json库 json geojson osgeo.ogr

shapefile文件 Pyshp

import shapefile

shp = shapefile.Reader("point.shp")

for feature in shp.shapeRecords():

point = feature.shape.points[0]

rec = feature.record[0]

print(point[0], point[1], rec)

dbf文件 dbfpy3

Shaplely库 是高级的Python风格的GEOS库几何操作的做,它完全依赖其他模块导入或导出数据,功能聚焦于几何操作方面。

from shapely import wkt, geometry

wktPoly = "POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))"

poly = wkt.loads(wktPoly)

print(poly.buffer(5.0).difference(poly).area) # 158.4137

Fiona 模块为OGR库的数据访问功能提供了一套简洁的Python API,默认输出格式是GeoJSON。

import fiona

import pprint

f = fiona.open("...")

print(f.driver, f.crs, f.bounds, f.schema)

pprint.pprint(f[1])

GDAL

from osgeo import gdal

raster = gdal.Open("....tif")

print(raster.RasterCount, raster.RasterXSize)

PIL 图像编辑,升级版本Pillow,轻量级PNGCanvas,栅格化Shapefile文件

GeoPandas

import geopandas

import matplotlib.pyplot as plt

gdf = geopandas.GeoDataFrame

census = gdf.from_file("....shp") # 打开并存储为GeoJSON格式

census.plot()

plt.show()

Numpy

pymysql 提供有限的空间功能

pyFPDF 一种轻量级的创建包括地图等PDF文件的解决方案。

Spectral Python 一款专门处理遥感应用的高级功能包。

重投影

Shapefile文件编辑

.shp文件包含几何图形,.dbf文件包含几何图像相关的属性信息。

import shapefile

r = shapefile.Reader("M")

print(r.bbox, r.shapeType, r.numRecords)

# dbf文件是简单的数据库格式,类似行列式的电子表格结构,每一列通过标签定义它包含的信息。

print(r.fields)

# field name, field type, field length, decimal length

# DeletionFlag, ...

# 通过字段访问数据

fieldNames = [item[0] for item in r.fields[1:]]

name10 = fieldNames.index("NAME10")

print(r.record(2)[name10])

python空间分析_读书笔记——《python地理空间分析指南》相关推荐

  1. python读书报告_读书笔记 Python编程入门

    P39 组织列表 在你创建的列表中,元素的排列顺序常常是无法预测的,但你经常需要以特定的顺序呈现信息.有时候,你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序.Python提供了很多组织列 ...

  2. python语言及其应用-[读书笔记] Python语言及其应用

    记录下秋招期间看的一本Python工具书<Python语言与其应用>,查漏补缺,部分内容整理如下: 易混淆概念 1.1 删除 - del,remove()和pop() 1.2 复制 - 浅 ...

  3. 【Python自然语言处理】读书笔记:第四章:编写结构化程序

    4 编写结构化程序 4.1 回到基础 1.赋值: 列表赋值是"引用",改变其中一个,其他都会改变 foo = ["1", "2"] bar ...

  4. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第十一章 攻击性取证

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第十一章 攻击性取证 文章目录 黑帽python第二版(Black Hat Python 2nd Edi ...

  5. 【Python自然语言处理】读书笔记:第五章:分类和标注词汇

    jupyter 版请见我的github:https://github.com/JackKuo666/Python_nlp_notes [Python自然语言处理]读书笔记:第五章:分类和标注词汇 本章 ...

  6. [转]《Python编程金典》读书笔记

    <Python编程金典>读书笔记 原文: http://man.chinaunix.net/develop/python/python_howto/python_howto_program ...

  7. 《Python编程金典》读书笔记

    << Back to man.ChinaUnix.net <Python编程金典>读书笔记 整理:Jims of 肥肥世家 <yjnet@21cn.com> 第一次 ...

  8. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(4)暴力破解HTML表单身份验证

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(4)暴力破解HTML表单身份验证 文章目录 黑帽python第二版(Black Ha ...

  9. 《数据结构与算法 Python语言描述》 读书笔记

    已经发布博客 <数据结构与算法 Python语言描述> 读书笔记 第二章 抽象数据类型和Python类 2.1 抽象数据类型abstract data type:ADT 2.1.1 使用编 ...

最新文章

  1. 字符串匹配的KMP算法——Python实现
  2. UA PHYS515A 电磁理论V 电磁波与辐射9 简单辐射系统
  3. FreeRTOS临界区应用与总结
  4. [face_recognition中文文档] 第3节 用法
  5. 一文理清面向对象(封装、继承、多态)+ 实战案例
  6. Jupyter配置步骤
  7. 前端学习(494):在XHTML中得用法
  8. 一篇文章教会你使用Python中三种简单的函数
  9. 小熊派IoT开发板系列教程正式发布——免费学习
  10. 《城市规划信息化体系》和《城市规划与建设地理信息系统》读书笔记及规划信息化的碎碎念...
  11. 麦马计算机科学 UBC工程,2020年UBC文书题目
  12. testNg 关闭浏览器异常解决办法
  13. python 中的魔法类
  14. 博途v14电脑要求_博途v15对电脑配置要求
  15. 王者荣耀李白王昭君情侣头像故事: “风雨如晦,鸡鸣不已。既见君子,云胡不喜。”...
  16. mysql router 介绍_MySQL Router 介绍篇
  17. 一键登录网易163邮箱
  18. 一顿操作猛如虎,细说MySQL索引的区别
  19. Ubuntu 根分区扩容方法
  20. 华为机试:节点队列的转发问题

热门文章

  1. 前端开发学习笔记 - 1. Node.JS安装笔记
  2. 掌握JAVA多线程的利器-线程池
  3. 图形验证码最佳攻略2
  4. linux高编线程-------线程的创建,终止
  5. 丢失或损坏NDF文件如何附加数据库
  6. 轻松得到C# ADO.NET的各种数据库连接字符串
  7. 自整理IE6,IE7,IE8,Firefox兼容方案。。。
  8. 前端小白第一次使用redux存取数据练习
  9. 用GO把你想说的话写到比特币链上
  10. Postman接口测试之POST、GET请求方法