Sponsored Content
Top Forums Shell Programming and Scripting Shell or awk script to compute average of all the points within a circle Post 302960899 by Indra2011 on Saturday 21st of November 2015 10:32:30 AM
Old 11-21-2015
Shell or awk script to compute average of all the points within a circle

HI Help,

I have a file which looks like below ---

Input file --->

Code:
1970113.00000 3460.00000 1.09516 
1970116.00000 3791.00000 1.06350 
1970120.00000 4120.00000 1.07588 
1970115.00000 4450.00000 1.09591 
1970116.00000 4780.00000 1.09965 
1970120.00000 5109.00000 1.06733 
1970122.00000 5440.00000 1.03760 
1970124.00000 5770.00000 1.02025 
1970123.00000 6100.00000 1.00998 
1970120.00000 6430.00000 0.96426

What I want to do ? ----
Code:
For each line (#NR= 1 to 10) I would like to search X($1),Y($2) within the I/P file  which lies within a radius of 50 and then average out all the $3 within that circle of radius 50.

Problem ??

My script below does the job but it takes ages to go through the input file which is TOO large.

Code:
 
set first = 1    # NR=1 ; first line fo the input file
set last = 10   # NR = 10; Last line of the input file
 
set num = ${first}
while (${num} <= ${last})
 
set X0 = `cat S2 | awk -v line=${num} 'NR==line' | awk '{print $1}'` # $1,X, for each Record
set Y0 = `cat S2 | awk -v line=${num} 'NR==line' | awk '{print $2}'` # $2,Y, for each Record
set XS = `cat S2 | awk -v line=${num} 'NR==line' | awk '{print $3}'` # $3,Value that will be averaged out, for each Record
set R0 = `echo "50"` # Search radius
 
set AVG = `cat S2 | awk -v X=${X0} -v Y=${Y0} -v R=${R0} '{print $1,$2,$3,sqrt(($1-X)*($1-X) + ($2-Y)*($2-Y)) <=R}'  | awk '{if($4==1){print $0}}' | awk '{ sum+=$3} END {print sum/NR}'`# Search all the points within the input file which lies within R #Average all the $3,values#
 
echo "${X0} ${Y0} ${XS} ${AVG}" >> TMP #For each record print a new line with existing $1,$2,$3 and $AVG
 
@ num++ # end of loop and it goes to next NR
end

This could be very easy for you experts.

Thanks,

Last edited by Indra2011; 11-22-2015 at 11:29 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell Script to see the mount points.

Hi all, First of all I dont even know the ABC of scripting .. But now I want a Script to see the mount points of the file systems Can any body help plsssssssss :o (1 Reply)
Discussion started by: priky
1 Replies

2. Shell Programming and Scripting

Compute the median of a set of numbers with AWK?

Is there a way in awk to compute the median of a set of numbers in a file in the following format. 34 67 78 100 23 45 67 (3 Replies)
Discussion started by: Lucky Ali
3 Replies

3. Shell Programming and Scripting

shell script for finding average runtime of other script

so I've made a shell script that downloads 6 files in succession from a given url, then deletes them. Now I want to time the script, and the average time it uses by running it ~100 times. My problem is tho, how do I store the time it takes for each run through of the script? I know time writes to... (3 Replies)
Discussion started by: navlelo
3 Replies

4. Homework & Coursework Questions

Shell Script average runtime

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Make a bash script that calculates average runtime for the first two scripts you made. The average should be... (17 Replies)
Discussion started by: navlelo
17 Replies

5. Shell Programming and Scripting

awk based script to find the average of all the columns in a data file

Hi All, I need the modification for the below mentioned code (found in one more post https://www.unix.com/shell-programming-scripting/27161-script-generate-average-values.html) to find the average values for all the columns(but for a specific rows) and print the averages side by side. I have... (4 Replies)
Discussion started by: ks_reddy
4 Replies

6. Shell Programming and Scripting

AWK script to split data and find average

Input: 2.58359023380340e+02 1.43758864405595e+02 -7.65700666212508e+00 1.06460208083228e+02 1.26185441783936e+02 -3.41389169427027e+01 -1.40393299309592e+02 -3.07758776849508e+01 1.45067703495838e+02 1.79405834959073e+02 5.06666234594205e+01 OUT 2.0105894389e+02 (average of... (8 Replies)
Discussion started by: chrisjorg
8 Replies

7. Shell Programming and Scripting

Compute average ignoring outliers of different segments within a dat file using awk

I have data files that look like this, say data.txt 0.00833 6.34 0.00833 6.95 0.00833 7.08 0.00833 8.07 0.00833 8.12 0.00833 8.26 0.00833 8.70 0.00833 9.36 0.01667 20.53 0.01667 6.35 0.01667 6.94 0.01667 7.07 0.01667 8.06 0.01667 8.10 0.01667 8.25 0.01667 8.71 0.01667 9.31... (7 Replies)
Discussion started by: malandisa
7 Replies

8. Shell Programming and Scripting

Linux Mount Points usage check with shell script

Hi Everyone, Just in need of your help again, I have managed to get a script to check the linux disk usage stuff. But wanted to tweak it little more to get the desired output. Requirement: Now its querying only one mount point, As its not saving in array instead calling it as variables. So... (1 Reply)
Discussion started by: thiyagoo
1 Replies

9. Shell Programming and Scripting

Compute average based on field values

Im looking for a way to average the values in field 14 (when field 2 is equal to 2016) and fields 3 and 4 (when field 2 is equal to 2017). Any help is appreciated. 001001 2016 33.22 38.19 48.07 51.75 59.77 67.68 70.86 72.21 66.92 53.67 42.31 40.15 001001 2017 ... (10 Replies)
Discussion started by: ncwxpanther
10 Replies

10. UNIX for Beginners Questions & Answers

awk or sed script to count number of occurrences and creating an average

Hi Friends , I am having one problem as stated file . Having an input CSV file as shown in the code U_TOP_LOGIC/U_HPB2/U_HBRIDGE2/i_core/i_paddr_reg_2_/Q,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0... (4 Replies)
Discussion started by: kshitij
4 Replies
sccs-cdc(1)							   User Commands						       sccs-cdc(1)

NAME
sccs-cdc, cdc - change the delta commentary of an SCCS delta SYNOPSIS
/usr/ccs/bin/cdc -rsid [-mmr-list] [ -y [comment]] s.filename... DESCRIPTION
cdc annotates the delta commentary for the SCCS delta ID (SID) specified by the -r option in each named s.file. If the v flag is set in the s.file, you can also use cdc to update the Modification Request (MR) list. If you checked in the delta, or, if you own the file and directory and have write permission, you can use cdc to annotate the commentary. Rather than replacing the existing commentary, cdc inserts the new comment you supply, followed by a line of the form: *** CHANGED *** yy/mm/dd hh/mm/ss username above the existing commentary. If a directory is named as the s.filename argument, the cdc command applies to all s.files in that directory. Unreadable s.files produce an error; processing continues with the next file (if any). If `-' is given as the s.filename argument, each line of the standard input is taken as the name of an SCCS history file to be processed, and the -m and -y options must be used. OPTIONS
-rsid Specify the SID of the delta to change. -mmr-list Specify one or more MR numbers to add or delete. When specifying more than one MR on the command line, mr-list takes the form of a quoted, space-separated list. To delete an MR number, precede it with a ! character (an empty MR list has no effect). A list of deleted MRs is placed in the comment section of the delta commentary. If -m is not used and the stan- dard input is a terminal, cdc prompts with MRs? for the list (before issuing the comments? prompt). -m is only useful when the v flag is set in the s.file. If that flag has a value, it is taken to be the name of a program to validate the MR num- bers. If that validation program returns a non-zero exit status, cdc terminates and the delta commentary remains unchanged. -y[comment] Use comment as the annotation in the delta commentary. The previous comments are retained; the comment is added along with a notation that the commentary was changed. A null comment leaves the commentary unaffected. If -y is not specified and the standard input is a terminal, cdc prompts with comments? for the text of the notation to be added. An unescaped NEW- LINE character terminates the annotation text. EXAMPLES
Example 1: Changing the annotated commentary The following command: example% cdc -r1.6 -y"corrected commentary" s.program.c produces the following annotated commentary for delta 1.6 in s.program.c: D 1.6 88/07/05 23:21:07 username 9 0 00001/00000/00000 MRs: COMMENTS: corrected commentary *** CHANGED *** 88/07/07 14:09:41 username performance enhancements in main() FILES
z.file temporary lock file ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWsprot | +-----------------------------+-----------------------------+ SEE ALSO
sccs(1), sccs-admin(1), sccs-comb(1), sccs-delta(1), sccs-help(1), sccs-prs(1), sccs-prt(1), sccs-rmdel(1), what(1), sccsfile(4), attributes(5) DIAGNOSTICS
Use the SCCS help command for explanations (see sccs-help(1)). SunOS 5.10 1 Nov 1999 sccs-cdc(1)
All times are GMT -4. The time now is 09:22 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy