Identifying structures on RPs

Everything about quantification of recurrence plots and recurrence networks.
Post Reply
oangelo
Junior
Posts: 2
Joined: Fri Nov 23, 2012 04:13
Affiliation (Univ., Inst., Dept.): Universidade Federal Fluminense
Location: Brazil - Rio de Janeiro
Research field: Physics - complex systems

Identifying structures on RPs

Post by oangelo »

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.
User avatar
Norbert
Expert
Posts: 194
Joined: Wed Jan 4, 2006 11:03
Affiliation (Univ., Inst., Dept.): Potsdam Institute for Climate Impact Research, Germany
Location: Potsdam, Germany
Location: Potsdam Institute for Climate Impact Research, Germany

Re: Identifying structures on RPs

Post by Norbert »

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; }
}
oangelo
Junior
Posts: 2
Joined: Fri Nov 23, 2012 04:13
Affiliation (Univ., Inst., Dept.): Universidade Federal Fluminense
Location: Brazil - Rio de Janeiro
Research field: Physics - complex systems

Re: Identifying structures on RPs

Post by oangelo »

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

Regards.
Post Reply