• 将TIF/PNG等转为GeoTIFF


    本文转自:https://www.cnblogs.com/xiaowangba/p/6313939.html

    网上有很多下载Google地图的卫片的软件,一般下载下来的图像都是jpg格式的,另外附带一个坐标信息的描述文件。这样的数据不能直接拿来在遥感或者GIS软件中使用,因为图像里面没有投影和坐标信息,所以就需要将这个描述文件中的坐标信息导入到影像中。下面就如何使用gdal提供的工具来完成这个功能,当然也可以自己写程序。

    首先看看输入数据都有什么,这里只有一个jpg图像和一个txt文件,jpg图像如下,原始大小为12800×7168,上传的时候太大,我缩小了下。

    另外的描述信息主要有:

    图片宽度(像素):12800
    图片高度(像素):7168
    
    Web墨卡托坐标系(地图原始坐标)
    左下角:-4383205.071958936800000,-20037508.165080477000000
    左上角:-4383205.071958936800000,-11271098.261898357000000
    右上角:11271098.756465839000000,-11271098.261898357000000
    右下角:11271098.756465839000000,-20037508.165080477000000
    
    WGS84坐标系(经纬度坐标)
    左下角:-39.375000000000000,-85.051128779806547
    左上角:-39.375000000000000,-70.612614238019233
    右上角:101.250000000000000,-70.612614238019233
    右下角:101.250000000000000,-85.051128779806547
    
    从上面的描述信息中可以看出来,地图原始的四角坐标都是知道的,Google的地图使用的都是Web墨卡托投影,对应的EPSG代码是900913,而经纬度对应的EPSG代码是4326。

    通过上面的信息可以知道,我们可以将上面的坐标信息处理为一个World file文件,也就是jpw文件,这个文件就可以给jpg图像赋坐标信息了,至于投影信息最后可以使用gdalwarp中的-s_srs命令来指定。

    首先使用gdalinfo工具查看图像的信息,如下图所示,可以看出图像是没有任何坐标和投影信息的。

    通过上面的坐标计算的图像的分辨率大致为1222.9925米,所以world file里面的内容如下。(注意,这里假设图像正北朝上,一般来说Google的卫片都满足这个要求,如果不满足,可以使用上面的四角坐标用最小二乘来结算这个world file中的六个数值)。

    1222.9925000000000
    0.0000000000
    0.0000000000
    -1222.9925000000
    -4383205.071958936800000
    -11271098.261898357000000
    将上面的内存保存为一个和jpg图像名字相同,后缀名为jpw的文件,然后使用gdalinfo查看,看看是不是有坐标信息了。

    如果想把这个图像直接转成带有投影和坐标的tif数据的话,可以直接使用gdal_translate工具,命令如下:

    gdal_translate.exe -of GTiff -a_srs EPSG:900913 --config GDAL_DATA C:warmerdaGDAL110_SDKdata --config GDAL_FILENAME_IS_UTF8 NO C:UsersLiMinluDesktopjpg2tif全球_03-02.jpg C:UsersLiMinluDesktopjpg2tif900913.tif 
    执行后使用gdalinfo查看输出的图像信息,如下图,从里面可以看到输出的图像投影和坐标信息都有了。红色区域为使用gdal_translate执行的部分。

    如果想将结果直接生成WGS84的经纬度数据,可以直接使用gdalwarp工具,命令行如下。

    gdalwarp.exe -of GTiff -s_srs EPSG:900913 -t_srs EPSG:4326 --config GDAL_DATA C:warmerdaGDAL110_SDKdata --config GDAL_FILENAME_IS_UTF8 NO C:UsersLiMinluDesktopjpg2tif全球_03-02.jpg C:UsersLiMinluDesktopjpg2tifwgs84.tif 
    执行后使用gdalinfo查看输出的图像信息,如下图,从里面可以看到输出的图像投影和坐标信息都有了。红色区域为使用gdalwarp执行的部分。
  • 相关阅读:
    Github 代码在线在vscode中打开
    TP5如何查询字段为空
    浏览器总是报 'https://static.hae123.cn/gc/gc3.js 错误
    Sublime 复制到word 如何保留样式?
    pdf 在浏览器中是下载,而不是打开如何实现?
    Shell脚本中的set指令,比如set -x 和 set -e【转】
    Python面向对象进阶【转】
    Redis为什么变慢了?常见延迟问题定位与分析【转】
    史上最全的 Linux Shell 文本处理工具集锦【转】
    Linux运维常用命令总结【转】
  • 原文地址:https://www.cnblogs.com/CityLcf/p/13538568.html
Copyright © 2020-2023  润新知