从国家气象局雷达回波图中提取回波数据

国家局雷达图资源可以用来做进一步处理,但是它是图像格式的,这里需要做进一步处理,提取其中的回波数据块。处理步骤如下:

1.读取图像。

2.截取回波 区域。

3.提取图像的RGB分量。

4.根据颜色表,反算DBZ值。

代码如下:

function getImage,file, rElem, gElem, bElem
    ;读取图像:
    img = read_image(file)
    
    ;获取雷达回波区宽度:
    sz = size(img)
    len = sz[3]
    
    ;截取图像,只保留回波区:
    index = indgen(len)
    img = img(*,index, *)
    
    ;提取颜色分量:
    r = bytarr(len,len)
    g = bytarr(len,len)
    b = bytarr(len,len)
    c = bytarr(len,len)

    r(*) = img(0,index,*)
    g(*) = img(1,index,*)
    b(*) = img(2,index,*)
    
    img(0,*,*) = r(*,*)
    img(1,*,*) = g(*,*)
    img(2,*,*) = b(*,*)
    
    ;获取回波强度值:
    for i = 0,14 do begin
        c(where(r eq rElem[i] and g eq gElem[i] and b eq bElem[i])) = i + 1
    endfor

    return, c
end

函数时,rElem,gElem,bElem是雷达回波的颜色条的色标数组。

返回的数组是颜色的索引值,其中0表示没有回波,1表示强度为0-5Dbz,索引值可以较方便地转换为近似回波强度值。

原图如下:

从国家气象局雷达回波图中提取回波数据_第1张图片

处理后的图像如下:

从国家气象局雷达回波图中提取回波数据_第2张图片

其中有一块中心区域的十字没有做特殊处理,在使用时,可以做一步的处理。

你可能感兴趣的:(IDL,天气雷达)