Java调用GDAL读取栅格数据

package org.example;

import org.gdal.gdal.Dataset;
import org.gdal.gdal.gdal;


public class Main {
    public static void main(String[] args) {
        // 初始化GDAL
        gdal.AllRegister();

        // 设置输入栅格文件路径
        String rasterFilePath = "F:/Test/LST/L8_LST_30m.tif";

        // 打开栅格文件
        Dataset dataset = gdal.Open(rasterFilePath);

        if (dataset != null) {
            // 获取栅格数据的基本信息
            int width = dataset.getRasterXSize(); // 栅格数据的宽度
            int height = dataset.getRasterYSize(); // 栅格数据的高度
            int bandsCount = dataset.getRasterCount(); // 栅格数据的波段数量

            System.out.println("栅格数据宽度: " + width);
            System.out.println("栅格数据高度: " + height);
            System.out.println("栅格数据波段数量: " + bandsCount);

            // 获取栅格数据的投影信息
            String projection = dataset.GetProjection();
            System.out.println("栅格数据投影信息:\n " + projection);
            // 获取地理转换参数
            double[] geoTransform = dataset.GetGeoTransform();
            double originX = geoTransform[0]; // 左上角X坐标
            double originY = geoTransform[3]; // 左上角Y坐标
            double pixelWidth = geoTransform[1]; // 像素宽度
            double pixelHeight = geoTransform[5]; // 像素高度

            // 计算四个角点的坐标
            double upperLeftX = originX;
            double upperLeftY = originY;
            double upperRightX = originX + width * pixelWidth;
            double upperRightY = originY;
            double lowerLeftX = originX;
            double lowerLeftY = originY + height * pixelHeight;
            double lowerRightX = originX + width * pixelWidth;
            double lowerRightY = originY + height * pixelHeight;

            System.out.println("左上角坐标: (" + upperLeftX + ", " + upperLeftY + ")");
            System.out.println("右上角坐标: (" + upperRightX + ", " + upperRightY + ")");
            System.out.println("左下角坐标: (" + lowerLeftX + ", " + lowerLeftY + ")");
            System.out.println("右下角坐标: (" + lowerRightX + ", " + lowerRightY + ")");

            // 关闭栅格文件
            dataset.delete();
        } else {
            System.out.println("无法打开栅格文件!");
        }
    }
}

结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三千思丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值