国家局雷达图资源可以用来做进一步处理,但是它是图像格式的,这里需要做进一步处理,提取其中的回波数据块。处理步骤如下:
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,索引值可以较方便地转换为近似回波强度值。
原图如下:
处理后的图像如下:
其中有一块中心区域的十字没有做特殊处理,在使用时,可以做一步的处理。