PaPCo uses a PANEL VECTOR to control the positioning of a specific plot panel. To do this, each user-written plotting routine must include the call
setpanel(panel)
where panel is the PANEL VECTOR as described in Section
4.3.2. This call simply sets the viewport for the user's plot
using the IDL system variable !P.POSITION.
panel is one of the variables that is passed to the user's plot routine
by the PaPCo.
The information contained in this vector can be used to further customize the user's plot. For example, the user can subdivide this viewport further to plot individual images, or decrease the plot height to add auxiliary x-axes.
The plot_type module template included in PaPCo and
all the modules currently included in PaPCo adhere to these simple rules:
panel(0)=0), then labels for the
x-axis have to be plotted. At minimum this would be a time-axis, but
auxiliary information such as ephemeris information might be useful to add
here.
papco_autorange.pro for color spectrograms and ylim.pro for
simple line plots. However, any simple scaling routine will fail to yield
good plotting limits at times, and for this purpose PaPCo offers the
possibility to override the automatic y-limits provided by the user. For
this purpose each plotting routine needs to include a common block
common yscale, yscl where yscl is an array of four-element vectors.
There are as many array entries as there are panels, and each element has
the following meaning (where * refers to the panel number):
With the old T90 format, all time was a continuous running number of seconds since Jan 1. 1990. Apart from being limiting (nothing before 1990 could be added), the plotting routines also ran into serious problem plotting in T90: the IDL plot routine internally scales everything to a float, so as T90 numbers got big rounding problems appeared. Also, converting to T90 could be time-intensive.
Consequently, a considerable amount of effort has been invested in adopting a new time standard for PaPCo: MJDT (modified Julian date plus seconds since midnight of that day). The PaPCo zooming function is now independent of whatever time axis a module actually uses. The following convention has been adopted for all new modules (the old ones using T90 are still compatible, too):
All data passed to the plotting routine has it's time array reduced to the number of seconds since the start of the start day of the plot. The existing PaPCo module template adhere to this standard, and there is some auxiliary support for its use (like functions for making time labels of various types).