GDAL处理DHM25栅格:坐标参考、GSD异常及保留方法问询
DHM25栅格数据坐标系转换与GSD保留问题解答
问题1:应选择EPSG:21781还是EPSG:5728?
选择EPSG:21781。CH1903/LV03是瑞士经典平面坐标系,EPSG:21781对应CH1903/LV03(投影坐标系,单位为米),与数据官网标注的“LV03 LN02”(平面投影)匹配度更高;而EPSG:5728是CH1903地理坐标系(单位为度),不符合数据的投影属性,因此21781是正确选择。
问题2:yres为负值是否符合规范?
完全符合规范。GDAL的地理变换规则中,多数栅格数据以左上角为地理变换起点,像素行号向下递增时,地理坐标的y值会递减,因此用负值表示y方向的像素分辨率,这是行业通用的标准设定,无需修正。
问题3:如何通过gdalwarp保留25m的GSD?
出现0x0 dataset错误的核心原因是:目标坐标系EPSG:4326为地理坐标系(单位为度),直接传入-tr 25.0(米单位)会导致GDAL计算出的输出图像尺寸为0。以下是两种可行解决方法:
方案1:明确输出范围+匹配米转度后的分辨率
- 先通过
gdalinfo获取原数据的地理范围(米单位):
gdalinfo dhm25_grid_raster.asc
提取Upper Left、Lower Right的坐标,将其转换为WGS84(度单位),得到输出范围参数。
2. 将25米转换为WGS84下的近似度值(约0.000229度,可根据区域纬度微调),结合范围参数执行gdalwarp:
gdalwarp -s_srs EPSG:21781 -t_srs EPSG:4326 -dstnodata -32767.0 -r cubic -ot Int16 -of GTiff -tr 0.000229 -0.000229 -te [WGS84左下经度] [WGS84左下纬度] [WGS84右上经度] [WGS84右上纬度] C:/somewhere/dhm25_grid_raster.asc C:/somewhere/warp25.tif
方案2:指定输出行列数匹配原数据
从gdalinfo的输出中提取原数据的行列数(格式为Size is XXXX, YYYY),用-ts参数强制输出相同尺寸,GDAL会自动计算对应分辨率以保留近似25米的GSD:
gdalwarp -s_srs EPSG:21781 -t_srs EPSG:4326 -dstnodata -32767.0 -r cubic -ot Int16 -of GTiff -ts [原数据宽度] [原数据高度] C:/somewhere/dhm25_grid_raster.asc C:/somewhere/warp25.tif
内容的提问来源于stack exchange,提问作者fariadantes
相关产品推荐
相关产品推荐

