栅格管理与优化

作者

杰夫麦克纳

联系

jmckenna在gatewaygeomatics.com

原作者

主机地理信息系统

最后更新

2022-01-25

参见

栅格数据

根据您的需要选择合适的栅格格式

就显示速度而言,MapServer的最佳/最佳数据源为 GeoTIFF 用于栅格。

以下是其他一些需要考虑的问题:

  • GeoTIFF图像格式是“破译”最快的格式,但一旦超过某个点,磁盘读取可能会变得足够慢,因此值得考虑其他图像格式。

  • 对于大于1 GB的GeoTIFF,ECW图像的渲染速度往往比GeoTIFF快,因为解压缩数据(CPU和RAM)比读取未压缩的数据(磁盘)更快。缺点是ECW不是开源的,许可通常是令人望而却步的。 MrSID 是另一种可以使用的压缩图像格式。

  • jpeg2000是一种非常慢的图像格式,jpeg也是。

花点时间查看与您选择的格式对应的GDAL驱动程序页面

这是关键的一步,因为MapServer依赖GDAL进行栅格数据访问。每个驱动程序(GDAL格式)都有自己的一组功能和开关。查找栅格格式并查看其选项 here

通过GDAL连接到您的数据

对于MapServer中的数据管理,这应该始终是您的首要步骤之一。有时桌面GIS程序会以某种方式显示一种格式,但您的数据可能不会显示在MapServer中;检查GDAL如何读取您的栅格文件,将有助于您管理和理解数据。下面是一个使用 gdalinfo 读取并返回有关特定栅格的各种重要元数据,在本例中为Mr SID栅格:

gdalinfo ortho_1-1_hc_s_mn163_2019_1.sid

      Driver: MrSID/Multi-resolution Seamless Image Database (MrSID)
      Files: ortho_1-1_hc_s_mn163_2019_1.sid
             ortho_1-1_hc_s_mn163_2019_1.sid.aux.xml
      Size is 50249, 116781
      Coordinate System is:
      PROJCS["NAD83 / UTM zone 15N",
          GEOGCS["NAD83",
              DATUM["North_American_Datum_1983",
                  SPHEROID["GRS 1980",6378137,298.257222101,
                      AUTHORITY["EPSG","7019"]],
                  TOWGS84[0,0,0,0,0,0,0],
                  AUTHORITY["EPSG","6269"]],
              PRIMEM["Greenwich",0,
                  AUTHORITY["EPSG","8901"]],
              UNIT["degree",0.0174532925199433,
                  AUTHORITY["EPSG","9122"]],
              AUTHORITY["EPSG","4269"]],
          PROJECTION["Transverse_Mercator"],
          PARAMETER["latitude_of_origin",0],
          PARAMETER["central_meridian",-93],
          PARAMETER["scale_factor",0.9996],
          PARAMETER["false_easting",500000],
          PARAMETER["false_northing",0],
          UNIT["metre",1,
              AUTHORITY["EPSG","9001"]],
          AXIS["Easting",EAST],
          AXIS["Northing",NORTH],
          AUTHORITY["EPSG","26915"]]
      Origin = (494792.400000000023283,5018068.799999999813735)
      Pixel Size = (0.600000000000000,-0.600000000000000)
      Metadata:
        GEOTIFF_CHAR__GeogAngularUnitsGeoKey=Angular_Degree
        GEOTIFF_CHAR__GTModelTypeGeoKey=ModelTypeProjected
        GEOTIFF_CHAR__GTRasterTypeGeoKey=RasterPixelIsArea
        GEOTIFF_CHAR__ProjectedCSTypeGeoKey=PCS_NAD83_UTM_zone_15N
        GEOTIFF_CHAR__ProjLinearUnitsGeoKey=Linear_Meter
        GEOTIFF_NUM__1024__GTModelTypeGeoKey=1
        GEOTIFF_NUM__1025__GTRasterTypeGeoKey=1
        GEOTIFF_NUM__1026__GTCitationGeoKey=NAD83 / UTM zone 15N
        GEOTIFF_NUM__2049__GeogCitationGeoKey=NAD83
        GEOTIFF_NUM__2054__GeogAngularUnitsGeoKey=9102
        GEOTIFF_NUM__2062__GeogTOWGS84GeoKey=0.000000,0.000000,0.000000
        GEOTIFF_NUM__3072__ProjectedCSTypeGeoKey=26915
        GEOTIFF_NUM__3076__ProjLinearUnitsGeoKey=9001
        IMAGE__ENCODING_APPLICATION=GeoExpress 10.0.1.5035
        IMAGE__FORMAT=MrSID/MG3
        IMAGE__INPUT_FILE_SIZE=30104685840.000000
        IMAGE__INPUT_FORMAT=GeoTIFF
        IMAGE__LTI_ESDK_VERSION=9.5.4.5035.Bob_5011_br win64-vc15/Release_md

        IMAGE__MODIFICATIONS=COMPRESSED CROPPED EMBEDDED REORDERED-BANDS MOSAICKED REPROJECTED
        IMAGE__PRINT_DENSITY_UNIT=in
        IMAGE__PRINT_X_DENSITY=200.000000
        IMAGE__PRINT_Y_DENSITY=200.000000
        VERSION=MG3
      Image Structure Metadata:
        INTERLEAVE=PIXEL
      Corner Coordinates:
      Upper Left  (  494792.400, 5018068.800) ( 93d 3'59.18"W, 45d18'57.98"N)
      Lower Left  (  494792.400, 4948000.200) ( 93d 3'56.57"W, 44d41' 7.27"N)
      Upper Right (  524941.800, 5018068.800) ( 92d40'54.44"W, 45d18'56.45"N)
      Lower Right (  524941.800, 4948000.200) ( 92d41' 6.94"W, 44d41' 5.78"N)
      Center      (  509867.100, 4983034.500) ( 92d52'29.30"W, 45d 0' 2.48"N)
      Band 1 Block=1024x128 Type=Byte, ColorInterp=Red
        Min=0.000 Max=228.000
        Minimum=0.000, Maximum=228.000, Mean=86.853, StdDev=53.485
        Overviews: 25125x58391, 12563x29196, 6282x14598, 3141x7299, 1571x3650, 786x1825, 393x913, 197x457, 99x229, 50x115, 25x58, 13x29, 7x15, 4x8
        Metadata:
          STATISTICS_APPROXIMATE=YES
          STATISTICS_MAXIMUM=228
          STATISTICS_MEAN=86.853391304348
          STATISTICS_MINIMUM=0
          STATISTICS_STDDEV=53.485489960597
          STATISTICS_VALID_PERCENT=100
      Band 2 Block=1024x128 Type=Byte, ColorInterp=Green
        Min=0.000 Max=224.000
        Minimum=0.000, Maximum=224.000, Mean=81.011, StdDev=45.552
        Overviews: 25125x58391, 12563x29196, 6282x14598, 3141x7299, 1571x3650, 786x1825, 393x913, 197x457, 99x229, 50x115, 25x58, 13x29, 7x15, 4x8
        Metadata:
          STATISTICS_APPROXIMATE=YES
          STATISTICS_MAXIMUM=224
          STATISTICS_MEAN=81.010782608696
          STATISTICS_MINIMUM=0
          STATISTICS_STDDEV=45.552372785005
          STATISTICS_VALID_PERCENT=100
      Band 3 Block=1024x128 Type=Byte, ColorInterp=Blue
        Min=0.000 Max=211.000
        Minimum=0.000, Maximum=211.000, Mean=90.109, StdDev=48.708
        Overviews: 25125x58391, 12563x29196, 6282x14598, 3141x7299, 1571x3650, 786x1825, 393x913, 197x457, 99x229, 50x115, 25x58, 13x29, 7x15, 4x8
        Metadata:
          STATISTICS_APPROXIMATE=YES
          STATISTICS_MAXIMUM=211
          STATISTICS_MEAN=90.109217391304
          STATISTICS_MINIMUM=0
          STATISTICS_STDDEV=48.70795205406
          STATISTICS_VALID_PERCENT=100

备注

可以使用从gdalinfo返回的范围值(使用左下角和右上角)粘贴到 Mapfile 的范围参数中。您还可以在该摘要中注意到 PROJCS/AUTHORITY 行,该行声明此数据当前位于 EPSG:26915 投影。

备注

对于Windows用户, MS4W 包括gdalinfo实用程序和这里提到的所有实用程序。

概览

GeoTIFF支持在文件中创建“概视图”,它基本上是适合在较低分辨率下使用的栅格数据的缩减采样版本。使用 gdaladdo 程序将概视图添加到GeoTIFF,而MapServer(通过GDAL)将自动选择要使用的下采样图层。请注意,概览会显著增加GeoTIFF所需的磁盘空间,在某些情况下,额外的磁盘读取可能会抵消MapServer无需对图像重新采样而获得的性能。你只能自己试一试,看看它是如何奏效的。

瓷砖索引和内部瓷砖

对于通常只要求图像很小区域的情况,平铺最有效。

平铺索引是如何从许多栅格中创建动态马赛克的。这一点在 瓦片索引 MapServer文档。该文档描述了平铺索引有意义的常见情况。特别是,如果您有一个非常大的栅格,而大多数请求是对其中非常小的空间区域的请求,您可能会考虑对其进行切片和平铺索引。

作为切片和镶嵌的替代方案,TIFF确实支持内部瓷砖的概念。像tileindex一样,当请求只占栅格的一小部分时,这是最有效的。内部平铺通过在gdal_translate中添加“-co-tiled=yes”完成,例如:

gdal_translate -co TILED=YES original.tif tiled.tif

了解并复习用于管理栅格的各种GDAL实用程序

GDAL栅格命令行实用程序非常强大,可以脱机进行的处理越多,MapServer显示栅格就越快、越容易。例如,您可能需要一个原始DEM栅格中的彩色“阴影地貌”,在这种情况下,您可以使用 gdaldem 实用工具,然后将MapServer图层指向该着色地貌栅格。或者,您可能希望预先将所有栅格重新投影到所需的输出/显示投影,方法是使用 gdalwarp 实用程序。查看所有可用的GDAL栅格实用程序 here

在 Mapfile 中处理栅格图层

请查看文档中的注释 Mapfile 调整和管理

远程工作流管理系统

某些远程WMS/OGC服务(因为WMS实际上从发送到远程服务器的请求中返回图像)可能会很慢或不可靠。或者,您可以使用监控服务,例如 GeoHealthCheck ,为您跟踪服务的可靠性。

您还可以考虑何时使用远程WMS层或远程服务。例如,可能有不同的WMS服务器(或一组不同的图像,甚至是矢量轮廓地图)适合于绘制国家或州以定位用户。然后,您可以让WMS层以一定的比例打开,或者让该层始终可用但关闭,以便用户可以选择何时打开它。