Getting Started

advertisement
Getting Started
SIMG 726
1
Rolando V. Raqueño
Wednesday, March 16, 2016
Location of Class Notes
• http://www.cis.rit.edu/~rvrpc
i/teaching/simg726/20022
– Arranged by Class Number
– Watch out for Posted Messages
– Link to e-mail
• Previous year’s notes
– http://www.cis.rit.edu/~rvrpci/t
eaching/simg726/20012
2
Rolando V. Raqueño
Wednesday, March 16, 2016
Reading
• On-Line Tour of IDL
• UNIX Reading Assignment Guide
• IDL Reading Assignment Guide
3
Rolando V. Raqueño
Wednesday, March 16, 2016
Objective
•
•
•
•
•
Quiz #1 Topics
Define Homework/Project #1
Brief Introduction to UNIX
IDL demo
More Final Project Details
4
Rolando V. Raqueño
Wednesday, March 16, 2016
Quiz #1 Topics for December 6
• man
• ls
• cp
• mv
• pwd
5
Rolando V. Raqueño
Wednesday, March 16, 2016
Homework/Project #1 - Part 1
• Part 1
– Copy the file .plan.blank from
~rvrpci to your home directory
– Modify it to reflect your schedule
– Rename the file to .plan
– Change the permissions of the file to have
it accessible by others (test-ask your
neighbor to check to see if they can access
the file through the finger command)
6
Rolando V. Raqueño
Wednesday, March 16, 2016
Purpose of Part 1
• Exercises UNIX file navigation skills
– copying, renaming, changing directories
– handling being aware of hidden files
• Exercising vi skills
• Working with concept of file permissions
and protections
7
Rolando V. Raqueño
Wednesday, March 16, 2016
Homework/Project #1 - Part 2
• Part 2
– Write the following IDL functions that will
compute the following statistics for any
dimension array(s)
• Minimum
• Maximum
• Sum
• Mean
• Sum_Squares
• Variance
• Standard_Deviation
8
Rolando V. Raqueño
Wednesday, March 16, 2016
Purpose of Part 2
• Getting acquainted with the IDL array
characteristics.
– Function utilities to extract array properties
• Mechanics of IDL “compilation”
• Opportunity for Modular design of routines
– Reduce, Reuse, Recycle
– Debugging
• LaTeX documentation exercise
9
Rolando V. Raqueño
Wednesday, March 16, 2016
Homework/Project #1 - Part 2
• Test for the ambitious - Read in a
PBMPLUS formatted image to test your
statistics routine
10
Rolando V. Raqueño
Wednesday, March 16, 2016
Homework/Project #1
Guidelines
• Due Before Break
• Please follow the program submission
guidelines (should be in LaTeX)
• Hardcopy submission (for marking up)
11
Rolando V. Raqueño
Wednesday, March 16, 2016
Brief Introduction to UNIX
12
Rolando V. Raqueño
Wednesday, March 16, 2016
UNIX History
• Approaching 30 years of development
and user use/abuse
– BSD Flavor
– System V Flavor
– Other Flavors - LINUX
• Originally developed by programmers
for programmers
• Way too many commands to cover
13
Rolando V. Raqueño
Wednesday, March 16, 2016
Before we start
% source ~rvrpci/.simg726.rc
14
Rolando V. Raqueño
Wednesday, March 16, 2016
The “Original” UNIX Desktop
$
15
Rolando V. Raqueño
Wednesday, March 16, 2016
The “New and Improved”
UNIX Desktop
%
16
Rolando V. Raqueño
Wednesday, March 16, 2016
These represent UNIX Shells
% prompt indicates
The C-shell (csh)
$ prompt indicates
The Bourne-shell (sh)
17
Rolando V. Raqueño
Wednesday, March 16, 2016
Other UNIX Shells
•bash -“Bourne again” shell
–Distributed with LINUX
•tcsh - C-shell variant
–Allows the use of up-arrow keys
•ksh - Korn shell
18
Rolando V. Raqueño
Wednesday, March 16, 2016
UNIX Shell Prompt
% prompt indicates
C-shell
$ prompt indicates
Bourne-shell
19
Rolando V. Raqueño
Wednesday, March 16, 2016
What is a shell?
• Captures commands and schedules it for
execution.
• Several shells running at a time
– each shell is its own environment
– each window is its own shell
• Shells in UNIX are created through a
process called “spawning”
20
Rolando V. Raqueño
Wednesday, March 16, 2016
% xterm example %
• Under the X windowing environment
– Repeatedly start several windows by giving
the xterm command.
% xterm &
% xterm &
21
Rolando V. Raqueño
Wednesday, March 16, 2016
UNIX Command Form
% command [options] arg2 arg3 ...
argn
• Very Important Concept
– The command can be
• a compiled program (FORTRAN, C/C++)
• a file containing other UNIX commands (also called a
shell script)
– e.g. commands to run IDL
• UNIX makes no distinction between the two
22
Rolando V. Raqueño
Wednesday, March 16, 2016
% Most Important UNIX
Command
%
man
%
Usage: man [-] [-M | -P pathname] [-t]
[section] title ...
man [-] [-M | -P pathname] [-t]
[section title ...]...
man [-M | -P pathname] -f title ...
man [-M | -P pathname] -k keyword ...
• A Usage: message typically indicates that
not enough arguments were given to a
command or incorrect options
23
Rolando V. Raqueño
Wednesday, March 16, 2016
% Most Important UNIX
Command %
• To correct the command we can type
% man man
man(1)
man(1)
NAME
man - Displays reference pages
SYNOPSIS
man [-] [-M | -P pathname] [-t] [ section[suffix] ] title
...
man [-] [-M | -P pathname] [-t] [ section[suffix] title
...]...
man [-M | -P pathname] pathname] -f title ...
man [-M | -P pathname] -k keyword ...
.
24
Rolando V. Raqueño
Wednesday, March 16, 2016
% Other UNIX Commands %
• You know the name of the command,
but you need a reminder of what it does.
% whatis man
man (1)
man, man.page (5)
reference pages
- Displays reference pages
- The man macro packages for
25
Rolando V. Raqueño
Wednesday, March 16, 2016
% Other UNIX Commands %
• You know a keyword about a command,
but don’t remember the command itself
% apropos printer
26
Rolando V. Raqueño
Wednesday, March 16, 2016
Keyboard Control Characters
^[ - ESC key equivalent
^C - stops a currently running process (totally
abort)
^Z - suspends a running process (can be
restarted)
^U - erases a complete line being typed
^S - stops output to the screen
^Q - resumes output to the screen
^D - signals an interactive end-of-file
condition(EOF)
27
Rolando V. Raqueño
Wednesday, March 16, 2016
Most Common Keyboard
Problem
Problem: You press the “backspace key” to
erase a character, but instead you get ^H
whenever you press it.
Solution:
% stty erase
^H
28
Rolando V. Raqueño
Wednesday, March 16, 2016
Most Common Keyboard
Problem
Problem: You press the “delete key” to erase
a character, but instead you get ^?
whenever you press it.
Solution:
% stty erase
^?
29
Rolando V. Raqueño
Wednesday, March 16, 2016
% UNIX Commands To Try %
% whoami
#This will print out your username.
% hostname
#This will print out computer name.
% finger
#This will print out current users
% date
#Gives current system time and date
30
Rolando V. Raqueño
Wednesday, March 16, 2016
Sample UNIX Directory Tree
Structure
31
Rolando V. Raqueño
Wednesday, March 16, 2016
Where am I?
(Two Types of Pathnames)
• Absolute Path (always starts with a / )
/usr/local/bin/ls
/cis/students/neg3153/.login
• Relative Path (does not start with a / )
pub
./pub
../testing
~neg3153/.login
32
Rolando V. Raqueño
Wednesday, March 16, 2016
% Fundamental UNIX
Commands %
List files in the current directory.
% ls
List files in the rvrpci’s home directory.
% ls /cis/staff/rvrpci
% ls ~rvrpci
List files in the YOUR home directory.
% ls ~
Lists all files including hidden files in current
directory
33
%
ls
-a
Rolando V. Raqueño
Wednesday, March 16, 2016
% What “Else” UNIX Can Do
(How do you spell releif?) %
%
%
%
%
look
look
look
look
rel
re
re | more
re | wc
34
Rolando V. Raqueño
Wednesday, March 16, 2016
% “Excuse me, Do you sell beer
in the special hogshead size” %
% units
#Unit Conversion Program
#Try miles to feet
#Try furlong to yards
#Try barrel to hogshead
#Try dollar to yen (unreliable)
# hectopascals vs. millibars
# km vs. astronomicalunits
#Type ^D to get out
35
Rolando V. Raqueño
Wednesday, March 16, 2016
% #%?!, I forgot my calculator! %
% bc -l
2+2
10*20
3^100
sqrt(625)
p=3.1415926535
c(p/2)
s(p/2)
for( f=-10.0; f<=10.0; f+=0.1 ) {f; s(f)}
(type quit to get out)
36
Rolando V. Raqueño
Wednesday, March 16, 2016
% UNIX is Y2K Compliant %
% cal
% cal 2000
37
Rolando V. Raqueño
Wednesday, March 16, 2016
Metacharacters,
Schmetacharacters
• In UNIX there are several characters
that are not interpreted literally but
contain some special meaning. These
are called metacharacters.
• Examples
| <
Rolando V. Raqueño
>
*
&
38
\
(
)
!
Wednesday, March 16, 2016
UNIX Plumbing facilities
(Piping and Input/Output
File Redirection)
• Output File Redirection
% command1 > output_file
• Input File Redirection
% command2 < input_file
• Piping
% command1 | command2
39
Rolando V. Raqueño
Wednesday, March 16, 2016
% Piping and Redirection
Examples %
% echo 2+2
% echo 2+2 > input.dat
% bc -l < input.dat
40
Rolando V. Raqueño
Wednesday, March 16, 2016
% Piping and Redirection
Examples %
% echo 2+2 | bc -l
% echo 2+2 | bc -l > output.dat
% echo 2+2 | tee input.dat |
bc -l > output.dat
41
Rolando V. Raqueño
Wednesday, March 16, 2016
% Line Continuation
Metacharacter %
• In the previous command
% echo 2+2 | tee input.dat |
bc -l > output.dat
• Should technically be the following
% echo 2+2 | tee input.dat | \
bc -l > output.dat
• Where the character “\” indicates the
continuation of a command line
42
Rolando V. Raqueño
Wednesday, March 16, 2016
% More Elaborate Example %
% echo “for( f=-10.0; f<=10.0;
f+=0.1 ) {f; s(f)}” | bc -l
43
Rolando V. Raqueño
Wednesday, March 16, 2016
% Public Service Announcement to
Prevent Repetitive Motion Injury %
% echo “for( f=-10.0; f<=10.0;
f+=0.1 ) {f; s(f)}” | bc -l
% !!
This recalls the last command executed
% !! | paste - % !! > sine.dat
44
Rolando V. Raqueño
Wednesday, March 16, 2016
Primitive Plotting Capabilities
% echo “for( f=-10.0; f<=10.0;
f+=0.1 ) {f; s(f)}” | bc –l |
paste - - | graph | dumbplot
% cat sine.dat | graph |
dumbplot
45
Rolando V. Raqueño
Wednesday, March 16, 2016
Result of dumbplot
46
Rolando V. Raqueño
Wednesday, March 16, 2016
Less than Primitive Graphing
Capabilities
• While depressing the Ctrl button with the
mouse pointer in the xterm window,
– Depress the middle mouse button
– Select “tekshow”
– Give the following command in the new window
• % echo “for( f=-10.0; f<=10.0;
f+=0.1 ) {f; s(f)}” | bc –l |
paste - - | graph | tek
47
Rolando V. Raqueño
Wednesday, March 16, 2016
Result of tek plot
48
Rolando V. Raqueño
Wednesday, March 16, 2016
The gnuplot utility
% gnuplot
G N U P L O T
unix version 3.5
patchlevel 3.50.1.17, 27 Aug 93
last modified Fri Aug 27 05:21:33 GMT 1993
Copyright(C) 1986 - 1993
Thomas Williams, Colin Kelley
Send comments and requests for help to info-gnuplot@dartmouth.edu
Send bugs, suggestions and mods to bug-gnuplot@dartmouth.edu
Terminal type set to 'x11'
gnuplot> plot 'sine.dat'
gnuplot>
49
Rolando V. Raqueño
Wednesday, March 16, 2016
50
Rolando V. Raqueño
Wednesday, March 16, 2016
The UNIX History Channel:
Studying history so you can repeat it
• UNIX remembers the commands you
have typed in through a “history list”
• By giving the history command, you
will see a numbered list of previously
executed commands
51
Rolando V. Raqueño
Wednesday, March 16, 2016
% Other Obscure UNIX Short
Cuts %
% !!
% !:p
# Recalls the last command and execute
# Recalls the last command
(don’t execute)
% !c
# Recalls the last command that begins
with a c
% !5
# Recalls the #5 argument in the history
list
52
Rolando V. Raqueño
Wednesday, March 16, 2016
More Esoteric UNIX Short
Cuts
% ^string1^string2
# Performs a substitution on the previous command of the
first occurrence of string1 with string2
% command !$
# Recalls the very last argument of the
previous command
% command !*
# Recalls the all the arguments of
the very last command
53
Rolando V. Raqueño
Wednesday, March 16, 2016
Or simply use up arrows
• if tcsh is available
54
Rolando V. Raqueño
Wednesday, March 16, 2016
IMPORTANT UNIX Concepts
• Environment and Shell Variables
– These allow you to customize your UNIX
environment
– They are different in terms of their SCOPE
• SCOPE determines the visibility of a variable
55
Rolando V. Raqueño
Wednesday, March 16, 2016
Other IMPORTANT UNIX Concepts
• Environment Variable
– Examples are TERM and DISPLAY
– Set a particular variable to a value by using
the setenv command
– You can print the value of a particular
variable or all the environment variable
using the printenv command
56
Rolando V. Raqueño
Wednesday, March 16, 2016
% Environment Variables %
• Examples
– To set environment variables
% setenv TERM vt100
% setenv DOG Goofy
– print out the terminal type
% printenv TERM
vt100
– print out all environment variables
% printenv
57
Rolando V. Raqueño
Wednesday, March 16, 2016
Shell Variables
• Shell variables are similar to
Environment variables except they have
a limited scope, i.e., they exist only in
the shell which they are defined.
• Environment variables on the other
hand, exist in all its children shells
• To illustrate this concept, let us look at
the following example
58
Rolando V. Raqueño
Wednesday, March 16, 2016
Environment vs. Shell Variables
% set prompt
Parent Shell
Parent Shell
Parent Shell
Goofy
Parent Shell
Mickey
Parent Shell
=
>
>
>
"Parent Shell > "
setenv DOG Goofy
set mouse=Mickey
printenv DOG
> echo $mouse
> xterm &
(YOU SHOULD NOW HAVE A NEW xterm WINDOW)
THIS IS KNOWN AS
“SPAWNING A NEW (OR CHILD) PROCESS”
59
Rolando V. Raqueño
Wednesday, March 16, 2016
Environment vs. Shell Variables
(IN THE NEW xterm WINDOW, DO THE FOLLOWING)
% set prompt = "Child Shell > "
Child Shell > printenv DOG
Goofy
Child Shell > echo $mouse
mouse: Undefined variable.
60
Rolando V. Raqueño
Wednesday, March 16, 2016
Environment vs. Shell Variables
Child Shell
Child Shell
Child Shell
Pluto
Child Shell
Minnie
Child Shell
> setenv DOG Pluto
> set mouse=Minnie
> printenv DOG
> echo $mouse
> exit
(THE xterm WINDOW SHOULD NOW GO AWAY - THIS
PROCESS HAS NOW BEEN KILLED)
61
Rolando V. Raqueño
Wednesday, March 16, 2016
Environment vs. Shell Variables
Parent
Parent
Goofy
Parent
Mickey
Parent
Shell >
Shell > printenv DOG
Shell > echo $mouse
Shell >
62
Rolando V. Raqueño
Wednesday, March 16, 2016
Environment & Shell Variables
• Why is this important?
– UNIX uses Environment and Shell
Variables control a number of processes
– Customizes your working environment
– Variables used for UNIX Scripts
• They are typically defined and initialized
in your .login and .cshrc files
63
Rolando V. Raqueño
Wednesday, March 16, 2016
Useful Shell Variables
filec
path
#Allows file completion
#List of command
directories
cdpath #List of candidate
directories to cd into
history #Number of commands to
remember
64
Rolando V. Raqueño
Wednesday, March 16, 2016
The X-Windows Environment
65
Rolando V. Raqueño
Wednesday, March 16, 2016
X-Windowing System
• Vendor independent Graphical User
Interface (GUI)
• Works on a network client/server concept.
• The client is some entity (in this case a
software package, IDL, for instance) that
requests from another entity some form of
service (e.g., IDL requests for program input
or requests some output data to be
displayed)
66
Rolando V. Raqueño
Wednesday, March 16, 2016
X-Windowing System
• Windowing interface is decoupled from
the software application
• Possible to remotely control software
running at another location.
bullwinkle.whatsomatau.edu
rocky.cis.rit.edu
67
Rolando V. Raqueño
Wednesday, March 16, 2016
Starting IDL remotely
0. Find out the name of the local workstation you
are working on by typing the following commands
% hostname
1. On the local workstation, type the following
% xhost +
2. Remotely log on to another machine using telnet.
If you choose to use the computer “ride”, you
would type
% telnet ride.cis.rit.edu
.
68
Rolando V. Raqueño
Wednesday, March 16, 2016
Starting IDL
3. Check environment variable telling the remote
system the name of your workstation. For
example, if your local workstation was named
“glen”, you would type
% echo $DISPLAY
% setenv DISPLAY glenn.cis.rit.edu:0.0
4. Run idldemo on the remote system; display
graphics will be directed back to your local
workstation.
69
Rolando V. Raqueño
Wednesday, March 16, 2016
Other X-clients
•
•
•
•
•
•
•
xterm
xclipboard
gnuplot
ghostview
acroread
xfig
xv
70
Rolando V. Raqueño
Wednesday, March 16, 2016
xclipboard
• Allows cutting and pasting text
fragments to and from files
71
Rolando V. Raqueño
Wednesday, March 16, 2016
gnuplot
• Allows quick plotting of data files
72
Rolando V. Raqueño
Wednesday, March 16, 2016
ghostview
• X client used to view files in postscript
format (*.ps)
73
Rolando V. Raqueño
Wednesday, March 16, 2016
acroread
• X client to read PDF (portable document
files) files
74
Rolando V. Raqueño
Wednesday, March 16, 2016
xfig
• X client to create
drawings in EPS
format
75
Rolando V. Raqueño
Wednesday, March 16, 2016
xv
• X client to view most standard images
76
Rolando V. Raqueño
Wednesday, March 16, 2016
FINAL Project Information
• Two design review presentations (10-15
minutes long)
• What’s already out there to solve your problem
• How can you improve on it?
• Your plan of implementation and testing
• A Final Document of your Project
– (PDF or HTML file desirable)
• Teaming is Encouraged
77
Rolando V. Raqueño
Wednesday, March 16, 2016
Previous Projects
– Visualization of a DIRSIG Geometric
Database
– Visualization and modification of
radiosonde data
– IDL GUI to Visualize MODTRAN Output
Data
– Graphical User Interface for generating
and modifying a MODTRAN Card deck
– GUI for generating and modifying object
material parameters
78
Rolando–
V. Raqueño
Wednesday, March 16, 2016
GUI for visualizing emissivity files
Previous Projects
– An IDL FFT Widget Based on Dr. Easton's
Signals.
– GUI for Displaying the CIELAB Color
Matching Functions
– Astronomical Image Analysis in IDL
– Stereo Visualization of Plots
– GUI for Visualizing Atmospheric
Parameters
– GUI for texture image creation and
79
visualization
Rolando V. Raqueño
Wednesday, March 16, 2016
Previous Projects
– GUI for Modifying Material Parameters
– Spectral Unmixing GUI Utilizing ENVI
– Interface to Generate Satellite Image
Preview and rendering using IDL’s globe
and map database
– Bi-directional Reflectance Parameter
Viewer
– Ephemeris program interface
– Thermal Image apparent temperature
80
predictor
Rolando V. Raqueño
Wednesday, March 16, 2016
Download