使用 Uber hndexes 和 PostgreSQL 进行栅格分析

王林
发布: 2024-08-12 22:31:33
原创
597 人浏览过

嗨,在这篇博客中,我们将讨论如何使用 h3 索引轻松进行栅格分析。

客观的

为了学习,我们将计算出由 ESRI 土地覆盖确定的聚居区有多少建筑物。让我们针对矢量和栅格的国家级数据进行目标。

我们先找到数据

下载栅格数据

我已从 Esri Land Cover 下载了定居点区域。

  • https://livingatlas.arcgis.com/landcover/

让我们下载2023年,大小约362MB

Raster Analysis Using Uber hndexes and PostgreSQL

下载尼泊尔 OSM 建筑

来源:http://download.geofabrik.de/asia/nepal.html

雷雷

预处理数据

让我们在实际的 h3 单元计算之前对数据进行一些预处理
我们将在这一步中使用 gdal 命令行程序。在你的机器上安装 gdal

转换为云优化的 Geotiff

如果您不知道 cog ,请在此处查看:https://www.cogeo.org/

  • 检查gdal_translate是否可用
雷雷

它应该打印您正在使用的 gdal 版本

  • 将光栅重新投影为 4326

您的栅格可能有不同的源 srs ,相应地更改它

雷雷
  • 现在让我们将 tif 转换为云优化的 geotif
雷雷

将重新投影的 tiff 转换为 geotiff 大约需要一分钟

将osm数据插入postgresql表

我们正在使用 osm2pgsql 将 osm 数据插入到我们的表中

雷雷

osm2pgsql 总共花费了 274 秒(4m 34 秒)。

如果您有任何使用 ogr2ogr 的文件,也可以使用 geojson 文件

雷雷

ogro2gr 对驱动程序有广泛的支持,因此您可以非常灵活地选择输入内容。输出是 Postgresql 表

计算h3指数

PostgreSQL

安装

雷雷

在您的数据库中创建扩展

雷雷

现在让我们创建建筑物表

雷雷

向表中插入数据

雷雷

日志和计时:

雷雷

现在让我们使用 centroid 计算这些建筑物的 h3 指数。这里 8 是我正在研究的 h3 分辨率。在这里了解有关决议的更多信息

雷雷

光栅操作

安装

雷雷

确保重新投影的齿轮处于静态/

雷雷

运行 repo 中提供的脚本以从栅格创建 h3 像元。我正在按模式方法重新采样:这取决于您拥有的数据类型。对于分类数据模式更适合。在这里了解有关重采样方法的更多信息

雷雷

日志:

雷雷

分析

让我们创建一个函数来获取多边形中的 get_h3_indexes

雷雷

让我们获取我们感兴趣的区域中所有被确定为建筑面积的建筑物

雷雷

查询计划:

Raster Analysis Using Uber hndexes and PostgreSQL

如果在建筑物的 h3_ix 列上添加索引,这可以进一步增强

雷雷

拍摄计数时:我所在的地区有 24416 座建筑,其建筑等级属于 ESRI

确认

让我们验证输出是否为真:让我们以 geojson 形式获取建筑物

雷雷

让我们也获得h3细胞

雷雷

Raster Analysis Using Uber hndexes and PostgreSQL

增加 h3 分辨率后可以提高准确性,并且还取决于输入和重采样技术

清理

删除我们不需要的桌子

雷雷

可选 - 矢量平铺

为了可视化图块,我们可以使用 pg_tileserv 快速构建矢量图块

  • 下载pg_tileserv 从上面提供的链接下载或使用 docker
  • 导出凭证
雷雷
  • 授予我们表选择权限
雷雷
  • 让我们在 h3 索引上创建几何图形以进行可视化(如果您手动从 st_asmvt 构建图块,则可以直接从查询中执行此操作)
雷雷
  • 在该 h3 几何图形上创建索引以有效地可视化它
雷雷
  • 奔跑
雷雷

Raster Analysis Using Uber hndexes and PostgreSQL

  • 现在您可以根据图块值或任何您想要的方式可视化这些 MVT 图块,例如:maplibre!您还可以可视化处理结果或与其他数据集结合。 这是我根据 QGIS 中的 cell_value 对 h3 索引进行的可视化Raster Analysis Using Uber hndexes and PostgreSQL

源代码库:https://github.com/kshitijrajsharma/raster-analysis-using-h3

参考 :

  • https://blog.rustprooflabs.com/2022/04/postgis-h3-intro
  • https://jsonsingh.com/blog/uber-h3/
  • https://h3ronpy.readthedocs.io/en/latest/

以上是使用 Uber hndexes 和 PostgreSQL 进行栅格分析的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!