赞
踩
空间数据组织有两种基本形式:矢量数据和栅格数据,与计算机存储图像组织形式类似。GeoTIFF是一种基于 TIFF 的地理空间栅格数据存储格式,是目前被支持最广泛、最通用的空间栅格数据格式之一。
GeoTIFF是TIFF 格式的一种扩展, 支持地理空间参考的TIFF. GeoTIFF 是TIFF规范的一部分。
GDAL是一个开源栅格空间数据转换库,ArcGIS、Google Earth等软件都在用它。用它来保存GeoTiff最合适不过。GDAL成为OSGeo的子项目后,作为一个Python的第三方库,GDAL被包含在osgeo这个名字空间里,所以安装时用:
conda install gdal
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() # 将数据写入硬盘
读取详细代码见上一篇博客中的第三部分数据解析,此处略。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。