Identifying structures on RPs

Everything about quantification of recurrence plots.

Identifying structures on RPs

I'm having a hard time trying to found on the literature how to classify structures of the RPs, somebody could point me a reference or explain.
I am building my own code. The code can measure the length of the maximal main/secondary diagonal length and the maximal vertical/horizontal length of a structure of a RP. I supose, that I should say that a cluster is a main diagonal line, case the length of the main diagonal is much bigger then the other lengths, but I'm not sure it is the right way.
oangelo
Junior

Posts: 2
Joined: Fri Nov 23, 2012 04:13

Re: Identifying structures on RPs

hello angelo,

i would say that the definitions of diagonal and vertical lines in a RP are quite clear and well explained in several publications, e.g., in
N. Marwan, M. C. Romano, M. Thiel, J. Kurths: Recurrence Plots for the Analysis of Complex Systems, Physics Reports, 438(5-6), 237-329, DOI:10.1016/j.physrep.2006.11.001

simply speaking a diagonal line are connected points in a RP in diagonal direction, i.e., R_(i,i+j) = 1 for i=a,...,b.

your other question about the clusters is not really clear to me. are you asking to just remove the main diagonal?

best regards
norbert

PS: here is some example code how to fill a histogram of lengths of diagonal lines. here the histogram counts each diagonal line as two lines as finally i consider the entire RP (lower and upper triangle of the matrix) but the implementation considers only the lower triangle (and assumes that the RP is symmetric).
Code: Select all
`for ( i = 0; i < size; i++ ) { /* for each point */    counterL = 0;    for ( j = 0; j < size-i; j++ ) { /* look in diagonal direction */        /* compute the distance between the phase space points */        d = distance( dataPtr + cols * (i+j), dataPtr + cols * j );        /* check whether we have recurrence point */        if ( d < e && j < size-i) {             /* consider only RP outside the Theiler window */            if(i >= theilerCorr) ++counterL; /* counter for diagonal lines */        } else {            if (counterL > 0 && counterL < size) histL[counterL] += 2;            counterL = 0;        }    }    if (counterL > 0 && counterL <  size) { histL[counterL] += 2; counterL = 0; }    if (counterL > 0 && counterL == size) { histL[counterL] += 1; counterL = 0; }}` Norbert
Expert

Posts: 173
Joined: Wed Jan 4, 2006 11:03
Location: Potsdam Institute for Climate Impact Research, Germany

Re: Identifying structures on RPs

Thanks Nobert,
now I understand, it is very simple.

Regards.
oangelo
Junior

Posts: 2
Joined: Fri Nov 23, 2012 04:13 