数据注意事项¶
使用外部数据目录¶
geoserver附带一个内置的数据目录。但是,最好将数据与应用程序分开。使用外部数据目录可以更容易地升级,因为不存在覆盖配置信息的风险。如果需要,外部数据目录还可以方便地将配置传输到其他地方。要指向外部数据目录,只需编辑 web.xml
文件。如果您是geoserver新手,可以将geoserver附带的数据目录复制(或只移动)到其他位置。
使用空间数据库¶
Shapefile是一种非常常见的地理空间数据格式。但如果您在生产环境中运行Geoserver,则最好使用空间数据库,例如 PostGIS 。如果要进行事务处理(WFS-T),这是必不可少的。大多数空间数据库都提供了shapefile转换工具。尽管空间数据库有许多选项(请参阅 数据库 ),推荐使用PostGIS。Oracle和DB2.也受支持。
选择性能最佳的覆盖范围格式¶
不同覆盖格式的性能之间存在非常显著的差异。
为具有良好性能的大覆盖率数据集提供服务需要一些知识和调优,因为通常数据是为分发和存档而设置的。以下提示尝试向您提供数据重组如何影响性能以及如何使用可用工具获得最佳数据服务性能的基础知识。
选择正确的格式¶
第一个关键要素是选择正确的格式。有些格式是为数据交换而设计的,另一些则是为数据呈现和服务而设计的。一个好的数据服务格式是二进制的,允许多分辨率提取,并提供对本地分辨率的快速子集提取的支持。
这种格式的例子有geotiff、ecw、jpeg 2000和mrsid。另一方面,arcgrid是一个特别不适合大型数据集服务的格式示例(它基于文本,没有多分辨率,我们必须完全读取它,甚至在一般情况下提取数据子集)。
geoserver通过gdal图像格式插件支持mrsid、ecw和jpeg 2000。MRSID是最容易使用的,因为它们的读卡器现在可以在与geoserver兼容的开放源代码格式下使用。如果您有ECW文件,那么您有几个不理想的选项。如果您仅将geoserver用于教育或非营利目的,则可以免费使用该插件。如果不是,你需要购买一个许可证,因为它是服务器软件。您也可以使用gdal将其转换为mrsid或瓦片geotiff。如果您的文件是jpeg 2000,您可以使用ecw和mrsid软件的实用程序。但最快的是卡卡杜,这需要一个许可证。
为快速渲染设置geotiff数据¶
一旦您的geotiff超过数十兆字节,您将希望添加以下功能:
内铺瓦片
概览
内部瓦片设置图像布局,以便将其组织为瓦片而不是简单的条纹(行)。这样可以更快地访问geotiff的某个区域,并且geoserver读卡器将仅通过访问呈现当前显示区域所需的图块来利用这一点。下面的示例命令指示 gdal_translate 创建瓦片 geotiff .
gdal_translate -of GTiff -projwin -180 90 -50 -10 -co "TILED=YES" bigDataSet.ecw myTiff.tiff
总览是同一图像的缩小版,也就是缩小版,通常要小得多。当Geoserver需要渲染Getiff时,它会寻找最合适的概观作为起点,从而读取和转换更少的数据。可使用添加概视图 gdaladdo ,或GeoTools中包含的概述嵌入命令。以下是使用gdaladdo添加总览的示例,与原始总览相比,总览分别缩减了2倍、4倍、8倍和16倍:
gdaladdo -r average mytiff.tif 2 4 8 16
最后要说明的是,Getiff支持各种有损压缩和有损压缩。JPEG压缩可能会产生瑕疵,但如果与内部蒙版结合使用,它通常会在RGB或RGBA图像上产生非常好的效果。当需要无损压缩时,最好对高程或类似数据进行压缩。一般而言,如果I/O是瓶颈,则压缩可以提供很大帮助,因为它降低了I/O的成本,但代价是一些CPU周期。
处理大型数据集¶
如果您有非常大的数据集(几千兆字节),那么很可能仅仅添加概述和图块就不会切断数据集,从而使中间分辨率服务速度变慢。这是因为瓦片仅在本机分辨率级别上发生,中间视图太大,无法快速提取。
所以,你需要的是一种在中间层铺瓦片的方法。ImagePyramid插件支持此功能。
这个插件假定您已经创建了各种无缝图像拼接,每一个都对应于原始图像的不同分辨率级别。在马赛克中,瓦片是实际文件(有关马赛克的详细信息,请参见 ImageMosaic )。整个金字塔结构如下:
rootDirectory
+- pyramid.properties
+- 0
+- mosaic metadata files
+- mosaic_file_0.tiff
+- ...
+- mosiac_file_n.tiff
+- ...
+- 32
+- mosaic metadata files
+- mosaic_file_0.tiff
+- ...
+- mosiac_file_n.tiff
手工创建金字塔理论上可以用gdal完成,但实际上这是一项艰巨的任务,需要一些脚本,因为gdal没有提供“tiler”命令来从图像中提取常规的图块,也没有人创建一组缩小的图块。作为替代方案,您可以使用geotools pyramidbuilder工具(关于如何使用该工具的文档待定,如果需要,请与开发人员联系)。