gdal栅格切图

该博客详细介绍了如何使用GDAL Java API进行遥感影像处理,包括读取影像、计算地理坐标范围、进行瓦片编号转换、切片以及将切片数据写入PNG文件。此外,还涉及到了影像的像素分辨率计算和切片数据的存储。
package gdal.cutmap.raster;

import org.gdal.gdal.Band;
import org.gdal.gdal.Dataset;
import org.gdal.gdal.Driver;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconst;
import org.gdal.gdalconst.gdalconstConstants;
import org.geotools.geometry.jts.ReferencedEnvelope;
import org.geotools.referencing.CRS;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.crs.CoordinateReferenceSystem;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.UUID;

import static org.apache.commons.io.IOUtils.toByteArray;

/**
 * https://www.jianshu.com/p/98389e3168e8
 */
public class DemoRasterTest {

    public static void main(String[] args) throws FactoryException {
        gdal.AllRegister();
        String fileName = "C:\\Users\\h\\Desktop\\tif\\map.tif";
        Dataset dataset = gdal.Open(fileName, gdalconstConstants.GA_ReadOnly);
        double[] ori_transform = dataset.GetGeoTransform();
        int rasterCount = dataset.getRasterCount();

        System.out.println(String.format("Origin = (%s, %s)", ori_transform[0], ori_transform[3]));
        System.out.println(String.format("Pixel Size = (%s, %s)", ori_transform[1], ori_transform[5]));
//4.1 首先获取原始影像的地理坐标范围
        int yCount = dataset.getRasterXSize();
        int xCount = dataset.getRasterYSize();
        System.err.println("yCount:"+yCount+"xCount:"+xCount);
        double latMin = ori_transform[3];
        double latMax = ori_transform[3] + (yCount * ori_transform[1]);
        double lonMin = ori_transform[0];
        double lonMax = ori_transform[0] + 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值