Sponsored Content
Full Discussion: awk and trig functions
Top Forums Shell Programming and Scripting awk and trig functions Post 302334479 by ubeejani on Wednesday 15th of July 2009 04:33:28 PM
Old 07-15-2009
Hello,
I want to calculate distance between two GPS coordinates(Latitude A, Longitude A, Latitude B, Longitude B). By Spherical Law, the formula is:
distance= ACOS ( SIN(latA) * SIN(latB) + COS(latA) * COS(latB) * COS(longB-LongA)) * R
where R= Radius of the earth(6371)
As there is no ACOS function in awk, therefore I have to use the following method:
function acos(x) { return atan2(sqrt(1-x*x), x) }
value = sin(latA) * sin(latB) + cos(latA) * cos(latB) * cos(longB-LongA)
distance = acos(value)*R
But I don't know when I calculate the distance using this method, I get different value from Spherical law formula. For Spherical Law I use MS Excel to calculate the value.
I need your help please.Thanks a lot.
Regards,
Ubee
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk - arithemetic functions with external variables

I'm trying to get awk to do arithmetic functions with external variables and I'm getting an error that I cannot figure out how to fix. Insight would be appreciated money=$1 rate1=$(awk -F"\t " '/'$converting'/{print $3}' convert.table) rate2=$(awk -F"\t"... (2 Replies)
Discussion started by: DKNUCKLES
2 Replies

2. Shell Programming and Scripting

Awk Functions

Hi all. I have a simple shell script shown below which calls an awk function and then print valid or invalid depending on the return value: #!/bin/sh cat file.CSV| nawk -f validate ' BEGIN { FS=","; counter=0} { FS=","; gsub("\"","") valid=validate($1); ... (2 Replies)
Discussion started by: pxy2d1
2 Replies

3. Shell Programming and Scripting

How to use string across functions in AWK

Hi , I m facing one problem with String usage in AWK . let me put what i need . i have a function and there i used one string ( meta_string) function 1 { ................... ................... meta_string = " this string got... (1 Reply)
Discussion started by: madhaviece
1 Replies

4. UNIX for Dummies Questions & Answers

Functions AWK

Hi, I´m using this code: nawk -F¤ -v campotipo=${CAMPO_TIPO_SEDRA} -v ficherolog=${DIRECTORIO_LOGS_MARINE_SEDRA}/${F_LOG_SEDRA} -v ficheroerroneos=${LOG_SEDRA_ERRONEOS} -v separador=${SEPARADOR} -v num_campos=${NUMERO_CAMPOS} -v fichero_procesando=${FICHERO_ENTRADA} ' function valores (... (2 Replies)
Discussion started by: danietepa
2 Replies

5. Shell Programming and Scripting

Don't understand how RS functions in awk

I learn using RS in awk to extract portion of file in this forum which is wonderful solution to the problem. However, I don't understand how exactly it operates. I don't quite understand the mechanism behind how searching for /DATA2/ can result in extracting the whole section under "DATA2" ... (3 Replies)
Discussion started by: joe228
3 Replies

6. Shell Programming and Scripting

User defined functions in awk

Hi; Is der ne to to use user defined functions for the values in awk find $1 -type f -ls | nawk '{{print "|"$3"|"$5"|"$6"|"$8"|"$9"|"$10"|"} for(i=11;i<=NF;i++){printf("%s",$i)}}' In above command i want to append some values returned by user functions on line. thnks; ajay (1 Reply)
Discussion started by: ajaypadvi
1 Replies

7. Shell Programming and Scripting

awk "for" functions

hi all, i have these server logs: 25-04-2012;192.168.70.31;1254545454545417;500.0;SUCCESS 25-04-2012;192.168.70.32;355666650914;315126423993;;General_ERROR_23 30-04-2012;192.168.70.33;e;null;null;Failure 30-04-2012;192.168.70.33;e;null;null;Failure... (4 Replies)
Discussion started by: arrals_vl
4 Replies

8. Shell Programming and Scripting

How to execute functions or initiate functions as command line parameters for below requirement?

I have 7 functions those need to be executed as command line inputs, I tried with below code it’s not executing function. If I run the ./script 2 then fun2 should execute , how to initiate that function I tried case and if else also, how to initiate function from command line if then... (8 Replies)
Discussion started by: saku
8 Replies

9. Shell Programming and Scripting

[solved] awk: placement of user-defined functions

Hi folks, is there any recommendation, especially from a point of performance, about where to place a user-defined function in awk, like in BEGIN{} or if it is only need once at the end in END{}? Or doesn't it matter at all since, awk is so clever and only interprets it once, wherever it is... (3 Replies)
Discussion started by: zaxxon
3 Replies

10. Shell Programming and Scripting

awk - Why can't value of awk variables be passed to external functions ?

I wrote a very simple script to understand how to call user-defined functions from within awk after reading this post. function my_func_local { echo "In func $1" } export -f my_func_local echo $1 | awk -F"/" '{for (k=1;k<=NF;k++) { if ($k == "a" ) { system("my_local_func $k") } else{... (19 Replies)
Discussion started by: sreyan32
19 Replies
MOTO(9.1)																 MOTO(9.1)

NAME
moto - create animation scripts SYNOPSIS
fb/moto [ -fstart end ] [ -sskip ] [ file [ arg ... ] ] DESCRIPTION
Moto is a command generator tailored for an animator's needs. Its input is a concise description of the animation to be produced; its out- put is a command file suitable for input to rc or some other command interpreter. Its arguments are an optional file name containing a moto program (default standard input) and list of numeric parameters that are made available to the program. A moto program consists of a list of groups of commands guarded by a range of frames. Groups may contain parameter ranges enclosed in brackets []. For each frame, moto checks each group and processes those whose guards include the current frame number: 1,6: clr 128 1,4: clr -w [0,30] [0,30] [100,130] [100,130] 3,6: clr -w [100,70] [100,70] [130,100] [130,100] 255 This generates clr 128 clr -w 0 0 100 100 clr 128 clr -w 10 10 110 110 clr 128 clr -w 20 20 120 120 clr -w 100 100 130 130 255 clr 128 clr -w 30 30 130 130 clr -w 90 90 120 120 255 clr 128 clr -w 80 80 110 110 255 clr 128 clr -w 70 70 100 100 255 Two special guards, BEGIN and END, specify actions to be taken before and after processing frames. Moto allows complex computations inside parameter brackets: 1,10: clr [127.5*(1-cos([0,360]))] This generates clr 0 clr 29.82933350233 clr 105.35985734747 clr 191.25 clr 247.3108091502 clr 247.3108091502 clr 191.25 clr 105.35985734747 clr 29.82933350233 clr 0 Expressions may include constants and variables. All values are double-precision floating point numbers. The operators =, /, +, - (both unary and binary), <, >, <=, >=, ==, !=, ?: and !, all with their meanings as in C, except that all results are coerced to double. The result of a%b is a-b*(int)(a/b). The result of a&&b is a?b:a. The result of a||b is a?a:b. The exponentiation operator is ^, also writ- ten **. The expression [a,b] varies from a to b, linearly as the frame number varies between the guards of the group containing the expression. The expression a[b,c] has the value a*b+(1-a)*c. Its value varies from b to c as a varies from 0 to 1. The expression $i has the value of the i'th parameter following the file name on moto's command line. The precedence of operators is, from lowest to highest: = ? : || && < <= == != > >= + - * / % [ ] ^ ** - (unary) ! $ Expressions may be parenthesized to alter precedence. The following math functions are available: fabs floor ceil sqrt hypot sin cos tan asin acos atan exp log log10 sinh cosh tanh All math functions are as described in the C library, except that angles are measured in degrees rather than radians for the trig and inverse trig functions. In addition hypot may have two or three arguments, atan may take two arguments instead of one, and may also be spelled atan2. For parameterization, and to allow even more complex computations, moto has variables, assignment and computation groups. A computation group causes no output; rather its body is a group of expressions to be evaluated for their side effects. It is distinguished from a com- mand group by having a double colon separating the guard and body: BEGIN:: n=5 1,n:: x=512*sin([0,90]) 1,n: pcp -w 0 0 [x] 488 pic.[1,n] %0 This generates pcp -w 0 0 0 488 pic.1 %0 pcp -w 0 0 195.93391737093 488 pic.2 %0 pcp -w 0 0 362.03867196751 488 pic.3 %0 pcp -w 0 0 473.02632064578 488 pic.4 %0 pcp -w 0 0 512 488 pic.5 %0 Upon occasion it is useful to split moto's output into several files, under program control. A group that is separated from its guards by an at-sign @ instead of a colon names a file into which subsequent output is to be written. For example, 1,5@ file.[1,5] 1,5: This is file.[1,5]. creates 5 files, with names file.1, ..., file.5. Each file's contents will announce its name. As is true for all sufficiently large programs, moto has a shell escape. The text of a group separated from its guards by an exclamation point ! causes a copy of rc(1) to be started. The group's text is sent to rc's standard input, and its standard output inserted into moto's output. SOURCE
/sys/src/fb/moto.y MOTO(9.1)
All times are GMT -4. The time now is 01:13 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy