本书是一本系统、实用的地理空间数据科学编程与应用实战教材。全书立足于地理人工智能(Geospatial Artificial Intelligence,GeoAI)时代的范式革新,内容由浅入深,完整覆盖了从基础编程到高级空间建模的经典工作流。全书共八章,首先从Python语言基础、NumPy科学计算与开发环境部署入手,为读者夯实底层计算能力;随后系统讲解矢量数据与栅格数据的读取、处理、转换及其综合空间分析方法;进而深入剖析基于Matplotlib与Cartopy的地理空间数据专业可视化与专题制图技术。特别值得一提的是,本书紧扣当前学术与行业的前沿需求,在最后两章中深度融合了人工智能技术,详细介绍了机器学习(如随机森林、K-Means)与深度学习(如基于PyTorch的长短期记忆网络与多层感知机)在地理空间分析中的应用。本书强调案例驱动的教学理念,通过植被总初级生产力(Gross Primary Productivity,GPP)遥感估算、农田像元级制图以及碳通量时序建模等真实的科研与工程实例,引导读者培养空间编程思维,全面提升在数字化、智能化时代解决复杂地理空间问题的核心能力。本书提供代码、示例数据、PPT,读者可登录华信教育资源网免费下载。
来全,内蒙古师范大学教授。毕业于东北师范大学环境科学专业,博士研究生学历,主要研究方向为基于AI的遥感数据挖掘、地理信息系统二次开发与应用、蒙古高原气候变化等。先后在《Agricultural Water Management》、《Science of The Total Environment》、《International Journal of Applied Earth Observation and Geoinformation》、《Ecological Indicators》、《Remote Sensing》等国际知名SCI期刊上发表多篇论文。编著教材1本,专著2部。获得发明专利4项,专业相关软件著作权30余项。
目 录
第1章 地理空间数据处理与分析导论 1
1.1 地理空间数据概述 1
1.1.1 地理空间数据 1
1.1.2 地理空间数据模型概述 5
1.1.3 地理空间数据的核心价值 6
1.1.4 地理空间数据与普通表格数据差异 8
1.2 地理空间分析概述 10
1.2.1 地理空间分析的科学问题驱动与内涵 10
1.2.2 地理空间特征关联差异与尺度规律 10
1.2.3 地理空间分析任务分类与经典分析方法 11
1.2.4 地理空间分析范式的智能化演进趋势 11
1.3 地理空间数据处理与分析的关系 12
1.3.1 地理空间数据处理与分析的功能界定 12
1.3.2 空间工作流中的协同关系与迭代逻辑 12
1.4 处理与分析技术发展概述 13
1.4.1 从手工绘图到早期计算机制图的跨越 13
1.4.2 桌面GIS时代的辉煌与传统手段的成型 14
1.4.3 WebGIS、云计算与大数据处理技术的兴起 15
1.4.4 GeoAI时代的范式革新 15
1.5 Python扮演的角色 16
1.5.1 传统GIS的局限性 16
1.5.2 Python核心优势 16
1.5.3 Python的独特地位 17
1.6 Python环境部署 18
1.6.1 Miniconda安装与配置 18
1.6.2 PyCharm 2025安装 25
1.7 本章小结 27
第2章 Python基础与科学计算 28
2.1 地理空间数据处理的计算基础 28
2.1.1 地理空间数据的计算特征 28
2.1.2 自动化处理与批量计算需求 29
2.1.3 地理空间分析的数值计算本质 29
2.2 Python语言基础 30
2.2.1 变量与基本数据类型 30
2.2.2 字符串与文件路径处理 32
2.2.3 条件语句与逻辑判断 35
2.2.4 循环结构与批量数据处理 36
2.2.5 函数的定义与程序结构 37
2.3 Python数据结构与地理空间数据模型 39
2.3.1 列表与序列结构 39
2.3.2 字典与键值映射结构 40
2.3.3 元组与坐标表达 42
2.3.4 多维数据结构与栅格数据逻辑 43
2.4 NumPy数组基础 44
2.4.1 ndarray结构与数据类型 45
2.4.2 数组的创建与维度理解 45
2.4.3 数组索引与切片操作 46
2.4.4 布尔索引与条件筛选 47
2.4.5 向量化运算与计算效率 48
2.4.6 广播机制与数组运算规则 49
2.5 本章小结 50
第3章 Python矢量数据处理 51
3.1 矢量数据读取 51
3.1.1 矢量数据格式概述 51
3.1.2 常见的矢量数据格式 52
3.1.3 Python读取矢量数据 53
3.2 矢量数据的创建与格式转换 58
3.2.1 生成矢量文件 58
3.2.2 矢量数据格式转换 60
3.3 矢量数据空间分析 62
3.3.1 空间分析简述 62
3.3.2 常用空间分析方法的实现 64
3.4 本章小结 81
第4章 Python栅格数据处理与分析 83
4.1 栅格数据基础 83
4.1.1 栅格数据 83
4.1.2 栅格数据格式 85
4.1.3 栅格数据来源 89
4.1.4 栅格数据的存储与管理 90
4.2 栅格数据的读写 91
4.2.1 栅格文件的读写 91
4.2.2 栅格数据格式转换 100
4.2.3 元数据管理 102
4.3 栅格数据处理 103
4.3.1 栅格对齐与重投影 104
4.3.2 栅格重采样 105
4.3.3 栅格掩膜 106
4.3.4 栅格镶嵌与拼接 108
4.4 栅格数据分析 108
4.4.1 栅格区域统计 109
4.4.2 植被指数计算 111
4.4.3 变化检测 112
4.4.4 空间统计分析 113
4.5 时间序列分析 114
4.6 本章小结 120
第5章 Python栅格数据与矢量数据综合分析 121
5.1 空间数据结构转换 121
5.1.1 矢量转栅格 122
5.1.2 栅格转矢量 123
5.2 区域统计 124
5.2.1 常规区域统计 125
5.2.2 高级区域统计 126
5.3 距离与成本分析 127
5.3.1 欧氏距离分析 127
5.3.2 成本距离分析与最小成本路径 128
5.4 叠加与提取分析 133
5.4.1 掩膜提取 133
5.4.2 点位置提值 134
5.4.3 综合空间查询 136
5.5 本章小结 137
第6章 地理空间数据可视化 138
6.1 地理空间数据可视化概述 138
6.1.1 地理空间可视化的重要性 139
6.1.2 Python可视化优势 139
6.2 Matplotlib地理空间数据可视化 140
6.2.1 矢量数据可视化 140
6.2.2 栅格数据可视化 142
6.2.3 矢量数据与栅格数据叠加可视化 144
6.3 Cartopy专题地图构建流程 145
6.3.1 地图投影原理与绘图环境构建 145
6.3.2 地理背景与空间参考体系 147
6.3.3 地图版式设计与整饰 150
6.3.4 Cartopy综合应用案例 154
6.4 本章小结 157
第7章 机器学习在地理空间分析中的应用实践 158
7.1 机器学习赋能地理空间分析 158
7.1.1 核心概念 159
7.1.2 机器学习的三种基本范式 159
7.1.3 机器学习vs传统遥感分类方法 160
7.2 基于随机森林的植被总初级生产力遥感估算 161
7.2.1 环境配置与依赖包安装 162
7.2.2 算法流程拆解 162
7.2.3 GPP估算模型训练代码 165
7.2.4 验证代码 166
7.2.5 小结 168
7.3 基于随机森林的农田遥感识别与像元级制图—以呼和浩特市为例 168
7.3.1 算法流程拆解 169
7.3.2 分类模型训练核心代码与解释 173
7.3.3 分类模型验证核心代码与解释 175
7.3.4 小结 178
7.4 基于K-Means的无监督遥感聚类与植被类型自动分区 178
7.4.1 算法流程拆解 179
7.4.2 核心代码与行内注释 182
7.4.3 验证代码 184
7.4.4 小结 186
第8章 深度学习在地理空间分析中的应用实践 187
8.1 从机器学习到深度学习 187
8.1.1 神经网络基础:神经元与前向传播 188
8.1.2 传统机器学习vs深度学习 188
8.2 基于LSTM的植被碳通量时序建模 189
8.2.1 PyTorch深度学习环境配置 190
8.2.2 算法流程拆解 190
8.2.3 训练核心代码与行内注释 192
8.2.4 验证代码解析 196
8.2.5 小结 198
8.3 基于多层感知机(MLP)的农田二值分类—PyTorch深度学习初探 198
8.3.1 算法流程拆解 199
8.3.2 核心代码与行内注释 201
8.3.3 验证代码解析 204
8.3.4 小结 206