postgis 栅格数据

阅读: 评论:0

postgis 栅格数据

postgis 栅格数据

上一篇博文PostGIS导入导出ESRI Shapefile数据介绍了如何导入空间矢量数据到PostgreSQL中,紧接上一篇,本文将介绍如何使用PostGIS导入导出空间栅格数据。

实验环境和上一篇的博文一样: Ubuntu 16.04 LTS 。

数据为全球影像(ESRI ArcGIS提供的示例数据),下载连接:全球影像百度网盘下载

可以使用GDAL的gdalinfo命令查看其详细信息:

在QGIS中查看如下:

PostGIS提供了raster2pgsql工具用于栅格数据的导入(可以使用man raster2pgsql命令查看帮助文档)。

使用如下命令进行影像数据的插入,具体参数的含义这里不在累赘,上篇文章有说明。关于raster2pgsql的参数可以使用man命令进行查看。

raster2pgsql -s 4326 -C ~/Downloads/gisdata/wsiearth.tif staging.wsiearth | psql -h localhost -p 5432 -U postgres -d postgis_in_action -W

可以使用psql进入数据库查看:

还可以使用d staging.wsiearth查看关系表的结构:

可以看到有一个rid和rast的列,rid是以一个整形对插入的栅格数据进行的标示,rast列的类型是raster存储了具体数据。

如果想要导出数据,可以使用PostGIS提供的内置函数。其中ST_AsGDALRaster 是一个通用性的函数,可以导出为GDAL支持的任意格式。此外,还有ST_AsPNG,ST_AsJPEG和ST_AsTIFF等函数,提供了直接导出到指定格式,并且接受更少的参数。

注意:PostGIS的默认导出GDAL支持的格式数据是关闭的,启用的话需要修改PostgreSQL的配置文件。修改的方法比较多,而且不同的PostgreSQL版本的支持情况不一样。我使用如下命令进行修改:

sudo vim /etc/postgresql/9.5/f

在该配置文件后面添加:

postgis.gdal_enabled_drivers = 'ENABLE_ALL'

重启PostgreSQL:

sudo service postgresql restart

第二个问题是:这些内置函数提供的导出结果是PostgreSQL的bytea (byte array)数据类型,我们需要自己写程序进行转换成实际的图像文件。

下面我使用Python的Psycopg库连接PostgreSQL数据库,进行查询并导出最终的结果。Psycopg库参见:.html。

我这里直接贴出代码,因为代码很容易理解。ST_AsTIFF函数参见:.html。

# -*- coding: utf-8 -*-

import psycopg2

# Connect to an existing database

conn = t('host=localhost port=5432 user=postgres password=password dbname=postgis_in_action')

# Open a cursor to perform database operations

cur = conn.cursor()

# Execute SQL query

# Fetch data as Python objects

rasttiff = cur.fetchone()

# Write data to file

if rasttiff is not None:

open('/home/theone/Desktop/wsiearth.tif', 'wb').write(str(rasttiff[0]))

# Close communication with the database

cur.close()

conn.close()

在QGIS中查看导出结果如下:

可以发现导出的结果,丢失了图像的colormap,但是每个像素值都是正确的。

转载自:

本文发布于:2024-02-05 02:02:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170721531862015.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:fast
标签:栅格   数据   postgis
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23