I am looking at feature tracking in a 2D numpy array, along the lines of Dixon and Wiener 1993 (for tracking precipitating storms)

Identifying features based on threshold is quite trivial using ndimage.label

b_fld=np.zeros(mygrid.fields['rain_rate_A']['data'].shape)

rr=10

b_fld[mygrid.fields['rain_rate_A']['data'] > rr]=1.0

labels, numobjects = ndimage.label(b_fld[0,0,:,:])

(note mygrid.fields['rain_rate_A']['data'] is dimensions time,height, y, x)

using the matplotlib contouring and fetching the vertices I can get a nice list of polygons of rain rate above a certain threshold… Now from here I can just go and implement the Dixon and Wiener methodology but I thought I would check here first to see if anyone know of a object/feature tracking algorithm in numpy/scipy or using numpy arrays (it just seems like something people would want to do!).. i.e. something that looks back and forward in time and identifies polygon movement and identifies objects with temporal persistence..

Cheers!

Scott

Dixon, M., and G. Wiener, 1993: TITAN: Thunderstorm Identification, Tracking, Analysis, and Nowcasting—A Radar-based Methodology. *Journal of Atmospheric and Oceanic Technology*, **10**, 785–797, doi:10.1175/1520-0426(1993)010<0785:TTITAA>2.0.CO;2.