整体思路
对栅格影像进行重采样用到的主要方法是gdal的内置方法gdal.ReprojectImage(),采样后的数据需要新生成一个栅格数据集进行保存
思路:
-
载入原始栅格,读取相关信息
包括投影信息,仿射变换六参数,波段信息,数据类型,驱动名称,影像分辨率,影像宽、高等 -
新建输出栅格数据集
根据获取到的原始栅格的相关信息,以及重采样的因子(采样前分辨率/采样后分辨率),新建一个栅格数据集。 在这一步,需要先根据重采样的因子计算出重采样后的栅格的尺寸大小,再进行Creat Creat之后给新建的栅格数据设定投影信息和六参数信息,这里的六参数需要写入重采样后的分辨率 -
进行重采样
gdal.ReprojectImage(dataset, outDataset, src_projection, dst_projection, gdalconstConstants.GRA_Cubic); dataset:输入数据集(要进行重采样的栅格) outDataset:输出数据集(重采样后的栅格) src_projection:源空间信息(输入数据集的空间信息) dst_projection:转换后的空间信息(如果只进行重采样,不进行重投影,则dst_projection=src_projection) gdalconstConstants.GRA_Cubic:重采样的方式(GRA_NearestNeighbour=0,GRA_Bilinear=1,GRA_Cubic=2,GRA_CubicSpline=3,GRA_Lanczos=4)
代码实现
/**
* 图像重采样
* @param inFilePath 输入栅格的路径
* @param outFilePath 重采样后生成的栅格的路径
* @param pixel 重采样的分辨率
* @return
*/
public static int resample(String inFilePath, String outFilePath,double pixel) {
//载入原始栅格
System.out.println("载入原始栅格");
Dataset dataset = gdal.Open(inFilePath, gdalconstConstants.GA_ReadOnly);
String projection =

该博客详细介绍了如何利用GDAL库在Java中实现栅格影像的重采样过程。首先,通过GDAL加载原始栅格并获取其关键信息,包括投影、分辨率和仿射变换参数。然后,基于重采样因子创建新的栅格数据集,并设置相应的参数。最后,使用gdal.ReprojectImage()函数以三次样条插值法进行重采样,生成新的栅格文件。
最低0.47元/天 解锁文章
973

被折叠的 条评论
为什么被折叠?



