关于WASP基于CORINE2018粗糙度图制作及lookup table的技术咨询
关于CORINE 2018生成粗糙度长度图及WASP粗糙度 lookup table的解惑
WASP粗糙度Lookup Table的位置
你猜的没错,WASP对应的CORINE土地覆盖粗糙度长度lookup table确实内置在windkit库中,可直接通过windkit.landcover模块调用。该表针对CORINE 2018的土地覆盖分类编码定制,每个编码对应WASP标准下的粗糙度长度(z0)值。
查看或调用该表的代码示例:
from windkit.landcover import corine_roughness_lookup # 打印完整的lookup table print(corine_roughness_lookup)
基于CORINE 2018生成粗糙度长度图的具体步骤
使用windkit结合CORINE数据生成粗糙度长度图的流程如下:
- 读取CORINE 2018栅格数据:用rasterio或windkit的栅格工具加载土地覆盖分类图
- 映射粗糙度值:利用内置的
corine_roughness_lookup将每个像元的土地覆盖编码转换为对应的z0值 - 输出栅格结果:将生成的z0数组保存为新的栅格文件,保留原CORINE数据的地理元数据
示例代码片段:
import rasterio import numpy as np from windkit.landcover import corine_roughness_lookup # 读取CORINE 2018栅格 with rasterio.open("corine_2018.tif") as src: corine_array = src.read(1) meta = src.meta.copy() # 映射粗糙度长度,处理未匹配的分类值(设为NaN) def map_z0(corine_code): return corine_roughness_lookup.get(corine_code, np.nan) z0_array = np.vectorize(map_z0)(corine_array) # 更新元数据并保存栅格 meta.update(dtype=rasterio.float32, count=1) with rasterio.open("roughness_length.tif", "w", **meta) as dst: dst.write(z0_array.astype(rasterio.float32), 1)
内容的提问来源于stack exchange,提问作者Hongbin
相关产品推荐
相关产品推荐

