Rasterlite-SQLite DB中的Rasters

司机简称

雷斯特岩

生成依赖项

libsqlite3

Rasterlite驱动程序允许读取和创建Rasterlite数据库。

这些数据库可以由 rasterlite 分布,如rasterlite_负载,rasterlite_金字塔。。。。
驱动程序支持读取存储为GIF、PNG、TIFF或JPEG平铺的灰度、调色板和RGB图像。驱动程序还支持读取俯视图/金字塔、空间参考系统和空间范围。

必须使用OGR SQLite驱动程序支持编译GDAL/OGR。对于读取支持,不需要针对spatialite库进行链接,但需要足够新的sqlite3库来读取rasterlite数据库。rasterlite库也不是必需的。

对于write支持,需要一个新表,链接到spatialite库 * 是 * 必修的。

Although the Rasterlite documentation only mentions GIF, PNG, TIFF, JPEG as compression formats for tiles, the driver supports reading and writing internal tiles in any format handled by GDAL. Furthermore, the Rasterlite driver also allow reading and writing as many bands and as many band types as supported by the driver for the internal tiles.

驱动程序功能

Supports CreateCopy()

This driver supports the GDALDriver::CreateCopy() operation

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

读取模式下的连接字符串语法

语法:“rasterlitedb_name”或“RASTERLITE:rasterlitedb_name” [,table=raster_table_prefix] [,minx=minx_val,miny=miny_val,maxx=maxx_val,maxy=maxy_val] [,level=level_number]

哪里:

  • rasterlitedb_name 是RasterLite数据库的文件名。

  • raster_table_prefix 要打开的栅格表的前缀。对于每个栅格,有两个对应的SQLite表,以“栅格”和“元数据”作为后缀

  • minx_val,miny_val,maxx_val,maxy_val 为栅格设置用户定义的范围(以坐标系单位表示),该范围可以不同于默认范围。

  • level_number 是要打开的棱锥体/总览的级别,0是基本棱锥体。

创建问题

如果需要,驱动程序可以创建新的数据库,如果需要,可以创建新的栅格表,并将源数据集复制到指定的栅格表中。

如果栅格表中已存在数据,则将添加新数据。可以使用WIPE=YES创建选项删除现有数据。

驱动程序不支持更新现有栅格表中的块。它只能追加新数据。

输出数据集名称的语法:“RASTERLITE:rasterlitedb_name,table=raster_table_prefix”或“rasterlitedb_name”

只有在数据库不存在的情况下,才可以像后面的表单那样只指定数据库名。在这种情况下,栅格表名称将基于数据库名称本身。

创建选项

  • WIPE (=默认为否):设置为“是”将删除指定表中所有先前存在的数据

  • TILED (=默认为“是”:如果源数据集必须作为单个平铺写入栅格表,则设置为“否”

  • BLOCKXSIZE =n:设置平铺宽度,默认值为256。

  • BLOCKYSIZE =n:设置平铺高度,默认值为256。

  • DRIVER=[GTiff/GIF/PNG/JPEG/...] : name of the GDAL driver to use for storing tiles. Defaults to GTiff

  • COMPRESS = [LZW/JPEG/DEFLATE/...] :(GTiff driver)压缩方法的名称

  • PHOTOMETRIC = [RGB/YCbCr/...] :(GTiff驾驶员)光度解释

  • QUALITY :(JPEG压缩GTiff、JPEG和WEBP驱动程序)JPEG/WEBP质量1-100。默认为75

概览

驱动程序支持生成(如果数据集在更新模式下打开)和读取内部概述。

如果未检测到内部概述,驱动程序将尝试使用外部概述(.ovr文件)。

选项可用于建筑内部概述。它们可以用RASTERLITEu OVRu OPTIONS配置选项指定,作为以上创建选项的逗号分隔列表。参见以下示例。

GDAL概述支持的所有重采样方法都可用。

性能提示

应用OGR SQLite驱动程序的一些性能提示。特别是在创建数据集或添加概述时,将OGR_SQLITE_SYNCHRONOUS configuration选项设置为OFF可能会提高某些文件系统的性能。

在添加了所有栅格表并构建了所有所需的概述级别之后,建议运行:

ogrinfo rasterlitedb.sqlite -sql "VACUUM"

以优化数据库,提高读取性能。对于大型rasterlite数据集来说,这尤其正确。请注意,该操作可能需要很长时间。

实例

  • 使用单个栅格表访问栅格数据库:

    $ gdalinfo rasterlitedb.sqlite -noct
    

    输出:

    Driver: Rasterlite/Rasterlite
    Files: rasterlitedb.sqlite
    Size is 7200, 7200
    Coordinate System is:
    GEOGCS["WGS 84",
        DATUM["WGS_1984",
            SPHEROID["WGS 84",6378137,298.257223563,
                AUTHORITY["EPSG","7030"]],
            AUTHORITY["EPSG","6326"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.01745329251994328,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4326"]]
    Origin = (-5.000000000000000,55.000000000000000)
    Pixel Size = (0.002083333333333,-0.002083333333333)
    Metadata:
      TILE_FORMAT=GIF
    Image Structure Metadata:
      INTERLEAVE=PIXEL
    Corner Coordinates:
    Upper Left  (  -5.0000000,  55.0000000) (  5d 0'0.00"W, 55d 0'0.00"N)
    Lower Left  (  -5.0000000,  40.0000000) (  5d 0'0.00"W, 40d 0'0.00"N)
    Upper Right (  10.0000000,  55.0000000) ( 10d 0'0.00"E, 55d 0'0.00"N)
    Lower Right (  10.0000000,  40.0000000) ( 10d 0'0.00"E, 40d 0'0.00"N)
    Center      (   2.5000000,  47.5000000) (  2d30'0.00"E, 47d30'0.00"N)
    Band 1 Block=480x480 Type=Byte, ColorInterp=Palette
      Color Table (RGB with 256 entries)
    
  • 列出多栅格表数据库:

    $ gdalinfo multirasterdb.sqlite
    

    输出:

    Driver: Rasterlite/Rasterlite
    Files:
    Size is 512, 512
    Coordinate System is `'
    Subdatasets:
      SUBDATASET_1_NAME=RASTERLITE:multirasterdb.sqlite,table=raster1
      SUBDATASET_1_DESC=RASTERLITE:multirasterdb.sqlite,table=raster1
      SUBDATASET_2_NAME=RASTERLITE:multirasterdb.sqlite,table=raster2
      SUBDATASET_2_DESC=RASTERLITE:multirasterdb.sqlite,table=raster2
    Corner Coordinates:
    Upper Left  (    0.0,    0.0)
    Lower Left  (    0.0,  512.0)
    Upper Right (  512.0,    0.0)
    Lower Right (  512.0,  512.0)
    Center      (  256.0,  256.0)
    
  • 访问多栅格表数据库中的栅格表:

    $ gdalinfo RASTERLITE:multirasterdb.sqlite,table=raster1
    
  • 使用JPEG平铺编码的数据创建新的rasterlite DB:

    $ gdal_translate -of Rasterlite source.tif RASTERLITE:my_db.sqlite,table=source -co DRIVER=JPEG
    
  • 创建内部概述:

    $ gdaladdo RASTERLITE:my_db.sqlite,table=source 2 4 8 16
    
  • 清洁内部概述:

    $ gdaladdo -clean RASTERLITE:my_db.sqlite,table=source
    
  • 在.ovr文件中创建外部概述:

    $ gdaladdo -ro RASTERLITE:my_db.sqlite,table=source 2 4 8 16
    
  • 使用选项(GDAL 1.10或更高版本)创建内部概述:

    $ gdaladdo RASTERLITE:my_db.sqlite,table=source 2 4 8 16 --config RASTERLITE_OVR_OPTIONS DRIVER=GTiff,COMPRESS=JPEG,PHOTOMETRIC=YCbCr
    

也见