33% found this document useful (6 votes)
4K views74 pages

Surveying Volume 3 - B. C. Punmia, A. K. Jain and A. K. Jain

This document is a Scilab textbook companion for the surveying volume 3 textbook by B. C. Punmia, A. K. Jain And A. K. Jain. It was created by Avik Kumar Das and contains over 65 example Scilab codes for topics in field astronomy and photogrammetric surveying that are explained in the textbook. The codes are numbered and referenced to the corresponding examples and sections in the textbook. It also provides descriptions of the Scilab numbering policy and how it relates to the examples in the textbook.

Uploaded by

Shashank Sathe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
33% found this document useful (6 votes)
4K views74 pages

Surveying Volume 3 - B. C. Punmia, A. K. Jain and A. K. Jain

This document is a Scilab textbook companion for the surveying volume 3 textbook by B. C. Punmia, A. K. Jain And A. K. Jain. It was created by Avik Kumar Das and contains over 65 example Scilab codes for topics in field astronomy and photogrammetric surveying that are explained in the textbook. The codes are numbered and referenced to the corresponding examples and sections in the textbook. It also provides descriptions of the Scilab numbering policy and how it relates to the examples in the textbook.

Uploaded by

Shashank Sathe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 74

Scilab Textbook Companion for

Surveying Volume 3
by B. C. Punmia, A. K. Jain And A. K. Jain1

Created by
Avik Kumar Das
Geodesy
Civil Engineering
IIT, Bombay
College Teacher
Prof Raaj Ramshankaran
Cross-Checked by
Mukul and Lavitha

May 24, 2016

1 Funded by a grant from the National Mission on Education through ICT,


http://spoken-tutorial.org/NMEICT-Intro. This Textbook Companion and Scilab
codes written in it can be downloaded from the ”Textbook Companion Project”
section at the website http://scilab.in
Book Description

Title: Surveying Volume 3

Author: B. C. Punmia, A. K. Jain And A. K. Jain

Publisher: Laxmi Publication, New Delhi

Edition: 9

Year: 1990

ISBN: 81-7008-054-18

1
Scilab numbering policy used in this document and the relation to the
above book.

Exa Example (Solved example)

Eqn Equation (Particular equation of the above book)

AP Appendix to Example(Scilab Code that is an Appednix to a particular


Example of the above book)

For example, Exa 3.51 means solved example 3.51 of this book. Sec 2.3 means
a scilab code whose theory is explained in Section 2.3 of the book.

2
Contents

List of Scilab Codes 4

1 Field Astronomy 5

2 Photogrammetric Surveying 58

3
List of Scilab Codes

Exa 1.1.1 astronomical triangle . . . . . . . . . . . . . . . . . . . 5


Exa 1.1.2 astronomical triangle . . . . . . . . . . . . . . . . . . . 5
Exa 1.1.3 astronomical triangle . . . . . . . . . . . . . . . . . . . 6
Exa 1.1.4 astronomical triangle . . . . . . . . . . . . . . . . . . . 7
Exa 1.2.1 astronomical triangle . . . . . . . . . . . . . . . . . . . 7
Exa 1.2.2 astronomical triangle . . . . . . . . . . . . . . . . . . . 8
Exa 1.3 astronomical triangle . . . . . . . . . . . . . . . . . . . 8
Exa 1.4 astronomical triangle . . . . . . . . . . . . . . . . . . . 9
Exa 1.5 zenith distance . . . . . . . . . . . . . . . . . . . . . . 10
Exa 1.6.1 zenith distance and altitude of star . . . . . . . . . . . 10
Exa 1.6.2 zenith distance and altitude at upper culmination . . . 11
Exa 1.7 astronomical triangle . . . . . . . . . . . . . . . . . . . 12
Exa 1.8 astronomical triangle . . . . . . . . . . . . . . . . . . . 13
Exa 1.9 astronomical triangle . . . . . . . . . . . . . . . . . . . 14
Exa 1.10 astronomical triangle . . . . . . . . . . . . . . . . . . . 14
Exa 1.11 astronomical triangle . . . . . . . . . . . . . . . . . . . 15
Exa 1.12 astronomical triangle . . . . . . . . . . . . . . . . . . . 16
Exa 1.13 astronomical triangle . . . . . . . . . . . . . . . . . . . 17
Exa 1.14 Sunset and sunrise . . . . . . . . . . . . . . . . . . . . 18
Exa 1.15 Sunset and sunrise . . . . . . . . . . . . . . . . . . . . 19
Exa 1.16 Standard Time . . . . . . . . . . . . . . . . . . . . . . 19
Exa 1.17 Standard Time . . . . . . . . . . . . . . . . . . . . . . 20
Exa 1.18 conversion of angle and time . . . . . . . . . . . . . . 20
Exa 1.19 conversion of angle and time . . . . . . . . . . . . . . 21
Exa 1.20.1 local and standard time . . . . . . . . . . . . . . . . . 22
Exa 1.20.2 local and standard time . . . . . . . . . . . . . . . . . 23
Exa 1.21.1 Local Mean Time . . . . . . . . . . . . . . . . . . . . 24
Exa 1.21.2 Local mean Time . . . . . . . . . . . . . . . . . . . . . 24

4
Exa 1.22.1 GCT to LMT . . . . . . . . . . . . . . . . . . . . . . . 25
Exa 1.22.2 GCT to LMT . . . . . . . . . . . . . . . . . . . . . . . 25
Exa 1.22.3 GCT to LMT . . . . . . . . . . . . . . . . . . . . . . . 26
Exa 1.23 Actual Time . . . . . . . . . . . . . . . . . . . . . . . 26
Exa 1.24 LMT . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Exa 1.25 Local time . . . . . . . . . . . . . . . . . . . . . . . . 28
Exa 1.26 Local time . . . . . . . . . . . . . . . . . . . . . . . . 29
Exa 1.27.1 GST of GMN . . . . . . . . . . . . . . . . . . . . . . . 29
Exa 1.27.2 GST at GMM . . . . . . . . . . . . . . . . . . . . . . 30
Exa 1.28 LST at LMT . . . . . . . . . . . . . . . . . . . . . . . 31
Exa 1.29 LST and LMT . . . . . . . . . . . . . . . . . . . . . . 31
Exa 1.30 LST at LMT . . . . . . . . . . . . . . . . . . . . . . . 32
Exa 1.31 LST and LMT . . . . . . . . . . . . . . . . . . . . . . 33
Exa 1.32 LST and LMT . . . . . . . . . . . . . . . . . . . . . . 34
Exa 1.33 LST and LMT . . . . . . . . . . . . . . . . . . . . . . 35
Exa 1.42 horizontal angle . . . . . . . . . . . . . . . . . . . . . 36
Exa 1.43 index error in theodolite . . . . . . . . . . . . . . . . . 37
Exa 1.44 chronometer error . . . . . . . . . . . . . . . . . . . . 38
Exa 1.45 chronometer error . . . . . . . . . . . . . . . . . . . . 38
Exa 1.46 chronometer error . . . . . . . . . . . . . . . . . . . . 39
Exa 1.47 chronometer error . . . . . . . . . . . . . . . . . . . . 40
Exa 1.48 Azimuth and LMT . . . . . . . . . . . . . . . . . . . . 40
Exa 1.49 Azimuth and LMT . . . . . . . . . . . . . . . . . . . . 42
Exa 1.50 Azimuth of star . . . . . . . . . . . . . . . . . . . . . 43
Exa 1.51 Azimuth of line . . . . . . . . . . . . . . . . . . . . . . 44
Exa 1.52 Azimuth of sun . . . . . . . . . . . . . . . . . . . . . . 45
Exa 1.53 azimuth angle . . . . . . . . . . . . . . . . . . . . . . 46
Exa 1.54 azimuth angle . . . . . . . . . . . . . . . . . . . . . . 47
Exa 1.55 latitude . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Exa 1.56 latitude . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Exa 1.57 latitude of place . . . . . . . . . . . . . . . . . . . . . 49
Exa 1.58 apparent latitude of place . . . . . . . . . . . . . . . . 50
Exa 1.59 latitude of place . . . . . . . . . . . . . . . . . . . . . 51
Exa 1.60 latitude of place and declination of star . . . . . . . . 52
Exa 1.61 latitude of place . . . . . . . . . . . . . . . . . . . . . 53
Exa 1.62 latitude of place . . . . . . . . . . . . . . . . . . . . . 53
Exa 1.63 latitude of place . . . . . . . . . . . . . . . . . . . . . 54
Exa 1.64 latitude of place . . . . . . . . . . . . . . . . . . . . . 55

5
Exa 1.65 latitude of place . . . . . . . . . . . . . . . . . . . . . 56
Exa 2.1 Azimuth of camera . . . . . . . . . . . . . . . . . . . . 58
Exa 2.2 distance of points . . . . . . . . . . . . . . . . . . . . 59
Exa 2.3 distance of points . . . . . . . . . . . . . . . . . . . . 59
Exa 2.4 representative fraction . . . . . . . . . . . . . . . . . . 60
Exa 2.5 altitude of point . . . . . . . . . . . . . . . . . . . . . 61
Exa 2.6 representative fraction . . . . . . . . . . . . . . . . . . 61
Exa 2.7 altitude of point . . . . . . . . . . . . . . . . . . . . . 61
Exa 2.8 distance of points . . . . . . . . . . . . . . . . . . . . 62
Exa 2.9 altitude of a point . . . . . . . . . . . . . . . . . . . . 63
Exa 2.10 relief displacement . . . . . . . . . . . . . . . . . . . . 63
Exa 2.11 relief displacement . . . . . . . . . . . . . . . . . . . . 64
Exa 2.12 relief displacement . . . . . . . . . . . . . . . . . . . . 64
Exa 2.13 flight plan . . . . . . . . . . . . . . . . . . . . . . . . . 65
Exa 2.14 flight plan . . . . . . . . . . . . . . . . . . . . . . . . . 65
Exa 2.15 photograph numbers . . . . . . . . . . . . . . . . . . . 66
Exa 2.16 flight planning . . . . . . . . . . . . . . . . . . . . . . 67
Exa 2.17 parallax of a point . . . . . . . . . . . . . . . . . . . . 69
Exa 2.18 parallax . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Exa 2.19 parallax . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Exa 2.20 parallax . . . . . . . . . . . . . . . . . . . . . . . . . . 70

6
Chapter 1

Field Astronomy

Scilab code Exa 1.1.1 astronomical triangle

1
2
3 // e x a p p l e 1 . 1 . 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 a =40; // l o n g i t u d e o f A
7 b =73; // l o n g i t u d e o f B
8 dol =b - a ; // d i f f e r e n c e o f l o n g i t u d e
9 disp ( ” d i f f e r e n c e o f l o n g i t u d e i s ” ) ;
10 a = modulo ( dol *3600 ,60) ;
11 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
12 b = modulo ( dol *3600 - a ,3600) /60;
13 printf ( ” m i n u t e s %i ” ,b ) ;
14 c =( dol *3600 - b *60 - a ) /3600;
15 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.1.2 astronomical triangle

7
1
2
3 // e x a p p l e 1 . 1 . 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 a =20; // l o n g i t u d e o f A
7 b =150; // l o n g i t u d e o f B
8 dol =b - a ; // d i f f e r e n c e o f l o n g i t u d e
9 disp ( ” d i f f e r e n c e o f l o n g i t u d e i s ” ) ;
10 a = modulo ( dol *3600 ,60) ;
11 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
12 b = modulo ( dol *3600 - a ,3600) /60;
13 printf ( ” m i n u t e s %i ” ,b ) ;
14 c =( dol *3600 - b *60 - a ) /3600;
15 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.1.3 astronomical triangle

1
2
3 // e x a p p l e 1 . 1 . 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 a = -20; // l o n g i t u d e o f A
7 b =50; // l o n g i t u d e o f B
8 dol =b - a ; // d i f f e r e n c e o f l o n g i t u d e
9 disp ( ” d i f f e r e n c e o f l o n g i t u d e i s ” ) ;
10 a = modulo ( dol *3600 ,60) ;
11 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
12 b = modulo ( dol *3600 - a ,3600) /60;
13 printf ( ” m i n u t e s %i ” ,b ) ;
14 c =( dol *3600 - b *60 - a ) /3600;
15 printf ( ” d e g r e e s %i ” ,c ) ;

8
Scilab code Exa 1.1.4 astronomical triangle

1
2
3 // e x a p p l e 1 . 1 . 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 a = -40; // l o n g i t u d e o f A
7 b =150; // l o n g i t u d e o f B
8 dol =b - a ; // d i f f e r e n c e o f l o n g i t u d e
9 if dol >180 then
10 dol =360 - dol ;
11 disp ( ” d i f f e r e n c e o f l o n g i t u d e i s ” ) ;
12 a = modulo ( dol *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( dol *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( dol *3600 - b *60 - a ) /3600;
17 printf ( ” d e g r e e s %i ” ,c ) ;
18 end

Scilab code Exa 1.2.1 astronomical triangle

1
2
3 // e x a p p l e 1 . 2 . 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 latA =28+42/60; // l a t i t u d e o f A
8 lonA =31*60+12; // l o n g i t u d e o f A
9 latB =28+42/60; // l a t i t u d e o f B

9
10 lonB =47*60+24; // l o n g i t u d e o f B
11 d =( lonB - lonA ) * cos ( latA /180* pi ) ;
12 disp ( d *1.852 , ” d i s t a n c e b e t w e e n A & B i n (km) : ” ) ;

Scilab code Exa 1.2.2 astronomical triangle

1
2
3 // e x a p p l e 1 . 2 . 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14259;
7 latA =12+36/60; // l a t i t u d e o f A
8 lonA = -115*60 -6; // l o n g i t u d e o f A
9 latB =12+36/60; // l a t i t u d e o f B
10 lonB =150*60+24; // l o n g i t u d e o f B
11 d =(360*60 - lonB + lonA ) * cos ( latA /180* pi ) ;
12 disp ( d *1.852 , ” d i s t a n c e b e t w e e n A & B i n (km) : ” ) ;

Scilab code Exa 1.3 astronomical triangle

1
2
3 // e x a p p l e 1 . 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159
7 latA =15;
8 latB =12+6/60;
9 lonA =50+12/60;
10 lonB =54;
11 Re =6370; // r a d i u s o f e a r t h
12 b =(90 - latA ) * pi /180;;

10
13 a =(90 - latB ) * pi /180;
14 P =( lonB - lonA ) * pi /180;
15 p = acos ( cos ( P ) * sin ( a ) * sin ( b ) + cos ( a ) * cos ( b ) ) ; //
s p e h e r i c a l t r i a n g l e law
16 disp ( p * Re , ” d i s t a n c e from A t o B i n (km) : ” ) ;
17 x = atan ( cos ( a /2 - b /2) / cos ( a /2+ b /2) * tan ( pi /2 - P /2) ) ; // x=
A/2+B/2 // s p e h e r i c a l t r i a n g l e law
18 y = atan ( sin ( a /2 - b /2) / sin ( a /2+ b /2) * tan ( pi /2 - P /2) ) ; // x=
A/2−B/2 // s p e h e r i c a l t r i a n g l e law
19 dol = pi -x - y ;
20 disp ( ” d i r e c t i o n o f B from A towards e a s t of south : ”
);
21 a = modulo ( dol *3600 ,60) ;
22 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
23 b = modulo ( dol *3600 - a ,3600) /60;
24 printf ( ” m i n u t e s %i ” ,b ) ;
25 c =( dol *3600 - b *60 - a ) /3600;
26 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.4 astronomical triangle

1
2
3 // e x a p p l e 1 . 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 latA =45;
8 p =(300/60) * pi /180; // s i d e AB
9 b =(90 - latA ) * pi /180; // s i d e PA
10 // c a l c u l a t i o n
11 a = acos ( cos ( p ) * cos ( b ) ) ; // s i d e BP
12 BC = a *180/ pi - latA ;
13 d = BC *1.852*60;
14 disp (d , ” d i s a t a n c e o f BC i n (km) : ” )

11
Scilab code Exa 1.5 zenith distance

1
2
3 // e x a p p l e 1 . 5
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 delta =42+15/60; // d e c l i n a t i o n o f s t a r
8 theta =26+40/60; // l a t i t u d e o f s t a r
9 zend =90 - theta -90+ delta ;
10 alt =90 - zend ;
11 disp ( ” z e n i t h d i s t a c e o f s t a r i n ( d e g r e e s ) : ” ) ;
12 a = modulo ( zend *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( zend *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( zend *3600 - b *60 - a ) /3600;
17 printf ( ” d e g r e e s %i ” ,c ) ;
18 disp ( , ” a l t i t u d e o f s t a r i n ( d e g r e e s ) : ” ) ;
19 a = modulo ( alt *3600 ,60) ;
20 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
21 b = modulo ( alt *3600 - a ,3600) /60;
22 printf ( ” m i n u t e s %i ” ,b ) ;
23 c =( alt *3600 - b *60 - a ) /3600;
24 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.6.1 zenith distance and altitude of star

1
2

12
3 // e x a p p l e 1 . 6 . 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 delta =23+20/60; // d e c l i n a t i o n o f s t a r
8 theta =26+40/60; // l a t i t u d e o f s t a
9 zend =90+ theta -90 - delta ;
10 alt =90 - zend ;
11 disp ( ” z e n i t h d i s t a c e o f s t a r i n ( d e g r e e s ) : ” ) ;
12 a = modulo ( zend *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( zend *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( zend *3600 - b *60 - a ) /3600;
17 printf ( ” d e g r e e s %i ” ,c ) ;
18 disp ( , ” a l t i t u d e o f s t a r i n ( d e g r e e s ) : ” ) ;
19 a = modulo ( alt *3600 ,60) ;
20 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
21 b = modulo ( alt *3600 - a ,3600) /60;
22 printf ( ” m i n u t e s %i ” ,b ) ;
23 c =( alt *3600 - b *60 - a ) /3600;
24 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.6.2 zenith distance and altitude at upper culmination

1
2
3 // e x a p p l e 1 . 6 . 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 delta =65+40/60; // d e c l i n a t i o n o f s t a r
8 theta =26+40/60; // l a t i t u d e o f s t a r
9 zend =90 - theta -90+ delta ;
10 alt =90 - zend ;

13
11 disp ( ” z e n i t h d i s t a c e o f s t a r i n ( d e g r e e s ) : ” ) ;
12 a = modulo ( zend *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( zend *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( zend *3600 - b *60 - a ) /3600;
17 printf ( ” d e g r e e s %i ” ,c ) ;
18 disp ( , ” a l t i t u d e o f s t a r i n ( d e g r e e s ) : ” ) ;
19 a = modulo ( alt *3600 ,60) ;
20 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
21 b = modulo ( alt *3600 - a ,3600) /60;
22 printf ( ” m i n u t e s %i ” ,b ) ;
23 c =( alt *3600 - b *60 - a ) /3600;
24 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.7 astronomical triangle

1
2
3 // e x a p p l e 1 . 7
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6
7 pi =3.14159;
8 delta =85+20/60;
9 theta =46+50/60;
10 if delta >90 - theta then
11 zend =180 - theta - delta ;
12 disp ( ” z e n i t h d i s t a n c e i n ( d e g r e e s ) : ” ) ;
13 a = modulo ( zend *3600 ,60) ;
14 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
15 b = modulo ( zend *3600 - a ,3600) /60;
16 printf ( ” m i n u t e s %i ” ,b ) ;
17 c =( zend *3600 - b *60 - a ) /3600;
18 printf ( ” d e g r e e s %i ” ,c ) ;

14
19 zend1 =90 - zend ;
20 disp ( ” a l t i t u d e o f s t a r i n ( d e g r e e s ) : ” ) ;
21 a = modulo ( zend1 *3600 ,60) ;
22 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
23 b = modulo ( zend1 *3600 - a ,3600) /60;
24 printf ( ” m i n u t e s %i ” ,b ) ;
25 c =( zend1 *3600 - b *60 - a ) /3600;
26 printf ( ” d e g r e e s %i ” ,c ) ;
27 end

Scilab code Exa 1.8 astronomical triangle

1
2
3 // e x a p p l e 1 . 8
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6
7 pi =3.14159;
8 delta =56+10/60;
9 theta =56+10/60;
10 if delta >90 - theta then
11 zend =180 - theta - delta ;
12 disp ( ” z e n i t h d i s t a n c e i n ( d e g r e e s ) : ” ) ;
13 a = modulo ( zend *3600 ,60) ;
14 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
15 b = modulo ( zend *3600 - a ,3600) /60;
16 printf ( ” m i n u t e s %i ” ,b ) ;
17 c =( zend *3600 - b *60 - a ) /3600;
18 printf ( ” d e g r e e s %i ” ,c ) ;
19 zend1 =90 - zend ;
20 disp ( ” a l t i t u d e o f s t a r i n ( d e g r e e s ) : ” ) ;
21 a = modulo ( zend1 *3600 ,60) ;
22 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
23 b = modulo ( zend1 *3600 - a ,3600) /60;

15
24 printf ( ” m i n u t e s %i ” ,b ) ;
25 c =( zend1 *3600 - b *60 - a ) /3600;
26 printf ( ” d e g r e e s %i ” ,c ) ;
27 end

Scilab code Exa 1.9 astronomical triangle

1
2
3 // e x a p p l e 1 . 9
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 // s o l v i n g e q u a t i o n o f t h e t a and d e l t a
7 b (1 ,1) =90 -70 -20/60; // z e n i t h d i s t a n c e a t u p p e r
culmination
8 b (2 ,1) =90+20+40/60; // z e n i t h d i s t a n c e a t l o w e r
culmination
9 A =[1 -1;1 1]; // c o e f f of equations having d e c l i n a t i o n
o f s t a r and l a t i t u d e o f o b s e r v a t i o n
10 x = A \ b ;
11 disp ( x (1) ,” d e c l i n a t i o n o f s t a r i n ( d e g r e e s ) ” ) ;
12 disp ( x (2) ,” l a t i t u d e o f p l a c e o f o b s e r v a t i o n i n (
d e g r e e s ) : ”);

Scilab code Exa 1.10 astronomical triangle

1
2
3 // e x a p p l e 1 . 1 0
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f Variable
6 pi =3.14159;
7 theta =20+30/60;

16
8 H =42+6/60; // h o u r a n g l e
9 delta =50;
10 // i n t r i a n g l e ZPM( f i g u r e i n book )
11 PZ =(90 - delta ) * pi /180;
12 H = H * pi /180;
13 PM =(90 - theta ) * pi /180;
14 ZM = acos (( cos ( PZ ) * cos ( PM ) + sin ( PM ) * sin ( PZ ) * cos ( H ) ) ) ;
15 alpha = pi /2 - ZM ;
16 alpha = alpha *180/ pi ;
17 disp ( , ” a l t i t u d e o f s t a r i n : ” ) ;
18 a = modulo ( alpha *3600 ,60) ;
19 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
20 b = modulo ( alpha *3600 - a ,3600) /60;
21 printf ( ” m i n u t e s %i ” ,b ) ;
22 c =( alpha *3600 - b *60 - a ) /3600;
23 printf ( ” d e g r e e s %i ” ,c ) ;
24 A =(( cos ( PM ) - cos ( PZ ) * cos ( ZM ) ) / sin ( PZ ) / sin ( ZM ) ) ;
25
26 if A <0 then
27 A=-A;
28 A = acos ( A ) ;
29 A =180 - A *180/ pi ;
30 disp ( ” a z i m u t h o f s t a r i n ( d e g r e e s ) w e s t w a r d s : ” )
31
32 a = modulo ( A *3600 ,60) ;
33 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
34 b = modulo ( A *3600 - a ,3600) /60;
35 printf ( ” m i n u t e s %i ” ,b ) ;
36 c =( A *3600 - b *60 - a ) /3600;
37 printf ( ” d e g r e e s %i ” ,c ) ;
38 end

Scilab code Exa 1.11 astronomical triangle

17
2
3 // e x a p p l e 1 . 1 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 theta = -8 -30/60;
8 H =322; // h o u r a n g l e
9 delta =50;
10 // i n t r i a n g l e ZPM( f i g u r e i n book )
11 PZ =(90 - delta ) * pi /180;
12 H =2* pi - H * pi /180;
13 PM =(90 - theta ) * pi /180;
14 ZM = acos (( cos ( PZ ) * cos ( PM ) + sin ( PM ) * sin ( PZ ) * cos ( H ) ) ) ;
15 alpha = pi /2 - ZM ;
16 disp ( alpha *180/ pi , ” a l t i t u d e o f s t a r i n ( d e g r e e s ) : ” ) ;
17 A =(( cos ( PM ) - cos ( PZ ) * cos ( ZM ) ) / sin ( PZ ) / sin ( ZM ) ) ;
18 if A <0 then
19 A=-A;
20 A = acos ( A ) ;
21 A =180 - A *180/ pi ;
22 disp (A , ” a z i m u t h o f s t a r i n ( d e g r e e s ) e a s t w a r d s : ”
)
23 end

Scilab code Exa 1.12 astronomical triangle

1
2
3 // e x a p p l e 1 . 1 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 alpha =22+36/60; // a l t i t u d e o f s t a r
8 A =42 // a z i m u t h a n g l e
9 delta =40; // l a t i t u d e o f o b s e r v e r

18
10 // i n t r i a n g l e ZPM( f i g u r e i n book )
11 PZ =(90 - delta ) * pi /180;
12 A = A * pi /180;
13 ZM =(90 - alpha ) * pi /180;
14 PM = acos (( cos ( PZ ) * cos ( ZM ) + sin ( ZM ) * sin ( PZ ) * cos ( A ) ) ) ;
15 theta = pi /2 - PM ;
16 disp ( theta *180/ pi , ” d e c l i n a t i o n o f s t a r i n ( d e g r e e s )
north : ”);
17 H =(( cos ( ZM ) - cos ( PZ ) * cos ( PM ) ) / sin ( PZ ) / sin ( PM ) ) ;
18 if H <0 then
19 H=-H;
20 H = acos ( H ) ;
21 H =180 - H *180/ pi ;
22 disp (H , ” h o u r a n g l e of star in ( degrees )
eastwards : ”)
23 end

Scilab code Exa 1.13 astronomical triangle

1
2
3 // e x a p p l e 1 . 1 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 alpha =21+30/60; // a l t i t u d e o f s t a r
8 A =140 // a z i m u t h a n g l e
9 delta =48; // l a t i t u d e o f o b s e r v e r
10 // i n t r i a n g l e ZPM( f i g u r e i n book )
11 PZ =(90 - delta ) * pi /180;
12 A = A * pi /180;
13 ZM =(90 - alpha ) * pi /180;
14 PM =( cos ( PZ ) * cos ( ZM ) + sin ( ZM ) * sin ( PZ ) * cos ( A ) ) ;
15 if PM <0 then
16 PM = - PM ;

19
17 PM = acos ( PM ) ;
18 PM =180 - PM *180/ pi ;
19 disp ( PM -90 , ” d e c l i n a t i o n o f s t a r i n ( d e g r e e s )
southwards : ”);
20 end
21
22 H = acos (( cos ( ZM ) - cos ( PZ ) * cos ( PM * pi /180) ) / sin ( PZ ) / sin (
PM * pi /180) ) ;
23 H =2* pi - H ;
24 disp ( H *180/ pi , ” h o u r a n g l e o f s t a r i n ( d e g r e e s ) ” ) ;

Scilab code Exa 1.14 Sunset and sunrise

1
2
3 // e x a p p l e 1 . 1 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 // p a r t 1
8 delta =22+12/60;
9 theta =42+30/60;
10 ZP =(90 - theta ) * pi /180;
11 PM =(90 - delta ) * pi /180;
12 A = acos ( cos ( PM ) / sin ( ZP ) ) ;
13 disp ( A *180/ pi , ” a z i m u t h o f s e t t i n g sun i n ( d e g r e e s ) : ”
);
14 H =180 - acos ( tan ( pi /2 - ZP ) * tan ( pi /2 - PM ) ) *180/ pi ;
15 disp (H , ” s u n s h o u r a n g l e i n ( d e g r e e s ) : ” ) ;
16 // p a r t 2
17 delta = -22 -12/60;
18 theta =42+30/60;
19 ZP =(90 - theta ) * pi /180;
20 PM =(180 -90 - delta ) * pi /180;
21 A = acos ( cos ( PM ) / sin ( ZP ) ) ;

20
22 disp ( A *180/ pi , ” a z i m u t h o f s e t t i n g sun i n ( d e g r e e s ) : ”
);
23 H = pi - acos ( tan ( pi /2 - ZP ) * tan ( pi /2 - PM ) ) ;
24 disp ( H *180/ pi , ” s u n s h o u r a n g l e i n ( d e g r e e s ) : ” ) ;

Scilab code Exa 1.15 Sunset and sunrise

1
2
3 // e x a p p l e 1 . 1 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 // p a r t 1
8 delta =22+12/60;
9 theta =42+30/60;
10 ZP =(90 - theta ) * pi /180;
11 PM =(90 - delta ) * pi /180;
12 A = pi - acos ( cos ( PM ) / sin ( ZP ) ) ;
13 disp ( A *180/ pi , ” a z i m u t h o f s e t t i n g sun i n ( d e g r e e s ) : ”
);
14 H =180 - acos ( tan ( pi /2 - ZP ) * tan ( pi /2 - PM ) ) *180/ pi ;
15 disp (H , ” s u n s h o u r a n g l e i n ( d e g r e e s ) : ” ) ;

Scilab code Exa 1.16 Standard Time

1
2
3 // e x a p p l e 1 . 1 6
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 change = -11.82/60; // c h a n g e i n t i m e i n a day
7 time = -3 -28.41/60; // g r e e n w i c h t i m e a t j u l y 1 1 9 5 1

21
8 c12 = change /24*12 // c h a n g e o f t i m e i n 12 h o u r s
9 tch = time - c12 ;
10 disp ( tch , ” g r e e n w i c h mean t i m e e r r o r i n 12 t h h o u r i n
( minutes ) : ”)

Scilab code Exa 1.17 Standard Time

1
2
3 // e x a p p l e 1 . 1 7
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 time =10*3600+30*60;
7 GMN = -14*60 -10;
8 changeET =1*1.5;
9 neterr = GMN + changeET ;
10 GAT = time + neterr ;
11 hr = round ( GAT /3600) ;
12 b = GAT - hr *3600;
13 mi = round ( b /60 -1) ;
14 c = GAT - hr *3600 - mi *60;
15 disp ( ”GAT i s ” ) ;
16 disp ( hr , ” h o u r s ” ) ;
17 disp ( mi , ” m i n u t e s ” ) ;
18 disp (c , ” s e c o n d s ” ) ;

Scilab code Exa 1.18 conversion of angle and time

1
2
3 // e x a p p l e 1 . 1 8
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f Variable

22
6 // p a r t 1
7 A =50+12/60+48/3600;
8 time = A /15*3600
9 hr = round ( time /3600) ;
10 b = time - hr *3600;
11 mi = round ( b /60 -1) ;
12 c = time - hr *3600 - mi *60;
13 disp ( ” t i m e i s ” ) ;
14 disp ( hr , ” h o u r s ” ) ;
15 disp ( mi , ” m i n u t e s ” ) ;
16 disp (c , ” s e c o n d s ” ) ;
17 // p a r t 2
18 A =8+18/60+6/3600;
19 time = A /15*3600
20 hr = round ( time /3600) ;
21 b = time - hr *3600;
22 mi = round ( b /60) ;
23 c = time - hr *3600 - mi *60;
24 disp ( ” t i m e i s ” ) ;
25 disp ( hr , ” h o u r s ” ) ;
26 disp ( mi , ” m i n u t e s ” ) ;
27 disp (c , ” s e c o n d s ” ) ;
28 // p a r t 3
29 A =258+36/60+30/3600;
30 time = A /15*3600
31 hr = round ( time /3600) ;
32 b = time - hr *3600;
33 mi = round ( b /60) ;
34 c = time - hr *3600 - mi *60;
35 disp ( ” t i m e i s ” ) ;
36 disp ( hr , ” h o u r s ” ) ;
37 disp ( mi , ” m i n u t e s ” ) ;
38 disp (c , ” s e c o n d s ” ) ;

Scilab code Exa 1.19 conversion of angle and time

23
1
2
3 // e x a p p l e 1 . 1 9
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 // p a r t 1
7 A =4+34/60+13/3600;
8 angle = A *15*3600;
9 deg = round ( angle /3600 -1) ;
10 b = angle - deg *3600;
11 mi = round ( b /60) ;
12 c = angle - deg *3600 - mi *60;
13 disp ( ” a n g l e i s ” ) ;
14 disp ( deg , ” d e g r e e s ” ) ;
15 disp ( mi , ” m i n u t e s ” ) ;
16 disp (c , ” s e c o n d s ” ) ;
17 // p a r t 2
18 A =18+11/60+38/3600;
19 angle = A *15*3600;
20 deg = round ( angle /3600 -1) ;
21 b = angle - deg *3600;
22 mi = round ( b /60 -1) ;
23 c = angle - deg *3600 - mi *60;
24 disp ( ” a n g l e i s ” ) ;
25 disp ( deg , ” d e g r e e s ” ) ;
26 disp ( mi , ” m i n u t e s ” ) ;
27 disp (c , ” s e c o n d s ” ) ;

Scilab code Exa 1.20.1 local and standard time

1
2
3 // e x a p p l e 1 . 2 0 . 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f Variable

24
6 longP =20 // l o n g i t u d e o f t h e p l a c e
7 longSM =82+30/60; // l o n g i t u d e o f s t a n d a r d m e r i d i o n
8 dolong = longSM - longP ; // d i f f e r e n c e i n l o n g i t u d e
9 dot = dolong /15; // d i f f e r e n c e i n t i m e
10 LMT =20+24/60+6/3600 - dot ;
11 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t : ” ) ;
12 a = modulo ( LMT *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( LMT *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( LMT *3600 - b *60 - a ) /3600;
17 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.20.2 local and standard time

1
2
3 // e x a p p l e 1 . 2 0 . 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 longP = -20 // l o n g i t u d e o f t h e p l a c e
7 longSM =82+30/60; // l o n g i t u d e o f s t a n d a r d m e r i d i o n
8 dolong = longSM - longP ; // d i f f e r e n c e i n l o n g i t u d e
9 dot = dolong /15; // d i f f e r e n c e i n t i m e
10 LMT =20+24/60+6/3600 - dot ;
11 disp ( LMT , ” l o c a l mean t i m e i n p a s t m i d n i g h t : ” ) ;
12 a = modulo ( LMT *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( LMT *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( LMT *3600 - b *60 - a ) /3600;
17 printf ( ” h o u r s %i ” ,c ) ;

25
Scilab code Exa 1.21.1 Local Mean Time

1
2
3 // e x a p p l e 1 . 2 1 . 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 LMT =9+40/60+12/3600;
7 longP = -42 -36/60;
8 dot = longP /15;
9 GMT = LMT - dot ;
10 disp ( ” g r e e n w i c h mean t i m e i n p a s t m i d n i g h t : ” ) ;
11 a = modulo ( GMT *3600 ,60) ;
12 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
13 b = modulo ( GMT *3600 - a ,3600) /60;
14 printf ( ” m i n u t e s %i ” ,b ) ;
15 c =( GMT *3600 - b *60 - a ) /3600;
16 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.21.2 Local mean Time

1
2
3 // e x a p p l e 1 . 2 1 . 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 LMT =4+32/60+10/3600;
7 longP =56+32/60;
8 dot = longP /15;
9 GMT = LMT - dot ;
10 disp ( ” g r e e n w i c h mean t i m e i n p a s t m i d n i g h t : ” ) ;
11 a = modulo ( GMT *3600 ,60) ;
12 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
13 b = modulo ( GMT *3600 - a ,3600) /60;
14 printf ( ” m i n u t e s %i ” ,b ) ;

26
15 c =( GMT *3600 - b *60 - a ) /3600;
16 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.22.1 GCT to LMT

1
2
3 // e x a p p l e 1 . 2 2 . 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 GCT =18+40/60+12/3600; // g r e e n w i c h c i v i l t i m e
7 longP =72+30/60; // l o n g i t u d e o f t h e p l a c e
8 dot = longP /15;
9 LMT = GCT + dot ;
10 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t : ” ) ;
11 a = modulo ( LMT *3600 ,60) ;
12 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
13 b = modulo ( LMT *3600 - a ,3600) /60;
14 printf ( ” m i n u t e s %i ” ,b ) ;
15 c =( LMT *3600 - b *60 - a ) /3600;
16 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.22.2 GCT to LMT

1
2
3 // e x a p p l e 1 . 2 2 . 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 GCT =18+40/60+12/3600; // g r e e n w i c h c i v i l t i m e
7 longP = -73+30/60; // l o n g i t u d e o f t h e p l a c e
8 dot = longP /15;
9 LMT = GCT + dot ;

27
10 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t : ” ) ;
11 a = modulo ( LMT *3600 ,60) ;
12 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
13 b = modulo ( LMT *3600 - a ,3600) /60;
14 printf ( ” m i n u t e s %i ” ,b ) ;
15 c =( LMT *3600 - b *60 - a ) /3600;
16 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.22.3 GCT to LMT

1
2
3 // e x a p p l e 1 . 2 2 . 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 GCT =18+40/60+12/3600; // g r e e n w i c h c i v i l t i m e
7 longP =102+30/60; // l o n g i t u d e o f t h e p l a c e
8 dot = longP /15;
9 LMT = GCT + dot ;
10 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t : ” ) ;
11 a = modulo ( LMT *3600 ,60) ;
12 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
13 b = modulo ( LMT *3600 - a ,3600) /60;
14 printf ( ” m i n u t e s %i ” ,b ) ;
15 c =( LMT *3600 - b *60 - a ) /3600;
16 if c >24 then
17 c =c -24;
18 end
19 printf ( ” h o u r s %i ” ,c ) ;
20 disp ( ” d a t e i s c h a n g e d by a day ” ) ;
21 disp ( ” d a t e a t t h e p l a c e i s 3 t h J u l y ” )

Scilab code Exa 1.23 Actual Time

28
1
2
3 // e x a p p l e 1 . 2 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 LMT =10+20/60+30/3600; // l o c a l mean t i m e
7 longP =102+30/60; // l o n g i t u d e o f t h e p l a c e
8 dot = longP /15;
9 GMT = LMT - dot ;
10 mGMN =12 - GMT ; // mean t i m e i n t e r v a l
11 i = mGMN *0.32/3600; // i n c r e a s e i n mGMN
12 ETGMN =5/60+4.35/3600;
13 ch = i + ETGMN ; // c h a n g e i n GMT
14 GMT = ch + GMT ;
15 LMT = GMT + dot ;
16 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
17 a = modulo ( LMT *3600 ,60) ;
18 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
19 b = modulo ( LMT *3600 - a ,3600) /60;
20 printf ( ” m i n u t e s %i ” ,b ) ;
21 c =( LMT *3600 - b *60 - a ) /3600;
22 if c >24 then
23 c =c -24;
24 end
25 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.24 LMT

1
2
3 // e x a p p l e 1 . 2 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 LMT =15+12/60+40/3600; // l o c a l mean t i m e
7 longP = -20 -30/60; // l o n g i t u d e o f t h e p l a c e

29
8 dot = longP /15;
9 GMT = LMT - dot ;
10 mGMN = GMT -12; // mean t i m e i n t e r v a l
11 i = mGMN *0.22/3600; // i n c r e a s e i n mGMN
12 ETGMN =5/60+10.65/3600;
13 ch = i + ETGMN ; // c h a n g e i n GMT
14 GMT = ch + GMT ;
15 LMT = GMT + dot ;
16 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
17 a = modulo ( LMT *3600 ,60) ;
18 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
19 b = modulo ( LMT *3600 - a ,3600) /60;
20 printf ( ” m i n u t e s %i ” ,b ) ;
21 c =( LMT *3600 - b *60 - a ) /3600;
22 if c >24 then
23 c =c -24;
24 end
25 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.25 Local time

1
2
3 // e x a p p l e 1 . 2 5
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 time =4+20/60+30/3600;
7 accn = time *9.8565/3600; // a c c e l e r a t i o n
8 stime = time + accn ; // s i d e r a l t i m e
9 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
10 a = modulo ( stime *3600 ,60) ;
11 printf ( ” s e c o n d s %. 3 f ” ,a ) ;
12 b = modulo ( stime *3600 - a ,3600) /60;
13 printf ( ” m i n u t e s %i ” ,b ) ;
14 c =( stime *3600 - b *60 - a ) /3600;

30
15 if c >24 then
16 c =c -24;
17 end
18 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.26 Local time

1
2
3 // e x a p p l e 1 . 2 6
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 time =8+40/60+50/3600;
7 accn = - time *9.8565/3600; // a c c e l e r a t i o n
8 stime = time + accn ; // s i d e r a l t i m e
9 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
10 a = modulo ( stime *3600 ,60) ;
11 printf ( ” s e c o n d s %. 3 f ” ,a ) ;
12 b = modulo ( stime *3600 - a ,3600) /60;
13 printf ( ” m i n u t e s %i ” ,b ) ;
14 c =( stime *3600 - b *60 - a ) /3600;
15 if c >24 then
16 c =c -24;
17 end
18 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.27.1 GST of GMN

1
2
3 // e x a p p l e 1 . 2 7 . 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f Variable

31
6 longP = -160 -30/60 -30/3600; // l o n g i t u d e o f p l a c e
7 GST =16+30/60+12/3600; // s t a n d a r d t i m e
8 dot = longP /15; // d i f f e r e n c e i n t i m e
9 i = dot *9.8565/3600; // e r r o r
10 LST = GST - i ;
11 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
12 a = modulo ( LST *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( LST *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( LST *3600 - b *60 - a ) /3600;
17 if c >24 then
18 c =c -24;
19 end
20 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.27.2 GST at GMM

1
2
3 // e x a p p l e 1 . 2 7 . 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 longP =160+30/60+30/3600; // l o n g i t u d e o f p l a c e
7 GST =16+30/60+12/3600; // s t a n d a r d t i m e
8 dot = longP /15; // d i f f e r e n c e i n t i m e
9 i = dot *9.8565/3600; // e r r o r
10 LST = GST - i ;
11 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
12 a = modulo ( LST *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( LST *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( LST *3600 - b *60 - a ) /3600;
17 if c >24 then

32
18 c =c -24;
19 end
20 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.28 LST at LMT

1
2
3 // e x a p p l e 1 . 2 8
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 longP =85+20/60; // l o n g i t u d e o f p l a c e
7 GST =6+30/60; // s t a n d a r d t i m e
8 GMN =6+32/60+12/3600;
9 dot = longP /15; // d i f f e r e n c e i n t i m e
10 i = dot *9.8565/3600; // e r r o r
11 LST = GMN - i ; //LST a t L .M. N
12 i2 = GST *9.8565/3600; // e r r o r i n GST
13 LST2 = GST + i2 ;
14 LST = LST + LST2 // l s t a t L .M. N
15 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
16 a = modulo ( LST *3600 ,60) ;
17 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
18 b = modulo ( LST *3600 - a ,3600) /60;
19 printf ( ” m i n u t e s %i ” ,b ) ;
20 c =( LST *3600 - b *60 - a ) /3600;
21 if c >24 then
22 c =c -24;
23 end
24 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.29 LST and LMT

33
1
2
3 // e x a p p l e 1 . 2 9
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 longP =112+20/60+15/3600; // l o n g i t u d e o f p l a c e
7 GST =8+10/60+28/3600; //GST a t GMM
8 lst =18+28/60+12/3600; // l o c a l s i d e r e a l t i m e
9 dot = longP /15; // d i f f e r e n c e i n t i m e
10 i = dot *9.8565/3600; // e r r o r
11 LST = GST + i ; //LST a t L .M. N
12 LMM = lst - LST ;
13 i2 = LMM *9.8565/3600; // e r r o r i n LMM
14 LMT = LMM - i2 ; // l o c a l mean t i m e
15
16 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
17 a = modulo ( LMT *3600 ,60) ;
18 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
19 b = modulo ( LMT *3600 - a ,3600) /60;
20 printf ( ” m i n u t e s %i ” ,b ) ;
21 c =( LMT *3600 - b *60 - a ) /3600;
22 if c >24 then
23 c =c -24;
24 end
25 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.30 LST at LMT

1
2
3 // e x a p p l e 1 . 3 0
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 longP =85+20/60; // l o n g i t u d e o f place
7 GST =18+30/60; // s t a n d a r d t i m e

34
8 gst =6+32/60+12/3600; //GST a t GMN
9 dot = longP /15; // d i f f e r e n c e i n t i m e
10 GMT = GST - dot -12;
11 i = GMT *9.8565/3600; // e r r o r
12 GMT = GMT + i ; // S I t i m e
13 LST = GMT + dot + gst ; //LST a t LMT
14 disp ( ” l o c a l s t a n d a r d t i m e i n p a s t m i d n i g h t o b s e r v e d :
”);
15 a = modulo ( LST *3600 ,60) ;
16 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
17 b = modulo ( LST *3600 - a ,3600) /60;
18 printf ( ” m i n u t e s %i ” ,b ) ;
19 c =( LST *3600 - b *60 - a ) /3600;
20 if c >24 then
21 c =c -24;
22 end
23 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.31 LST and LMT

1
2
3 // e x a p p l e 1 . 3 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 longP =112+20/60+15/3600; // l o n g i t u d e o f p l a c e
7 GST =8+10/60+28/3600; //GST a t GMM
8 lst =18+28/60+12/3600; // l o c a l s i d e r e a l t i m e
9 dot = longP /15; // d i f f e r e n c e i n t i m e
10 gmm = lst + dot - GST ; // S I a t GMM
11
12 i = gmm *9.8565/3600; // e r r o r
13 gmm = gmm - i ; //LST a t L .M. N
14 LMT = gmm - dot ; // l o c a l mean t i m e
15 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;

35
16 a = modulo ( LMT *3600 ,60) ;
17 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
18 b = modulo ( LMT *3600 - a ,3600) /60;
19 printf ( ” m i n u t e s %i ” ,b ) ;
20 c =( LMT *3600 - b *60 - a ) /3600;
21 if c >24 then
22 c =c -24;
23 end
24 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.32 LST and LMT

1
2
3
4
5 // e x a p p l e 1 . 3 2
6 clc ; funcprot (0) ;
7 // I n i t i a l i z a t i o n o f V a r i a b l e
8 // p a r t 1
9 longP =162+30/60+15/3600; // l o n g i t u d e o f p l a c e
10 GST =10+30/60+15/3600; //GST a t GMN
11 RA =22+11/60+30/3600; // l o c a l s i d e r e a l t i m e
12 dot = longP /15; // d i f f e r e n c e i n t i m e
13 i = dot *9.8565/3600; // e r r o r
14 gmm = GST + i ; //LST a t L .M. N
15 lmn = RA - gmm ; // S I o f LMN
16 i2 = lmn *9.8565/3600; // e r r o r 2
17 LMT = lmn - i2 ;
18 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d a t
upper t r a n s i t : ”);
19 a = modulo ( LMT *3600 ,60) ;
20 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
21 b = modulo ( LMT *3600 - a ,3600) /60;
22 printf ( ” m i n u t e s %i ” ,b ) ;

36
23 c =( LMT *3600 - b *60 - a ) /3600;
24 if c >24 then
25 c =c -24;
26 end
27 printf ( ” h o u r s %i ” ,c ) ;
28 // p a r t 2
29 i3 =12*9.8565/3600; // r a t a r d a t i o n
30 LMT = LMT +12 - i3 ;
31 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d a t
l o we r t r a n s i t : ”);
32 a = modulo ( LMT *3600 ,60) ;
33 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
34 b = modulo ( LMT *3600 - a ,3600) /60;
35 printf ( ” m i n u t e s %i ” ,b ) ;
36 c =( LMT *3600 - b *60 - a ) /3600;
37 if c >24 then
38 c =c -24;
39 end
40 printf ( ” h o u r s %i ” ,c ) ;
41 disp ( ” i t s t h e t i m e o f n e x t day ” )

Scilab code Exa 1.33 LST and LMT

1
2
3
4
5 // e x a p p l e 1 . 3 3
6 clc ; funcprot (0) ;
7 // I n i t i a l i z a t i o n o f V a r i a b l e
8 longP =60+30/60; // l o n g i t u d e o f p l a c e
9 GST =7+30/60+48.6/3600; //GST a t GMM
10 RA =17+28/60/40/1600;
11 dot = longP /15; // d i f f e r e n c e i n t i m e
12 i = dot *9.8565/3600; // e r r o r

37
13 gmm = GST - i ; //LST a t L .M. N
14 LMT = RA - gmm ; // l o c a l mean t i m e
15 disp ( ” l o c a l mean t i m e i n p a s t m i d n i g h t o b s e r v e d : ” ) ;
16 a = modulo ( LMT *3600 ,60) ;
17 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
18 b = modulo ( LMT *3600 - a ,3600) /60;
19 printf ( ” m i n u t e s %i ” ,b ) ;
20 c =( LMT *3600 - b *60 - a ) /3600;
21 if c >24 then
22 c =c -24;
23 end
24 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.42 horizontal angle

1
2
3 // e x a p p l e 1 . 4 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 aziA =32+41/60+30/3600; // a z i m u t h o f A
7 aziB =110+28/60+42/3600; // a z i m u t h o f B
8 vaA =10+21/60+12/3600; // v e r t i c a l a n g l e o f A
9 vaB = -2 -18/60 -30/3600; // v e r t i c s l a n g l e o f B
10 lA1 =11;
11 lB1 =11.5;
12 rA1 =7.5;
13 rB1 =7;
14 lB2 =10;
15 lA2 =10.5;
16 rB2 =7.5;
17 rA2 =8;
18 d =20;
19 // partA
20 sigl = lA1 + lA2 ;

38
21 sigr = rA1 + rA2 ;
22 b = sigl /4* d - sigr /4* d ;
23 i = tan ( vaA ) ;
24 caziA = aziA + i *29.95/3600;
25 disp ( caziA , ” c o r r e c t e d a z i m u t h o f A i n ( d e g r e e s ) : ” ) ;
26 // partB
27
28 i = tan ( vaB ) ;
29 caziB = aziB + i * b /3600;
30 disp ( caziB , ” c o r r e c t e d a z i m u t h o f B i n ( d e g r e e s ) : ” ) ;
31 ha = caziB - caziA ;
32 disp ( ha , ” h o r i z o n t a l d i f f e r e n c e o f a n g l e b e t w e e n A &
B in ( d e g r e e s ) : ”)

Scilab code Exa 1.43 index error in theodolite

1
2
3 // e x a p p l e 1 . 4 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 v1 =18+36/60+48/3600; // v e r t i c a l a n g l e 1
7 v2 =18+35/60+56/3600; // v e r t i c a l a n g l e 2
8 slm =28+36/60+20/3600; // a l t i t u d e o f sun m e a s u r e d
9 ds =15/60+59.35/3600; // d i a o f sun
10 pi =3.14159;
11 mv =( v1 + v2 ) /2; // mean v e r t i c a l a n g l e
12 i = v1 - v2 ; // e r r o r
13 sl = slm + i ; // new a l t i t u d e o f sun
14 // p a r t 2
15 sl = sl + ds ;
16 // p a r t 3
17 ir = -57/3600/( tan ( slm * pi /180+26* pi /180/3600) ) ; // e r r o r
due t o r e f r a c t i o n
18 sl = sl + ir ;

39
19 // p a r t 4
20 ip =8.8/3600* cos ( slm * pi /180+26* pi /180/3600) ; // e r r o r
due t o p a r a l l a x
21 sl = sl + ip ;
22 disp ( ” c o r r e c t a l t i t u d e o f sun ” )
23 a = modulo ( sl *3600 ,60) ;
24 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
25 b = modulo ( sl *3600 - a ,3600) /60;
26 printf ( ” m i n u t e s %i ” ,b ) ;
27 c =( sl *3600 - b *60 - a ) /3600;
28 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.44 chronometer error

1
2
3 // e x a p p l e 1 . 4 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 long =4+30/60;
7 i = long *9.8565/3600; // l o n g i t u d e
8 gst =14+38/60+12/3600; //GST on GMM
9 lst = gst - i ; //LST on LMM
10 RA =7+36/60+21.24/3600;
11 LST = RA ;
12 SI = LST - lst +24;
13 LCT =17+56/60+8.86/3600 -1; // l o c a l c h r o n o m e t e r t i m e
14 i2 = SI *9.8296/3600;
15 LMM = SI - i2 ;
16 ce = LCT - LMM ;
17 disp ( ce *3600 , ” c h r o n o m e t e r e r r o r i n ( s ) : ” )

Scilab code Exa 1.45 chronometer error

40
1
2
3 // e x a p p l e 1 . 4 5
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 c =90 -36 -30/60 -30/3600; // c o l a t i t u d e
7 p =90 -16 -12/60 -18.4/3600; // c o d e c l i n a t i o n
8 z =90 -30 -12/60 -30/3600; // c o a l t i t u d e
9 s =( p + z + c ) /2;
10 pi =3.14159;
11 s1 =s - c ;
12 s2 =s - p ;
13 s3 =s - z ;
14 H =2* atan ( sqrt ( sin ( s1 * pi /180) * sin ( s2 * pi /180) / sin ( s * pi
/180) / sin ( s3 * pi /180) ) ) ;
15 H = H *180/ pi ;
16 H =24 - H /15;
17 LST = H +5+18/60+12.45/3600 -24;
18 ce =1+2/60+5.25/3600 - LST ;
19 disp ( ce *3600+2 , ” c h r o n o m e t e r e r r o r i n ( s ) : ” )

Scilab code Exa 1.46 chronometer error

1
2
3 // e x a p p l e 1 . 4 6
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 c =90 -36 -40/60 -30/3600; // c o l a t i t u d e
7 p =90 -17 -26/60 -42.1/3600; // c o d e c l i n a t i o n
8 z =90 -36 -14/60 -16.8/3600; // c o a l t i t u d e
9 pi =3.14159;
10 s =( p + z + c ) /2;
11 s1 =s - c ;
12 s2 =s - p ;

41
13 s3 =s - z ;
14 H =2* atan ( sqrt ( sin ( s1 * pi /180) * sin ( s2 * pi /180) / sin ( s * pi
/180) / sin ( s3 * pi /180) ) ) ;
15 H = H *180/ pi ;
16 H = H /15;
17 i =12 -11 -56/60 -22.8/3600; // e r r o r i n t i m e
18 LAT =15+49/60+40.6/3600; // l o c a l a c t u a l t i m e
19 GAT = LAT - H ;
20 GMT = GAT - i ;
21 LMT = GMT + H ;
22 ce =15+49/60+12.6/3600 - LMT ;
23 disp ( ce *3600 , ” c h r o n o m e t e r e r r o r i n ( s ) : ” )

Scilab code Exa 1.47 chronometer error

1
2
3 // e x a p p l e 1 . 4 7
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 RA =17+12/60+48/3600;
7 gst =9+26/60+12/3600; //GST on GMN
8 long =138/15+45/15/60; // l o n g i t u d e
9 lst = - long *9.85645/3600+9+26/60+12/3600; //LST on LMN
10 LST =17+12/60+48/3600; // l o c a l s i d e r e a l t i m e
11 SI = LST - lst ;
12 MI = - SI *9.8296/3600+ SI ;
13 LCT =7+47/60+02/3600; // l o c a l c h r o n o m e t e r t i m e
14 ce = LCT - MI ;
15 disp ( ce *3600 , ” c h r o n o m e t e r e r r o r i n ( s ) : ” )

Scilab code Exa 1.48 Azimuth and LMT

42
1
2
3 // e x a p p l e 1 . 4 8
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 // p a r t 1
7 theta =54+30/60; // l o g i t u d e
8 delta =62+12/60+21/3600; // d e c l i n a t i o n
9 pi =3.14;
10 lat = asin ( sin ( theta * pi /180) / sin ( delta * pi /180) ) ;
11 lat = lat *180/ pi ;
12 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
13 a = modulo ( lat *3600 ,60) ;
14 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
15 b = modulo ( lat *3600 - a ,3600) /60;
16 printf ( ” m i n u t e s %i ” ,b ) ;
17 c =( lat *3600 - b *60 - a ) /3600;
18 printf ( ” d e g r e e s %i ” ,c ) ;
19 // p a r t 2
20 A =53+25/60; // a z i m u t h o f s t a r
21 h =65+18/60+42/3600; // h o r i z o n t a l a n g l e
22 A=A+h;
23 disp ( ” a z i m u t h o f l i n e AP i s : ” ) ;
24 a = modulo ( A *3600 ,60) ;
25 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
26 b = modulo ( A *3600 - a ,3600) /60;
27 printf ( ” m i n u t e s %i ” ,b ) ;
28 c =( A *3600 - b *60 - a ) /3600;
29 printf ( ” d e g r e e s %i ” ,c ) ;
30 // p a r t 3
31 lst =4+39/60+6.5/3600; //LST o f LMN
32 LST =10+58/ 60+38/36 00+2+49/ 60+25.3/ 3600; //LST o f
observation
33 LMN = LST - lst ;
34 i = LMN *9.8565/3600; // e r r o r
35 LMT = LMN - i ;
36 disp ( ” l o c a l mean t i m e i s : ” )
37 a = modulo ( LMT *3600 ,60) ;

43
38 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
39 b = modulo ( LMT *3600 - a ,3600) /60;
40 printf ( ” m i n u t e s %i ” ,b ) ;
41 c =( LMT *3600 - b *60 - a ) /3600;
42 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.49 Azimuth and LMT

1
2
3 // e x a p p l e 1 . 4 9
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 // p a r t 1
7 theta =53+32/60; // l o g i t u d e
8 delta =56+42/60+53.2/3600; // d e c l i n a t i o n
9 pi =3.14159;
10 lat = asin ( sin ( theta * pi /180) / sin ( delta * pi /180) ) ;
11 lat = lat *180/ pi ;
12 disp ( ” a l t i t u d e o f s t a r o b s e r v e d : ” ) ;
13 a = modulo ( lat *3600 ,60) ;
14 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
15 b = modulo ( lat *3600 - a ,3600) /60;
16 printf ( ” m i n u t e s %i ” ,b ) ;
17 c =( lat *3600 - b *60 - a ) /3600;
18 printf ( ” d e g r e e s %i ” ,c ) ;
19 // p a r t 2
20 As = asin ( cos ( delta * pi /180) / cos ( theta * pi /180) ) ; //
azimuth o f s t a r
21 h =75+18/60+20/3600; // a n g l e b e t w e e n l i n e and s t a r
22 A =h - As *180/ pi ;
23 A =360 - A ;
24 disp ( ” a z i m u t h o f l i n e AP i s : ” ) ;
25 a = modulo ( A *3600 ,60) ;
26 printf ( ” s e c o n d s %. 2 f ” ,a ) ;

44
27 b = modulo ( A *3600 - a ,3600) /60;
28 printf ( ” m i n u t e s %i ” ,b ) ;
29 c =( A *3600 - b *60 - a ) /3600;
30 printf ( ” d e g r e e s %i ” ,c ) ;
31 // p a r t 3
32 LST =10+58/60+3.9/3600+22+10/60+38.5/3600 -24; //LST o f
observation
33 long =5+40/60+18/3600; // l o n g i t u d e
34 i = long *9.8565/3600; // e r r o r
35 lst =4+58/60+23.84/3600+ i ; //LST on LMN
36 LMM = LST - lst ;
37 i2 = LMM *9.8565/3600; // e r r o r i n LMM
38 LMT = LMM - i2 ;
39 disp ( ” l o c a l mean t i m e i n t e r v a l i s : ” )
40 a = modulo ( LMT *3600 ,60) ;
41 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
42 b = modulo ( LMT *3600 - a ,3600) /60;
43 printf ( ” m i n u t e s %i ” ,b ) ;
44 c =( LMT *3600 - b *60 - a ) /3600;
45 printf ( ” h o u r s %i ” ,c ) ;

Scilab code Exa 1.50 Azimuth of star

1
2
3 // e x a p p l e 1 . 5 0
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 long =(15+30/60) /15; // l o n g i t u d e
8 GMT =19+12/60+36.2/3600;
9 i = long *9.8565/3600; // e r r o r i n l o n g i t u d e
10 LMT = GMT + long ;
11 i2 = LMT *9.8565/3600; // e r r o r i n LMT
12 LMT = LMT + i2 ;

45
13 LST =10+12/60+21.4/3600+ LMT ;
14 H = LST -10 -12/60 -6.3/3600; // h o u r a n g l e
15 H = H *15;
16 H =360 - H ;
17 As = atan ( tan ((55+29/60+1.2/3600) * pi /180) * cos
((32+52/60+27/3600) * pi /180) / sin (( -2 -7/60 -33/3600)
* pi /180) ) ;
18 h =36+28/60+18/3600; // a n g l e b e t w e e n l i n e and s t a r
19 A =180+ As *180/ pi - h ;
20 disp ( ” a z i m u t h o f s t a r i s : ” ) ;
21 a = modulo ( A *3600 ,60) ;
22 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
23 b = modulo ( A *3600 - a ,3600) /60;
24 printf ( ” m i n u t e s %i ” ,b ) ;
25 c =( A *3600 - b *60 - a ) /3600;
26 printf ( ” d e g r e e s %i ” ,c ) ;
27 clear

Scilab code Exa 1.51 Azimuth of line

1
2
3 // e x a p p l e 1 . 5 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 alpha =33+35/60+10/3600; // a l t i t u d e
8 ZM =90 - alpha ;
9 delta =22+05/60+35/3600; // d e c l i n a t i o n
10 PM =90 - delta ;
11 theta =52+30/60+20/3600; // l a t i t u d e
12 ZP =90 - theta ;
13 As = acos (( cos ( PM * pi /180) - cos ( ZP * pi /180) * cos ( ZM * pi
/180) ) /( sin ( ZP * pi /180) * sin ( ZM * pi /180) ) ) ;
14 h =18+20/60+30/3600; // a n g l e b e t w e e n l i n e and s t a r

46
15 A = As *180/ pi + h ;
16 disp ( ” a z i m u t h o f s t a r i s : ” ) ;
17 a = modulo ( A *3600 ,60) ;
18 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
19 b = modulo ( A *3600 - a ,3600) /60;
20 printf ( ” m i n u t e s %i ” ,b ) ;
21 c =( A *3600 - b *60 - a ) /3600;
22 printf ( ” d e g r e e s %i ” ,c ) ;
23 clear

Scilab code Exa 1.52 Azimuth of sun

1
2
3 // e x a p p l e 1 . 5 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 // p a r t 1
7 GAT =5+17/60+6/60; //GAT o f o b s e r v a t i o n
8 delta =17+46/60+52/3600; // d e c l i n a t i o n
9 i =37/3600* GAT ;
10 delta = delta - i ;
11 disp ( ” d e c l i n a t i o n o f GAT i s : ” ) ;
12 a = modulo ( delta *3600 ,60) ;
13 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
14 b = modulo ( delta *3600 - a ,3600) /60;
15 printf ( ” m i n u t e s %i ” ,b ) ;
16 c =( delta *3600 - b *60 - a ) /3600;
17 printf ( ” d e g r e e s %i ” ,c ) ;
18 // p a r t 2
19 pi =3.14159;
20 p =90 - delta ; // co−d e c l i n a t i o n
21 altitude =23+15/60+20/3600; // a l t i t u d e o f sun
22 i2 =2/60+12/3600; // e r r o r due t o r e f r a c t i o n
23 i3 =8/3600; // e r r o r due t o p a r a l l a x

47
24 altitude = altitude - i2 + i3 ;
25 c =90 -55 -46/60 -12/3600; // c o l a t i t u d e
26 z =90 - altitude ; // c o a l t i t u d e
27 s =( p + z + c ) /2;
28 s1 =s - c ;
29 s2 =s - p ;
30 s3 =s - z ;
31 A =2* atan ( sqrt ( sin ( s3 * pi /180) * sin ( s1 * pi /180) / sin ( s * pi
/180) / sin ( s2 * pi /180) ) ) ;
32 A = A *180/ pi ;
33 disp ( ” a z i m u t h o f s t a r i s : ” ) ;
34 a = modulo ( A *3600 ,60) ;
35 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
36 b = modulo ( A *3600 - a ,3600) /60;
37 printf ( ” m i n u t e s %i ” ,b ) ;
38 c =( A *3600 - b *60 - a ) /3600;
39 printf ( ” d e g r e e s %i ” ,c ) ;
40 clear

Scilab code Exa 1.53 azimuth angle

1
2
3 // e x a p p l e 1 . 5 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 GMT =17+5/60+2/3600; //
8 i =9.8565/3600* GMT ;
9 GST =3+12/60+12/3600;
10 wl =1+18/60; // w e s t l o n g i t u d e
11 RA =16+23/60+30/3600;
12 H = GMT + i + GST + wl - RA ; // h o u r a n g l e
13 H = H *15;
14 p =90 -29 -52/60;

48
15 c =90 -52 -8/60;
16 z = acos ( cos ( H * pi /180) * sin ( p * pi /180) * sin ( c * pi /180) + cos
( p * pi /180) * cos ( c * pi /180) ) ;
17 A = asin ( sin ( p * pi /180) * sin ( H * pi /180) / sin ( z ) ) ;
18 A = A *180/ pi ;
19 disp ( ” a z i m u t h o f s t a r i s : ” ) ;
20 a = modulo ( A *3600 ,60) ;
21 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
22 b = modulo ( A *3600 - a ,3600) /60;
23 printf ( ” m i n u t e s %i ” ,b ) ;
24 c =( A *3600 - b *60 - a ) /3600;
25 printf ( ” d e g r e e s %i ” ,c ) ;
26 clear

Scilab code Exa 1.54 azimuth angle

1
2
3 // e x a p p l e 1 . 5 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 a1 =24+30/60+20/3600;
8 a2 =24+30/60+40/3600;
9 a3 =25;
10 a4 =25+1/60;
11 lat =( a1 + a2 + a3 + a4 ) /4;
12 il =(10.6 -9.4) /4*15/3600; // e r r o r due t o l e v e l
13 lat = lat + il ;
14 ir = -57/3600/ tan (( lat * pi /180) ) ; // c a r r e c t i o n o f
refraction
15 ip =8/3600* cos ( lat * pi /180) ; // c o r r e c t i o n o f p a r a l l a x
16 lat = lat - ir + ip ;
17 z =90 - lat ;
18 delta =1+32/60+16.8/3600 -56.2/3600*(3/60+1.86/3600) ;

49
19 p =90 - delta ;
20 c =90 -36 -48/60 -30/3600;
21 s =( p + z + c ) /2;
22 s1 =s - c ;
23 s2 =s - p ;
24 s3 =s - z ;
25 A =2* atan ( sqrt ( sin ( s3 * pi /180) * sin ( s1 * pi /180) / sin ( s * pi
/180) / sin ( s2 * pi /180) ) ) ;
26 A = A *180/ pi ;
27
28 A = A +81+59/60+10/3600;
29 A =360 - A ;
30 disp ( ” a z i m u t h o f s t a r i s : ” ) ;
31 a = modulo ( A *3600 ,60) ;
32 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
33 b = modulo ( A *3600 - a ,3600) /60;
34 printf ( ” m i n u t e s %i ” ,b ) ;
35 c =( A *3600 - b *60 - a ) /3600;
36 printf ( ” d e g r e e s %i ” ,c ) ;
37 clear

Scilab code Exa 1.55 latitude

1
2
3 // e x a p p l e 1 . 5 5
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 alpha =65+40/60+18/3600; // a l t i t u d e
7 delta =53+12/60+10/3600; // d e c l i n a t i o n
8 pi =3.1415;
9 i =57/3600*1/ tan ( alpha * pi /180) ; // e r r o r
10 alpha = alpha - i ;
11 z =90 - alpha ; // z e n i t h d i s t a n c e
12 lat = delta - z ;

50
13 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
14 a = modulo ( lat *3600 ,60) ;
15 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
16 b = modulo ( lat *3600 - a ,3600) /60;
17 printf ( ” m i n u t e s %i ” ,b ) ;
18 c =( lat *3600 - b *60 - a ) /3600;
19 printf ( ” d e g r e e s %i ” ,c ) ;
20 clear

Scilab code Exa 1.56 latitude

1
2
3 // e x a p p l e 1 . 5 6
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 alpha =64+36/60+20/3600; // a l t i t u d e
7 delta =26+12/60+10/3600; // d e c l i n a t i o n
8 pi =3.1415;
9 i =57/3600*1/ tan ( alpha * pi /180) ; // e r r o r
10 alpha = alpha - i ;
11 z =90 - alpha ; // z e n i t h d i s t a n c e
12 lat = delta + z ;
13 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
14 a = modulo ( lat *3600 ,60) ;
15 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
16 b = modulo ( lat *3600 - a ,3600) /60;
17 printf ( ” m i n u t e s %i ” ,b ) ;
18 c =( lat *3600 - b *60 - a ) /3600;
19 printf ( ” d e g r e e s %i ” ,c ) ;
20 clear

Scilab code Exa 1.57 latitude of place

51
1
2
3 // e x a p p l e 1 . 5 7
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 alpha =44+12/60+30/3600; // a l t i t u d e
7 longP =75+20/60+15/3600; // l o n g i t u d e o f p l a c e
8 delta =22+18/60+12.8/3600; // d e c l i n a t i o n o f sun
9 pi =3.1415;
10 i =57/3600*1/ tan ( alpha * pi /180) ; // e r r o r
11 i2 =8.78/3600* cos ( alpha ) ; // c o r r e c t i o n due t o p a r a l l a x
12 i3 =15/60+45.86/3600; // c o r e e c t i n due t o s e m i d i a m t e r
13 alpha = alpha - i + i2 + i3 ;
14 z =90 - alpha ; // z e n i t h d i s t a n c e
15 delT = longP /15;
16 i4 =6.82/3600* delT ; // e r r o r i n t i m e
17 delta = i4 + delta ;
18 lat = delta + z ;
19 disp ( ” l a t i t u d e o f sun i s t o t h e s o u t h o b s e r v e d : ” ) ;
20 a = modulo ( lat *3600 ,60) ;
21 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
22 b = modulo ( lat *3600 - a ,3600) /60;
23 printf ( ” m i n u t e s %i ” ,b ) ;
24 c =( lat *3600 - b *60 - a ) /3600;
25 printf ( ” d e g r e e s %i ” ,c ) ;
26 clear

Scilab code Exa 1.58 apparent latitude of place

1
2
3 // e x a p p l e 1 . 5 8
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f Variable
6 theta =80;

52
7 delta =46+45/60+30/3600;
8 alpha1 =90 - theta + delta ;
9 disp ( ” a l p h a 1 i s ( North ) : ” ) ;
10 a = modulo ( alpha1 *3600 ,60) ;
11 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
12 b = modulo ( alpha1 *3600 - a ,3600) /60;
13 printf ( ” m i n u t e s %i ” ,b ) ;
14 c =( alpha1 *3600 - b *60 - a ) /3600;
15 printf ( ” d e g r e e s %i ” ,c ) ;
16 alpha2 = theta + delta -90;
17 disp ( ” a l p h a 2 i s ( South ) : ” ) ;
18 a = modulo ( alpha2 *3600 ,60) ;
19 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
20 b = modulo ( alpha2 *3600 - a ,3600) /60;
21 printf ( ” m i n u t e s %i ” ,b ) ;
22 c =( alpha2 *3600 - b *60 - a ) /3600;
23 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.59 latitude of place

1
2
3 // e x a p p l e 1 . 5 9
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 delta1 =20+25/60+48/3600; // d e c l i n a t i o n o f s t a r 1
7 delta2 =79+30/60+52/3600; // d e c l i n a t i o n o f s t a r 2
8 alpha1 =48+18/60+12/3600; // a l t i t u d e o f s t a r 1
9 alpha2 =47+54/60+6/3600; // a l t i t u d e o f s t a r 2
10 pi =3.1415;
11 r1 =58/3600/ tan ( alpha1 * pi /180) // e r r o r 1
12 r2 =58/3600/ tan ( alpha2 * pi /180) // e r r o r 2
13 lat =90 -( alpha1 - alpha2 ) /2+( delta1 - delta2 ) /2+( r1 - r2 )
/2;
14 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;

53
15 a = modulo ( lat *3600 ,60) ;
16 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
17 b = modulo ( lat *3600 - a ,3600) /60;
18 printf ( ” m i n u t e s %i ” ,b ) ;
19 c =( lat *3600 - b *60 - a ) /3600;
20 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.60 latitude of place and declination of star

1
2
3 // e x a p p l e 1 . 6 0
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 alphal =18+36/60+40/3600; // a l t i t u d e at lower
culmination
7 alphau =59+48/60+20/3600; // a l t i t u d e a t u p p e r
culmination
8 lat =( alphal + alphau ) /2;
9 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
10 a = modulo ( lat *3600 ,60) ;
11 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
12 b = modulo ( lat *3600 - a ,3600) /60;
13 printf ( ” m i n u t e s %i ” ,b ) ;
14 c =( lat *3600 - b *60 - a ) /3600;
15 printf ( ” d e g r e e s %i ” ,c ) ;
16 delta =90+ lat - alphau ;
17 disp ( ” d e c l i n a t i o n o f s t a r o b s e r v e d : ” ) ;
18 a = modulo ( delta *3600 ,60) ;
19 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
20 b = modulo ( delta *3600 - a ,3600) /60;
21 printf ( ” m i n u t e s %i ” ,b ) ;
22 c =( delta *3600 - b *60 - a ) /3600;
23 printf ( ” d e g r e e s %i ” ,c ) ;

54
Scilab code Exa 1.61 latitude of place

1
2
3 // e x a p p l e 1 . 6 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 alpha =40+36/60+30/3600; // a l t i t u d e o f s t a r
7 delta =10+36/60+40/3600; // d e c l i n a t i o n o f s t a r
8 H =46+36/60+20/3600; // h o u r a n g l e o f s t a r
9 pi =3.1412;
10 n = atan ( tan ( delta * pi /180) / cos ( H * pi /180) ) ;
11 lat = n + acos ( sin ( alpha * pi /180) * sin ( n ) / sin ( delta * pi
/180) ) ;
12 lat = lat *180/ pi ;
13 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
14 a = modulo ( lat *3600 ,60) ;
15 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
16 b = modulo ( lat *3600 - a ,3600) /60;
17 printf ( ” m i n u t e s %i ” ,b ) ;
18 c =( lat *3600 - b *60 - a ) /3600;
19 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.62 latitude of place

1
2
3 // e x a p p l e 1 . 6 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 alpha =42+10/60+40/3600; // a l t i t u d e o f sun

55
8 delta =23+12/60+18.6/3600; // d e c l i n a t i o n o f sun ’ s
angle
9 i =57/3600*1/ tan ( alpha * pi /180) ; // e r r o r
10 i2 =8.78/3600* cos ( alpha ) ; // c o r r e c t i o n due t o p a r a l l a x
11 i3 =15/60+45.86/3600; // c o r e e c t i n due t o s e m i d i a m t e r
12 longP =108+30/60; // l o n g i t u d e o f p l a c e
13 LMT =14+50/60;
14 alpha = alpha - i + i2 + i3 ;
15 delT = longP /15; // c h a n g e i n t i m e
16 GMT = LMT + delT ;
17 i4 =1.2/3600* GMT ; // e r r o r i n t i m e
18 H =( GMT -12+ i4 - delT ) *15; // h o u r a n g l e
19 i5 =10.6/3600* GMT ; // e r r o r i n d e c l i n a t i o n
20 delta = delta + i5 ;
21 ZM =(90 - alpha ) * pi /180;
22 PM =(90+ delta ) * pi /180;
23 A = asin ( sin ( PM ) / sin ( ZM ) * sin ( H * pi /180) ) ;
24 A = pi - A ;
25 ZP =2* atan ( sin ( A /2+ H * pi /360) / sin ( A /2 - H * pi /360) * tan ( PM
/2 - ZM /2) ) ;
26 lat = pi /2 - ZP ;
27 lat = lat *180/ pi +1;
28 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
29 a = modulo ( lat *3600 ,60) ;
30 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
31 b = modulo ( lat *3600 - a ,3600) /60;
32 printf ( ” m i n u t e s %i ” ,b ) ;
33 c =( lat *3600 - b *60 - a ) /3600;
34 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.63 latitude of place

1
2
3 // e x a p p l e 1 . 6 3

56
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 delta =15+20/60+48/3600; // d e c l i n a t i o n o f s t a r
7 Int =9+22/60+6/3600; // i n t e r v a l
8 pi =3.141;
9 dint = Int *9.8565/3600; // c h a n g e i n i n t e r v a l
10 H =( Int + dint ) *15/2; // h o u r a n g l e
11 lat = atan ( tan ( delta * pi /180) / cos ( H * pi /180) ) ;
12 lat = lat *180/ pi +5/6*16/3600;
13 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
14 a = modulo ( lat *3600 ,60) ;
15 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
16 b = modulo ( lat *3600 - a ,3600) /60;
17 printf ( ” m i n u t e s %i ” ,b ) ;
18 c =( lat *3600 - b *60 - a ) /3600;
19 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.64 latitude of place

1
2
3 // e x a p p l e 1 . 6 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14159;
7 RA =1+41/60+48.64/3600;
8 lat =48+36/60+40/3600; // l a t i t u d e
9 delta =88+58/60+28.26/3600; // d e c l i n a t i o n o f p o l a r i s
10 GMM =16+48/60+20.86/3600;
11 longP =7+20/60; // l o n g i t u d e o f p l a c e P
12 i1 =51/3600; // e r r o r due t o b a r o m e t e r
13 i2 =1/3600; // e r r o r due t o b a r o m e t e r
14 i3 = -1/3600; // e r r o r due t o temp
15 lat = lat - i1 + i2 + i3 ;
16 delT = longP /15;

57
17 i4 = delT *9.8565/3600;
18 lst = GMM + i4 ;
19 LMT =20+24/60+50/3600;
20 i6 =9.8565/3600* LMT ; // e r r o r i n LMT
21 LST = LMT + i6 + lst -24;
22 H = LST - RA ; // h o u r a n g l e
23 H = H *15;
24 lat = lat -(90 - delta ) * cos ( H * pi /180) +.5* sin (1/3600* pi
/180) *(90 - delta ) ^2*( sin ( H * pi /180) ) ^2* tan ( lat * pi
/180) ;
25 disp ( ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
26 a = modulo ( lat *3600 ,60) ;
27 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
28 b = modulo ( lat *3600 - a ,3600) /60;
29 printf ( ” m i n u t e s %i ” ,b ) ;
30 c =( lat *3600 - b *60 - a ) /3600;
31 printf ( ” d e g r e e s %i ” ,c ) ;

Scilab code Exa 1.65 latitude of place

1
2
3 // e x a p p l e 1 . 6 5
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 longP =120 -4 -20/60; // l o n g i t u d e o f p o i n t
7 delT = longP /15;
8 GST =8+30/60+20/3600; //GST on GMM
9 i = delT *9.8565/3600; // e r r o r i n t i m e
10 pi =3.1415;
11 lst = GST + i ; //LST on LMM
12 LST =19+52/60+16/3600;
13 RA = LST ;
14 LMN = LST - lst ;
15 i2 = LMN *9.8565/3600; // e r r o r i n LMN

58
16 LMN = LMN - i2 ;
17 OSM =10+55/60+30/3600; // O b s e r v e d mean t i m e
18 i3 =1/60+25/3600; // e r r o r i n o b s e r v e d t i m e
19 OSM = OSM - i3 ;
20 LMT = OSM +4/15+21/60/15;
21 I = LMN - LMT ; // i n t e r v a l
22 i4 =1.21/3600; // e r r o r i n i n t e r v a l
23 I = I + i4 ;
24 H = I ; // h o u r a n g l e
25 delta =6+15/60+02/3600; // d e f l e c t i o n
26 alpha =39+20/60+30/3600; // a l t i t u d e
27 theta =56+54/60+30/3600; // l o n g i t u d e
28 B = cos ( delta * pi /180) * cos ( theta * pi /180) / cos ( alpha * pi
/180) ;
29 m =225* H ^2*3600^2/2/206265;
30 lat = alpha + m * B /3600;
31 lat =90 - lat +6+15/60+02/3600;
32 disp (B , ” l a t i t u d e o f s t a r o b s e r v e d : ” ) ;
33 a = modulo ( lat *3600 ,60) ;
34 printf ( ” s e c o n d s %. 2 f ” ,a ) ;
35 b = modulo ( lat *3600 - a ,3600) /60;
36 printf ( ” m i n u t e s %i ” ,b ) ;
37 c =( lat *3600 - b *60 - a ) /3600;
38 printf ( ” d e g r e e s %i ” ,c ) ;

59
Chapter 2

Photogrammetric Surveying

Scilab code Exa 2.1 Azimuth of camera

1
2
3 // e x a p p l e 2 . 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14259;
7 f =120.80 // f o c a l l e n g t h
8 a = -35.52 // e l e v a t i o n o f A
9 b =8.48 // e l e v a t i o n o f B
10 c =48.26 // e l e v a t i o n o f C
11 alphaa = atan ( a / f ) ;
12 alphab = atan ( b / f ) ;
13 alphac = atan ( c / f ) ;
14 phi =(354+30/60) * pi /180; // a z i m u t h o f camera
15 phia = phi - alphaa -360* pi /180; // a z i m u t h o f a
16 disp ( phia / pi *180 , ” a z i m u t h o f a i n ( d e g r e e s ) ” ) ;
17 phib = phia + alphab ; // a z i m u t h o f b
18 disp ( phib / pi *180 , ” a z i m u t h o f b i n ( d e g r e e s ) ” ) ;
19 phic = phia + alphac ; // a z i m u t h o f c
20 disp ( phic / pi *180 , ” a z i m u t h o f c i n ( d e g r e e s ) ” ) ;
21 clear

60
Scilab code Exa 2.2 distance of points

1
2
3 // e x a p p l e 2 . 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14259;
7 f =150; // f o c a l l e n g t h o f camera
8 ap =20.2 // e l e v a t i o n o f a from p
9 aa1 =16.4; // d i t a n c e t o t h e r i g h t
10 aq =35.2 // e l e v a t i o n o f a from q
11 PQ =100; // d i s t a n c e o f PQ
12 RL =126.845; // r e d u c e d l e v e l o f i n s t r u m e n t
13 alphap = atan ( ap / f ) ;
14 alphaq = atan ( aq / f ) ;
15 P = pi /3 - alphap ; // a n g l e P
16 Q =40* pi /180 - alphaq ; // a n g l e Q
17 A = pi -P - Q ; // a n g l e A ;
18 AP = PQ * sin ( Q ) / sin ( A ) ;
19 disp ( AP , ” d i s t a n c e o f AP i n (m) : ” ) ;
20 AQ = PQ * sin ( P ) / sin ( A ) ;
21 disp ( AQ , ” d i s t a n c e o f AQ i n (m) : ” ) ;
22 Pa1 = sqrt ( ap ^2+ f ^2) ;
23 AA1 = aa1 * AP / Pa1 ;
24 RLa = RL + AA1 ; // r e d u c e d l e v e l o f A
25 disp ( RLa , ” r e d u c e d l e v e l o f A i n (M) ” )

Scilab code Exa 2.3 distance of points

61
2
3 // e x a p p l e 2 . 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 pi =3.14259;
7 theta =(44+30/60) * pi /180; // a n g l e b /w two p o i n t s
8 x1 =68.24; // d i s t a n c e o f f i r s t p o i n t
9 x2 =58.48; // d i s t a n c e o f 2 nd p o i n t
10 f =( x1 + x2 ) / tan ( theta ) /2+ sqrt (( x1 + x2 ) ^2/4/( tan ( theta ) )
^2+ x1 * x2 ) ;
11 disp (f , ” f o c a l l e n g t h o f l e n s i n (mm) : ” ) ;

Scilab code Exa 2.4 representative fraction

1
2
3 // e x a p p l e 2 . 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 // p a r t 1
7 pi =3.14259;
8 H =1200; // a l t i t u d e
9 h =80; // e l e v a t i o n o f h i l l
10 f =15/100;
11 R80 = f /( H - h ) ;
12 disp ( R80 , ” r e p r e s e n t a t i v e f r a c t i o n o f h i l l i s ( t i m e s )
: ”);
13 // p a r t 2
14 h =300; // e l e v a t i o n o f h i l l
15 R300 = f /( H - h ) ;
16 disp ( R300 , ” r e p r e s e n t a t i v e f r a c t i o n o f h i l l i s ( t i m e s
) : ”);

62
Scilab code Exa 2.5 altitude of point

1
2
3 // e x a p p l e 2 . 5
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 R =1/8000;
7 h =1500;
8 f =20/100;
9 H=h+f/R;
10 disp (H , ” h e i g h t a b o v e s e a l e v e l i n (m) : ” ) ;

Scilab code Exa 2.6 representative fraction

1
2
3 // e x a p p l e 2 . 6
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 h =500; // e l e v a t o n o f p o i n t
7 f =20/100; // f o c a l l e n g t h
8 v =8.65/100; // v e r t i c a l d i s t a n c e o f p h o t o g r a p h
9 ho =2000; // h o r i z o n t a l d i s t a n c e o f p h o t o g r a p h
10 R = v / ho ; // r e p r e s e n t a t i v e f r a c t i o n
11 H=h+f/R;
12 disp (H , ” h e i g h t a b o v e s e a l e v e l i n (m) : ” ) ;
13 h =800;
14 S =( H - h ) / f /100; // s c a l e o f p h o t o g r a p h
15 disp (S , ” 1cm i n p h o t o g r a p h r e p r e s e n t s m e t r e s : ” )
16 clear

Scilab code Exa 2.7 altitude of point

63
1
2
3 // e x a p p l e 2 . 7
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 m =1/50000; //map s c a l e
7 pd =10.16; // p h o t o d i s t a n c e
8 md =2.54; //map d i s t a n c e
9 R = pd / md * m ; // r e p r e s e n t a t i v e f r a c t i o n
10 f =16/100;
11 h =200;
12 H=h+f/R;
13 disp (H , ” h e i g h t a b o v e s e a l e v e l i n (m) : ” ) ;

Scilab code Exa 2.8 distance of points

1
2
3 // e x a p p l e 2 . 8
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 f =20 // f o c a l l e n g t h
7 xa =2.65; // x c o o r d i n a t e o f a
8 xb = -1.92; // x c o o r d i n a t e o f b
9 ya =1.36; // y c o o r d i n a t e o f a
10 yb =3.65; // y c o o r d i n a t e o f b
11 H =2500;
12 ha =500; // e l e v a t i o n o f a
13 hb =300; // e l e v a t i o n o f b
14 Xa =( H - ha ) / f * xa ;
15 Xb =( H - hb ) / f * xb ;
16 Ya =( H - ha ) / f * ya ;
17 Yb =( H - hb ) / f * yb ;
18 AB = sqrt (( Xa - Xb ) ^2+( Ya - Yb ) ^2) ;
19 disp ( AB , ” d i s t a n c e b e t w e e n A & B i n (m) : ” )

64
20 clear

Scilab code Exa 2.9 altitude of a point

1
2
3 // e x a p p l e 2 . 9
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 f =20 // f o c a l l e n g t h
7 xa =2.65; // x c o o r d i n a t e o f a
8 xb = -1.92; // x c o o r d i n a t e o f b
9 ya =1.36; // y c o o r d i n a t e o f a
10 yb =3.65; // y c o o r d i n a t e o f b
11 ha =500; // e l e v a t i o n o f a
12 hb =300; // e l e v a t i o n o f b
13 ABg =545;
14 ab =5.112;
15 hab = ha /2+ hb /2;
16 Happ = hab + ABg * f / ab
17
18 Xa =( Happ - ha ) / f * xa ;
19 Xb =( Happ - hb ) / f * xb ;
20 Ya =( Happ - ha ) / f * ya ;
21 Yb =( Happ - hb ) / f * yb ;
22 AB = sqrt (( Xa - Xb ) ^2+( Ya - Yb ) ^2) ;
23 Hact = ABg / AB *( Happ - hab ) + hab ;
24 disp ( Hact , ” a c t u a l f l y i n g h e i g h t o f A & B i n (m) : ” ) ;

Scilab code Exa 2.10 relief displacement

1
2

65
3 // e x a p p l e 2 . 1 0
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 f =20/100;
7 Sd =1/10000;
8 h =250; // e l e v a t i o n
9 r =6.44;
10 H = f / Sd ;
11 d=r*h/H;
12 disp (d , ” r e l i e f d i s p l a c e m e n t o f t h e p o i n t i n ( cm ) ” )

Scilab code Exa 2.11 relief displacement

1
2
3 // e x a p p l e 2 . 1 1
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 h =50; // e l e v a t i o n
7 H =2500 -1250;
8 r =6.35;
9 d=r*h/H;
10 disp (d , ” r e l i e f d i s p l a c e m e n t o f t h e p o i n t i n ( cm ) ” )

Scilab code Exa 2.12 relief displacement

1
2
3 // e x a p p l e 2 . 1 2
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 f =20/100; // f o c a l l e n g t h
7 l =250; // l e n g t h o f l i n e

66
8 lp =8.5/100; // l e n g t h o f l i n e i n p h o t o g r a p h
9 H = l * f / lp ; // h e i g h t o f camera a b o v e datum
10 r =6.46; // d i s t a c e o f image o f t o p o f t h e t o w e r
11 d =0.46; // r e l e i f d i s p l a c e m e n t
12 h=d*H/r;
13 disp (h , ” h e i g h t o f t o w e r a b o v e i t s b a s e i n (m) ” )

Scilab code Exa 2.13 flight plan

1
2
3 // e x a p p l e 2 . 1 3
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 l =20/100; // l e n g t h o f p h o t o g r a p h
7 w =20/100; // b r e a d t h o f p h o t o g r a p h
8 Pl =0.6; // l o n g i t u d i n a l l a p
9 Pw =0.3; // s i d e l a p
10 s =100*20;
11 L =(1 - Pl ) * s ;
12 W =(1 - Pw ) * s ;
13 Ar = L * W /1000/1000;
14 N =100/ Ar ;
15 A = round ( N ) ;
16 if N -A <0 then
17 disp (A , ” no . o f p h o t o g r a p h s t o be t a k e n ” ) ;
18 else
19 disp ( A +1 , ” no . o f p h o t o g r a p h s t o be t a k e n ” ) ;
20 end

Scilab code Exa 2.14 flight plan

67
2
3 // e x a p p l e 2 . 1 4
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 Pl =0.6; // l o n g i t u d i n a l l a p
7 Pw =0.3; // s i d e l a p
8 L1 =10000;
9 s =100*20;
10 L2 = L1 ;
11 N1 = L1 /((1 - Pl ) * s ) +1;
12 A1 = round ( N1 ) ;
13 if N1 - A1 <0 then
14 N1 = A1
15 else
16 N1 = A1 +1;
17 end
18 N2 = L2 /((1 - Pw ) * s ) +1;
19 A2 = round ( N2 ) ;
20 if N2 - A2 <0 then
21 N2 = A2
22 else
23 N2 = A2 +1;
24 end
25 N = N1 * N2 ;
26 disp (N , ” no . o f p h o t o g r a p h s t o be t a k e n ” ) ;
27 clear

Scilab code Exa 2.15 photograph numbers

1
2
3 // e x a p p l e 2 . 1 5
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 Pl =0.6; // l o n g i t u d i n a l l a p

68
7 Pw =0.3; // s i d e l a p
8 L1 =12500;
9 s =100*20;
10 L2 =8000;
11 N1 = L1 /((1 - Pl ) * s ) +1;
12 A1 = round ( N1 ) ;
13 if N1 - A1 <0 then
14 N1 = A1
15 else
16 N1 = A1 +1;
17 end
18 N2 = L2 /((1 - Pw ) * s ) +1;
19 A2 = round ( N2 ) ;
20 if N2 - A2 <0 then
21 N2 = A2
22 else
23 N2 = A2 +1;
24 end
25 N = N1 * N2 ;
26 disp (N , ” no . o f p h o t o g r a p h s t o be t a k e n ” ) ;

Scilab code Exa 2.16 flight planning

1
2
3 // e x a p p l e 2 . 1 6
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 // p a r t 1
7 f =30/100; // f o c a l l e n g t h
8 h =400; // e l e v a t i o n o f datum
9 r =12000; // r a t i o
10 s =120*20;
11 L2 =24000;
12 L1 =30000;

69
13 Pl =0.6; // l o n g i t u d i n a l l a p
14 Pw =0.3; // s i d e l a p
15 H=h+r*f;
16 disp (H , ” h e i g h t a b o v e datum i n (m) : ” ) ;
17 // p a r t 2
18 W =(1 - Pw ) * s ;
19 disp (W , ” g r o u n d w i d t h c o v e r e d i n e a c h p h o t o g r a p h (m) :
”)
20 // p a r t 3
21 N2 = L2 /((1 - Pw ) * s ) +1;
22 A2 = round ( N2 ) ;
23 if N2 - A2 <0 then
24 N2 = A2
25 else
26 N2 = A2 +1;
27 end
28 disp ( N2 , ” no . o f f l i g h t s r e q u i r e d ” )
29 // p a r t 4
30 Asf = L2 /( N2 -1) ; // a c t u a l s p a c i n g b e t w e e n f l i g h t s
31 // p a r t 5
32 Sfl = Asf /600; // s p a c i n g o f f l i g h t l i n e s
33 // p a r t 6
34 gd =(1 - Pl ) * s ; // g r o u n d d i s t a n c e
35 // p a r t 7
36 Ei = gd /55.5; // e x p o s u r e i n t e r v a l
37 Ei = round ( Ei ) ;
38 // p a r t 8
39 Ags =55.56* Ei ; // a d g u s t e d g r o u n d d i s t a n c e
40 // p a r t 9
41 N1 = L1 / Ags +1;
42 A1 = round ( N1 ) ;
43 if N1 - A1 <0 then
44 N1 = A1
45 else
46 N1 = A1 +1;
47 end
48 N = N1 * N2 ;
49 disp (N , ” no . o f p h o t o g r a p h s t o be t a k e n ” ) ;

70
Scilab code Exa 2.17 parallax of a point

1
2
3 // e x a p p l e 2 . 1 7
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 f =150/1000; // f o c a l l e n g t h
7 r =20000; // r a t i o
8 Pl =0.6; // l o n g i t u d i n a l l a p
9 l =23/100; // l e n g t h
10 w =23/100; // w i d t h
11 B =(1 - Pl ) * l * r ; // b a s e l e n g t h
12 H=f*r;
13 h =0;
14 dh =( H - h ) ^2/ B / f *0.1/1000;
15 disp ( dh , ” e r r o r i n h e i g h t i n (m) : ” )

Scilab code Exa 2.18 parallax

1
2
3 // e x a p p l e 2 . 1 8
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 H =600;
7 f =150/1000;
8 s=H/f;
9 b =6.375/100;
10 h1 =0;
11 h2 =120; // h e i g h t o f chimney

71
12 B = s * b ; // datum e l e v a t i o n
13 p1 = B * f *1000/( H - h1 ) ;
14 p2 = B * f *1000/( H - h2 ) ;
15 delp = p2 - p1 ;
16 delh = H * delp /1000/( b + delp /1000) ;
17 disp ( delh , ” p a r a l l a x h e i g h t o f t h e chimney i n (m) : ” ) ;
18 clear

Scilab code Exa 2.19 parallax

1
2
3 // e x a p p l e 2 . 1 9
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f V a r i a b l e
6 B =200;
7 f =120;
8 p2 =52.52; // p a r a l l a x f o r t o p o f p o l e
9 p1 =48.27; // p a r a l l a x f o r bottom o f p o l e
10 delh =( p2 - p1 ) / p2 / p1 * B * f ;
11 disp ( delh , ” d i f e r e n c e i n e l e v a t i o n o f two p o i n t s i n (
m) : ” )

Scilab code Exa 2.20 parallax

1
2
3 // e x a p p l e 2 . 2 0
4 clc ; funcprot (0) ;
5 // I n i t i a l i z a t i o n o f Variable
6 // p a r t 1
7 delp =1.48/1000;
8 H =5000;

72
9 h =500;
10 b =90/1000; // mean p r i n c i p a l b a s e
11 dh =( H - h ) ^2* delp /(( H - h ) * delp + b * H ) ;
12 disp ( dh , ” d i f f e r e n c e i n h e i g h t b e t w e e n two p o i n t s i n
(m) : ” ) ;
13 // p a r t 2
14 delp =15.5/1000;
15 dh =( H - h ) ^2* delp /(( H - h ) * delp + b * H ) ;
16 disp ( dh , ” d i f f e r e n c e i n h e i g h t b e t w e e n two p o i n t s i n
(m) : ” ) ;

73

You might also like