Presentation is loading. Please wait.

Presentation is loading. Please wait.

FINAL Project Information

Similar presentations


Presentation on theme: "FINAL Project Information"— Presentation transcript:

1 FINAL Project Information
One Design Review presentations (10 minutes long) A Final Document of your Project Wiki Page Describing your Project YourNameIdlGuiProject Teaming is Encouraged LastNamesIdlGuiProject Winter Quarter 2003 Rolando V. Raqueño

2 Final Project Post on the wiki, by this Thursday, a half page abstract of your intended GUI design, and the problem domain that it addresses. Winter Quarter 2003 Rolando V. Raqueño

3 Working with Data Winter Quarter 2003 Rolando V. Raqueño

4 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) Winter Quarter 2003 Rolando V. Raqueño

5 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. Winter Quarter 2003 Rolando V. Raqueño

6 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 Winter Quarter 2003 Rolando V. Raqueño

7 Representation of Information in a Computer
Numbers can be represented as either integers or real values integers { -5, 0, 125, } real { , , -1.0e-20, } Text is typically represented using the ASCII character set where each character is represented as a byte value. Winter Quarter 2003 Rolando V. Raqueño

8 Representation of Information in a Computer
Winter Quarter 2003 Rolando V. Raqueño

9 Representation of Information in a Computer
Winter Quarter 2003 Rolando V. Raqueño

10 Line Delimiters on Different Systems
In the UNIX System, lines are delimited by linefeed (also designated as nl and has an ASCII value of 012 or 10) In MACS and PC’s, lines are delimited by carriage returns (also designated as cr and has an ASCII value of 015 or 13) Still other systems use a combination of carriage return-line feeds to delimit lines Winter Quarter 2003 Rolando V. Raqueño

11 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. Winter Quarter 2003 Rolando V. Raqueño

12 Numbering Systems Winter Quarter 2003 Rolando V. Raqueño

13 Converting Number Bases
Winter Quarter 2003 Rolando V. Raqueño

14 Converting Number Bases
Winter Quarter 2003 Rolando V. Raqueño

15 Negative Number Representation
Winter Quarter 2003 Rolando V. Raqueño

16 Converting a Negative Number into Binary using 2’s Complement
Winter Quarter 2003 Rolando V. Raqueño

17 How Does This All Relate to Computers and Programming
Winter Quarter 2003 Rolando V. Raqueño

18 1-bit Address Line and 1-bit Data Line Computer Architecture
Winter Quarter 2003 Rolando V. Raqueño

19 2-bit Address Line and 1-bit Data Line Computer Architecture
Winter Quarter 2003 Rolando V. Raqueño

20 1-bit Address Line and 2-bit Data Line Computer Architecture
Winter Quarter 2003 Rolando V. Raqueño

21 2-bit Address Line and 2-bit Data Line Computer Architecture
Winter Quarter 2003 Rolando V. Raqueño

22 8-bit Address Line and 8-bit Data Line Computer Architecture
Winter Quarter 2003 Rolando V. Raqueño

23 In General Winter Quarter 2003 Rolando V. Raqueño

24 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 Winter Quarter 2003 Rolando V. Raqueño

25 Caveat on Multi-Byte Data
Big Endian Machines (Suns, Motorolas) would represent the integer value 512 internally as two bytes in the following order. MSB LSB Winter Quarter 2003 Rolando V. Raqueño

26 Caveat on Multi-Byte Data
Little Endian Machines (DECS, Intels) would represent the integer value 512 internally as two bytes in the following order. LSB MSB Winter Quarter 2003 Rolando V. Raqueño

27 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) Winter Quarter 2003 Rolando V. Raqueño

28 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 Winter Quarter 2003 Rolando V. Raqueño

29 Working with IDL Variables
Variables in IDL have two important attributes Data type Attributes Winter Quarter 2003 Rolando V. Raqueño

30 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 Winter Quarter 2003 Rolando V. Raqueño

31 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) Winter Quarter 2003 Rolando V. Raqueño

32 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 = ‘‘ Winter Quarter 2003 Rolando V. Raqueño

33 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) Winter Quarter 2003 Rolando V. Raqueño

34 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 Winter Quarter 2003 Rolando V. Raqueño

35 Initializing Array Variables
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) Winter Quarter 2003 Rolando V. Raqueño

36 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 { } Winter Quarter 2003 Rolando V. Raqueño

37 Structures in IDL Date Example (using a Named Structure)
IDL> a.month=12 IDL> a.day=25 IDL> a.year=96 IDL> print,a { } IDL> print,a.month 12 IDL> print,a.day 25 IDL> print,a.year 96 Winter Quarter 2003 Rolando V. Raqueño

38 Structures in IDL Date Structure Example IDL> c={date}
IDL> print,c { } IDL> help,c C STRUCT = -> DATE Array(1) Winter Quarter 2003 Rolando V. Raqueño

39 Structures in IDL Anonymous Structures
IDL> d={month:1,day:1,year:97} IDL> print,d { } IDL> e=d IDL> print,e Winter Quarter 2003 Rolando V. Raqueño

40 Structures in IDL Anonymous Structures
IDL> e={month:'January',day:d.day,year:d.year} IDL> print,e { January } IDL> e.month='December' { December } Winter Quarter 2003 Rolando V. Raqueño

41 Structures in IDL Determining Variable Structure
IDL> help,e,/structure ** Structure <761058>, 3 tags, length=12, refs=1: MONTH STRING 'December' DAY INT YEAR INT Winter Quarter 2003 Rolando V. Raqueño

42 Structures in IDL Determining Structure Characteristics
IDL> print,n_tags(e) 3 IDL> print,tag_names(e) MONTH DAY YEAR Winter Quarter 2003 Rolando V. Raqueño

43 Dual Nature of IDL structures
IDL> e={month:"December", day:1, year:97} IDL> print,e.month December IDL> print,e.day 1 IDL> print,e.year 97 IDL> e={month:"December", day:1, year:97} IDL> print,e.(0) December IDL> print,e.(1) 1 IDL> print,e.(2) 97 Winter Quarter 2003 Rolando V. Raqueño

44 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 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Winter Quarter 2003 Rolando V. Raqueño

45 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 Winter Quarter 2003 Rolando V. Raqueño

46 Array Manipulation in IDL
Extracting the “color” or “spectral vector” of the first pixel IDL> print,image(0,0,*) 6 12 18 Winter Quarter 2003 Rolando V. Raqueño

47 Array Manipulation in IDL
Assign band 1 to band 4 IDL> band1=image(*,*,0) IDL> image(*,*,3) = band1 Shortcut IDL> image(*,*,3)=image(*,*,0) Winter Quarter 2003 Rolando V. Raqueño

48 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 Winter Quarter 2003 Rolando V. Raqueño

49 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 Winter Quarter 2003 Rolando V. Raqueño


Download ppt "FINAL Project Information"

Similar presentations


Ads by Google