扬中网站建设机构,天津广告公司排行榜,怎么做垂直自营网站,南宁建站模板厂家python读取tif的包很多#xff0c;但大都只能读出图像像素值#xff0c;不能读取到经纬度信息。原因#xff1a;TIFF 简单理解就是一种图像格式#xff0c;类似于 jpg、png 等。GeoTIFF 就是在普通 TIFF 文件上增加了地理位置、投影信息、坐标信息等#xff0c;常用于遥感…python读取tif的包很多但大都只能读出图像像素值不能读取到经纬度信息。原因TIFF 简单理解就是一种图像格式类似于 jpg、png 等。GeoTIFF 就是在普通 TIFF 文件上增加了地理位置、投影信息、坐标信息等常用于遥感数据所以要使用读取GeoTIFF的库进行信息读取。1、GeoTIFF读取GeoTIFF使用gdal进行读取GDAL 是一个开源的操作栅格数据和矢量数据的库可用于读写、获取坐标系、获取指定位置像元值等。2、安装 GDAL 库使用pip install gdal安装。windows上安装有时会报错采用whl 进行安装。下载地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal我用的python3.9所以下下面那个库。下载后按绝对路径执行安装pip install D:\DownLoad\GDAL-3.4.3-cp39-cp39-win_amd64.whl引用包import numpy as np
from osgeo import gdal, osr3、值读取所以只有一个波段因此 Band 数默认就是 1 了如果是需要多波段就是GetRasterBand(band) 的参数需要改一下。tif_file rC:\Users\i\Desktop\dsm.tif
dataset gdal.Open(tif_file)
img dataset.GetRasterBand(1).ReadAsArray() # 1个波段
print(type(img), img.shape, img[1000,1000])class numpy.ndarray (9783, 8617) 15.39856其它函数细节1、读取某一像素点的值1读取一个波段其参数为波段的索引号波段索引号从1开始(我打开的这幅图像只有一个波段)banddataset.GetRasterBand(1)2用ReadAsArray(, , ,)读出从(xoff,yoff)开始大小为(xsize,ysize)的矩阵。以下为读取整幅图像im_datasband.ReadAsArray(0,0,im_width,im_height)3获取某一或某几个像素的值(查看10~14 行和 20~25 列的数据)dataim_datas[10:15,20:26]4释放内存。如果不释放在arcgis或envi中打开该图像时显示文件已被占用del dataset4、计算对应的GPS使用的就是gdal里面的GetGeoTransform方法读取坐标该方法会返回仿射矩阵形式为以下六个参数0左上角横坐标投影坐标经度1像元宽度,影像东西/水平方向分辨率2行旋转如果图像北方朝上该值为03左上角纵坐标投影坐标纬度4列旋转如果图像北方朝上该值为05像元高度,影像南北/垂直方向分辨率北上图为负值。则左上角的地理坐标为(GT(0) , GT(3) )如果图像不含地理坐标信息默认返回值是(0,1,0,0,0,1)如果影像是指北的,padfGeoTransform[2]和padfGeoTransform[4]这两个参数的值为0。tif_file rC:\Users\xxx\Desktop\dsm.tif
dataset gdal.Open(tif_file)
extend dataset.GetGeoTransform() # 读取地理信息
print(左上角地理坐标为, extend[0], extend[3])
n_xsize dataset.RasterXSize # 列数
n_ysize dataset.RasterYSize # 行数
im_bands dataset.RasterCount # 波段数
im_proj dataset.GetProjection() # 地图投影信息def get_locate_xy(extend, i, j): 计算某个坐标(i,j)位置下的地理坐标(x,y) - WGS84:param extend: GetGeoTransform() 读取地理信息:param i: 行号:param j: 列号:return: (px, py)px extend[0] i * extend[1] j * extend[2]py extend[3] i * extend[4] j * extend[5]return (px, py)参考文章1、GDAL 操作 TIFF 文件 Python 代码整理读写、获取坐标系、获取指定位置像元值等教程https://laowangblog.com/gdal-read-and-write-tiff-with-python.html2、【基础知识】tiff格式图片介绍及读取https://betheme.net/xiaochengxu/27055.html?actiononClick3、基于python和GDAL实现遥感影像重采样改变分辨率-修改tif参数及数据https://blog.csdn.net/gisuuser/article/details/1063041554、01-利用Python实现多波段影像合成https://zhuanlan.zhihu.com/p/126130709