GDAL :处理栅格数据

GDAL 是栅格数据处理模块
OGR 是矢量数据处理模块

一 、读取栅格数据集

GDAL数据驱动,与OGR数据驱动类似,需要先创建某一类型的数据驱动,再创建响应的栅格数据集。 一次性注册所有的数据驱动,但是只能读不能写:gdal.AllRegister() 单独注册某一类型的数据驱动,这样的话可以读也可以写,可以新建数据集

driver = gdal.GetDriverByName('HFA')
driver.Register()

打开已有的栅格数据集:

fn = 'aster.img'
ds = gdal.Open(fn, GA_ReadOnly)
if ds is None:
   print 'Could not open ' + fn
    sys.exit(1)

GeoTransform是一个list,存储着栅格数据集的地理坐标信息,注意栅格数据集的坐标一般都是以左上角为基准的。

adfGeoTransform[0] /* top left x 左上角x坐标*/
adfGeoTransform[1] /* w--e pixel resolution 东西方向上的像素分辨率*/
adfGeoTransform[2] /* rotation, 0 if image is "north up" 如果北边朝上,地图的旋转角度*/
adfGeoTransform[3] /* top left y 左上角y坐标*/
adfGeoTransform[4] /* rotation, 0 if image is "north up" 如果北边朝上,地图的旋转角度*/
adfGeoTransform[5] /* n-s pixel resolution 南北方向上的像素分辨率*/

用GDAL读取栅格数据的其他操作

二 、创建栅格数据集

首先要复制一份数据驱动:

driver = inDataset.GetDriver()

之后新建数据集

Create(<filename>, <xsize>, <ysize>, [<bands>], [<GDALDataType>])

其中bands的默认值为1,GDALDataType的默认类型为GDT_Byte,例如:

outDataset = driver.Create(filename, cols, rows, 1, GDT_Float32)

在这条语句的执行过程中,存储空间已经被分配到硬盘上了

在写入之前,还需要先引入波段对象

outBand = outDataset.GetRasterBand(1

波段对象支持直接写入矩阵,两个参数分别为x向偏移和y向偏移

outBand.WriteArray(ndvi, 0, 0)

地图代数与栅格数据的写入的其他操作

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值