Python+gdal读取遥感影像GEOTiff、ENVI,获取网格化的数据和经纬度

import gdal
import numpy as np

class Dataset:
    def __init__(self, in_file):
        self.in_file = in_file  # Tiff或者ENVI文件

        dataset = gdal.Open(self.in_file)
        self.XSize = dataset.RasterXSize  # 网格的X轴像素数量
        self.YSize = dataset.RasterYSize  # 网格的Y轴像素数量
        self.GeoTransform = dataset.GetGeoTransform()  # 投影转换信息
        self.ProjectionInfo = dataset.GetProjection()  # 投影信息

    def get_data(self, band):
    	"""
    	band: 读取第几个通道的数据
    	"""
        dataset = gdal.Open(self.in_file)
        band = dataset.GetRasterBand(band)
        data = band.ReadAsArray()
        return data

    def get_lon_lat(self):
    	"""
    	获取经纬度信息
    	"""
        gtf = self.GeoTransform
        x_range = range(0, self.XSize)
        y_range = range(0, self.YSize)
        x, y = np.meshgrid(x_range, y_range)
        lon = gtf[0] + x * gtf[1] + y * gtf[2]
        lat = gtf[3] + x * gtf[4] + y * gtf[5]
        return lon, lat

使用上述读取类的样例代码

# 以下代码演示读取E:/data/dataset.tif的第一个通道的数据,并且获取经纬度信息
dir_path = r"E:/data"
filename = "dataset.tif"
file_path = os.path.join(dir_path, filename)
dataset = Dataset(file_path)

band = 1
data = dataset.get_data(band)  # 获取第一个通道的数据

longitude, latitude = dataset.get_lon_lat()  # 获取经纬度信息

https://blog.csdn.net/weixin_40450867/article/details/81097566
https://blog.csdn.net/zyf19930610/article/details/43487473

  • 12
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值