PostgreSQL 生成等高线

在 PostGIS 扩展的加持下,PostgreSQL 成为了一个强大的时空数据库。本文介绍一个用 PostGIS 生成等高线的应用示例。 PostGIS 发展历程 2001 年 5 月,Refractions Research 发布了 PostGIS 0.1。最初的 PostGIS 版本具备对象、索引和一些函数的功能,适合于存储和检索空间数据,但是缺乏分析能力。随着函数数量的增加,对一个组织来规范接口的需求变得逐渐明朗,开放地理空间联盟(Open Geospatial Consortium)应运而生,并提出了 “Simple Features for SQL”(SFSQL)规范。 接下来的几年,PostGIS 的函数数量不断增加,但其功能仍然有限。其中一些有趣的函数(如 ST_Intersects()、ST_Buffer()、ST_Union())很难编写,从头开始实现它们需要耗费非常多的时间。幸运的是出现了“Geometry Engine, Open Source” (GEOS) 这个项目。GEOS 提供了实现 SFSQL 规范所需的算法。PostGIS 0.8 版本通过链接 GEOS 库完全支持了 SFSQL。 随着 PostGIS 数据量的增长,出现了另一个问题: 用于存储几何数据的表示形式比较低效。对于点和短线等小对象,元数据开销高达300%。为了提高性能,PostGIS 通过缩小元数据头部和所需维度,降低了开销。在 PostGIS 1.0 中,这种更快速、更轻量的表示形式成为默认选项。 另外,PostGIS 还依赖: Proj: 是一个用于地理空间坐标转换的库。它提供各种投影方法和坐标系统的定义,用于在不同的地理空间参考框架之间进行转换。PostGIS 使用 Proj 库来支持空间坐标的转换和投影。 GDAL: Geospatial Data Abstraction Library 是一个用于读取和写入地理空间数据格式的库,包括栅格数据和矢量数据。PostGIS 使用 GDAL 库来支持与各种地理空间数据格式的交互,如 GeoTIFF、Shapefile 等。 JSON-C: 是一个用于处理 JSON 数据的 C 语言库。它在 PostGIS 中用于处理和解析 GeoJSON 空间数据。 … 准备数据 在对 PostGIS 简单了解之后,我们准备下用于生成等高线的数据,理想情况下如果有一个区域的坐标海拔数据当然再好不过了,但是我没有找到这样的数据集。不过幸运的是,我找到了一个美国 1987~2022 年 National Lightning Detection Network 公布的闪电数据信息,给的是 0....

September 10, 2023 · 2 min · 406 words · pg-x