用Python np.array对连续值进行分组

2024-09-30 01:19:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数组(500*490)长的数据。实际上是雷达的原始数据。我计划创建某种跟踪,根据阵雨和雷暴在阵列中的值来查找它们。值的范围从0到75。在

为了根据treshold值查找阵雨和雷暴,我从一个原始h5图像创建了一个数组,使用h5py读取文件,然后从中创建一个数组。在

import numpy as np
from numpy import inf
import pylab as pl
import math
import h5py
import scipy
import scipy.spatial

np.set_printoptions(threshold=10)

# read data
# *********
print "Reading & converting data data (mm/u - dbz)"
f = h5py.File('test.h5','r')
data = f.get('image1/image_data')
data_as_array = np.array(data)
datadbz = 20 * np.ma.log10(data_as_array)
print "*** Data read & converted"
print "raw array data = 'data_as_array'"
print "dbz array data = 'datadbz'"
print ""

# print raw data
# **************
print "Array from h5-file"
print "******************"
print data_as_array
print "*"
print ""

datadbz[datadbz == -inf] = 0
datadbz[datadbz == 96.32946777] = 0
datadbz[datadbz < 40] = 0

print "Array in dbz"
print "************"
print datadbz
print ""

# > 40 dbz
pixelarray = np.array(zip(*np.where(datadbz > 40)))
print "Array wich cores (> 40 dbz)"
print "***************************"
print pixelarray
print "*"
print ""

# > 55 dbz
hailarray = np.array(zip(*np.where(datadbz > 55)))
print "Array with cores (> 55 dbz)"
print "***************************"
print hailarray
print "*"
print ""

我需要使用的两个数组是数组“pixelarray”,它类似于pythonshell中的以下代码片段

^{pr2}$

另一个是“hailarray”,在pythonshell中看起来像这样

Array with cores (> 55 dbz)
***************************
[[  7 104]
 [  8 103]
 [ 27 194]
 ..., 
 [433 272]
 [435 272]
 [438 271]]
*

我陷入困境的原因是。。。在

如果这是有问题的雷达图像:

radarimage

数组包含混乱,应丢弃并忽略。这些是图像上的小斑点和点。不过,我需要的是暴风雨/阵雨。在

为了做到这一点,我需要弄清楚如何区分杂波(随机点(数组中的值)和图像中的真实回波(数组中的数据范围)

因为我使用的数组是这样的,每个值的两个值代表检测的x像素和y像素

[[  5 106]
 [  5 107]
 [  6 105]
 ..., 
 [440 270]
 [440 271]
 [489 151]]
*

我在考虑把像素范围分组。我知道在数组中使用“连续值”并将它们组合在一起的可能性,但我还没有找到一种正确的方法,因为我的数组看起来更像某种矩阵。在

因为我不是python方面的专家,所以我希望能有人给我指出正确的方向。一旦我完成了这一步,就只需要找出哪些群体的维度比某个treshold值更大,这样我就可以摆脱那些杂乱无章的地方,只剩下风暴了。在

然后我可以把这些较大的群体的中心作为风暴的中心,跟踪应该是完整的。在

因此,如果有人能帮我在探测阵列中设置连续像素范围的搜索,我将永远感激,因为我忍不住想要在这里发明轮子的感觉。在


Tags: 图像importdataasnp像素数组array

热门问题