# Identification of Turning Points in a Signal

8 messages
Open this post in threaded view
|

## Identification of Turning Points in a Signal

 Dear Friends, Wishing you the best of the day. I have a data (Cosmic Ray) which exhibit flow patterns of a sine/cosine wave, i.e. decreasing/increasing and registering crests (points maximal increases) and troughs/pits (points maximal decreases). These turning points are of interest to me. With pastecs package and a few lines of code as (the residual is coming from Fourier transformation of the data): library(pastecs)  tp<-turnpoints(data\$residual)  res<-(1:length(data\$residual))[tp\$pit]  minima<-which(tp\$pit & data\$residual<= -100)  dates<-data\$date[minima]  k<-data\$residual[minima] I usually pick all the turning points (trough) equal or below -100. If I change the <= to >=, I pick all the crests. Now, without first transforming the data, I wish to pick the same turning points in the raw data. Indeed, the difference between the transformed data and the raw data lies only in the amplitude of the crest or trough, otherwise, the crests and trough are the same in both signals. When I tried the above code in the raw signal, the warning/error message is: Warning message: In tp\$pit & data\$residual <= -100 :   longer object length is not a multiple of shorter object length. A sample of the raw data is: 03 10 01 6.20636953199224 03 10 02 6.90829266565563 03 10 03 6.40434785174345 03 10 04 6.33235573547028 03 10 05 5.99039318317273 03 10 06 5.09049172975812 03 10 07 4.35257253795814 03 10 08 4.49655677050448 03 10 09 4.49655677050448 03 10 10 4.4425626832996 03 10 11 5.16248384603129 03 10 12 5.72042274714835 03 10 13 6.26036361919711 03 10 14 5.8284109215581 03 10 15 5.30646807857763 03 10 16 5.32446610764592 03 10 17 5.68442668901176 03 10 18 6.33235573547028 03 10 19 6.80030449124588 03 10 20 7.26825324702148 03 10 21 6.83630054938246 03 10 22 2.53477160206063 03 10 23 2.55276963112892 03 10 24 2.39078736951429 03 10 25 -0.48889728141246 03 10 26 -0.110938670978323 03 10 27 0.303015997592397 03 10 28 1.81485043932894 03 10 29 -8.04806949009518 03 10 30 -16.1471825708267 03 10 31 -17.0470840242413 03 11 01 -13.6094604721975 03 11 02 -8.98396700164638 03 11 03 -6.28426264140255 03 11 04 -5.78031782749036 03 11 05 -3.72854251370505 03 11 06 -2.95462726376849 03 11 07 -4.52045579270991 03 11 08 -3.54856222302213 03 11 09 -0.884853920914888 03 11 10 0.447000230138735 03 11 11 0.0150475324997218 03 11 12 -0.308916990729538 03 11 13 0.0690416197045984 03 11 14 -0.110938670978323 03 11 15 -0.938848008119764 03 11 16 -3.02661938004166 03 11 17 -3.92652083345627 03 11 18 -3.24259572886117 03 11 19 -1.67676719991974 03 11 20 -2.30669821730997 03 11 21 -2.9366292347002 03 11 22 -2.75664894401728 03 11 23 -3.44057404861238 03 11 24 -4.34047550202699 03 11 25 -3.87252674625139 03 11 26 -2.72065288588069 03 11 27 -2.25270413010509 03 11 28 -1.37080070575878 03 11 29 -0.0389465547051547 03 11 30 0.033045561568014 the first three columns are year, month and day, the last column % CR variation. abline (h=0) specifies values below the average. I am interested in picking the time and magnitude of all the turning points below zero. Thank you for assisting me. Best regards Ogbos ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Identification of Turning Points in a Signal

 Sorry no one replied sooner. Note that I find your question difficult to follow. It sounds like you have two datasets, each with different sizes. (e.g. Two data.frame objects, each with a different numbers of rows). Given that tp\$pits is a logical index, trying to apply it to a vector (or data.frame) of a different size is problematic. Assuming that you're dealing with datasets of different sizes, the simplest solution is to modify your code, such that they're the same size. On Mon, Feb 10, 2020 at 6:40 PM Ogbos Okike <[hidden email]> wrote: > > Dear Friends, > Wishing you the best of the day. > > I have a data (Cosmic Ray) which exhibit flow patterns of a > sine/cosine wave, i.e. decreasing/increasing and registering crests > (points maximal increases) and troughs/pits (points maximal > decreases). These turning points are of interest to me. With pastecs > package and a few lines of code as (the residual is coming from > Fourier transformation of the data): > library(pastecs) >  tp<-turnpoints(data\$residual) >  res<-(1:length(data\$residual))[tp\$pit] >  minima<-which(tp\$pit & data\$residual<= -100) >  dates<-data\$date[minima] >  k<-data\$residual[minima] > I usually pick all the turning points (trough) equal or below -100. If > I change the <= to >=, I pick all the crests. > > Now, without first transforming the data, I wish to pick the same > turning points in the raw data. Indeed, the difference between the > transformed data and the raw data lies only in the amplitude of the > crest or trough, otherwise, the crests and trough are the same in both > signals. > > When I tried the above code in the raw signal, the warning/error message is: > Warning message: > In tp\$pit & data\$residual <= -100 : >   longer object length is not a multiple of shorter object length. > > A sample of the raw data is: > 03 10 01 6.20636953199224 > 03 10 02 6.90829266565563 > 03 10 03 6.40434785174345 > 03 10 04 6.33235573547028 > 03 10 05 5.99039318317273 > 03 10 06 5.09049172975812 > 03 10 07 4.35257253795814 > 03 10 08 4.49655677050448 > 03 10 09 4.49655677050448 > 03 10 10 4.4425626832996 > 03 10 11 5.16248384603129 > 03 10 12 5.72042274714835 > 03 10 13 6.26036361919711 > 03 10 14 5.8284109215581 > 03 10 15 5.30646807857763 > 03 10 16 5.32446610764592 > 03 10 17 5.68442668901176 > 03 10 18 6.33235573547028 > 03 10 19 6.80030449124588 > 03 10 20 7.26825324702148 > 03 10 21 6.83630054938246 > 03 10 22 2.53477160206063 > 03 10 23 2.55276963112892 > 03 10 24 2.39078736951429 > 03 10 25 -0.48889728141246 > 03 10 26 -0.110938670978323 > 03 10 27 0.303015997592397 > 03 10 28 1.81485043932894 > 03 10 29 -8.04806949009518 > 03 10 30 -16.1471825708267 > 03 10 31 -17.0470840242413 > 03 11 01 -13.6094604721975 > 03 11 02 -8.98396700164638 > 03 11 03 -6.28426264140255 > 03 11 04 -5.78031782749036 > 03 11 05 -3.72854251370505 > 03 11 06 -2.95462726376849 > 03 11 07 -4.52045579270991 > 03 11 08 -3.54856222302213 > 03 11 09 -0.884853920914888 > 03 11 10 0.447000230138735 > 03 11 11 0.0150475324997218 > 03 11 12 -0.308916990729538 > 03 11 13 0.0690416197045984 > 03 11 14 -0.110938670978323 > 03 11 15 -0.938848008119764 > 03 11 16 -3.02661938004166 > 03 11 17 -3.92652083345627 > 03 11 18 -3.24259572886117 > 03 11 19 -1.67676719991974 > 03 11 20 -2.30669821730997 > 03 11 21 -2.9366292347002 > 03 11 22 -2.75664894401728 > 03 11 23 -3.44057404861238 > 03 11 24 -4.34047550202699 > 03 11 25 -3.87252674625139 > 03 11 26 -2.72065288588069 > 03 11 27 -2.25270413010509 > 03 11 28 -1.37080070575878 > 03 11 29 -0.0389465547051547 > 03 11 30 0.033045561568014 > the first three columns are year, month and day, the last column % CR variation. > > abline (h=0) specifies values below the average. I am interested in > picking the time and magnitude of all the turning points below zero. > > Thank you for assisting me. > Best regards > Ogbos > > ______________________________________________ > [hidden email] mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Identification of Turning Points in a Signal

Open this post in threaded view
|

## Re: Identification of Turning Points in a Signal

Open this post in threaded view
|

## Re: Identification of Turning Points in a Signal

Open this post in threaded view
|