GIS 多波段栅格数据按shp提取

一、目标:

GLEAM的多波段蒸散发数据,每个波段代表一年中一天,共365-366d。shp为所研究区域的面(polygon)。需要统计研究区域的蒸散发,即平均的栅格值。

二、主要步骤:

1. 栅格转点 A;

2. 将多波段的栅格值提取到点A;

3. 按面的形状来裁剪点A得到点B;

4. 将点B的属性表filed table导出为excel。

三、ArcGIS、QIS结合的具体实现步骤

1. 栅格转点 A;

2. 将多波段的栅格值提取到点A;

3. 按面的形状来裁剪点A得到点B;

4. 将点B的属性表filed table导出为excel。

由于ArcGIS的属性表转为excel只能存为xls文件,列上限为255?小于需要输出的列数,所以用QGIS另存为xlsx文件。

四、用QGIS解决问题

第一步将栅格转点就遇到麻烦。希望用SAGA工具将栅格转点,但是SAGA的拓展无法启用,报错:CRITICAL    Problem with SAGA installation: SAGA was not found or is not correctly installed

搜索到只言片语SAG不支持多波段数据,遂作罢。

### GIS点数据与栅格数据的关联及叠加分析 #### 数据准备 在进行GIS点数据与栅格数据的关联或叠加分析之前,需准备好相应的输入文件。通常情况下,点数据可以是Shapefile格式中的.shp文件或其他支持的空间向量格式[^4];而栅格数据则是基于像元表示的地表特征。 #### 分析方法概述 为了实现这两类不同性质的数据之间的交互操作,常用的方法包括但不限于: - **提取栅格到点位置**:通过指定每个离散地点坐标处对应的网格单元属性信息来进行转换。 - **缓冲区创建与统计汇总**:围绕着每一个样本站点建立一定范围内的影响区域,并计算该区域内所有覆盖像素平均数或者其他聚合指标。 #### 实现工具和技术手段 多种软件平台提供了执行上述任务的功能模块,例如ArcGIS Pro、QGIS等开源/商业地理信息系统应用。下面将以Python编程语言配合GDAL库为例说明具体做法之一——从栅格图层读取特定地理位置上的数并赋予给矢量要素字段中保存下来。 ```python from osgeo import gdal, ogr import numpy as np def get_raster_value_at_point(raster_path, point_layer_path): # 打开栅格数据集 raster_dataset = gdal.Open(raster_path) # 获取仿射变换参数 geotransform = raster_dataset.GetGeoTransform() # 加载栅格波段 band = raster_dataset.GetRasterBand(1).ReadAsArray().astype(np.float) driver = ogr.GetDriverByName('ESRI Shapefile') dataSource = driver.Open(point_layer_path, 1) # 以可写模式打开shapefile layer = dataSource.GetLayer() new_field = ogr.FieldDefn("raster_val", ogr.OFTReal) layer.CreateField(new_field) for feature in layer: geom = feature.GetGeometryRef() mx, my = geom.GetX(), geom.GetY() px = int((mx - geotransform[0]) / geotransform[1]) py = int((my - geotransform[3]) / geotransform[5]) try: value = float(band[py][px]) feature.SetField("raster_val", value) layer.SetFeature(feature) except Exception as e: print(f"Error processing {feature}: {e}") get_raster_value_at_point('/path/to/raster.tif', '/path/to/points.shp') ``` 这段脚本实现了将位于某一点位上的栅格图像素强度附加至相应记录的新列内[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值