FINAL Project Information - PowerPoint PPT Presentation

About This Presentation
Title:

FINAL Project Information

Description:

a half page abstract of your intended GUI design, and the problem domain that it ... You try to edit the file using vi, but vi complains that the line is too long ... – PowerPoint PPT presentation

Number of Views:18
Avg rating:3.0/5.0
Slides: 54
Provided by: rolando
Learn more at: http://www.cis.rit.edu
Category:

less

Transcript and Presenter's Notes

Title: FINAL Project Information


1
FINAL Project Information
  • Two Design Review presentations (10-15 minutes
    long)
  • A Final Document of your Project (LaTeX)
  • HTML Page Describing your Project
  • Choice of Topic Due after break
  • Teaming is Encouraged

2
Final Project
  • E-mail me your Final Project Topic after break
  • E-mail should contain
  • a half page abstract of your intended GUI
    design, and the problem domain that it addresses.

3
Quiz 2 Topics
  • RCS commands (ci and co)
  • mv
  • cp
  • grep
  • jobs

4
Working with Data
5
Representation of Information in a Computer
  • All information in a computer is stored as a
    collection of bits
  • A bit, also known as a binary digit, is a number
    represented in base 2. It can only be either a 1
    (one) or 0 (zero)
  • Think of information as data with structure
  • All the ones and zeros represented by the
    computer is data. How they are interpretted
    generates information (or garbage)

6
Representation of Information in a Computer
  • Information stored in a computer can represent
  • Instructions
  • Executable Programs
  • Data
  • Numbers - integers and real values
  • Characters - ASCII, multinational characters
  • Others - imagery, sound, etc.

7
Representation of Information in a Computer
  • Bits in a computer are usually grouped into the
    following units
  • 4 bits 1 nibble
  • 8 bits 1 byte or 1 ( char ) - a single
    character
  • 16 bits 2 bytes or 1 ( short int, int ) -
    integer value
  • 32 bits 4 bytes or 1 ( long int, int ) -
    integer value or 1( float) - real value
  • 64 bits 8 bytes or 1 (double) - real value

8
Representation of Information in a Computer
  • Numbers can be represented as either integers or
    real values
  • integers -5, 0, 125, -32767
  • real 3.14159, -2.71828, -1.0e-20, 10.000
  • Text is typically represented using the ASCII
    character set where each character is represented
    as a byte value.

9
Representation of Information in a Computer
10
Representation of Information in a Computer
11
Line Delimiters on Different Systems
  • UNIX System, lines delimited by linefeed
  • designated as nl
  • ASCII value of 012 or 10
  • In MACS and PCs, lines delimited by carriage
    returns
  • designated as cr
  • ASCII value of 015 or 13
  • Still other systems use a combination of carriage
    return-line feeds to delimit lines

12
Common Cross PlatformFile Problem
  • Some one gave you a text file created on a PC
    which you transferred to the UNIX system.
  • You try to edit the file using vi, but vi
    complains that the line is too long
  • Solution (A Stupid Unix Trick)
  • cat old_file tr \015 \012 gt new_file
  • This command translates all carriage returns to
    line feeds.

13
Numbering Systems
14
Converting Number Bases
15
Converting Number Bases
16
Negative Number Representation
17
Converting a Negative Number into Binary using
2s Complement
18
How Does This All Relate to Computers and
Programming
19
1-bit Address Line and 1-bit Data Line Computer
Architecture
20
2-bit Address Line and 1-bit Data Line Computer
Architecture
21
1-bit Address Line and 2-bit Data Line Computer
Architecture
22
2-bit Address Line and 2-bit Data Line Computer
Architecture
23
8-bit Address Line and 8-bit Data Line Computer
Architecture
24
In General
25
Caveat on Multi-Byte Data
  • When dealing with data that encompasses more than
    a single byte (e.g. integer value greater than
    255), you must know the endian of the data
  • Endian represents how a machine interprets the
    significance of a set of bytes.
  • There are big-endian machines and little-endian
    machines

26
Caveat on Multi-Byte Data (Big Endian)
  • Big Endian Machines (Suns, Motorolas) would
    represent the integer value 512 internally as two
    bytes in the following order.
  • MSB LSB
  • 00000010 00000000

27
Caveat on Multi-Byte Data (Little Endian)
  • Little Endian Machines (DECS, Intels) would
    represent the integer value 512 internally as two
    bytes in the following order.
  • LSB MSB
  • 00000000 00000010

28
Caveat on Multi-Byte Data
  • This is typically not a problem as long as you
    stay on the same machine.
  • If you, however, start transferring data (e.g.
    images) in raw form from one machine to another,
    you will need to be aware of this situation.
  • You can often transpose multibyte data using the
    dd utility (does not work for data spanning more
    than two bytes)

29
Working with IDL Variables
  • Variable names must start with a letter but can
    include, letters, digits, underscore or dollar
    characters.
  • Variables are not case sensitive, i.e.,
  • Celsius is equivalent to celsius

30
Working with IDL Variables
  • Variables in IDL have two important attributes
  • Data type
  • Attributes

31
IDL Variable Data Types
  • Undefined
  • Integer Values
  • Byte, Integer, Long Integer
  • Floating Point Values
  • Floating Point, Double Precision
  • Single Precision Complex, Double Precision
    Complex
  • String

32
IDL Variable Data Structures
  • Scalar
  • Vector (one-dimensional array)
  • Array (up to eight dimensions)
  • Structure (combination of any mixture of data -
    Very Important in understanding Object-Oriented
    Programming Concepts)

33
Initializing Scalar Variables
  • byte_variable 0B
  • integer_variable 0
  • long_integer 0L
  • float_variable 0.0
  • double_variable 0.0D
  • complex_variable Complex(0.0, 0.0)
  • dcomplex_variable DComplex(0.0, 0.0)
  • string_variable

34
Initializing Array Variables
  • byte_array bytarr( 256, 256, 3 )
  • integer_array intarr( 256, 256 )
  • long_array lonarr( 256, 256 )
  • float_array fltarr( 256, 256 )
  • double_array dblarr( 256, 256 )
  • complex_array complexarr( 256, 256 )
  • dcomplex_array dcomplexarr( 256, 256)
  • string_array strarr(80)

35
Shortcut Creating Indexed Array
  • Some sample command
  • IDLgt num findgen(40)
  • IDLgt help,num
  • NUM FLOAT Array(40)
  • IDLgt print,num
  • 0.00000 1.00000 2.00000 3.00000
    4.00000 5.00000 6.00000
  • 7.00000 8.00000 9.00000 10.0000
    11.0000 12.0000 13.0000
  • 14.0000 15.0000 16.0000 17.0000
    18.0000 19.0000 20.0000
  • 21.0000 22.0000 23.0000 24.0000
    25.0000 26.0000 27.0000
  • 28.0000 29.0000 30.0000 31.0000
    32.0000 33.0000 34.0000
  • 35.0000 36.0000 37.0000 38.0000
    39.0000

36
Initializing Array Variables
  • Initializing Array with each element set to its
    subscript
  • bindgen, indgen, lindgen, findgen, dindgen,
    cindgen, dcindgen, sindgen
  • Only real parts of complex numbers are set to the
    subscripts
  • An array of strings containing the numbers is
    created by sindgen

37
Initializing Array Variables (make_array and
replicate)
  • Make_array function is a general way of creating
    and initializing arrays
  • arraymake_array(10,12,Value1,/Int)
  • Replicate functions allows initialization of all
    elements of an array with a given variable
    (useful in structures)
  • initial_value 1
  • arrayreplicate(initial_value, 10,12)

38
Structures in IDL
  • Allows more abstract data types to be created
    from other basic data types
  • Example
  • Date data structure
  • IDLgt adate, month0B, day0B, year0B
  • IDLgt print,a
  • 0 0 0

39
Structures in IDL(Names Structure)
  • Date Example (using a Named Structure)
  • IDLgt a.month12
  • IDLgt a.day25
  • IDLgt a.year96
  • IDLgt print,a
  • 12 25 96
  • IDLgt print,a.month
  • 12
  • IDLgt print,a.day
  • 25
  • IDLgt print,a.year
  • 96

40
Using Named Structures
  • Date Named Structure Example
  • IDLgt cdate
  • IDLgt print,c
  • 0 0 0
  • IDLgt help,c
  • C STRUCT -gt DATE Array(1)

41
Anonymous Structures in IDL
  • Anonymous Structures
  • IDLgt dmonth1,day1,year97
  • IDLgt print,d
  • 1 1 97
  • IDLgt ed
  • IDLgt print,e
  • 1 1 97

42
Anonymous Structure Example
  • Anonymous Structures
  • IDLgt emonth'January',dayd.day,yeard.year
  • IDLgt print,e
  • January 1 97
  • IDLgt e.month'December'
  • IDLgt print,e
  • December 1 97

43
Querying Structures in IDL
  • Determining Variable Structure
  • IDLgt help,e,/structure
  • Structure lt761058gt, 3 tags, length12, refs1
  • MONTH STRING 'December'
  • DAY INT 1
  • YEAR INT 97

44
Structures in IDL
  • Determining Structure Characteristics
  • IDLgt print,n_tags(e)
  • 3
  • IDLgt print,tag_names(e)
  • MONTH DAY YEAR

45
Array Manipulation in IDL
  • Lets create an array representing a multiband
    image
  • IDLgt imagebindgen(2,3,4)
  • IDLgt print,image
  • 0 1
  • 2 3
  • 4 5

46
Array Manipulation in IDL
  • image continued
  • 6 7
  • 8 9
  • 10 11
  • 12 13
  • 14 15
  • 16 17

47
Array Manipulation in IDL
  • image continued
  • 18 19
  • 20 21
  • 22 23

48
Array Manipulation in IDL
  • Extract the first and last band of the image
  • IDLgt print,image(,,0)
  • 0 1
  • 2 3
  • 4 5
  • IDLgt print,image(,,3)
  • 18 19
  • 20 21
  • 22 23

49
Array Manipulation in IDL
  • Extracting the color or spectral vector of
    the first pixel
  • IDLgt print,image(0,0,)
  • 0
  • 6
  • 12
  • 18

50
Array Manipulation in IDL
  • Assign band 1 to band 4
  • IDLgt band1image(,,0)
  • IDLgt image(,,3) band1
  • Shortcut
  • IDLgt image(,,3)image(,,0)

51
Array Manipulation in IDL
  • Subsectioning parts of an image
  • IDLgt print,image(01,01,)
  • 0 1
  • 2 3
  • 6 7
  • 8 9
  • 12 13
  • 14 15
  • 0 1
  • 2 3

52
Array Manipulation
  • where function to find indices of elements that
    meet certain criteria
  • IDLgtprint, where(image gt 5 and image lt 12)
  • Use of other arrays to index other arrays
  • IDLgtindiceswhere(image gt 5 and image lt 12)
  • IDLgtimage(indices)-1
  • Try the above as an exercise.

53
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com