GDAL Java绑定中gdal.Translate函数的使用方法及参数配置
GDAL Java绑定
gdal.Translate函数正确调用方式 你对TranslateOptions参数的推测是正确的,该参数接收的向量直接对应gdal_translate命令行的参数列表,只需将命令行的每个参数项拆分后作为独立字符串存入Vector传入即可,不需要额外的键值对结构或专门的参数类。
以下是适配你的场景(投影转换+匹配目标范围)的完整使用示例:
import org.gdal.gdal.Dataset; import org.gdal.gdal.gdal; import org.gdal.gdal.TranslateOptions; import java.util.Vector; public class RasterTranslateDemo { public static void main(String[] args) { // 初始化GDAL环境 gdal.AllRegister(); // 构造命令行参数向量,每个参数/参数值单独作为一个字符串存入 Vector<String> optsList = new Vector<>(); // 指定输出栅格格式 optsList.add("-of"); optsList.add("GTiff"); // 指定目标SRS(要做坐标投影转换就用-t_srs,仅修改SRS元数据不转换坐标就用-a_srs) optsList.add("-t_srs"); optsList.add("EPSG:4326"); // 指定输出范围,参数顺序为xmin ymax xmax ymin optsList.add("-projwin"); optsList.add("110.0"); optsList.add("40.0"); optsList.add("120.0"); optsList.add("30.0"); // 可选:指定重采样方法,常用的有near、bilinear、cubic等 optsList.add("-r"); optsList.add("bilinear"); // 可选:设置输出压缩 optsList.add("-co"); optsList.add("COMPRESS=LZW"); // 生成TranslateOptions对象 TranslateOptions translateOptions = new TranslateOptions(optsList); // 打开输入数据集 Dataset inputDs = gdal.Open("你的输入栅格路径.tif"); // 执行转换,生成输出数据集 Dataset outputDs = gdal.Translate("你的输出栅格路径.tif", inputDs, translateOptions); // 关闭数据集释放资源 outputDs.delete(); inputDs.delete(); } }
常见注意事项
- 虽然IDE提示
TranslateOptions入参为Vector<Any>,实际直接传入String类型的参数即可,GDAL Java绑定会自动识别处理 - 所有
gdal_translate命令行支持的参数都可以通过该方式传入,无需额外适配 - 参数必须拆分到独立字符串,比如
-tr 0.001 0.001要拆成"-tr"、"0.001"、"0.001"三个元素存入向量,不能合并为单个字符串,否则会识别失败
内容的提问来源于stack exchange,提问作者Nathan BeDell
相关产品推荐
相关产品推荐

