我正在尝试执行一些处理(即将函数应用于栅格的每个像元的内容,然后将其写为新栅格),其中输入数据集的 SRS 不同(并且具有不同的范围)来自目标 SRS。
为了解决这个问题,我尝试使用 gdal Java 绑定中的
gdal.Translate
函数,在处理输入数据集之前将其转换为正确的 SRS 和范围,但是 - 我一生都无法弄清楚如何这个函数实际上是要被调用的。该函数采用 TranslateOptions
作为输入,它采用选项向量,如here 所记录 - 但这些选项是什么?我传递字符串吗?对吗?有没有我漏掉的TranslateOption
课?
当我将鼠标悬停在 IDE 中的参数上时,它告诉我
TranslateOption
采用 Vector<Any>
,因此我完全不知道如何使用此函数,因为 SWIG 生成的 java 绑定没有任何帮助添加了 javadocs。
我假设
TranslateOptions
可能对应于命令行 gdal_translate
实用程序的选项(由于各种原因,我无法直接为我的应用程序提供此选项),但同样,这些选项是如何传递到向量中的被传递到TranslateOptions
?我在网上找不到任何关于此的文档或使用示例。
这是我的代码,看起来可以工作。
Dataset dataset = gdal.Open(rasterPath);
Vector<String> vector = new Vector<>();
vector.add("-projwin");
vector.add("116.142551771");
vector.add("40.159559805");
vector.add("116.298301771");
vector.add("40.054859805");
TranslateOptions options = new TranslateOptions(vector);
gdal.Translate(rasterCutPath, dataset, options);
顶这个话题 当我像上面描述的那样使用 gdal.Translate 时,它可以工作。 但如果我想添加 gdal_translate 的其他选项,例如 -ot 或 -b,则不起作用(请参阅此处的 gdal_translate 选项:https://gdal.org/programs/gdal_translate.html)
这正常吗?你知道如何解决吗? 谢谢你