PostGIS Raster—PostGIS栅格驱动程序
司机简称
PostGISRaster
生成依赖项
PostgreSQL库
PostGIS Raster(以前称为WKT Raster)是在PostGIS上提供栅格支持的项目。自2010年9月26日起,它是PostGIS 2.0+的官方部分。
这个驱动程序是在2009年谷歌代码之夏启动的,从那时起得到了显著的改进。
目前,驱动程序为PostGIS栅格数据源提供只读支持。
驱动程序功能
Supports CreateCopy()
This driver supports the GDALDriver::CreateCopy()
operation
Supports Georeferencing
This driver supports georeferencing
连接到数据库
若要连接到PostGIS栅格数据源,请使用指定数据库名称的连接字符串,并根据需要使用其他参数
PG:"[host=''] [port:''] dbname='' [user=''] [password=''] [schema=''] [table=''] [column=''] [where=''] [mode=''] [outdb_resolution='']"
请注意,字符串(直到以“table=”开头的部分)是一个libpq样式的连接字符串。这意味着您可以省去不必要的字段(例如密码,在某些情况下)。
图式 -存储请求的栅格表的PostgreSQL架构的名称。
桌子 -PostGIS栅格表的名称。该表是由栅格加载器(例如raster2pgsql实用程序)创建的。
柱 -栅格表中栅格列的名称
在哪里? -选项用于筛选栅格表的结果。任何SQL-WHERE表达式都是有效的。
mode -选项用于了解栅格表的预期排列。有两个可能的值
mode=1 -每行一个栅格模式。在这种情况下,栅格表被视为一组不同的栅格文件。此模式适用于存储不同栅格文件的栅格表。如果不在连接字符串中提供此字段,则为默认模式。
mode=2 -一个栅格表模式。在这种情况下,栅格表被视为唯一的栅格文件,即使该表有多行。此模式用于从数据库中读取平铺栅格。
outdb_resolution -(GDAL>=2.3.1)选项指定如何解析数据库栅格。默认为服务器端。
server_side :PostgreSQL服务器将获取outDB栅格。这意味着服务器上启用了outdb raster。
client_side :outDB栅格文件名将返回到GDAL PostGISRaster客户端,后者将在客户端打开它。这意味着客户端可以访问存储在te服务器上的文件名。
client_side_if_possible :outDB栅格文件名将返回到GDAL PostGISRaster客户端,后者将检查是否可以访问它们。如果可以,那就相当于客户端。否则就相当于服务器端。请注意,此模式涉及到对服务器的额外查询。
附加说明
如果表存储平铺栅格,并且您使用mode=1执行驱动程序,则每个图像平铺将被视为不同的图像,并将报告为子数据集。有些用例驱动程序仍然无法使用。例如:不规则的阻塞栅格。检测到案例并引发错误。不管怎样,正如我所说,驱动程序正在开发中,将尽快使用更多的栅格安排。
还有一个额外的工作模式。如果不提供表名,驱动程序将在所有允许的数据库架构中查找现有栅格表,并将每个表作为子数据集报告。
必须在所有gdal工具中使用此连接字符串的格式,如gdalinfo、gdal_translate、gdalwarp等。
性能提示
要从驱动程序中获得最大性能,最好在PostGIS栅格中加载具有以下特性的栅格:
平铺:raster2pgsql的-t开关
概述:-L2,4,8,。。。raster2pgsql开关
使用栅格列上的GIST空间索引:raster2pgsql的-I开关
注册了约束的情况下:raster2pgsql的-C开关
实例
要通过GDAL获取栅格的摘要,请使用gdalinfo:
gdalinfo "PG:host=localhost port=5432 dbname='mydb' user='postgres' password='secret' schema='public' table=mytable"
有关更多示例,请查看PostGIS栅格常见问题解答部分: Can I export my PostGIS Raster data to other raster formats?
信用
驱动程序开发人员
Jorge Arévalo(jorgeraevalo,libregis.org)
David Zwarg(azavea.com上的dzwarg)
甚至鲁奥特(spatialysi.com上的Even.Rouault)