当前位置:   article > 正文

python读取和保存GeoTiff格式数据_geotiff python

geotiff python
前言

空间数据组织有两种基本形式:矢量数据和栅格数据,与计算机存储图像组织形式类似。GeoTIFF是一种基于 TIFF 的地理空间栅格数据存储格式,是目前被支持最广泛、最通用的空间栅格数据格式之一。
GeoTIFF是TIFF 格式的一种扩展, 支持地理空间参考的TIFF. GeoTIFF 是TIFF规范的一部分。

一、GDAL

GDAL是一个开源栅格空间数据转换库,ArcGIS、Google Earth等软件都在用它。用它来保存GeoTiff最合适不过。GDAL成为OSGeo的子项目后,作为一个Python的第三方库,GDAL被包含在osgeo这个名字空间里,所以安装时用:

conda install gdal
  • 1
二、写入GeoTiff
from osgeo import gdal

def array2raster(outpath, data_array, geoTransform):
    """
    将数据写入GeoTiff栅格
    :param outpath:输出GeoTiff栅格文件路径+文件名
    :param data_array: 原写入数据
    :param geoTransform: 仿射矩阵,含有 6 个元素的元组, [左上角的x坐标, 像素宽度, 
    行旋转(通常为零), 左上角的y坐标, 列旋转(通常为零), 像素高度(北半球上图像为负值)]
    :return:
    """
    cols = data_array.shape[1]
    rows = data_array.shape[0]
    driver = gdal.GetDriverByName('Gtiff')
    outRaster = driver.Create(outpath, cols, rows, 1, gdal.GDT_Int16, options=["TILED=YES", "COMPRESS=LZW"])    # 压缩方式为LZW
    outRaster.SetGeoTransform(geoTransform)  # 参数2,6为水平垂直分辨率,参数3,5表示图片是指北的
    # 获取地理坐标系统信息,用于选取需要的地理坐标系统
    sr = osr.SpatialReference()
    sr.SetWellKnownGeogCS('WGS84')
    # 给新建图层赋予投影信息
    outRaster.SetProjection(sr.ExportToWkt())  # 将几何对象的数据导出为wkt格式
    outband = outRaster.GetRasterBand(1)
    outband.SetNoDataValue(-9999)      # NoData值设置
    outband.WriteArray(data_array)
    outRaster.FlushCache() # 将数据写入硬盘
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
三、读取GeoTiff

读取详细代码见上一篇博客中的第三部分数据解析,此处略。

END
参考资料
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/329881
推荐阅读
相关标签
  

闽ICP备14008679号