Previous Query
Next Query
Calculate average Phi and Psi angles using circular statistics
WITH//convert 180to180 to 0to360 degreesmember measures]conv phi] as iif (measures]phi] <0, measures]phi]+180, measures]phi])// take the sine of phi in radiansMember Measures]sin phi] as' SIN(conv phi](PI()/180))'// take the cosine of phi in radiansMember Measures]cos phi] as' COS(conv phi](PI() /180))'//take the average of the sets defined aboveMEMBER measuresmean sin phi] AS 'avg(NONEMPTY(time]0]:time]2], measures]phi]), measures]sin phi])'MEMBER measuresmean cos phi] AS 'avg(NONEMPTY(time]0]:time]2], measures]phi]), measures]cos phi])'//Evaluate if avg cos phi <0MEMBER measuresmean phi] ASIIF(measuresmean cos phi] <0, ((ATN(mean sin phi]/mean cos phi]))+PI()), ATN(mean sin phi]/mean cos phi]))//convert 180to180 to 0to360 degreesmember measures]conv psi] as iif (measures]psi] <0, measures]psi]+180, measures]psi])//the same as before for psiMember Measures]sin psi] asSIN(conv psi](PI() /180))Member Measures]cos psi] as' COS(conv psi](PI() /180))'MEMBER measuresmean sin psi] AS 'avg(NONEMPTY(time]0]:time]2], measures]psi]), measures]sin psi])'MEMBER measuresmean cos psi] AS 'avg(NONEMPTY(time]0]:time]2], measures]psi]), measures]cos psi])'MEMBER measuresmean psi] ASIIF(measuresmean cos psi] <0, ((ATN(mean sin psi]/mean cos psi]))+PI()), ATN(mean sin psi]/mean cos psi]))//convert radians back to degreesMEMBER measuresdeg mean phi] AS (mean phi](180/PI()))MEMBER measuresdeg mean psi] AS (mean psi](180/PI()))//convert back to 180to180 from 0to360member measurestrue mean phi] AS iif(measuresphi] <0, measuresdeg mean phi]180, measuresdeg mean phi])member measurestrue mean psi] AS iif(measurespsi] <0, measuresdeg mean psi]180, measuresdeg mean psi])SELECT {mean sin phi], mean cos phi],true mean phi], mean sin psi], mean cos psi], true mean psi]} on 0, Descendants(ID]Hierarchy]structure]11as1], 1) on 1FROM dynameomics]WHERE (Run]1], time]0]:time]2], Temp]498], Conditions]cs=4,nbcycl=3,cor=8]);