GDAL读取遥感影像转化为数组,并储存为文件

基于Python的GDAL库,将遥感影像的TIFF文件,转换为数组形式,并储存为文件。
其中对整个栅格数据的转换,其输出的数组形式为三维数组,储存文件的格式为NPY格式;对栅格数据的某一波段进行转换,可以转换成二维数组,储存为CSV文件。

import numpy as np
from osgeo import gdal, gdalconst

import pandas as pd

def read_img(img_path):
        """读取遥感数据信息"""
        dataset = gdal.Open(img_path, gdalconst.GA_ReadOnly)
        img_width = dataset.RasterXSize    #读取栅格数据集的X方向像素数、或者是栅格矩阵的列数
        img_height = dataset.RasterYSize   #读取栅格数据集的Y方向像素数、或者是栅格矩阵的行数
        img_bands=dataset.RasterCount      #读取栅格数据集的波段数
        band=dataset.GetRasterBand(1)      #读取波段1
        adf_GeoTransform = dataset.GetGeoTransform()   #仿射矩阵/地图地理坐标参考信息
        im_Proj = dataset.GetProjection()              #地图投影信息
        # 将数据写成数组,对应栅格矩阵   注意这两个的区别
        img_data = np.array(dataset.ReadAsArray()) #这是对整个栅格数据转成数组,转出的结果是三维数组  
        data=np.array(band.ReadAsArray())#这是对栅格数据的某一个波段转成数组,转出的结果是二维数组
        del dataset
        return  img_data,data,img_width,img_height,img_bands,adf_GeoTransform, im_Proj

if __name__ == "__main__":

    img_width, img_height,img_bands, adf_GeoTransform, im_Proj, img_data,data= read_img('E:\\file\\test.tif')        #读数据
    #三维数据的储存,文件后缀是npy
    np.save(file="a.npy",arr=img_data) 
    #二维数据的储存,文件可以储存为CSV文件
    data1 = pd.DataFrame(np.array(data))
    data1.to_csv('a.csv')
    

参考链接:
https://blog.youkuaiyun.com/xiaotiig/article/details/118721427
https://blog.youkuaiyun.com/weixin_39786617/article/details/111444019
https:// blog.youkuaiyun.com / gognzixiaobai666 / article / details / 119725432

自己的学习记录,如有问题,欢迎交流学习!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值