新書推薦:
《
财富方程式
》
售價:NT$
352.0
《
知识社会史(下卷):从《百科全书》到“在线百科”
》
售價:NT$
454.0
《
我读巴芒:永恒的价值
》
售價:NT$
602.0
《
你漏财了:9种逆向思维算清人生这本账
》
售價:NT$
254.0
《
我们终将老去:认识生命的第二阶段
》
售價:NT$
418.0
《
祛魅:对世界祛魅是一个人变强的开始
》
售價:NT$
286.0
《
家族财富传承
》
售價:NT$
704.0
《
谁是窃书之人 日本文坛新锐作家深绿野分著 无限流×悬疑×幻想小说
》
售價:NT$
254.0
編輯推薦:
编辑推荐
托布勒的地理的第d一定律告诉我们,所有事物之间都相关,但是距离近的事物比距离远的关系更密切。但是当我们再看托布勒的第二定律:特定地理区域外部的现象对内部产生影响,就会理解为什么地理学家和数据分析师在数据故事和大规模研究项目中引入位置科学。
本书注重实践,地理空间专家、数据科学家、地理学家、地质学家,以及其他致力于数据分析和可视化的专业人员都能从中学到空间数据分析的基本知识。
本书作者展示了为什么发现并量化数据模式对空间数据分析非常重要。本书面向对Python结合地理空间分析有兴趣的专业人员和业余爱好者。
专家推荐
“本书涵盖了各种数据可视化的问题,每一章都很有价值。通过阅读本书,我感到提升了使用Python工具解决地理空间数据问题的能力。”
——Patrick Viafore
Robust Python作者
內容簡介:
本书介绍了为什么发现并量化数据模式对空间数据分析非常重要。你将学会:在数据问题中应用空间关系。使用栅格和矢量图。使用开源工具和公共数据集为地图增加信息量。使用 Python 脚本自动化处理地理数据。理解空间数据科学的图形化表现形式,激发好奇心。
關於作者:
Bonny P. McClain博士是美国国家出版俱乐部(National Press Club)、500女性科学家(500 Women Scientists),以及城市和地区信息系统协会(Urban and Regional Information Systems Association, URISA)的成员,还曾经是“Tableau 演讲局”(Tableau Speaker Bureau)和美国调查记者编辑协会(Investigative Reporters and Editors,IRE)成员,因此有大量机会参与卫生政策制定和卫生经济学研讨。
目錄 :
目录
前言 1
第1 章 地理空间分析入门 . 11
1.1 数据普及12
1.2 提出数据问题 .15
1.3 空间数据科学的概念框架 18
1.3.1 地图投影 .20
1.3.2 矢量数据:用对象表示地点 .24
1.3.3 栅格数据:了解空间关系 25
1.4 数据集的选择和评估 27
1.5 总结 .28
第2 章 空间分析的基本设施 .31
2.1 探索QGIS 中的空间数据 .32
2.1.1 安装配置QGIS 32
2.1.2 将底图添加到QGIS 33
2.1.3 探索数据资源 36
2.2 可视化纽约市的环境投诉 37
2.2.1 上传数据到QGIS 37
2.2.2 设置项目CRS 41
2.2.3 使用查询构建器过滤数据 42
2.3 人口数据可视化 43
2.3.1 QGIS Python 控制台 .45
2.3.2 加载栅格层 48
2.3.3 红线区:反映不平等.49
2.4 小结 .53
第3 章 QGIS:探索用于空间分析的PyQGIS 和
原生算法 .55
3.1 探索QGIS 工作区:旧金山的绿化和不平等现象 56
3.1.1 Python 插件 57
3.1.2 访问数据 .60
3.1.3 使用图层面板 62
3.1.4 处理研究问题 65
3.2 WFS:识别马萨诸塞州的环境威胁 66
3.2.1 访问数据 .66
3.2.2 探索属性 .69
3.2.3 使用迭代器 71
3.2.4 图层样式 .74
3.3 在Python 控制台中使用处理算法 74
3.3.1 使用算法 .75
3.3.2 按表达式提取 77
3.3.3 缓冲区 78
3.3.4 按位置提取 79
3.4 总结 .81
第4 章 云上的地理空间分析:Google Earth Engine
以及其他工具 .83
4.1 配置Google Earth Engine .85
4.2 使用GEE 控制台和geemap 86
4.2.1 创建Conda 环境 .88
4.2.2 打开Jupyter Notebook .89
4.2.3 安装geemap 和其他包 .89
4.3 geemap 概览 92
4.3.1 图层和工具 93
4.3.2 底图 95
4.4 探索Landsat 9 影像集 96
4.5 使用光谱带 97
4.6 国土覆盖数据库底图 101
4.6.1 访问数据 102
4.6.2 建立自定义图例 104
4.7 Leafmap:Google Earth Engine 的代用品 .106
4.8 总结 109
第5 章 OpenStreetMap:使用OSMnx 访问
地理空间数据 111
5.1 OpenStreetMap 的概念模型 112
5.1.1 标签 . 112
5.1.2 多重图 114
5.2 安装OSMnx . 115
5.3 选择一个地点 116
5.4 了解变量和参数 .120
5.5 计算出行时间 122
5.6 OSMnx 中的基本统计度量指标 .125
5.6.1 迂回性 126
5.6.2 路网分析:法国巴黎的迂回性 127
5.6.3 中间向心性 .129
5.6.4 网络类型 131
5.7 定制地区地图 133
5.7.1 通过地点生成几何图像 .133
5.7.2 通过地址生成几何图像 .134
5.8 在QGIS 中使用QuickOSM .141
5.9 总结 141
第6 章 ArcGIS 的Python API 143
6.1 安装配置.143
6.1.1 ArcGIS Python API 中的可用模块 143
6.1.2 安装ArcGIS Pro144
6.1.3 环境设置 145
6.1.4 安装依赖 146
6.2 连接到ArcGIS Python API 147
6.2.1 以匿名用户身份连接到ArcGIS Online .147
6.2.2 使用证书连接到ArcGIS 用户账户 .147
6.3 探索图像层:城市热岛图 .148
6.4 栅格函数.153
6.5 探索图像属性 158
6.5.1 图像提升 163
6.5.2 比较位置的不同时间点数据 164
6.5.3 过滤图层 166
6.6 总结 172
第7 章 GeoPandas 和空间统计 173
7.1 安装GeoPandas 173
7.2 使用GeoJSON 文件 .174
7.3 创建GeoDataFrame 176
7.4 使用美国人口普查数据:洛杉矶(LA)人口密度地图 182
7.4.1 通过人口普查API 和FTP 访问区域和人口数据 .183
7.4.2 在浏览器中通过人口普查API 访问数据 .187
7.4.3 使用数据配置文件 190
7.4.4 创建地图 191
7.5 总结 195
第8 章 数据清洗 . 197
8.1 检查缺失数据 197
8.1.1 上传到Colab 198
8.1.2 空值和非空值 .201
8.1.3 数据类型 202
8.1.4 元数据 202
8.1.5 汇总统计 204
8.1.6 替换缺失值 .209
8.2 使用Missingno 可视化数据 .209
8.3 映射模式.213
8.3.1 纬度和经度 .213
8.3.2 shapefile 214
8.4 总结 217
第9 章 探索地理空间数据抽象库(GDAL) 219
9.1 安装配置GDAL .220
9.1.1 安装Spider 220
9.1.2 安装GDAL .221
9.2 在命令行中使用GDAL 221
9.3 使用GDAL 编辑数据 223
9.3.1 Warp 函数 .225
9.3.2 获取输入光栅波段 225
9.4 在Python 中使用GDAL 库 227
9.4.1 初识Spyder .227
9.4.2 在Spyder 中浏览数据 229
9.4.3 在GDAL 中转换文件 230
9.4.4 在GDAL 中使用Binmask 232
9.4.5 完整脚本 235
9.5 探索开源光栅文件 .236
9.5.1 USGS EarthExplorer 236
9.5.2 Copernicus Open Access Hub .240
9.5.3 Google Earch Engine 240
9.6 总结 242
第10 章 使用Python 测量气候数据 245
10.1 案例1:使用降水数据验证气候预测 246
10.1.1 目标 246
10.1.2 下载数据 246
10.1.3 使用Xarray 247
10.1.4 合并2015 年和2021 年的数据集 249
10.1.5 生成图像 252
10.1.6 其他探索 256
10.2 案例2:使用WTSS Series 分析亚马逊雨林中的森林砍伐和碳排放 257
10.2.1 安装设置 257
10.2.2 创建地图 260
10.2.3 分析 262
10.2.4 调优 262
10.3 案例3:使用Forest at Risk 对瓜德罗普岛的森林砍伐建模和预测 268
10.3.1 安装配置 269
10.3.2 数据图像化272
10.3.3 数据抽样 273
10.3.4 图像关联 276
10.3.5 使用iCAR 模型对森林被砍伐的概率建模 278
10.3.6 马尔科夫链蒙特卡洛方法(MCMC)距离矩阵 279
10.3.7 使用predict_raster_binomial_iCAR 对森林被砍伐的概率建模 .281
10.3.8 碳排放 .284
10.3.9 分析 285
10.4 总结 285
附录 推荐阅读 . 287
参考资料 291
內容試閱 :
前言本书是关于如何做地理空间数据分析的入门指南,书中采用的Python 库和包都针对数据的探索和挖掘做了优化。近年来,随着物联网的出现,以及位置数据在本地计算机上的普及,包括地理空间专家、数据科学家、商业分析师、地理学家、地质学家、研究人员、分析师、计算机科学家和统计专家等不同领域的专业人员都在使用带有内置分析功能的地理信息平台。他们在探索学习的过程中,往往希望对日常使用的分析工具底层所采用的技术有更深入的了解。图形化用户界面的分析工具固然强大,但通过自己编写Python 代码来完全定制化或自动化分析结果,不但能提升你的核心技能,也有助于更好地掌握大型平台和系统的运作原理。开源项目已经无处不在,如今,大多数行业的专业人士可以获得各种定位数据和公开的数据集。随着云计算的发展,我们不再需要将大量数据下载到本地计算机,这就意味着,任何拥有互联网设备的人都有同等的机会获取数据。本书旨在成为能满足业内人士需求的资源库,无论他们身处哪一领域,本书都将成为他们实现目标和达成愿望的指南。我们也鼓励各种背景的读者参与地理空间数据分析,为城市规划、气候变化研究等各个领域的决策提供支持信息。即使是对于有经验的数据分析师, 技术往往也有其固有的难度。如果你熟悉Python,会调用QGIS 或者ArcGIS 等类库,在现成的数据系统上工作,那么即使你不了解其背后运作的工作流,不理解栅格、向量、数学模型等概念,也可以完成工作。但了解这些基础概念,将有助于你对数据的探索和解释变得更严谨、更深刻。为什么我要写这本地理空间数据分析与Python 相结合的书?因为我遇到了亟待解决的问题。我在分析电子健康记录时发现,这些记录中包含了大量的医疗数据,但可用的人口统计信息却十分匮乏。而在检查既有的医疗保健基础数据时,我发觉定位数据对预测健康结果有着重要的作用。要制定公共卫生政策,我们就必须回答诸如以下这类问题:? 患者所在的社区周边,在步行范围内或者便捷的交通沿线上是否有生鲜市场?? 患者所在的社区是否适合步行,治安状况怎样?? 患者是否有参与绿地活动的机会?? 高速公路、输电线和废物处理厂等设施对周边社区健康有怎样的影响?? 如何结合位置数据研究这些关于环境的问题?将这些类型的非空间数据与空间信息相结合,将有助于制作地图和其他可视化产物,帮助你思考更复杂的问题,探索你周围的环境,或者地球上你感兴趣的其他任何地方。选择Python 的理由Python 是一种流行的轻量级脚本语言,因其语法十分直观,所以比大多数编程语言更易于学习,也更能快速上手。而且Python 已经和ArcGIS 和QGIS 等地理信息系统(geographic information system,GIS)有所结合,因此非常适合地理空间数据分析。同时,Python 拥有充满活力的开源社区,有十分丰富的代码库和工具包支持。本书并不是一本Python 入门教材。如果你刚开始接触Python,需要从基础开始学习,在本书之外,有很多更为适合的资源。你可以从Matt Harrison 与Theodore Petrou(Packt Publishing)编写的《Pandas 1.x Cookbook》(第二版)入手,或者参与一些线下面授或在线的课程,比如Dunder Data 提供的Master the Fundamentals of Python(https://oreil.ly/swed0)。尽管我建议你至少掌握一门编程语言,但你可能没有系统学习的计划或时间,那也没关系,本书的目的是让你掌握并使用公开地理空间数据所构成的庞大的生态系统,并不要求你具备全面的编程能力。书中提供了代码片段以及对应的分步指导,我还将为你介绍本书未涵盖的各类外部资源,以便你可以实践所学的知识。当你逐渐熟悉大型库或包中的一两个函数后,你一定会更自信地去探索更加广阔的领域。本书的组织结构我们将从介绍几个关键GIS 概念开始逐步深入,随着内容的推进,我会循序渐进地引入Python 的学习,而不是默认你具有丰富的编程或地理信息数据分析的专业知识。本书采用的资源都是开源的,大多数使用Python 完成,开发人员免费分享这些源代码,其中有些还包含开源社区其他成员的贡献。我会尽我所能确保本书提供的资源无需繁琐的订阅服务即可使用,所有可能产生的费用,无论大小,都会在本书中明确标注,方便你做出决定。我着重强调开源,也并不意味着我不支持商业化的解决方案,我只是希望可以尽量减少学习中的阻力,集中围绕重要的问题开展有意义的分析,把好钢用在刀刃上。本书涉及许多开源工具、数据和各种数据集,其中一些资源你可能暂时无法获取。本书的结构不同于典型的技术书籍(尤其是针对Python 的书籍),没有采用线性组织方式。完成数据分析任务的方法多种多样,你可能在集成开发环境(IDE)中更容易获得灵感,也可能更喜欢在终端或控制台中工作。任何一本书都不可能涵盖Python 所有包和库的每个细节,你可能已经对某个特定的工具或库很熟悉,但你最常用的函数并没有收录在本书中,这也无伤大雅,我只希望你能对这些都有基本的感性认识,便于你继续深入探索更丰富的功能。本书面向的读者对象本书介绍的这个领域对我也是一次挑战:有些Python 程序员刚开始接触地理空间分析,有些地理空间从业者刚开始学习Python,那么我应该如何写一本能兼顾这两类读者需求的书?我决定化繁为简,从激发兴趣开始。我的目标不是在任何一个领域拓展你的专业知识,而是让大家一起专注于学习工具的使用和最佳实践。在本书结束时,我希望所有读者都有足够的自信,能够熟练并单独进行地理信息数据分析。为此,在我教授每一种工具和技术时,希望你能亲自动手,安装必要的工具,并使用Jupyter 或Google Colab notebook 运行代码。而且我希望你不仅仅止步于此,我还提供了大量不同的经验,邀请你继续探索。一些关于工具的技巧世上不存在绝对可靠的代码,所以你需要学习如何排除代码故障,而这正是数据女神发明Stack Overflow(https://stackoverflow.com)的原因。但请注意,这些网站提供的答案不一定是最佳的,甚至不一定是对的,请你仔细甄别。为了更好地提供帮助,我选择了有着稳定GitHub 来源的Python 包,希望可以获得更可靠的支持。话虽如此,但我还是有一些建议,希望有助于你安装以及熟悉本书涉及的工具:? 请尽量创建Python 虚拟环境,以便你控制Python 版本以及相关依赖。? 如果你不使用Conda 或Mamba 环境,请时刻关注你使用的Python 和其他软件或包的版本。代码错误最常见的原因就是版本问题。? 不确定你的pip install 是否运行成功?请运行pip list。所有已经安装的包都会显示在会话窗口的运行结果中。? 不要惧怕阅读文档!阅读教学材料是重要的学习技能,也是排除故障的关键。找到你的学习路径本书前两章介绍了一些初入地理空间分析领域时需要了解的基础概念和技能,在你未来的深入研究中会用到它们。此后的章节里,我们将展开介绍具体工具,并通过实战操作帮助你熟练运用。第3 章介绍QGIS,第4 章介绍Google Earth Engine 和其他云端的分析工具。第5 章介绍OpenStreetMap,第6 章讲解ArcGIS Python API,第7 章介绍如何使用GeoPandas 库做空间统计。第8 将暂停介绍工具,开始讲解数据清洗,学习如何从有价值的数据中去除难以避免的噪声数据。之后的第9 章将介绍一个非常有用的资源:地理空间数据抽象库(Geospatial Data Abstraction Library,GDAL)。最后,在第10 章中,我们会通过三个实践项目,将你在本书中所学的全部内容结合起来,通过研究气候变化这一紧迫的全球问题,展现你的地理空间数据分析能力。在本书末尾,你可以找到大量工具、包和数据资源的链接,以及本书所使用的资料来源和推荐阅读的参考资料,帮助你继续学习之旅。排版约定本书采用以下排版约定。斜体(Italic)表示新术语、URL、电子邮件地址、文件名和文件扩展名。等宽字体(Constant Width)表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。粗体等宽字体(Constant width bold)表示应由用户原封不动输入的命令或其他文本。斜体等宽字体(Constant width italic)表示应该替换成用户提供值的文本,或者由上下文决定的值。使用代码示例补充材料(代码示例、练习等)可从https://github.com/datamongerbonny/geopynotebooks.git 下载。与本书相关的技术问题,或者在使用代码示例上有疑问,请发电子邮件到errata@oreilly.com.cn。本书是要帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用在你的程序或文档中。除非你使用了很大一部分代码,否则无需联系我们获得许可。比如,用本书的几个代码片段写一个程序就无需获得许可,销售或分发O’Reilly 图书的示例集则需要获得许可;引用本书中的示例代码回答问题无需获得许可,将书中大量的代码放到你的产品文档中则需要获得许可。我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN,例如:“Python for Geospatial Data Analysis by Bonny P. McClain (O’Reilly). Copyright 2023 Grapheme Consulting, Inc., 978-0-098-10479-5”。如果你觉得自己对示例代码的使用超出了上述许可范围,请通过permissions@oreilly.com 与我们联系。O’Reilly 在线学习平台(O’Reilly Online Learning)近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。公司独有的专家和改革创新者网络通过O’Reilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。O’Reilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自O’Reilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:https://www.oreilly.com/。联系我们任何有关本书的意见或疑问,请按照以下地址联系出版社。美国:O’Reilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)奥莱利技术咨询(北京)有限公司勘误、示例和其他信息可访问https://oreil.ly/python-for-geo-data 获取。对本书的评论或技术疑问,可以发电子邮件到errata@oreilly.com.cn。欲了解本社图书和课程的新闻和信息,请访问我们的网站http://oreilly.com。我们的LinkedIn:https://linkedin.com/company/oreilly-media。我们的Twitter:https://twitter.com/oreillymedia。我们的YouTube:https://youtube.com/oreillymedia。致谢我要感谢众多地理空间专业的学生与学者,他们为我提供了指导、建议和疑问,而这些也是成书的动力。作为一本既能入门又能为有经验者提供指导的书,大家对此书的热情让我倍感自豪。我十分感激田纳西大学诺克斯维尔分校地理系(the Department of Geography atthe University of Tennessee, Knoxville)助理教授吴秋生的大量工作与支持。吴博士对地理空间社区的贡献是无可比拟的,正是他在2021 年GeoPython 研讨会(GeoPython Conference 2021)上有关GEE 和geemap(https://oreil.ly/X4Pv6)工作坊的演讲使我了解到GEE 和Python 集成的重要价值,一年后我也有幸登上了同样的研讨会讲坛。我还要感谢来自Dunder Data(https://www.dunderdata.com)的Python 和数据探索专家Ted Petrou。Ted 提供的实时资源和实惠的工作坊,填补了Python 教学与工作环境中的Python 实践间的空白。SpatialThoughts(https://oreil.ly/3eJ0c)的Ujaval Gandhi 长期致力于介绍地理空间平台和技巧,无论对于注册学员还是独立学习者,他都倾囊相授,我也从他那里获益良多。还要由衷的感谢GeospatialConnections(https://oreil.ly/SeeNU)社区的各位版主:Bruce Buxton,Juliana McMillan-Wilhoit,Tim Nolan 和Kendrick Faison。感谢你们无私的帮助,在社区中与各位同行的交流让我增长了不少见识。感谢我的丈夫Steve,他给予的支持不只是幽默和陪伴,还有沙拉和小熊软糖。还要感谢我的两个儿子Harrison 和Ryland,像北极星一般为我照亮前路,不断给我智慧、魔力,以及一切的动力。