利⽤Geotools来转换影像的坐标系
背景
若有⼀幅航拍的原始影像,需要⾃动产品化,那就必须要在后端进⾏坐标系的统⼀转换,这时⽤到开源的Geotools就很简单了。
处理
冲上云霄2歌曲
使⽤Operations类下的resample⽅法(重采样)可以解决这个问题,它的⽅法定义如下:
ls.coverage.sample(Coverage source, CoordinateReferenceSystem crs) throws CoverageProcessingExcep 所以我们可以利⽤它实现栅格影像的坐标变换,例如下⾯代码将xxxx.tif的坐标系转换为3857坐标系。
中国教育考试网报名
File file = new File("xxxx.tif");
ists()){
上海师范大学自考>忸怩的意思Reader br = new Reader();艾薇儿的婚礼
GridCoverage2D old2D = br.getGridCoverage2D(file);
final CoordinateReferenceSystem WGS = CRS.decode("EPSG:3857");oppo音乐手机广告曲
rious是什么意思final CoordinateReferenceSystem sourceCRS = CoordinateReferenceSystem();
System.out.println(String.format("源坐标系为: %s", Name()));
GridCoverage2D new2D = (GridCoverage2D) sample(old2D, WGS);
团结就是力量演讲稿
}
控制台打印结果如下:
源坐标系为: EPSG:WGS 84 / UTM zone 48N史密斯先生
⽬标坐标系为: EPSG:WGS 84 / Pudo-Mercator
可见resample⽅法切实有效。
Tips
若涉及到4326坐标系的转换,要注意坐标轴的顺序是不固定的,需要限制顺序,否则很多后续⼯作会出乱⼦,参考。
//resample参数修改
Hints hints = new Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE);
歌舞青春1
CRSAuthorityFactory factory = CRSAuthorityFactory("EPSG", hints);
CoordinateReferenceSystem crs = ateCoordinateReferenceSystem("EPSG:4326");
sample(xxx,crs);