awk scripting to select a rectangle frame


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers awk scripting to select a rectangle frame
# 8  
Old 02-16-2020
sorry, I don't think I can help - not sure of the algorithm and you're not providing any hints.
Maybe other did better in their trigonometry in school.
Would be interesting to see the attempts/solutions.

Also...
Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 02-16-2020 at 01:57 PM..
# 9  
Old 02-17-2020
Hi jeo_fb...

Assuming you are using Longitude and Latitude WRT Earth as a __sphere__ then it is not possible to create a rectangle as Euclidean geometry does not apply.

IF, however you just want the Longitude to change but have matching Latitudes and vice versa and those listing out then please confirm...

Bazza...

Last edited by wisecracker; 02-17-2020 at 07:01 AM.. Reason: Add the words "and vice versa"
# 10  
Old 02-17-2020
I pretty sure it is possible to take latitudes and longitudes and construct a 2D geometric shape (like a rectangle) if we know the distance from the center of the coordinate system (commonly called "the elevation" above mean sea level of the earth). Otherwise, land surveying would not be possible since surveying is based on longitude and latitude (coordinates) with the elevation (on the Earth this is the distance above MSL).

Latitude and longitude, along with distance from the center of the earth, form polar coordinates, as I fondly remember from "the good ole days" when I worked as a land surveyor (actually I had my own land surveying business for many years),

The problem I have with this question is that the OP is not providing his algorithm as vbe mentioned in post #8.

So, let's ask the OP to post his formulas (algorithms) he is using to do the calculations.

The short answer is "to select a rectangle frame from longitude and latitude" is that you need to know the distance from the center of the coordinate system for each coordinate. This is simply a problem in converting polar to rectangular coordinates, and back.

Of course, you know me, I have done this kind of calculation countless times (in my youth) and never did it with awk. I used to do these calculations (almost daily) on the Tandy TRS 80 which I programmed in Basic and also the Atari / Amiga, back in the "day".

Last edited by hicksd8; 02-17-2020 at 10:38 AM..
# 11  
Old 02-17-2020
- an area solution ex.:
Code:
awk '
function triangle_area(x1, y1, x2, y2, x3, y3) {
#
# determine area of triangle with the 3 points given
#
area=((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0);
#
# return absolute value of area. area value should be positive. unless you are on drugs.
#
return area < 0 ? -area : area;
}
FILENAME ~ /rectangle/ {
if (! repeat_line[$0]++) {
#
# load points of rectangle in x, y arrays.
#
x[NR]=$1;
y[NR]=$2;
} else {
#
# repeat line found so rectangle is closed. that is nice.
# calculate area of rectangle by adding area of two triangles that make up rectangle
#
Rectangle_area=triangle_area(x[1], y[1], x[2], y[2], x[3], y[3]) + triangle_area(x[1], y[1], x[3], y[3], x[4], y[4]);
}
}
FILENAME ~ /positions/ {
#
# determine area of 4 triangles made up of latitude, longitude point and each side of rectangle
#
triangle1=triangle_area(x[1], y[1], $1, $2, x[2], y[2]);
triangle2=triangle_area(x[2], y[2], $1, $2, x[3], y[3]);
triangle3=triangle_area(x[3], y[3], $1, $2, x[4], y[4]);
triangle4=triangle_area(x[1], y[1], $1, $2, x[4], y[4]);
#
# if rectangle area equals to total area of 4 triangles then point is inside rectangle. it is obvious if you think about it.
#
if (Rectangle_area==triangle1+triangle2+triangle3+triangle4) print $0;
}
' rectangle positions

note, example posted uses format of input/output files shown (not csv, as stated).

Last edited by Neo; 02-28-2020 at 01:17 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell Scripting - Select multiple files from numbered list

I am trying to have the user select two files from a numbered list which will eventually be turned into a variable then combined. This is probably something simple and stupid that I am doing. clear echo "Please Select the Show interface status file" select FILE1 in *; echo "Please Select the... (3 Replies)
Discussion started by: dis0wned
3 Replies

2. UNIX and Linux Applications

Rectangle is flickering while dragging on screen with xlib

Hi, this is my first post here. I wanto make a screencasting program. I want to make a screen part selection to grab coordinates of the screen location. I found a nice prototype #include <X11/Xlib.h> //#include <X11/Xresource.h> #include <stdlib.h> #include <stdio.h> #include... (0 Replies)
Discussion started by: whatnext
0 Replies

3. Shell Programming and Scripting

Using awk to select one field

Hi, I saw your post.. I have a dought in awk command... how to get the output from a file. i need a first column in etc/passwd file in a single column (in indivijual line)... i couldn't get with this command cat /etc/passwd | awk -F ":" '{printf $1}' Kindly help This thread was created... (3 Replies)
Discussion started by: Dheepak s
3 Replies

4. Shell Programming and Scripting

awk : collecting all data between two time frame

Hi Experts , I need your help to collect the complete data between two time frame from the log files, when I try awk it's collecting the data only which is printed with time stamp for example, awk works well from "16:00 to 17:30" but its not collecting <line*> "from 17:30 to 18:00" ... (8 Replies)
Discussion started by: zenkarthi
8 Replies

5. Shell Programming and Scripting

awk : Search for text between two time frame (12 hours)

I have created the script to grep the errors from weblogic logs files and redirecting output to file.txt ...From file.txt I'm using awk command to collect the past 20 mins output...The script running from cron every 15 mins... The script working well... Now the challenges, I'm trying to use... (27 Replies)
Discussion started by: zenkarthi
27 Replies

6. Shell Programming and Scripting

awk with fields select?

If i have a log file record.txt, with 10 fields - First field is datetime - 7th field is status - 8th filed is name - The last field (10th) is epoch time of the first field 02/17/2012 1:47 PM||||||In Use|chicken||1329515230 02/17/2012 2:53 PM||||||Available|chicken||1329519195 02/17/2012... (4 Replies)
Discussion started by: sabercats
4 Replies

7. Shell Programming and Scripting

Removing repeating lines from a data frame (AWK)

Hey Guys! I have written a code which combines lots of files into one big file(.csv). However, each of the original files had headers on the first line, and now that I've combined the files the headers are interspersed throughout the new combined data frame. For example, throughout the data... (21 Replies)
Discussion started by: gd9629
21 Replies

8. Shell Programming and Scripting

SQL Select and awk

Dear All , I have file1.txt contain values like the following: ---------- 23 24 25 and I have shell script which has the following : more file1.txt | awk '{print "select 'DUMP',CODE1||'|'||CODE2||'|'||CODE3 from CODE where CODE1='" $1 "';"}' > file2.sql all I need is to have the... (6 Replies)
Discussion started by: habuzahra
6 Replies

9. UNIX for Dummies Questions & Answers

Awk - select from a list

Hi all, I am trying to select some columns from a file, based on the list of values. Would like to know how best I can achive this. If coulmn 1 has a value of 57 then print the ist column (This works) awk -F' ' '{if ( $1 == 57 ) {print $1}}' file.txt Now my requirement is that I have to... (14 Replies)
Discussion started by: simha77777
14 Replies

10. Shell Programming and Scripting

SED scripting select

Say I have a file 'example.txt' with these lines of code in it: hello:anddasd:cheese:gerg whatever:sdadsa:asdfasdfa:wwew hmmmm:something:gfhfhgf:sdasdas Question: 1. How would I write a script which is able to take all the words before the first ':'? 2. How would I write a script which is... (6 Replies)
Discussion started by: i_am_a_robot
6 Replies
Login or Register to Ask a Question