13.1. |
我在哪里可以找到有关PostGIS栅格项目的更多信息? |
|||
请参阅 PostGIS栅格主页 。 |
||||
13.2. |
有没有什么书或教程能让我开始了解这项奇妙的发明? |
|||
有一个完整的初学者教程 使用PostGIS栅格与栅格覆盖率较大的矢量缓冲区相交 。Jorge有一系列关于PostGIS Raster的博客文章,这些文章演示了如何加载栅格数据以及如何与Oracle GeoRaster中的相同任务进行交叉比较。查看: 豪尔赫的PostGIS栅格/Oracle GeoRaster系列 。有一整章(超过35页的内容)专门介绍PostGIS栅格,可从以下网址免费下载代码和数据 PostGIS在行动-栅格章节。在第二版中也有报道。 。你可以的 购买实际中的PostGIS 现在,来自曼宁的书有硬拷贝(批量购买有很大折扣)或只有电子书格式。你也可以从亚马逊和其他各种图书分销商那里购买。所有纸质书都有一张免费优惠券,可以下载电子书版本。 以下是一位PostGIS栅格用户的评论 PostGIS栅格在城市林业土地分类中的应用 |
||||
13.3. |
如何在我的PostGIS数据库中安装栅格支持? |
|||
PostGIS Raster是PostGIS代码库的一部分,通常可用于大多数PostGIS二进制发行版。从PostGIS 3.0开始,PostGIS栅格现在是一个单独的扩展,需要: `CREATE EXTENSION postgis_raster;` 在您的数据库中启用它。如果您正在编译您自己的PostGIS,则需要使用GDAL进行编译,否则将不会构建postgis_raster扩展。 请参阅 下载PostGIS二进制文件 适用于包含栅格支持的流行的PostGIS发行版。 |
||||
13.4. |
如何将栅格数据加载到PostGIS中? |
|||
最新版本的PostGIS附带了一个
|
||||
13.5. |
我可以将哪种类型的栅格文件格式加载到数据库中? |
|||
您的GDAL库支持的任何内容。记录了GDAL支持的格式 GDAL文件格式 。 您的特定GDAL安装可能不支持所有格式。要验证特定GDAL安装支持的GDAL,您可以使用
|
||||
13.6. |
我可以将我的PostGIS栅格数据导出为其他栅格格式吗? |
|||
是 PostGIS栅格具有以下功能 ST_AsGDALRaster 这将允许您使用SQL导出到您的GDAL支持的任何栅格格式。您可以使用以下命令获取这些列表 ST_GDALDrivers SQL函数。 您也可以使用GDAL命令行工具将PostGIS栅格导出为其他格式。GDAL有一个PostGIS栅格驱动程序,但只有在您选择使用PostgreSQL支持进行编译时才会进行编译。 该驱动程序目前不支持不规则分块的栅格,尽管您可以将不规则分块的栅格存储为PostGIS栅格数据类型。 如果从源代码进行编译,则需要在配置中包含
以启用驱动程序。参考 GDAL构建提示 获取有关在各种操作系统平台上构建GDAL的提示。 如果您的GDAL版本是使用PostGIS栅格驱动程序编译的,则在执行此操作时应在列表中看到PostGIS栅格
要通过GDAL获取有关栅格的摘要,请使用gdalinfo:
要将数据导出为其他栅格格式,请使用Gdal_Translate下面将以10%的大小将表中的所有数据导出到PNG文件。 根据像素带类型的不同,如果导出格式不支持该像素类型,则某些转换可能不起作用。例如,浮点带类型和32位无符号整数不能很容易地转换为JPG或其他类型。 下面是一个简单的翻译例子
还可以使用WHERE=...在导出中使用SQL WHERE子句在您的驱动程序连接字符串中。下面是一些使用WHERE子句的代码
要查看更多示例和语法,请参阅 读取PostGIS栅格区的栅格数据 |
||||
13.7. |
他们的GDAL二进制文件是否已使用PostGIS Raster支持进行编译? |
|||
是。查看页面 GDAL二进制文件 佩奇。任何支持PostgreSQL的编译工具都应该包含PostGIS栅格。GDAL工具通常也包含在 QGIS 。 如果您想获得Windows的最新夜间构建--那么请查看使用Visual Studio构建的Tamas Szekeres夜间构建,其中包含GDAL主干、Python绑定、MapServer可执行文件和内置的PostGIS栅格驱动程序。只需点击SDK BAT并从那里运行您的命令。 http://www.gisinternals.com 。VS项目文件也是可用的。 |
||||
13.8. |
我可以使用哪些工具来查看PostGIS栅格数据? |
|||
您可以使用 MapServer 使用GDAL编译以查看栅格数据。如果安装了PostGIS栅格驱动程序,则QGIS支持查看PostGIS栅格。 理论上,任何使用GDAL渲染数据的工具都可以支持PostGIS栅格数据,或者只需很少的工作就可以支持它。同样适用于Windows,Tamas的二进制文件(包括MapServer) http://www.gisinternals.com 对于Windows用户来说是一个很好的选择,如果你不想麻烦的话必须安装编译自己的。 |
||||
13.9. |
如何将PostGIS栅格图层添加到我的MapServer地图? |
|||
首先,您需要使用PostGIS栅格支持编译的GDAL 1.7或更高版本。GDAL 3或更高版本是首选,因为在1.8版本中修复了许多问题,并且在主干版本中修复了更多的PostGIS栅格问题。 您可以像处理任何其他栅格一样。参考 地图服务器栅格处理选项 有关可用于MapServer栅格图层的各种处理函数的列表,请参见。 使PostGIS栅格数据特别有趣的是,由于每个切片可以具有各种标准数据库列,因此您可以在数据源中对其进行分段 以下是如何在MapServer中定义PostGIS栅格图层的示例。
|
||||
13.10. |
我当前可以对我的栅格数据使用哪些函数? |
|||
请参阅以下列表 Chapter 12, 栅格参考 。还有更多,但这仍是一项正在进行的工作。 请参阅 PostGIS栅格路线图页面 以了解未来可期待的详细情况。 |
||||
13.11. |
我收到错误:函数st_intersects(raster,未知)不唯一或st_Union(几何图形,文本)不唯一。我该怎么修? |
|||
如果您的其中一个参数是几何体的文本表示,而不是几何体,则会发生函数不唯一错误。在这些情况下,PostgreSQL将文本表示标记为未知类型,这意味着它可能落入st_intersects(栅格、几何)或st_intersects(栅格、栅格),从而导致不唯一的情况,因为这两个函数在理论上都可以支持您的请求。要避免这种情况,需要将几何体的文本表示形式强制转换为几何体。 例如,如果您的代码如下所示:
通过将代码更改为以下代码,将文本几何图形表示转换为几何图形:
|
||||
13.12. |
PostGIS Raster与Oracle GeoRaster(SDO_GEORASTER)和SDO_RASTER类型有何不同? |
|||
有关这个主题的更广泛的讨论,请查看Jorge Aévalo Oracle GeoRaster和PostGIS栅格:第一印象 与逐层地理配准相比,逐栅格地理配准的主要优势在于: *覆盖范围不一定是矩形的(栅格覆盖范围大时通常是这种情况。请参阅文档中可能的栅格排列) *栅格到重叠(这是实现无损矢量到栅格转换所必需的) 这些安排在Oracle中也是可能的,但它们意味着存储链接到尽可能多的SDO_RASTER表的多个SDO_GEORASTER对象。复杂的覆盖可能会导致数据库中有数百个表。使用PostGIS Raster,您可以将类似的栅格排列存储到唯一的表格中。 这有点像如果PostGIS强制您只存储没有间隙或重叠的完全矩形矢量覆盖(完美的矩形拓扑层)。这在一些应用中是非常实用的,但实践表明,对于大多数地理覆盖来说,这是不现实或不可取的。矢量结构需要灵活地存储不连续和非矩形的覆盖率。我们认为,栅格结构也应该受益,这是一个很大的优势。 |
||||
13.13. |
大文件的raster2pgsql加载失败,N字节的字符串对于编码转换来说是否太长? |
|||
在生成要加载的文件时,raster2pgsql不会与数据库建立任何连接。如果数据库设置了与数据库编码不同的显式客户端编码,则在加载大型栅格文件(大小超过30 MB)时,可能会遇到
例如,如果您的数据库使用UTF8,但为了支持Windows应用程序,您将客户端编码设置为
要解决此问题,请确保客户端编码与加载期间的数据库编码相同。您可以通过在加载脚本中显式设置编码来实现这一点。例如,如果您使用的是Windows:
如果您在Unix/Linux上
这个问题的血淋淋的细节在 http://trac.osgeo.org/postgis/ticket/2209 |
||||
13.14. |
我收到了错误消息
|
|||
从PostGIS 2.1.3和2.0.5开始,对安全性进行了更改,默认禁用所有GDAL驱动程序和数据库栅格。发行说明位于 PostGIS 2.0.6、2.1.3安全版本 。要重新启用特定驱动程序或所有驱动程序并重新启用数据库外支持,请参阅 Section 2.1, “简略版” 。 |