常见问题解答

许可证

OTB的许可是什么?

OTB是在许可的开放源码许可证Apachev2.0下分发的,也就是ApacheSoftware许可证(ASL)v2.0:http://www.apache.org/licenses/LICENSE-2.0

我是否被迫根据OTB分发我的代码?

不是的。许可证允许您选择分发您的应用程序(如果您愿意)。您不必在许可证中使用此选项。

我是否被迫将基于OTB的代码贡献到官方回购中?

不是的。

如果我想使用OTB分发应用程序,我需要使用什么许可证?

你自己选择的执照。OTB许可证只要求您在任何分发版本(包括OTB软件)中包括一份Apache许可证副本,并提供OTB项目的明确归属。

我是一个商业用户。OTB的使用有什么限制吗?

不是的。OTB许可证只要求您在任何分发版本(包括OTB软件)中包括一份Apache许可证副本,并提供OTB项目的明确归属。

使用OTB

OTB的图像大小限制是多少?

用户可以分配的最大物理空间取决于其平台。因此,OTB中的图像分配受到图像尺寸、大小、像素类型和波段数量的限制。

幸运的是,由于OTB的流水线(实际上是ITK)中实现的流机制,可以绕过这一限制。在管道的末尾使用,将把大的、有问题的数据无缝地分解成可以分配的小块。这些零件都是一个接一个地加工,所以不再存在分配问题。我们经常用图像来处理 25000 \times 25000 像素。

要使流起作用,管道中的所有过滤器都必须支持流(OTB中的大多数过滤器就是这种情况)。输出的图像格式也需要是可流传输的(例如,不是PNG或JPEG,而是TIFF或ENVI格式)。

这个班级按照两种策略管理蒸煮过程:按瓷砖或按条带。界面中提供了这两种策略的不同大小配置。默认模式使用有关文件在磁盘上如何流传输的信息,并将尝试最大限度地减少管道中的内存消耗。更多信息可以在课程的文档中找到。

与其他软件一起使用OTB Python包装时出现的问题

如果您使用OTB独立二进制文件,应该不会与系统上安装的其他库有任何依赖冲突。OTB将始终尝试获取独立包中提供的库。

但是,使用Python包装时,如果导入可能会发生冲突 otbApplication 以及与OTB共享公共依赖关系的其他软件。例如,如果您想在一个Python脚本中使用OTB应用程序和Fiona,它们都依赖于GDAL库。由于由Python加载的库必须是唯一的,因此第一个库 SomeLib 取决于它的任何其他二进制文件都将使用已加载的。因此,进口的顺序是有影响的。在某些情况下,在libcrypto中观察到了符号问题,解决方案是在导入Fiona之前导入OTB应用程序。

使用OTB和虚拟文件系统时出现问题

如果您尝试使用OTB独立包将位于虚拟文件系统上的栅格作为S3存储桶来读取,则可能会遇到与SSL证书有关的问题。事实上,这个包是基于CentOS构建的,例如,Ubuntu的证书位于不同的位置。您可能需要使用CURL_CA_BRAND环境变量来指定您的计算机上的SSL证书的位置。

在Ubuntu系统上,如下所示设置变量。

export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt