Sponsored Content
Top Forums Shell Programming and Scripting Calculate distance and azimuth Post 302394967 by chamara on Saturday 13th of February 2010 11:51:24 PM
Old 02-14-2010
calculate distance & azimuth between two points

Hi all,
I have a data file like this
Code:
lat lon lat lon
12.000 25.125 14.235 25.012
14.200 81.000 25.584 25.014
45.023 25.365 25.152 35.222

I want to calculate distance and azimuth between this points
eg:- 12.000,25.125 and 14.235,25.012

calculation proocedure-

Code:
 
# calculate distance between two points 
 distance=sqrt((pow(londif*prcurt*cos(meanlat),2))+(pow((latdif*mrcurt),2)));
 latdif=point 1 latitude- point 2 latitude;
 londif=point 1 longitude-point 2 longitude;
 meanlat=(point 1 latitude+point 2 latitude)/2.0;
 a=6377276.345,b=6356075.4131;
 e=sqrt(((a*a)-(b*b))/(a*a));
  function mrcurt(a, e, meanlat)
  {
  mrc=(a*(1-(e*e)))/pow((1-((e*e)*pow(sin(meanlat),2))),1.5);
  return mrc;
  }
  
function prcurt( a, e, meanlat)
  {
 prc;
  prc=a/sqrt(1-pow((e*sin(meanlat)),2));
  return prc;
  }

# calculate Azimuth between two points
A=2*atan((londif/latdif)*((prcurt/mrcurt)*(cos(meanlat))));
  B=londif*(sin(meanlat));
  Az=(A-B)/2;
  if(londif>0&&latdif>0)
  Az=Az;
  if(londif>0&&latdif<0)
  Az=Az+M_PI;
  if(londif<0&&latdif<0)
  Az=Az+M_PI;
  if(londif<0&&latdif>0)
  Az=Az+(2*M_PI);

I want to use awk programming language for this calculation

If you know about this please tell me

Last edited by Scott; 02-14-2010 at 07:01 AM.. Reason: Please use code tags
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Lat/Long Distance Calculation

I amtrying to write a script that would compute the distance between an "x" number of points. This is what I have come up with so far and it is not working. Can anyone modify it to make it work? A=34.16597 B=-84.33244 C=34.2344 D=-84.29189 test "$A" -eq "$C" -o "$B" -eq "$D" then echo... (3 Replies)
Discussion started by: Ernst
3 Replies

2. UNIX for Dummies Questions & Answers

Long Distance UNIX (Solaris) Cloning ?

Need some advice and guidance for this UNIX beginner. Due to downsizing I have inherited the SysAdmin duties..(sigh). Please excuse and forgive me if I use the wrong terms below.... Situation: We have UNIX ( Solaris 7/8/9( it varies) on Sun Ultra 10's) servers located at several global... (1 Reply)
Discussion started by: HikerLT
1 Replies

3. Shell Programming and Scripting

program to calculate distance between 5 atoms

Hello, I am a beginner with perl. I have a perl program to calculate the distance between 5 atoms or more. i have an array which looks like this: 6.324 32.707 50.379 5.197 32.618 46.826 4.020 36.132 46.259 7.131 38.210 45.919 6.719 38.935 42.270 2.986 39.221 ... (1 Reply)
Discussion started by: annie_singh
1 Replies

4. Programming

Converting distance list to distance matrix in R

Hi power user, I have this type of data (distance list): file1 A B 10 B C 20 C D 50I want output like this # A B C D A 0 10 30 80 B 10 0 20 70 C 30 20 0 50 D 80 70 50 0 Which is a distance matrix I have tried... (0 Replies)
Discussion started by: anjas
0 Replies

5. Shell Programming and Scripting

Calculating distance between two LAT long coordinates

hi, i have a pair of latitude and longitude and i want to calculate the distance between these two points. In vbscript i achieved in the following way...Now i want to implement this in unix shell scripting.... <% Dim lat1, lon1, lat2, lon2 const pi = 3.14159265358979323846 ... (8 Replies)
Discussion started by: aemunathan
8 Replies

6. UNIX for Dummies Questions & Answers

How to make a distance matrix

Hi, I'm trying to generate a distance matrix between sample pairs for use in a tree-drawing program (example below). The example below demonstrates what I'd like to get out of the data - essentially, to calculate the proportion of positions where two samples differ. Any help much appreciated!... (1 Reply)
Discussion started by: auburn
1 Replies

7. Shell Programming and Scripting

Calculate age of a file | calculate time difference

Hello, I'm trying to create a shell script (#!/bin/sh) which should tell me the age of a file in minutes... I have a process, which delivers me all 15 minutes a new file and I want to have a monitoring script, which sends me an email, if the present file is older than 20 minutes. To do... (10 Replies)
Discussion started by: worm
10 Replies

8. Shell Programming and Scripting

finding distance between numbers

Hi, I have a file as ABC 1634230,1634284,1634349,1634468 1634272,1634301,1634356,1634534 What I want is to find distance between the numbers.. column 1 is the gene name and column 2 are starts and column 3 are their respective stops for the starts. So what I want is column 3 which has +1... (2 Replies)
Discussion started by: Diya123
2 Replies

9. Shell Programming and Scripting

Edit distance using perl or awk

Dear all, I am working on a large Sindhi lexicon which I hope to complete by 2017 and place in open source. The database is in Arabic script in two columns delimited by an equal to sign. Column 1 contains a word or words without the short vowel and also some extraneous information which is... (0 Replies)
Discussion started by: gimley
0 Replies

10. Shell Programming and Scripting

Calculate average, azimut and distance

Gents, Please i will to get the distance and azimut from 2 coordinates: Usig excel formula i get the correct values, but i will like to do it using awk. Example A 35089.0 50345.016 9 75 1 2101774 77 70 79 483911.6 2380106.9 137.4 1 1 6 1 A 35089.0 50345.01620 75... (8 Replies)
Discussion started by: jiam912
8 Replies
GEOD(1) 						      General Commands Manual							   GEOD(1)

NAME
geod - direct geodesic computations invgeod - inverse geodesic computations SYNOPSIS
geod +ellps=<ellipse> [ -afFIlptwW [ args ] ] [ +args ] file[s] invgeod +ellps=<ellipse> [ -afFIlptwW [ args ] ] [ +args ] file[s] DESCRIPTION
Geod (direct) and invgeod (inverse) perform geodesic (Great Circle) computations for determining latitude, longitude and back azimuth of a terminus point given a initial point latitude, longitude, azimuth and distance (direct) or the forward and back azimuths and distance between an initial and terminus point latitudes and longitudes (inverse). The following runline control parameters can appear in any order: -I Specifies that the inverse geodesic computation is to be performed. May be used with execution of goed as an alternative to invgeod execution. -a Latitude and longitudes of the initial and terminal points, forward and back azimuths and distance are output. -ta A specifies a character employed as the first character to denote a control line to be passed through without processing. -le Gives a listing of all the ellipsoids that may be selected with the +ellps= option. -lu Gives a listing of all the units that may be selected with the +units= option. -[f|F] format Format is a printf format string to control the output form of the geographic coordinate values (f) or distance value (F). The default mode is DMS for geographic coordinates and "%.3f" for distance. -[w|W]n N is the number of significant fractional digits to employ for seconds output (when the option is not specified, -w3 is assumed). When -W is employed the fields will be constant width with leading zeroes. -p This option causes the azimuthal values to be output as unsigned DMS numbers between 0 and 360 degrees. Also note -f. The +args run-line arguments are associated with geodetic parameters for specifying the ellipsoidal or sphere to use. See proj documenta- tion for full list of these parameters and controls. The options are processed in left to right order from the run line. Reentry of an option is ignored with the first occurrence assumed to be the desired value. One or more files (processed in left to right order) specify the source of data to be transformed. A - will specify the location of pro- cessing standard input. If no files are specified, the input is assumed to be from stdin. For direct determinations input data must be in latitude, longitude, azimuth and distance order and output will be latitude, longitude and back azimuth of the terminus point. Latitude, longitude of the initial and terminus point are input for the inverse mode and respective forward and back azimuth from the initial and terminus points are output along with the distance between the points. Input geographic coordinates (latitude and longitude) and azimuthal data must be in DMS format and input distance data must be in units consistent with the ellipsoid major axis or sphere radius units. Output geographic coordinates will be in DMS (if the -f switch is not employed) to 0.001" with trailing, zero-valued minute-second fields deleted. Output distance data will be in the same units as the ellip- soid or sphere radius. The Earth's ellipsoidal figure may be selected in the same manner as program proj by using +ellps=, +a=, +es=, etc. Geod may also be used to determine intermediate points along either a geodesic line between two points or along an arc of specified dis- tance from a geographic point. In both cases an initial point must be specified with +lat_1=lat and +lon_1=lon parameters and either a terminus point +lat_2=lat and +lon_2=lon or a distance and azimuth from the initial point with +S=distance and +A=azimuth must be speci- fied. If points along a geodesic are to be determined then either +n_S=integer specifying the number of intermediate points and/or +del_S=dis- tance specifying the incremental distance between points must be specified. To determine points along an arc equidistant from the initial point both +del_A=angle and +n_A=integer must be specified which determine the respective angular increments and number of points to be determined. EXAMPLE
The following script determines the geodesic azimuths and distance in U.S. stature miles from Boston, MA, to Portland, OR: geod +ellps=clrk66 <<EOF -I +units=us-mi 42d15'N 71d07'W 45d31'N 123d41'W EOF which gives the results: -66d31'50.141" 75d39'13.083" 2587.504 where the first two values are the azimuth from Boston to Portland, the back azimuth from Portland to Boston followed by the distance. An example of forward geodesic use is to use the Boston location and determine Portland's location by azimuth and distance: geod +ellps=clrk66 <<EOF +units=us-mi 42d15'N 71d07'W -66d31'50.141" 2587.504 EOF which gives: 45d31'0.003"N 123d40'59.985"W 75d39'13.094" Note: lack of precision in the distance value compromises the precision of the Portland location. SEE ALSO
Thomas, P.D., 1970, Spheroidal Geodesics, Reference Systems & Local Geometry: U.S. Naval Oceanographic Office, S-138. HOME PAGE
http://www.remotesensing.org/proj 2000/03/21 Rel. 4.4 GEOD(1)
All times are GMT -4. The time now is 02:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy