Raster layer栅格图层及其显示、访问和检索 - TheWrangler/sqGis GitHub Wiki
Raster layer栅格图层
- 栅格图层实际是一张位图,每个像素或cell表示地球表面的一块区域
- 栅格图层使用Band进行组织
- 每一个band表示一种信息
- 一个常见的应用是使用三个band分别表示红、绿、蓝三色
栅格信息Band的使用方式
- 如果一个栅格数据只有一个band,则像素值可用于在调色板palette进行颜色索引
- 如果一个栅格数据只有一个band并且没有提供调色板palette,则像素可以灰度形式grayscale显示,或者使用伪彩色算法pseudocolor algorithm计算颜色值
- 如果一个栅格数据有多个band,典型的应用是组合这些band去产生颜色值
- 此外,一个含有多个band的栅格数据可以选择一个band去进行调色板palette、灰度图、伪彩图等方式显示
Raster data的显示
- 与栅格Band关联的drawing style决定了栅格数据如何显示
- Drawing style的类型
- PalettedColor
- SingleBandGray
- SingleBandPseudoColor
- PalettedSingleBandGray
- PalettedSingleBandPseudoColor
- MultiBandColor
- MultiBandSIngleBandGray
- MultiBandSingBandPseudoColor
- 调用QgsRaterLayer.setDrawingStyle()设置绘制样式
- 调用setXXXBand()选择用于绘制的band
- 当栅格图层显示样式改变后,QGis病不会自动更细地图,需要进行如下操作
QgsRasterLayer.setImageCache(None) QgsRasterLayer.triggerRepaint()
栅格数据的访问
- 使用QgsRasterDataProvider的identify函数获取某个地理坐标的band值
values = provider.identify(QgsPoint(x,y),QgsRaster.IdentifyFormatValue); if values.isValid() for band,value in values.results().items(): ...
- 使用QgsRasterDataProvider的block()获取一块区域的band值
QgsRasterInterface
待补充。。。