App-SeismicUnixGui
view release on metacpan or search on metacpan
lib/App/SeismicUnixGui/sunix/plot/ximage.pm view on Meta::CPAN
DATE:
DESCRIPTION:
Version:
=head2 USE
=head3 NOTES
=head4 Examples
=head3 SEISMIC UNIX NOTES
XIMAGE - X IMAGE plot of a uniformly-sampled function f(x1,x2)
ximage n1= [optional parameters] <binaryfile
X Functionality:
Button 1 Zoom with rubberband box
Button 2 Show mouse (x1,x2) coordinates while pressed
q or Q key Quit
s key Save current mouse (x1,x2) location to file
p or P key Plot current window with pswigb (only from disk files)
a or page up keys enhance clipping by 10%
c or page down keys reduce clipping by 10%
up,down,left,right keys move zoom window by half width/height
i or +(keypad) zoom in by factor 2
o or -(keypad) zoom out by factor 2
... change colormap interactively
r install next RGB - colormap
R install previous RGB - colormap
h install next HSV - colormap
H install previous HSV - colormap
H install previous HSV - colormap
(Move mouse cursor out and back into window for r,R,h,H to take effect)
Required Parameters:
n1 number of samples in 1st (fast) dimension
Optional Parameters:
d1=1.0 sampling interval in 1st dimension
f1=0.0 first sample in 1st dimension
n2=all number of samples in 2nd (slow) dimension
d2=1.0 sampling interval in 2nd dimension
f2=0.0 first sample in 2nd dimension
mpicks=/dev/tty file to save mouse picks in
perc=100.0 percentile used to determine clip
clip=(perc percentile) clip used to determine bclip and wclip
bperc=perc percentile for determining black clip value
wperc=100.0-perc percentile for determining white clip value
bclip=clip data values outside of [bclip,wclip] are clipped
wclip=-clip data values outside of [bclip,wclip] are clipped
balance=0 bclip & wclip individually
=1 set them to the same abs value
if specified via perc (avoids colorbar skew)
cmap=hsv\'n\' or rgb\'m\' \'n\' is a number from 0 to 13
\'m\' is a number from 0 to 11
cmap=rgb0 is equal to cmap=gray
cmap=hsv1 is equal to cmap=hue
(compatibility to older versions)
legend=0 =1 display the color scale
units= unit label for legend
legendfont=times_roman10 font name for title
verbose=1 =1 for info printed on stderr (0 for no info)
xbox=50 x in pixels of upper left corner of window
ybox=50 y in pixels of upper left corner of window
wbox=550 width in pixels of window
hbox=700 height in pixels of window
lwidth=16 colorscale (legend) width in pixels
lheight=hbox/3 colorscale (legend) height in pixels
lx=3 colorscale (legend) x-position in pixels
ly=(hbox-lheight)/3 colorscale (legend) y-position in pixels
x1beg=x1min value at which axis 1 begins
x1end=x1max value at which axis 1 ends
d1num=0.0 numbered tic interval on axis 1 (0.0 for automatic)
f1num=x1min first numbered tic on axis 1 (used if d1num not 0.0)
n1tic=1 number of tics per numbered tic on axis 1
grid1=none grid lines on axis 1 - none, dot, dash, or solid
label1= label on axis 1
x2beg=x2min value at which axis 2 begins
x2end=x2max value at which axis 2 ends
d2num=0.0 numbered tic interval on axis 2 (0.0 for automatic)
f2num=x2min first numbered tic on axis 2 (used if d2num not 0.0)
n2tic=1 number of tics per numbered tic on axis 2
grid2=none grid lines on axis 2 - none, dot, dash, or solid
label2= label on axis 2
labelfont=Erg14 font name for axes labels
title= title of plot
titlefont=Rom22 font name for title
windowtitle=ximage title on window
labelcolor=blue color for axes labels
titlecolor=red color for title
gridcolor=blue color for grid lines
style=seismic normal (axis 1 horizontal, axis 2 vertical) or
seismic (axis 1 vertical, axis 2 horizontal)
blank=0 This indicates what portion of the lower range
to blank out (make the background color). The
value should range from 0 to 1.
plotfile=plotfile.ps filename for interactive ploting (P)
curve=curve1,curve2,... file(s) containing points to draw curve(s)
npair=n1,n2,n2,... number(s) of pairs in each file
curvecolor=color1,color2,... color(s) for curve(s)
blockinterp=0 whether to use block interpolation (0=no, 1=yes)
NOTES:
The curve file is an ascii file with the points specified as x1 x2
pairs separated by a space, one pair to a line. A "vector" of curve
files and curve colors may be specified as curvefile=file1,file2,etc.
and curvecolor=color1,color2,etc, and the number of pairs of values
in each file as npair=npair1,npair2,... .
Author: Dave Hale, Colorado School of Mines, 08/09/90
Stewart A. Levin, Mobil - Added ps print option
Brian Zook, Southwest Research Institute, 6/27/96, added blank option
Toralf Foerster, Baltic Sea Research Institute, 9/15/96, new colormaps
Berend Scheffers, Delft, colorbar (legend)
Brian K. Macy, Phillips Petroleum, 11/27/98, added curve plotting option
G.Klein, GEOMAR Kiel, 2004-03-12, added cursor scrolling and
interactive change of zoom and clipping.
Zhaobo Meng, ConocoPhillips, 12/02/04, added amplitude display
Garry Perratt, Geocon, 08/04/05, modified perc handling to center colorbar if balance==1.
INTL2B_block - blocky interpolation of a 2-D array of bytes
intl2b_block blocky interpolation of a 2-D array of bytes
Function Prototype:
void intl2b_block(int nxin, float dxin, float fxin,
int nyin, float dyin, float fyin, unsigned char *zin,
int nxout, float dxout, float fxout,
int nyout, float dyout, float fyout, unsigned char *zout);
Input:
nxin number of x samples input (fast dimension of zin)
dxin x sampling interval input
fxin first x sample input
nyin number of y samples input (slow dimension of zin)
dyin y sampling interval input
fyin first y sample input
zin array[nyin][nxin] of input samples (see notes)
nxout number of x samples output (fast dimension of zout)
dxout x sampling interval output
fxout first x sample output
nyout number of y samples output (slow dimension of zout)
dyout y sampling interval output
fyout first y sample output
Output:
zout array[nyout][nxout] of output samples (see notes)
Notes:
The arrays zin and zout must passed as pointers to the first element of
a two-dimensional contiguous array of unsigned char values.
Constant extrapolation of zin is used to compute zout for
output x and y outside the range of input x and y.
Author: James Gunning, CSIRO Petroleum 1999. Hacked from
intl2b() by Dave Hale, Colorado School of Mines, c. 1989-1991
=head2 CHANGES and their DATES
=cut
use Moose;
our $VERSION = '0.0.1';
use aliased 'App::SeismicUnixGui::misc::L_SU_global_constants';
my $get = L_SU_global_constants->new();
my $var = $get->var();
my $empty_string = $var->{_empty_string};
my $ximage = {
_balance => '',
_bclip => '',
_blank => '',
_blockinterp => '',
_bperc => '',
_clip => '',
_cmap => '',
_curve => '',
_curvecolor => '',
_curvefile => '',
_d1 => '',
_d1num => '',
_d2 => '',
_d2num => '',
_f1 => '',
_f1num => '',
_f2 => '',
_f2num => '',
_grid1 => '',
_grid2 => '',
_gridcolor => '',
_hbox => '',
_label1 => '',
_label2 => '',
_labelcolor => '',
_labelfont => '',
_legend => '',
_legendfont => '',
_lheight => '',
_lwidth => '',
_lx => '',
_ly => '',
_mpicks => '',
_n1 => '',
_n1tic => '',
_n2 => '',
_n2tic => '',
_npair => '',
_perc => '',
_plotfile => '',
_style => '',
_title => '',
_titlecolor => '',
_titlefont => '',
_units => '',
_verbose => '',
_wbox => '',
_wclip => '',
_windowtitle => '',
_wperc => '',
_x1beg => '',
_x1end => '',
_x2beg => '',
_x2end => '',
_xbox => '',
_ybox => '',
_Step => '',
_note => '',
};
=head2 sub Step
collects switches and assembles bash instructions
by adding the program name
=cut
sub Step {
$ximage->{_Step} = 'ximage' . $ximage->{_Step};
return ( $ximage->{_Step} );
}
=head2 sub note
collects switches and assembles bash instructions
by adding the program name
=cut
sub note {
$ximage->{_note} = 'ximage' . $ximage->{_note};
return ( $ximage->{_note} );
}
=head2 sub clear
=cut
sub clear {
$ximage->{_balance} = '';
$ximage->{_bclip} = '';
$ximage->{_blank} = '';
$ximage->{_blockinterp} = '';
$ximage->{_bperc} = '';
$ximage->{_clip} = '';
$ximage->{_cmap} = '';
$ximage->{_curve} = '';
$ximage->{_curvecolor} = '';
$ximage->{_curvefile} = '';
$ximage->{_d1} = '';
$ximage->{_d1num} = '';
$ximage->{_d2} = '';
$ximage->{_d2num} = '';
$ximage->{_f1} = '';
$ximage->{_f1num} = '';
$ximage->{_f2} = '';
$ximage->{_f2num} = '';
$ximage->{_grid1} = '';
$ximage->{_grid2} = '';
$ximage->{_gridcolor} = '';
$ximage->{_hbox} = '';
$ximage->{_label1} = '';
$ximage->{_label2} = '';
$ximage->{_labelcolor} = '';
$ximage->{_labelfont} = '';
$ximage->{_legend} = '';
$ximage->{_legendfont} = '';
$ximage->{_lheight} = '';
$ximage->{_lwidth} = '';
$ximage->{_lx} = '';
$ximage->{_ly} = '';
$ximage->{_mpicks} = '';
$ximage->{_n1} = '';
$ximage->{_n1tic} = '';
$ximage->{_n2} = '';
$ximage->{_n2tic} = '';
$ximage->{_npair} = '';
$ximage->{_perc} = '';
$ximage->{_plotfile} = '';
$ximage->{_style} = '';
$ximage->{_title} = '';
$ximage->{_titlecolor} = '';
$ximage->{_titlefont} = '';
$ximage->{_units} = '';
$ximage->{_verbose} = '';
$ximage->{_wbox} = '';
$ximage->{_wclip} = '';
$ximage->{_windowtitle} = '';
$ximage->{_wperc} = '';
$ximage->{_x1beg} = '';
$ximage->{_x1end} = '';
$ximage->{_x2beg} = '';
$ximage->{_x2end} = '';
$ximage->{_xbox} = '';
$ximage->{_ybox} = '';
$ximage->{_Step} = '';
$ximage->{_note} = '';
}
=head2 sub absclip
=cut
sub absclip {
my ( $self, $clip ) = @_;
if ( $clip ne $empty_string ) {
$ximage->{_clip} = $clip;
$ximage->{_note} = $ximage->{_note} . ' clip=' . $ximage->{_clip};
$ximage->{_Step} = $ximage->{_Step} . ' clip=' . $ximage->{_clip};
}
else {
print("ximage, absclip, missing clip,\n");
}
}
=head2 sub balance
=cut
sub balance {
my ( $self, $balance ) = @_;
lib/App/SeismicUnixGui/sunix/plot/ximage.pm view on Meta::CPAN
sub label2 {
my ( $self, $label2 ) = @_;
if ( $label2 ne $empty_string ) {
$ximage->{_label2} = $label2;
$ximage->{_note} = $ximage->{_note} . ' label2=' . $ximage->{_label2};
$ximage->{_Step} = $ximage->{_Step} . ' label2=' . $ximage->{_label2};
}
else {
print("ximage, label2, missing label2,\n");
}
}
=head2 sub labelcolor
=cut
sub labelcolor {
my ( $self, $labelcolor ) = @_;
if ( $labelcolor ne $empty_string ) {
$ximage->{_labelcolor} = $labelcolor;
$ximage->{_note} =
$ximage->{_note} . ' labelcolor=' . $ximage->{_labelcolor};
$ximage->{_Step} =
$ximage->{_Step} . ' labelcolor=' . $ximage->{_labelcolor};
}
else {
print("ximage, labelcolor, missing labelcolor,\n");
}
}
=head2 sub labelfont
=cut
sub labelfont {
my ( $self, $labelfont ) = @_;
if ( $labelfont ne $empty_string ) {
$ximage->{_labelfont} = $labelfont;
$ximage->{_note} =
$ximage->{_note} . ' labelfont=' . $ximage->{_labelfont};
$ximage->{_Step} =
$ximage->{_Step} . ' labelfont=' . $ximage->{_labelfont};
}
else {
print("ximage, labelfont, missing labelfont,\n");
}
}
=head2 sub legend
=cut
sub legend {
my ( $self, $legend ) = @_;
if ( $legend ne $empty_string ) {
$ximage->{_legend} = $legend;
$ximage->{_note} = $ximage->{_note} . ' legend=' . $ximage->{_legend};
$ximage->{_Step} = $ximage->{_Step} . ' legend=' . $ximage->{_legend};
}
else {
print("ximage, legend, missing legend,\n");
}
}
=head2 sub legendfont
=cut
sub legendfont {
my ( $self, $legendfont ) = @_;
if ( $legendfont ne $empty_string ) {
$ximage->{_legendfont} = $legendfont;
$ximage->{_note} =
$ximage->{_note} . ' legendfont=' . $ximage->{_legendfont};
$ximage->{_Step} =
$ximage->{_Step} . ' legendfont=' . $ximage->{_legendfont};
}
else {
print("ximage, legendfont, missing legendfont,\n");
}
}
=head2 sub lheight
=cut
sub lheight {
my ( $self, $lheight ) = @_;
if ( $lheight ne $empty_string ) {
$ximage->{_lheight} = $lheight;
$ximage->{_note} =
$ximage->{_note} . ' lheight=' . $ximage->{_lheight};
$ximage->{_Step} =
$ximage->{_Step} . ' lheight=' . $ximage->{_lheight};
}
else {
print("ximage, lheight, missing lheight,\n");
}
}
=head2 sub lwidth
=cut
sub lwidth {
my ( $self, $lwidth ) = @_;
if ( $lwidth ne $empty_string ) {
$ximage->{_lwidth} = $lwidth;
$ximage->{_note} = $ximage->{_note} . ' lwidth=' . $ximage->{_lwidth};
$ximage->{_Step} = $ximage->{_Step} . ' lwidth=' . $ximage->{_lwidth};
}
else {
print("ximage, lwidth, missing lwidth,\n");
}
}
=head2 sub loclip
subs loclip bclip
=cut
sub loclip {
my ( $self, $bclip ) = @_;
if ($bclip) {
$ximage->{_bclip} = $bclip;
$ximage->{_note} = $ximage->{_note} . ' bclip=' . $ximage->{_bclip};
$ximage->{_Step} = $ximage->{_Step} . ' bclip=' . $ximage->{_bclip};
( run in 0.582 second using v1.01-cache-2.11-cpan-d8267643d1d )