导出tif 将某值栅格_利用gdal等提取TIF文件的经纬度信息

欢迎订阅微信公众号:『气象学家』

阅读建议

并非常见的NetCDF或者ESRI Shapefile(shp)文件类型才具有经纬度坐标信息。其实,tif格式(Tag Image File Format,简写为TIFF)的图片文件也是能够附加经纬度坐标信息的,本文就tif文件的经纬度信息提取做个简单介绍。

内容目录

前言介绍需要的库/软件查看文件
转换过程经纬度显示绘图检验安装gdalgdal_translate 用法TIF, TIFF, GeoTIFF区别参考

前言介绍

之前处理北美五大湖的数据,湖表温度为卫星观测数据,官方有提供.asc文本格式的阵列像素数据,但是缺少地理坐标信息(这也是比较麻烦的地方,需要自己根据已有的信息进行坐标转换),官网并没有相关的地理数据文件,只有一些描述性的文件。Great Lakes Surface Environmental Analysis(GLSEA,https://coastwatch.glerl.noaa.gov/glsea/),不得已就采用这些零碎的信息,最终也获得了像素文件相匹配的经纬度信息,但是方法比较繁琐,采用ArcGIS来转换的(此处,感谢南大环境学院博士YJ鼎力相助!),先转换为shapefile相关文件,再导出latlon为.csv文件。好在把图用NCL画出来匹配度还可以,就基本用起来了。手头没有Windows电脑,用ArcGIS显得很笨重又奢侈。后来就发邮件给数据负责人,管理员很热心,就把包含地理信息的.tif文件发给我了。对于我完全没有什么相关坐标转换的经验,但也不能浪费这个tif文件,总觉得应该有更加优雅的解决方案。于是另辟蹊径,算是把这个问题再一次解决了。 

文末,单独给出地理坐标信息完整的geotif文件转换方式,相对简单,基本一键式操作。 测试数据>>>链接:https://pan.baidu.com/s/1UElL2Gv9PHb0-Qm0Yoy4mw

官网的地理描述信息

68142eec55ff319978f6a47db11df832.png

问题:优雅转换.tif文件到经纬度.csv文件操作流程???

需要的库/软件

1.cs2cs;  2.R语言;3.gdal;4.NCL  (操作环境为macOS或者Linux)

查看文件

  • 查看tif文件信息,确定地理坐标。进到R语言的终端环境:

f03557b50a7c4fa331b2809471c4ee71.png以上可以确定这个tif文件是附带了地理坐标信息的。

转换过程

1  $   gdal_translate -of XYZ 2018_252_glsea.tif  2018_252_glsea.csv

3bb8e4fc35886621a8fb6f570feee719.png

参考:1.https://gis.stackexchange.com/questions/277780/transform-data-stored-in-a-tiff-file-to-a-csv-with-latitude-longitude-and-data

2

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我不是很清楚gdal库读取tif文件的高度值是什么意思,但是我可以尝试给你一些有关这个话题的信息gdal库是一个用来处理地理空间数据的开源库,它可以帮助你读取tif文件中的高度值,并且提供有关tif文件的更多信息。 ### 回答2: 使用GDAL库可以读取tif文件的高度值,具体操作步骤如下: 1. 首先,你需要在Python环境下安装GDAL库。你可以使用pip命令在终端中执行以下命令来安装GDAL库: ``` pip install gdal ``` 2. 安装完成后,你需要导入gdal库并打开tif文件。使用`gdal.Open()`函数可以打开tif文件,指定tif文件的路径作为参数。示例代码如下图所示: ```python from osgeo import gdal # 打开tif文件 dataset = gdal.Open('path/to/your/tif/file.tif') ``` 3. 接下来,你可以获取tif文件的高度值数据。使用`dataset.ReadAsArray()`函数可以读取tif文件的高度值数据。示例代码如下所示: ```python # 获取tif文件的高度值数据 height_data = dataset.ReadAsArray() ``` 4. 然后,你可以使用height_data变量来进行后续的处理和分析。 以上就是使用GDAL库读取tif文件的高度值的基本步骤。需要注意的是,GDAL库还有其他一些功能函数可以帮助你更好地处理tif文件,你可以根据自己的需求进一步探索和学习。 ### 回答3: gdal库是一个用于读取和处理栅格数据的开源库。要使用gdal库读取tif文件的高度值,需要进行以下步骤: 1. 导入gdal库:在代码的开头,使用import语句导入gdal库。例如:`import gdal` 2. 打开tif文件:使用gdal.Open()方法打开tif文件。该方法接受tif文件的路径作为参数,并返回一个数据集对象。例如:`dataset = gdal.Open('path/to/your.tif')` 3. 获取波段对象:通过访问数据集对象的GetRasterBand()方法,可以获取tif文件中的波段对象。对于高程数据,通常是获取第一个波段对象。例如:`band = dataset.GetRasterBand(1)` 4. 读取高度值:使用波段对象的ReadAsArray()方法,将高度值存储为一个二维数组。该方法接受要读取的像元范围作为参数,如果想读取整个tif文件的高度值,则将该参数设置为None。例如:`heights = band.ReadAsArray()` 5. 关闭数据集对象:读取完高度值后,需要使用dataset对象的Close()方法关闭数据集。这是为了释放内存资源。例如:`dataset.Close()` 通过以上步骤,就可以使用gdal库读取tif文件中的高度值。可以进一步对高度值进行分析和处理,或者将其可视化显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值