使用说明
向镶嵌数据集中添加栅格或影像数据,待添加的栅格或影像文件由影像列表文件的方式提供,影像列表文件为一个文本文件,其中记录了待添加的栅格或影像文件的全路径。
待添加的栅格或影像文件可以来源于多种存储类型,包括:本地文件存储、FTP服务器、华为云、阿里云、HDFS分布式文件存储、NAS网络存储等。
参数说明
参数名 | 默认值 | 参数释义 | 参数类型 |
---|---|---|---|
镶嵌数据集 | 目标镶嵌数据集,指定的栅格或影像文件将添加到该镶嵌数据集中进行管理。 例如:可以使用 “打开镶嵌数据集”工具,打开需要添加影像数据的镶嵌数据集,将“打开镶嵌数据集”工具的输出结果作为该参数的输入。 还可以使用“创建镶嵌数据集”工具,创建一个新的镶嵌数据集,即将“创建镶嵌数据集”工具的输出结果作为该参数的输入。 |
DatasetMosaic | |
影像列表文件 | 指定一个.txt文件的全路径(例如:F:\data\hebei\hebei.txt),该文件内容为要添加到镶嵌数据集的影像文件的列表。 列表为要添加的影像文件的全路径,不同影像文件的路径以换行为间隔,即一行记录一个影像文件全路径。 关于影像列表文件的制作,请参见下文提供的“关于影像列表文件的制作”专题介绍。 |
String | |
裁剪文件 | 可选参数。影像裁剪区的矢量文件类型。影像的裁剪区为影像的有效值范围,若影像有配套的限定其裁剪区的矢量文件,通过指定该参数,影像添加时,将影像的裁剪区将更新到镶嵌数据集的裁剪子数据集中,后续用于去除无值的显示设置。若裁剪区的矢量文件类型为shapefile,该参数值为.shp。 | String | |
进程数量 | 指定多进程添加影像文件时的进程数。 | Integer |
输出结果
参数名 | 参数释义 | 参数类型 |
---|---|---|
结果数据集 | 输出的镶嵌数据集。 | DatasetMosaic |
关于影像列表文件的制作
影像列表文件为一个文本文件,其中以行的方式记录一个影像文件的全路径,多个文件为多行记录。通常,待添加的影像文件数据量较大,手动将影像文件全路径一条一条写入文本文件肯定不现实,下面简单介绍一种命令行的方式,自动构建一个待添加影像的列表文件,仅供参考。
由于待添加的影像文件可以来源于多种存储类型,包括:本地文件存储、FTP服务器、华为云、阿里云、HDFS分布式文件存储、NAS网络存储等,而对于影像文件的全路径的书写方式也因不同的存储类型有所差别,所以下文分别进行示例。
-
Windows 系统本地存储
对于Windows 系统本地存储,影像文件全路径的书写方式为:
D:\data\Images\Export14-20-25.tif
例如,有下面一份数据,每一幅影像都是单独存放在一个文件夹中,并且相同覆盖区域有两幅.tif影像文件夹,需要将这份影像中的以 ”*_dem.tif”结尾的文件加入到镶嵌数据集中管理。
基于上述需求,我们可以通过以下命令行,将目标影像文件的路径全部输出到一个文本文件中,如:ImagesList.txt文本文件,首先需要切换执行目录为影像文件的根目录,如:H\DEM30。
输出影像列表文件的命令行:dir /B /S *dem.tif > ImagesList.txt
-
Linux 系统本地存储
基于上述Windows系统描述的影像数据特点,若这份影像文件存储在Linux本地文件系统时,如:/home/data/DEM30/,若输出一个影像列表的文本文件,可以通过以下命令行完成。
输出影像列表文件的命令行:find /home/data/DEM30 -name “*dem.tif” >> ImagesList
-
华为云存储(公有云)
镶嵌数据集支持管理来源于华为云、阿里云以及亚马逊云提供的对象存储服务中的影像文件。如下所示,为华为云对象存储服务(OBS)中的影像文件,其中,“obstest—iserver”为对象容器的桶名称,数据存放在其下的“Image-COG”文件夹对象中,如:2692.0-511.0.tif为一个影像文件。
基于上述数据,若要构建一个影像列表文件,其中记录的影像文件路径比较特殊,需要在影像文件路径前添加“/vsis3 ”前缀,用来标志影像文件来源于对象存储服务,包括华为云(OBS)、阿里云(OSS),以及亚马逊云(S3)的对象存储服务。如下面的路径示例,除了前缀,具体的影像路径为“/obstest-iserver/Image-COG/2692.0-511.0.tif”,其中,“obstest-iserver”为对象容器的桶名称。
路径示例:/vsis3/obstest-iserver/Image-COG/2692.0-511.0.tif
而关于影像文件所在的对象存储的访问地址:obs.cn-north-4.myhuaweicloud.com,需要以环境变量的方式设置在程序运行的机器中,环境变量如下:
AWSS3ENDPOINT=obs.cn-north-4.myhuaweicloud.com
此外,还要添加以下两个环境变量,用来指定华为云访问密钥AK\SK。
AWSACCESSKEYID=
AWSSECRETACCESSKEY=综上,基于影像列表文件中的“/vsis3/Image-COG/2692.0-511.0.tif”影像文件路径,镶嵌数据集即可访问到该影像文件。
-
HDFS 分布式文件存储系统
镶嵌数据集支持管理来源于HDFS分布式文件存储系统中的影像文件。如下所示,上传在HDFS分布式文件系统中存储的影像文件。
基于上述数据,若要构建一个影像列表文件,其中记录的影像文件路径比较特殊,镶嵌数据集目前支持通过http协议来访问HDFS分布式存储系统中的影像文件,并且需要在影像文件的url路径前添加“/vsiwebhdfs/”前缀,具体的路径规则如下:
/vsiwebhdfs/http://{hadoopip}:50070/webhdfs/v1/{file_path_in_hdfs}
其中:hadoopip为Hadoop服务器IP地址;filepathin_hdfs为影像文件在HDFS文件系统中的路径,如上图所示,L51C001001.tif影像文件在HDFS文件系统中的路径为:rasterfiles/img4490/L51C001001.tif。
因此,镶嵌数据集支持访问的HDFS分布式存储系统中的影像文件(以 L51C001001.tif 为例)的路径示例如下:
/vsiwebhdfs/http://hadoopip:50070/webhdfs/v1/rasterfiles/img4490/L51C001001.tif
-
FTP存储
镶嵌数据集支持管理来源与FTP服务上的影像文件,若要构建一个影像列表文件来访问FTP服务的影像文件,影像文件的路径的写法如下所示,即为该文件的ftp全路径。
路径示例:ftp://192.168.115.110/gisdata/images/2685.0-501.0.tif
-
NAS网络存储
镶嵌数据集支持管理NAS网络存储中的影像文件,并支持多种访问协议,例如FTP协议,此时,影像列表文件中记录的影像文件路径的书写方式同上文的“FTP存储”。当以挂载远程目录的方式提供影像文件访问时,Linux系统支持NFS协议,此时,影像列表文件中记录的影像文件路径的书写示例为:/home/data/volum/images/L51C001003.tif,实质和本地存储访问方式相同;Windows系统支持SMB协议,此时,影像列表文件中记录的影像文件路径的书写示例为:Z:\images\L51C001003.tif,实质和本地存储访问方式相同。
如何访问对象存储中的影像文件
SuperMap的镶嵌数据集和影像服务都支持管理对象存储中的影像文件,包括:华为OBS对象存储服务、阿里OSS对象存储服务、S3简单存储服务,并且这些对象存储都支持以HTTP访问协议和GDAL的vsis3文件系统程序来访问,这里推荐使用GDAL的vsis3文件系统程序来访问。
SuperMap镶嵌数据集和影像服务都需要通过影像文件清单来指定所管理的影像文件,清单文件为一个 .txt文本文件,每行为一条记录,每条记录为一幅影像文件的全路径,关于对象存储中影像文件路径的写法规则如下:
- HTTP访问协议:影像文件的路径的写法为: /vsicurl/http://1.1.1.1:80/mybucket/L51C001003.tif,其中:“/vsicurl/”是http协议访问方式的必须前缀;“mybucket”为桶名。
- HTTPS访问协议:影像文件的路径的写法为: /vsicurl/https://1.1.1.1:443/mybucket/L51C001003.tif,其中:“/vsicurl/”是http协议访问方式的必须前缀;“mybucket”为桶名。
- GDAL的vsis3文件系统程序访问:影像文件的路径的写法为:/vsis3/mybucket/L51C001003.tif,其中,“/vsis3/”是必须前缀;“mybucket”为桶名。
以上为镶嵌数据集和影像服务如何访问对象存储中的影像文件的内容,SuperMap程序能够成功访问对象存储中的影像文件,还需要进行机器环境的相关配置,即需要配置如下所示的几个系统环境变量:
-
配置对象存储的访问协议
新建一个名为“AWSHTTPS”的系统环境变量来指定对象存储的访问协议。默认访问协议为 HTTPS。 若采用HTTP访问协议,“AWSHTTPS”变量的值设置为NO;若采用HTTPS访问协议,“AWS_HTTPS”设置为TRUE,且为默认值。
-
指定对象存储的URI
新建一个名为“AWSS3ENDPOINT”的系统环境变量,变量的值设置为对象存储的访问地址,支持域名和IP+端口两种地址形式。
例如:
AWSS3ENDPOINT=obs.cn-north-4.myhuaweicloud.com
AWSS3ENDPOINT=1.1.1.1:80
AWSS3ENDPOINT=1.1.1.1:443
备注说明:关于端口的说明,若对象存储采用HTTPS协议访问,默认端口为443;若采用HTTP协议访问,默认端口为80。
-
对象存储的访问密钥AK\SK
新建名称为“AWSACCESSKEYID”和“AWSSECRETACCESSKEY”的系统环境变量,变量的值设置为密钥AK\SK值。
-
配置对象存储的桶的访问方式
访问公有云对象存储时无需设置该环境变量,而访问私有云对象存储时必须配置。
新建一个名为“AWSVIRTUALHOSTING”的系统环境变量,变量的值设置为FALSE。
这是因为“AWSVIRTUALHOSTING”默认值为TRUE,此时,桶的访问方式为桶名+HostName,例如:mybucket.cname.domain,com,而SuperMap支持桶的访问方式为将桶作为对象存储URI的顶级目录,即cname.domain,com/mybucket,因此,需要将“AWSVIRTUALHOSTING”设置为FALSE。
-
无需签名的配置
访问公有云对象存储时无需设置该环境变量,而访问私有云对象存储时必须配置。
新建一个名为“AWSNOSIGN_REQUEST”的系统环境变量,变量的值设置为YES。
当访问私有云对象存储中的数据时,如果遇到如下所示的错误信息(The request signature we calculated dose not match the signature you provided. Check your key and signing method.),可以通过“AWSNOSIGN_REQUEST=YES”系统环境变量设置来解决。
-
配置CURL SSL证书
当访问对象存储中的数据失败时,且遇到如下所示的错误信息(CURL error: SSL certificate problem:),您需要下载一个CURL SSL证书并完成配置。如果未遇到此问题,请忽略此步骤。