zoukankan      html  css  js  c++  java
  • python gdal 读取栅格数据

    1.gdal包简介

    gdal是空间数据处理的开源包,其支持超过100种栅格数据类型,涵盖所有主流GIS与RS数据格式,包括Arc/Info ASCII Grid(asc),GeoTiff (tiff),Erdas Imagine Images(img),ASCII DEM(dem) 等格式。

    2.安装gdal包

    (1)通过此链接查找并下载gdal包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame(根据自己的系统及python版本选择对应的gdal包)

    (2)在dos命令行下切换到包所在的文件夹,并运行pip install 包名进行安装。

    3.读取栅格数据

    #导入gdal包

    from osgeo import gdal

    #导入numpy包(支持高维数组和矩阵运算,也提供了许多数组和矩阵运算的函数)

    import numpy as np

    #打开文件

    dataset=gdal.Open("fdem.tif")

    #栅格矩阵的列数

    im_width = dataset.RasterXSize

    #栅格矩阵的行数

    im_height = dataset.RasterYSize

    #波段数

    im_bands = dataset.RasterCount

    #仿射矩阵,左上角像素的大地坐标和像素分辨率。

    #共有六个参数,分表代表左上角x坐标;东西方向上图像的分辨率;如果北边朝上,地图的旋转角度,0表示图像的行与x轴平行;左上角y坐标;

    #如果北边朝上,地图的旋转角度,0表示图像的列与y轴平行;南北方向上地图的分辨率。

    im_geotrans = dataset.GetGeoTransform()

    #地图投影信息

    im_proj = dataset.GetProjection()

    #读取某一像素点的值

    #(1)读取一个波段,其参数为波段的索引号,波段索引号从1开始(我打开的这幅图像只有一个波段)

    band=dataset.GetRasterBand(1)

    #(2)用ReadAsArray(<xoff>, <yoff>, <xsize>, <ysize>),读出从(xoff,yoff)开始,大小为(xsize,ysize)的矩阵。以下为读取整幅图像

    im_datas=band.ReadAsArray(0,0,im_width,im_height)

    #(3)获取某一或某几个像素的值(查看10~14 行和 20~25 列的数据)

    data=im_datas[10:15,20:26]

    #释放内存。如果不释放,在arcgis或envi中打开该图像时显示文件已被占用

    del dataset

  • 相关阅读:
    Oracle10g服务启动命令
    Linux系统添加永久静态路由的方法
    搭建YUM仓库与定制RPM包
    LVS简介
    【Linux】先添加一块磁盘制作LVM卷并进行分区挂载
    函数部分
    Python中if __name__ == "__main__": 的作用 (整理转自Arkenstone) --感谢!
    python语言基础笔记
    部分示例程序
    转,关于游标
  • 原文地址:https://www.cnblogs.com/ninicwang/p/11533066.html
Copyright © 2011-2022 走看看