BAG——水深属性网格
司机简称
BAG
生成依赖项
libhdf5文件
这个驱动程序提供只读支持,并从GDAL 2.4开始创建,用于BAG格式的测深数据。包文件实际上是HDF5文件中的一个特定产品配置文件,但是存在一个自定义驱动程序,以比通过通用HDF5驱动程序更方便的方式显示数据。
包文件有两个图像带,表示栅格栅格区域中每个单元的高程(带1)、不确定性(带2)值。也可能存在标称高程值,从GDAL 3.2开始,任何数字数据类型的二维数组以及与BAG_根下高程相同的尺寸都将报告为GDAL带。
从数据集提供的内部XML元数据中提取geotransform和坐标系。但是,如果使用非WKT方式编码空间参考系,某些产品可能具有不支持的坐标系格式。
完整的XML元数据在“XML:BAG”元数据域中可用。
还报告了每个频带的Nodata、最小值和最大值。
驱动程序功能
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.)
打开选项
有关特定于可变分辨率的开放选项,请参见下一章。
其他开放选项包括:
REPORT_VERTCRS=是/否(从GDAL 3.2开始)。默认为“是”。将来自行李XML元数据的垂直CRS报告为复合CRS的垂直组件。如果设置为“否”,则仅报告水平部分。
可变分辨率(VR)网格支持
从GDAL 2.4开始,GDAL可以使用 variable resolution grids . 这些数据集是由一个低分辨率网格组成的,这是驱动程序默认显示的网格,对于这些低分辨率单元格中的每一个,文件中都可以显示一个高分辨率网格。这种高分辨率网格在GDAL中被称为“超级网格”。
驾驶员有不同的工作模式,可通过模式打开选项进行控制:
模式=低分辨率网格:这是默认模式。驱动程序将公开低分辨率网格,并在数据集元数据中指示数据集是否具有超级网格(has_supergrids=TRUE),以及这些网格的最小和最大分辨率。
MODE=LIST_SUPERGRIDS:在此模式下,驱动程序将在子数据集列表中报告各种SUPERGRIDS。在此模式下,可以应用其他打开选项来限制搜索
超级网格索引=(y1,x1),(y2,x2),…:元组或元组列表,由它们的y,x索引描述(从0开始,y从网格的南部开始,x从网格的西部开始)。
MINX=value:用作要列出的超级栅格过滤器的最小地理参考X值。
MINY=value:用作要列出的超级栅格过滤器的最小地理参考Y值。
MAXX=value:用作要列出的超级栅格过滤器的最大地理参考X值。
MAXY=value:用作要列出的超级栅格过滤器的最大地理参考Y值。
RES_FILTER_MIN=值:要考虑的超级网格的最小分辨率(排除界限)
RES_FILTER_MAX=值:要考虑的超级网格的最大分辨率(包括界限)
打开超级网格。此模式是通过将格式类似于BAG:my.BAG:supergrid:{y}:{x}的字符串用作数据集名称触发的,该字符串是由上述模式报告的子数据集名称元数据项的值。{y} 是要打开的超级网格的索引(从0开始,从网格的南面开始),而{x}是要打开的超级网格的索引(从0开始,从网格的西面开始)。
模式=重采样网格:在此模式下,用户指定目标网格的范围和分辨率,对于此目标网格的每个单元,驱动程序将找到落入该单元的超级网格节点。默认情况下,它将选择具有最大高程值的节点来填充单元值。或者,如果找不到任何超级网格的节点,则单元格值将设置为nodata值。报告概述:请注意,这些概述对应于使用RESX和RESY参数的不同值计算的重采样栅格,但使用相同的值填充规则(而不是全分辨率重采样栅格的最近邻重采样)。
此模式下可用的打开选项有:
MINX=值:重新采样栅格的最小地理参考X值。默认情况下,低分辨率网格的相应值。
MINY=值:重新采样栅格的最小地理参考Y值。默认情况下,低分辨率网格的相应值。
MAXX=value:重新采样栅格的最大地理参考X值。默认情况下,低分辨率网格的相应值。
MAXY=value:重新采样栅格的最大地理参考Y值。默认情况下,低分辨率网格的相应值。
RESX=值:水平分辨率。默认情况下,如果RES_STRATEGY设置为AUTO,这将是所有超级网格中的最小分辨率。
RESY=值:垂直分辨率(正值)。默认情况下,如果RES_STRATEGY设置为AUTO,这将是所有超级网格中的最小分辨率。
RES_STRATEGY=AUTO/MIN/MAX/MEAN:要应用哪个策略来设置重新采样的网格分辨率。默认情况下,如果未指定RESX、RESY、RES_FILTER_MIN和RES_FILTER_MAX,则自动策略将对应于MIN策略:即使用所有超级网格中的最小分辨率。如果指定MAX,则使用所有超级网格中的最大分辨率。如果指定了平均值,则使用所有超级网格之间的平均分辨率。RESX和RESY(如果定义)将覆盖RES_策略确定的分辨率。
RES_FILTER_MIN=值:要考虑的超级网格的最小分辨率(排除界限,除非它是超级网格的最小分辨率)。默认情况下,超级栅格的最小分辨率可用。如果指定了此值且未指定RES_STRATEGY、RES_FILTER_MAX、RESX或RESY,则所有超级网格中的最大分辨率将用作重新采样网格的分辨率。
RES_FILTER_MAX=值:要考虑的超级网格的最大分辨率(包括界限)。默认情况下,超级栅格的最大分辨率可用。如果指定了此值且未指定RES_STRATEGY、RESX或RESY,则此值也将用作重新采样网格的分辨率。
VALUE_POPULATION=MIN/MAX/MEAN/COUNT:应用哪个值填充策略来计算重采样的单元格值。此默认值为MAX:目标单元的高程值是所有落入此单元的超级栅格节点(可能使用RESu FILTERu MIN和/或RESu FILTERu MAX进行过滤)的最大高程;相应的不确定性将是达到此最大高程的源节点的不确定性。如果没有超级网格节点落入目标单元,则设置nodata值。“最小”策略类似,只是这是选定的相交节点之间的最小高程值。平均策略使用相交节点高程的平均值和这些节点的最大不确定性。计数策略(GDAL>=3.2)公开一个UInt32频带,其中每个目标单元包含落入其中的超级网格节点的计数。
SUPERGRIDS_MASK=YES/NO。默认为NO。如果设置为YES,则数据集包含布尔值的单字节带,而不是高程和不确定性带。对于目标单元格,如果至少有一个超级网格节点(可能使用RES_FILTER_MIN和/或RES_FILTER_MAX过滤)落入单元格中,则单元格值设置为255。否则设置为0。这可用于区分nodata处的高程值是由于没有源超级栅格节点落入其中,还是因为该/那些超级栅格节点本身处于nodata值。
NODATA_VALUE=值。重写默认值,通常为1000000。
空间元数据支持
从gdal3.2开始,GDAL可以用 spatial metadata .
当存在这样的空间元数据时,子数据集列表将包含格式为“BAG:”{filename}“:georefu metadata:{nameu ofu layer}'的名称,其中 name_of_layer
下的子组的名称 /BAG_root/Georef_metadata
的值 keys
每个元数据层下的数据集用作GDAL栅格值。以及相应的 values
数据集作为与GDAL栅格标注栏关联的GDAL栅格属性表公开。如果 keys
不存在,记录1 values
假定满足与高程标注栏的nodata值不匹配的每个高程点。
When variable resolution grids are present, the MODE=LIST_SUPERGRIDS open option
will cause subdatasets of names of the form 'BAG:"{filename}":georef_metadata:{name_of_layer}:{y}:{x}'
to be reported. When opening such a subdataset, the varres_keys
dataset will
be used to populate the GDAL raster value.
If varres_keys
is absent, record 1 of values
is assumed to be met for
each elevation point that does not match the nodata value of the variable resolution
elevation band.
跟踪列表支持
当数据集以矢量模式(ogrinfo、ogr2ogr等)打开时,跟踪列表数据集将报告为OGR矢量层
创建支持
从GDAL 2.4开始,驱动程序可以创建一个包数据集(不带可变分辨率扩展),其中包含源数据集的高程和不确定性带。源数据集必须是地理参考的,并且具有一个或两个波段。假设第一个波段为高程波段,第二个波段为不确定波段。如果缺少第二个波段,则不确定度将设置为nodata。
The driver will instantiate the BAG XML metadata by using a template file, which is by default, bag_template.xml, found in the GDAL data definition files. This template contains variables, present as ${KEYNAME} or ${KEYNAME:default_value} in the XML file, that can be substituted by providing a creation option whose name is the VAR_ string prefixed to the key name. Currently those creation options are:
VAR_INDIVIDUAL_NAME=string:填写联系人/CI_ResponsibleParty/individualName。如果未提供,则默认为“未知”。
VAR_organization_NAME=string:填写联系人/CI_ResponsibleParty/organizationname。如果未提供,则默认为“未知”。
VAR_POSITION_NAME=字符串:填写联系人/CI_ResponsibleParty/positionName。如果未提供,则默认为“未知”。
VAR_DATE=YYYY-MM-DD:填写日期戳/日期。如果未提供,则默认为当前日期。
VAR_VERT_WKT=WKT_string:为垂直坐标参考系填充referenceSystemInfo/MD_reference system/reference system Identifier/RS_Identifier/code。如果未提供,且输入CRS不是复合CRS,则默认为垂直 ["unknown", VERT_DATUM["unknown", 2000] ]
VAR_ABSTRACT=string:填充identificationInfo/ABSTRACT。如果未提供,则默认为空字符串
VAR_PROCESS_STEP_DESCRIPTION=字符串:填充dataQualityInfo/lineage/LI_lineage/processStep/LI_processStep/DESCRIPTION。如果未提供,则默认为“由GDAL x.y.z生成”。
VARôDATETIME=YYYY-MM-DDTHH:MM:SS:填充dataQualityInfo/lineage/LIôlineage/processStep/LIôprocessStep/DATETIME/DATETIME。如果未提供,则默认为当前日期时间。
VAR_RESTRICTION_CODE=枚举值:填充metadataConstraints/MD_LegalConstraints/usecostraints/MD_RestrictionCode。如果未提供,则默认为“其他限制”。
VAR_OTHER_CONSTRAINTS=string:填充metadataConstraints/MD_LegalConstraints/otherConstraints。如果未提供,则默认为“未知”。
VAR_CLASSIFICATION=枚举值:填充metadataConstraints/MD_SecurityConstraints/classifications/MD_ClassificationCode。如果未提供,则默认为“未分类”。
VAR_SECURITY_USER_NOTE=字符串:填充metadataConstraints/MD_SecurityConstraints/userNote。如果未提供,则默认为“无”。
模板中的其他必需变量(如RES、RESX、RESY、RES_UNIT、HEIGHT、WIDTH、CORNER_POINTS和HORIZ_WKT)将从输入数据集元数据中自动填充。
其他创建选项可用:
TEMPLATE=filename:可以用作模板的XML文件的路径。这通常是base bag_template.xml文件的自定义版本。通过使用类似的语法,该文件可以包含除上述变量之外的其他可替换变量。
VAR_xxxx=value:用提供的值替换模板XML值中的变量${xxxx}。
BAG_VERSION=string:要写入/BAG_root/BAG VERSION属性的值。默认为1.6.2。
压缩=无/压缩:高度和不确定网格的压缩。默认为放气。
ZLEVEL公司= [1-9] :放气压缩级别。默认为6。
BLOCK_SIZE=value_in_pixel:HDF5数组的分块大小。默认值为100,如果小于100,则为栅格的最大尺寸。
使用实例
在低分辨率模式下打开:
$ gdalinfo data/test_vr.bag [...] Size is 6, 4 [...] HAS_SUPERGRIDS=TRUE MAX_RESOLUTION_X=29.900000 MAX_RESOLUTION_Y=31.900000 MIN_RESOLUTION_X=4.983333 MIN_RESOLUTION_Y=5.316667 [...]
显示可用的超级网格:
$ gdalinfo data/test_vr.bag -oo MODE=LIST_SUPERGRIDS [...] Subdatasets: SUBDATASET_1_NAME=BAG:"data/test_vr.bag":supergrid:0:0 SUBDATASET_1_DESC=Supergrid (y=0, x=0) from (x=70.100000,y=499968.100000) to (x=129.900000,y=500031.900000), resolution (x=29.900000,y=31.900000) SUBDATASET_2_NAME=BAG:"data/test_vr.bag":supergrid:0:1 SUBDATASET_2_DESC=Supergrid (y=0, x=1) from (x=107.575000,y=499976.075000) to (x=152.424999,y=500023.924999), resolution (x=14.950000,y=15.950000) [...] SUBDATASET_24_NAME=BAG:"data/test_vr.bag":supergrid:3:5 SUBDATASET_24_DESC=Supergrid (y=3, x=5) from (x=232.558335,y=500077.391667) to (x=267.441666,y=500114.608334), resolution (x=4.983333,y=5.316667) [...]
打开特定的超级网格:
$ gdalinfo BAG:"data/test_vr.bag":supergrid:3:5
使用默认参数在重采样模式下转换行李(使用超网格的最小分辨率,最大值填充规则):
$ gdal_translate data/test_vr.bag -oo MODE=RESAMPLED_GRID out.tif
在具有特定网格原点和分辨率的重采样模式下转换行李
$ gdal_translate data/test_vr.bag -oo MODE=RESAMPLED_GRID -oo MINX=80 -oo MINY=500000 -oo RESX=16 -oo RESY=16 out.tif
在重采样模式下转换包,其中的掩码指示超级网格节点与重采样数据集的单元格相交的位置。
$ gdal_translate data/test_vr.bag -oo MODE=RESAMPLED_GRID -oo SUPERGRIDS_MASK=YES out.tif
在重采样模式下,通过过滤超级网格分辨率转换行李(重采样网格默认使用4米分辨率)
$ gdal_translate data/test_vr.bag -oo MODE=RESAMPLED_GRID -oo RES_FILTER_MIN=4 -oo RES_FILTER_MAX=8 out.tif
将GeoTIFF文件转换为包数据集,并为抽象可替换变量提供自定义值。
$ gdal_translate in.tif out.bag -co "VAR_ABSTRACT=My abstract"
将具有特定网格分辨率(5m)的重采样模式下的(VR)行李转换为行李数据集(不带可变分辨率扩展),并为抽象元数据提供自定义值:
$ gdal_translate data/test_vr.bag -oo MODE=RESAMPLED_GRID -oo RESX=5 -oo RESY=5 out.bag -co "VAR_ABSTRACT=My abstract"
显示跟踪列表:
$ ogrinfo -al data/my.bal
也见
Implemented as
gdal/frmts/hdf5/bagdataset.cpp
.Description of Bathymetric Attributed Grid Object (BAG) Version 1.6