Table of Contents


orbwood - Orbit Spectral Analysis


orbwood in=in_orbit [parameter=value ...]


orbwood analyzes orbits in terms of the Fourier transforms of the coordinates. If spectra are sufficiently linelike, they can be used to find the fundamental frequencies and differentiate between various orbital families (see also orbname(1NEMO) for an alternative approach).

The analysis of 3-dimensional orbits is still under development.


The following parameters are recognized in any order if the keyword is also given:
Input orbit, must be in orbit(5NEMO) format. The number of steps in the orbit must be a power of 2, and must contain equal stepsizes. No default.
Variable(s) to select to fourier analyze. Valid names are: x, y, z, vx, vy, vz. At most NDIM can be selected, if NDIM are selected, orbwood will attempt to label and identify the lines. Default: x,y.
Output table raw spectrum, if desired. The table will contain 3 columns which contain the angular frequency, amplitude and phase (degrees). Default: none.
Maximum number of lines to search for. [Default: 50].
Override the fundamental frequencies assumed for this orbit. Note that the number of fundamental frequencies should be the same as number the number of variables in var=. Default: attempted to retrieve from the analyzed spectra.
Maximum fundamental frequency to search for peaks in the auto- correlation spectrum. [Default: 20]
Maximum frequency difference between two lines to consider them still the same line. This is used in counting occurences of peaks in the auto-correlation table. The output FREQ_DIFF will contain the number of occurences and the frequency of the auto-correlation table. [Default: 0.005].


Here an example shows how to create and analyze the loop orbit that is displayed in Figure 3 of Binney and Spergel (1982):
> mkorbit out=orb3 x=0.49 y=0.00 z=0 vx=1.4*sind(20) vy=1.4*cosd(20) vz=0 
        potname=log potpars=0,0.1,0.1,0.9
> orbint in=orb3 out=orb3.out ’nsteps=4096*10-1’ dt=0.01
        ndiag=4096 nsave=10 mode=leapfrog1
> orbwood in=orb3.out var=x,y
WOOD: (X) final relative resid = 0.00882583 using 11 lines
WOOD: (Y) final relative resid = 0.00889181 using 10 lines
      FREQ logAMP   PHASE       FREQ logAMP   PHASE 
    2.9485 -0.863 -0.3389     2.9485 -0.712 -1.9097 
    1.3576 -1.711 -1.0864     1.3576 -1.866  0.4844 
    7.2545 -3.738  1.3774     7.2545 -3.588 -0.1934 
    2.9560 -5.064  1.2586     2.9560 -4.913 -0.3123 
    8.8454 -5.206 -1.0167     8.8454 -5.072  3.6957 
    1.3636 -5.308  0.8119     1.3636 -5.463  2.3827 
    0.2333 -5.618  1.8340     0.2333 -5.897  0.2632 
    5.6636 -6.009  0.6298     2.9309 -6.231 -1.4457 
    4.5394 -6.327  0.4087     4.5394 -6.404 -1.1621 
    2.9309 -6.382  0.1251     2.9339 -6.615  1.0800 
    2.9339 -6.766  2.6507          -      -       - 
LABEL: fund(1) = 2.94846
LABEL: fund(2) = 2.94846

See Also

orbname(1NEMO) , orbint(1NEMO) , mkorbit(1NEMO) , orbit(5NEMO)

J. Binney & D. Spergel 1982. ApJ 252, 308-321.
J. Binney & D. Spergel 1984.  MNRAS 206 159-177.
D. Wood, 1984.  J. Appl. Math 33, 229.
v=1.4 and E=-0.4 are not consistent for the BS82 example above. My example could also have had v=1.404204003, to get to an exact energy E=-0.4, BS82 isn’t clear if v or E was taken exactly.


orbwood.c (main) wood.c, label.c (functions)
realft.c four1.c (numerical recipes functions)


Peter Teuben

Update History

???              Original program              David Wood
sep-1982          mods                        David Spergel
aug-1983    mods                        James Binney
oct-1986    V2d.1 2D version            David Spergel
dec-93       V3.0 in C (NEMO) + 3d mods    Peter Teuben

Table of Contents