Download presentation
Presentation is loading. Please wait.
Published byCaren Doyle Modified over 9 years ago
1
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 3 Quiz #2 Topics RCS commands (ci and co) mv cp grep jobs
4
Rolando V. RaqueñoTuesday, May 12, 2015 4 Working with Data
5
Rolando V. RaqueñoTuesday, May 12, 2015 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 one’s and zero’s represented by the computer is data. How they are interpretted generates information (or garbage)
6
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 9 Representation of Information in a Computer
10
Rolando V. RaqueñoTuesday, May 12, 2015 10 Representation of Information in a Computer
11
Rolando V. RaqueñoTuesday, May 12, 2015 11 Line Delimiters on Different Systems UNIX System, lines delimited by linefeed –designated as nl –ASCII value of 012 or 10 In MACS and PC’s, 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
Rolando V. RaqueñoTuesday, May 12, 2015 12 Common Cross Platform File 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” > new_file –This command translates all carriage returns to line feeds.
13
Rolando V. RaqueñoTuesday, May 12, 2015 13 Numbering Systems
14
Rolando V. RaqueñoTuesday, May 12, 2015 14 Converting Number Bases
15
Rolando V. RaqueñoTuesday, May 12, 2015 15 Converting Number Bases
16
Rolando V. RaqueñoTuesday, May 12, 2015 16 Negative Number Representation
17
Rolando V. RaqueñoTuesday, May 12, 2015 17 Converting a Negative Number into Binary using 2’s Complement
18
Rolando V. RaqueñoTuesday, May 12, 2015 18 How Does This All Relate to Computers and Programming
19
Rolando V. RaqueñoTuesday, May 12, 2015 19 1-bit Address Line and 1-bit Data Line Computer Architecture
20
Rolando V. RaqueñoTuesday, May 12, 2015 20 2-bit Address Line and 1-bit Data Line Computer Architecture
21
Rolando V. RaqueñoTuesday, May 12, 2015 21 1-bit Address Line and 2-bit Data Line Computer Architecture
22
Rolando V. RaqueñoTuesday, May 12, 2015 22 2-bit Address Line and 2-bit Data Line Computer Architecture
23
Rolando V. RaqueñoTuesday, May 12, 2015 23 8-bit Address Line and 8-bit Data Line Computer Architecture
24
Rolando V. RaqueñoTuesday, May 12, 2015 24 In General
25
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 30 Working with IDL Variables Variables in IDL have two important attributes –Data type –Attributes
31
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 35 Shortcut Creating Indexed Array Some sample command IDL> num = findgen(40) IDL> help,num NUM FLOAT = Array(40) IDL> 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
Rolando V. RaqueñoTuesday, May 12, 2015 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
Rolando V. RaqueñoTuesday, May 12, 2015 37 Initializing Array Variables ( make_array and replicate ) Make_array function is a general way of creating and initializing arrays array=make_array(10,12,Value=1,/Int) Replicate functions allows initialization of all elements of an array with a given variable (useful in structures) initial_value = 1 array=replicate(initial_value, 10,12)
38
Rolando V. RaqueñoTuesday, May 12, 2015 38 Structures in IDL Allows more abstract data types to be created from other basic data types Example –Date data structure IDL> a={date, month:0B, day:0B, year:0B} IDL> print,a { 0 0 0}
39
Rolando V. RaqueñoTuesday, May 12, 2015 39 Structures in IDL (Names Structure) Date Example (using a Named Structure) IDL> a.month=12 IDL> a.day=25 IDL> a.year=96 IDL> print,a { 12 25 96} IDL> print,a.month 12 IDL> print,a.day 25 IDL> print,a.year 96
40
Rolando V. RaqueñoTuesday, May 12, 2015 40 Using Named Structures Date Named Structure Example IDL> c={date} IDL> print,c { 0 0 0} IDL> help,c C STRUCT = -> DATE Array(1)
41
Rolando V. RaqueñoTuesday, May 12, 2015 41 Anonymous Structures in IDL Anonymous Structures IDL> d={month:1,day:1,year:97} IDL> print,d { 1 1 97} IDL> e=d IDL> print,e { 1 1 97}
42
Rolando V. RaqueñoTuesday, May 12, 2015 42 Anonymous Structure Example Anonymous Structures IDL> e={month:'January',day:d.day,year:d.year} IDL> print,e { January 1 97} IDL> e.month='December' IDL> print,e { December 1 97}
43
Rolando V. RaqueñoTuesday, May 12, 2015 43 Querying Structures in IDL Determining Variable Structure IDL> help,e,/structure ** Structure, 3 tags, length=12, refs=1: MONTH STRING 'December' DAY INT 1 YEAR INT 97
44
Rolando V. RaqueñoTuesday, May 12, 2015 44 Structures in IDL Determining Structure Characteristics IDL> print,n_tags(e) 3 IDL> print,tag_names(e) MONTH DAY YEAR
45
Rolando V. RaqueñoTuesday, May 12, 2015 45 Array Manipulation in IDL Let’s create an array representing a multiband image IDL> image=bindgen(2,3,4) IDL> print,image 0 1 2 3 4 5
46
Rolando V. RaqueñoTuesday, May 12, 2015 46 Array Manipulation in IDL image continued 6 7 8 9 10 11 12 13 14 15 16 17
47
Rolando V. RaqueñoTuesday, May 12, 2015 47 Array Manipulation in IDL image continued 18 19 20 21 22 23
48
Rolando V. RaqueñoTuesday, May 12, 2015 48 Array Manipulation in IDL Extract the first and last band of the image IDL> print,image(*,*,0) 0 1 2 3 4 5 IDL> print,image(*,*,3) 18 19 20 21 22 23
49
Rolando V. RaqueñoTuesday, May 12, 2015 49 Array Manipulation in IDL Extracting the “color” or “spectral vector” of the first pixel IDL> print,image(0,0,*) 0 6 12 18
50
Rolando V. RaqueñoTuesday, May 12, 2015 50 Array Manipulation in IDL Assign band 1 to band 4 IDL> band1=image(*,*,0) IDL> image(*,*,3) = band1 Shortcut IDL> image(*,*,3)=image(*,*,0)
51
Rolando V. RaqueñoTuesday, May 12, 2015 51 Array Manipulation in IDL Subsectioning parts of an image IDL> print,image(0:1,0:1,*) 0 1 2 3 6 7 8 9 12 13 14 15 0 1 2 3
52
Rolando V. RaqueñoTuesday, May 12, 2015 52 Array Manipulation where function to find indices of elements that meet certain criteria IDL>print, where(image gt 5 and image lt 12) Use of other arrays to index other arrays IDL>indices=where(image gt 5 and image lt 12) IDL>image(indices)=-1 Try the above as an exercise.
53
Rolando V. RaqueñoTuesday, May 12, 2015 53
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.