Sponsored Content
Top Forums UNIX for Dummies Questions & Answers How to get data only inside polygon created by points which is part of whole data from file? Post 302411786 by Corona688 on Friday 9th of April 2010 12:41:36 PM
Old 04-09-2010
Quote:
Originally Posted by reva
Ya i agree with you..Its not simple problem...
consider it as just X & Y cooridnates & tel me..
Just did I thought... what do you want to know?
Quote:
Thats what i am asking you how to loop through the list of my edges...I am not getting it..
Okay. You have a list of points:
Code:
29.45, 89.43
32.47, 90.98
27.25, 95.63
27.29, 98.27
36.74, 96.32
31.90, 87.67
29.45, 89.43

Convert it to a list of lines, where line A is [ point 1 ] , [ point 2] and line B is [ point 2 ], [ point 3 ] and the last is [ point n ], [ point 1 ]

Code:
[ 29.45, 89.43 ], [ 32.47, 90.98 ]
[ 32.47, 90.98 ], [ 27.25, 95.63 ]
[ 27.25, 95.63 ], [ 27.29, 98.27 ]
[ 27.29, 98.27 ], [ 36.74, 96.32 ]
[ 36.74, 96.32 ], [ 31.90, 87.67 ]
[ 31.90, 87.67 ], [ 29.45, 89.43 ]
[ 29.45, 89.43 ], [ 29.45, 89.43 ]

Quote:
at least can you tel me that part of code..Smilie
I don't know of an off-the-shelf solution offhand, and you can google as well as I can, so I figured you wanted to know how to build one. There's some interesting looking perl modules that may help you, particularly this one's polygon_contains_point function.

---------- Post updated at 10:41 AM ---------- Previous update was at 09:53 AM ----------

Code:
#!/usr/bin/perl

use Math::Polygon::Calc;

my @poly = (    [       0,      0       ],
                [       10,     0       ],
                [       10,     10      ],
                [       0,      0       ]       );

if(polygon_contains_point([9, 1], @poly))
{
        print "Point is inside\n";
}
else
{
        print "Point is not inside\n";
}

exit 0;

you'll of course need to install the Math::Polycon::Calc CPAN module. You can do that by running the interactive 'cpan' program as root. Once it's done configuring itself, tell it 'install Math::Polygon::Calc' and it'll do so. Then 'quit' and it'll do so.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

to extarct data points

suppose u have a file which consist of many data points separated by asterisk Question is to extract third part in each line . 0.0002*0.003*-0.93939*0.0202*0.322*0.3332*0.2222*0.22020 0.003*0.3333*0.33322*-0.2220*0.3030*0.2222*0.3331*-0.3030 0.0393*0.3039*-0.03038*0.033*0.4033*0.30384*0.4048... (5 Replies)
Discussion started by: cdfd123
5 Replies

2. Shell Programming and Scripting

Comparing data inside file

Hi Everyone, I will try to explain my question please forgive my english here. I am looking for shell script or command that can compare data in the files. I have 50 files in one directory test1 test2 test3 ....so on. I want to compare data in each files with each other and output each... (4 Replies)
Discussion started by: email-lalit
4 Replies

3. Shell Programming and Scripting

how to omit data from a file created in a script

I am using the fallowing script. this script seems to work fine except the file has data I do not wish to have. Is there away to omit that data. I will first provide the scrip and then a sample of the data the way it looks and then a sample of how I would like the data to look. Thanks for any... (3 Replies)
Discussion started by: krisarmstrong
3 Replies

4. Shell Programming and Scripting

recoding data points using SED??

Hello all, I have a data file that needs some serious work...I have no idea how to implement the changes that are needed! The file is a genotypic file with >64,000 columns representing genetic markers, a header line, and >1100 rows that looks like this: ID 1 2 3 4 ... (7 Replies)
Discussion started by: doobedoo
7 Replies

5. Shell Programming and Scripting

Writing an algorithm to recode data points

I have a file that has been partially recoded so that data points that were formerly letter combinations are now -1, 0, or 1. I need to finish recoding the GG and CC data points. The file looks like this: ID 1 2 3 4 5 6 7 8 83845676 0 0 0 0 CC -1 CC CC 838469. -1 -1 1 GG CC 0 CC 1 83847041... (10 Replies)
Discussion started by: doobedoo
10 Replies

6. Shell Programming and Scripting

Calculate difference between consecutive data points in a column from a file

Hi, I have a file with one column data (sample below) and I am trying to write a shell script to calculate the difference between consecutive data valuse i.e Var = Ni -N(i-1) 0.3141 -3.6595 0.9171 5.2001 3.5331 3.7022 -6.1087 -5.1039 -9.8144 1.6516 -2.725 3.982 7.769 8.88 (5 Replies)
Discussion started by: malandisa
5 Replies

7. UNIX for Dummies Questions & Answers

Finding data value that contains x% of points

Hi, I need help on finding the value of my data that encompasses certain percentage of my total data points (n). Attached is an example of my data, n=30. What I want to do is for instance is find the minimum threshold that still encompasses 60% (n=18), 70% (n=21) and 80% (n=24). manually to... (4 Replies)
Discussion started by: ida1215
4 Replies

8. UNIX for Dummies Questions & Answers

Copying part of a data file into another

Hi, I have a large number of data files each containing simple integers from 1 to around 25000 in ascending order. However, they are not in a specific progression; some numbers are missing in each file. For ex. datfile1 may have the numbers in order 1 2 4 6 7 8 12 ... 24996 24999 while datfile2... (8 Replies)
Discussion started by: latsyrc
8 Replies

9. Shell Programming and Scripting

Grabbing data between 2 points in text file

I have a text file that shows the output of my solar inverters. I want to separate this into sections. overview , device 1 , device 2 , device 3. Each device has different number of lines. but they all have unique starting points. Overview starts with 6 #'s, Devices have 4#'s and their data starts... (6 Replies)
Discussion started by: Mikey
6 Replies

10. Shell Programming and Scripting

Reducing the decimal points of numbers (3d coordinates) in a file; how to input data to e.g. Python

I have a file full of coordinates of the form: 37.68899917602539 58.07500076293945 57.79100036621094 The numbers don't always have the same number of decimal points. I need to reduce the decimal points of all the numbers (there are 128 rows of 3 numbers) to 2. I have tried to do this... (2 Replies)
Discussion started by: crunchgargoyle
2 Replies
bigrat(3pm)						 Perl Programmers Reference Guide					       bigrat(3pm)

NAME
bigrat - Transparent BigNumber/BigRationale support for Perl SYNOPSIS
use bigrat; $x = 2 + 4.5," "; # BigFloat 6.5 print 1/3 + 1/4," "; # produces 7/12 DESCRIPTION
All operators (inlcuding basic math operations) are overloaded. Integer and floating-point constants are created as proper BigInts or BigFloats, respectively. Other than bignum, this module upgrades to Math::BigRat, meaning that instead of 2.5 you will get 2+1/2 as output. MODULES USED "bigrat" is just a thin wrapper around various modules of the Math::BigInt family. Think of it as the head of the family, who runs the shop, and orders the others to do the work. The following modules are currently used by bignum: Math::BigInt::Lite (for speed, and only if it is loadable) Math::BigInt Math::BigFloat Math::BigRat MATH LIBRARY Math with the numbers is done (by default) by a module called Math::BigInt::Calc. This is equivalent to saying: use bigrat lib => 'Calc'; You can change this by using: use bigrat lib => 'BitVect'; The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc: use bigrat lib => 'Foo,Math::BigInt::Bar'; Please see respective module documentation for further details. SIGN The sign is either '+', '-', 'NaN', '+inf' or '-inf' and stored seperately. A sign of 'NaN' is used to represent the result when input arguments are not numbers or as a result of 0/0. '+inf' and '-inf' represent plus respectively minus infinity. You will get '+inf' when dividing a positive number by 0, and '-inf' when dividing any negative number by 0. METHODS Since all numbers are not objects, you can use all functions that are part of the BigInt or BigFloat API. It is wise to use only the bxxx() notation, and not the fxxx() notation, though. This makes you independed on the fact that the underlying object might morph into a differ- ent class than BigFloat. EXAMPLES
perl -Mbigrat -le 'print sqrt(33)' perl -Mbigrat -le 'print 2*255' perl -Mbigrat -le 'print 4.5+2*255' perl -Mbigrat -le 'print 3/7 + 5/7 + 8/3' perl -Mbigrat -le 'print 12->is_odd()'; LICENSE
This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
Especially bignum. Math::BigFloat, Math::BigInt, Math::BigRat and Math::Big as well as Math::BigInt::BitVect, Math::BigInt::Pari and Math::BigInt::GMP. AUTHORS
(C) by Tels <http://bloodgate.com/> in early 2002. perl v5.8.0 2002-06-01 bigrat(3pm)
All times are GMT -4. The time now is 08:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy