java+gdal实现影像重投影
java+gdal实现影像重投影
GDAL功能很强大,用来处理影像数据,今天我要做的是java代码写的影像重投影,网上参考资料大都是c++和python写的,也看了一些大牛写的代码,最后写出了java版的,eclipse写的,直接引用一个gdal.jar包,不过要有一些dll文件,网上有相关的java配置jdal库的博客,不配置jdal会报错:本地库错误。还有对于gdal读取六参数geoTransform的理解,我在这方面没理解好,耗费了一些时间,会在下文讲到。我的源数据与目标数据具有相同的基准面,属于严密转换,实现起来较为简单。实现重投影要需要以下几个步骤:
- 源影像仿射变换系数及投影获取
- 目标影像信息写入
- ReprojectImage重新投影
- 重采样(本人需求)
参考博文:
1.GDAL库学习笔记(三):GDAL创建数据集
2.GDAL之栅格重投影
3.GDAL影像投影转换
以上博文中,1和3是用C++写的代码,2是用python写的。关于背景知识以上博文讲诉的较为详细,这里只做简单描述:
影像要进行投影转换,首先要自带坐标系,然后看源影像坐标系统和目标坐标系统。本文进行的是严密转换,同一基准面下的地理坐标系转到投影坐标系。
现将java代码中用的GDAl主要函数列出来,做简要说明:
GetProjectionRef() 获取源影像的坐标参考
GetGeoTransform() 读取六参数,具体含义参考以上引用博文
CloneGeogCS() 获取一个投影系中的地理系,投影坐标系是地理坐标投影的结果,
Coordina