12.1 学习目标
- 掌握空间数据库的建模、存储与查询,理解空间索引与优化策略。
- 能在 PostGIS 环境下达成典型空间检索与分析,并输出性能报告。
- 建立规范化的 DDL/DML 脚本、查询示例与复现性文档。
12.2 先修要求
- 了解 SQL 基础与数据库连接方法(
psql/GUI 客户端)。 - 具备 GIS 基础(CRS/SRID、矢量/栅格)与数据预处理经验。
12.3 核心知识点
- 数据库与扩展:PostgreSQL 架构、
CREATE EXTENSION postgis。 - 空间类型与 SRID:
geometry/geography、SRID 管理与一致性。 - 空间索引:
GiST、SP-GiST、R-Tree 原理与范围裁剪。 - 常用空间函数:
ST_Intersects、ST_Within、ST_DWithin、ST_Buffer、ST_Transform、ST_Area、ST_Length。 - 性能与优化:
EXPLAIN ANALYZE、索引选择、范围约束、事务与并发、VACUUM/ANALYZE。 - 数据导入与导出:
ogr2ogr、shp2pgsql、COPY;约束与规范(主键/唯一/检查)。
12.4 内容提纲
- PostGIS 安装与扩展启用;数据库与模式(schema)规划。
- SRID 一致性与重投影策略;
geometry 与 geography 选型。 - 数据入库(矢量/栅格):
ogr2ogr/shp2pgsql/COPY;字段与约束规范。 - 空间索引与典型查询:范围过滤、邻近检索、叠置分析;查询计划与优化。
- 栅格处理(可选):栅格元材料、裁剪/重采样、统计与导出。
- 结果导出与复现性报告:DDL/DML、
EXPLAIN 计划、性能对比与建议。
12.5 环境与依赖安装
- 数据库:PostgreSQL ≥ 13,PostGIS ≥ 3.1。
- 客户端与工具:
psql、Docker(可选)、ogr2ogr/gdal_translate、GUI 客户端(pgAdmin/DBeaver)。 - Python(可选):
psycopg2-binary 或 SQLAlchemy、GeoPandas(用于导入/导出与校验)。 - Docker 示例:
docker run -d --name postgis -e POSTGRES_PASSWORD=passwd -p 5432:5432 postgis/postgis:13-3.1
12.6 内容位置
- 示例矢量数据:
gis_examples/datasets/facilities_sample.geojson(设施点),training_samples_template.geojson(样本),道路/POI 可自备或从 OSM 获取。 - 示例栅格数据:
gis_examples/datasets/population_grid_sample.geojson(作为矢量网格示例);栅格可自备 *.tif。 - 输出目录:仓库根目录
outputs/(统一落盘脚本、查询结果与报告)。
12.7 命令行参数(示例)
- 数据库连接:
--db_url postgresql://user:pass@host:5432/dbname。 - 模式与表:
--schema、--table、--pk、--srid。 - 导入与导出:
--input(矢量/栅格)与 --dest_table、--export_path。 - 查询与范围:
--bbox minx,miny,maxx,maxy、--buffer_m、--limit。 - 优化与报告:
--analyze true|false、--explain true|false、--outputs_dir。
12.8 流程图(概念示意)
A[准备
posted @
2026-02-05 08:33
yangykaifa
阅读(
4)
评论()
收藏
举报