Hi Apurv, Many thanks for the link to your code. I've only had a quick scan so far (sorry - busy with other things at the moment) but if I have any useful comments to offer when I look at it properly, I'll post them here.
Meanwhile, have you seen this polygon-based approach ? (approach described in last third of doc) It includes some error comparisons between lat/lon and projected coordinate centroids. http://www.jennessent.com/downloads/Graphics_Shapes_Online.pdf Michael On 31 July 2011 09:25, Apurv Verma <[email protected]> wrote: > Hi all, > Here is a method to calculate a centroid which lies inside a region. > Well I seem to have finished this coding. > I have shared a link to the class. > You just need to invoke the public method findMeanPosition(<the vector of > longitudes>), This will give you the mean longitude. > Calculating the mean latitude is easy, it is just a normal mean because > latitude values range from -90 to 90 so they don't bother us about caring > about crossing the 180. > > At present there are a lot of print statements, which I will remove once I > am done with writing the tests for this class. > > https://github.com/dapurv5/phyloGeoRef/blob/master/phyloGeoRef/src/nescent/phylogeoref/processor/utility/ComputeUtility.java > This is an O (n log n) algorithm where n is the number of points of the > polygon. Atleast theoretically it works out to be it. > > > -- > thanks and regards, > > ~Apurv Verma > B. Tech.(CSE) > IIT- Ropar > Mobile - 09256587545 > > > > > > > On Tue, Jul 26, 2011 at 7:55 AM, Michael Bedward <[email protected]> > wrote: >> >> If the data points span most of the globe then the definition of >> inside-ness becomes a little difficult :) >> >> A link to your algorithm posted to the list would be much appreciated. >> It could well be useful for other applications. >> >> Good luck with it. >> Michael >> >> On 26 July 2011 00:44, Apurv Verma <[email protected]> wrote: >> > Hi Mike, >> > Yes on the plane it's easy. But in spherical geometry it's not more so >> > when >> > the points may span the entire globe, I have a previous algorithm but >> > just >> > wanted to know if there is something ready made already. >> > Once I implement that algorithm I will post a link to it on the list >> > here so >> > that people interested in calculating centroids on the surface of earth >> > might use it. >> > >> > Sure I will look at R. >> > >> > You are really doing a wonderful job, I see you handle a lot of emails >> > everyday. :P >> > >> > ~Apurv Verma >> > B. Tech.(CSE) >> > IIT- Ropar >> > Mobile - 09256587545 >> > >> > >> > >> > >> > >> > >> > On Mon, Jul 25, 2011 at 6:20 PM, Michael Bedward >> > <[email protected]> >> > wrote: >> >> >> >> Hi Apurv, >> >> >> >> Thanks for that - I understand better now. >> >> >> >> I guess by multidimensional scaling you mean any heuristic that would >> >> give a "good enough" solution with some indication of goodness of fit, >> >> e.g. classic MDS but also simulated annealing etc. I don't think >> >> either GeoTools, or the JTS library which it uses for geometry >> >> operations, have what you want, though I'd be happy to be corrected by >> >> someone else here. >> >> >> >> In the plane I **think** that the coordinate that minimizes the sum of >> >> distances to all points in a set is the median, ie. centroid.x = >> >> median of point.xs, centroid.y = median of point.ys. If your points >> >> are often close together (local or regional scales) you could just >> >> work with Cartesian coordinates in some convenient map projection. >> >> However, you emphasize spheroidal distance in your post so I'm >> >> guessing that your point sets cover a large area. In that case I've no >> >> idea whether there is an easy solution, but once again it depends on >> >> how critical the minimum sum of distances criterion is for your >> >> application. >> >> >> >> GeoTools does have the GeodeticCalculator class which can compute >> >> distances between points on a spheroid. So you could use that in >> >> conjunction with an optimizing algorithm from another library. >> >> >> >> As an aside, why are you searching in GeoTools for this ? I would >> >> have thought the first stop would have been R (which has many packages >> >> for spatial analysis) or similar. >> >> >> >> Sorry I can't be more directly helpful but please let us know how you >> >> go. >> >> >> >> Michael >> >> >> >> >> >> On 25 July 2011 19:32, Apurv Verma <[email protected]> wrote: >> >> > Hi Michael, >> >> > I am extremely sorry that I did not cc my message to the list last >> >> > time. >> >> > Thanks for providing me with the link. >> >> > >> >> > Well let me tell me you my problem in detail. >> >> > From the pdf I found that the minimum distance centroid would be the >> >> > closest >> >> > that I would want. How can I compute it. However it would be better >> >> > if >> >> > something of the following is provided. >> >> > I have a set of points on the surface of earth. I want to calculate a >> >> > central point such that the distance from it to the given points is >> >> > in >> >> > required proportion with the additional requirement that this point >> >> > should >> >> > be inside the polygon obtained by joining the points. >> >> > It's easy to see that a such a requirement cannot be perfectly met. >> >> > Let >> >> > me >> >> > give you an analogy in the euclidean geometry rather than spherical >> >> > geometry. >> >> > Suppose I have 4 points in the Euclidean plane. I want to calculate a >> >> > point >> >> > which is equidistant/distances in equal proportions to the 4 points. >> >> > Now >> >> > this is not always possible because if I choose a circle to pass >> >> > through >> >> > 3 >> >> > points, it's not necessary that the fourth point too lies on the >> >> > circle. >> >> > (because 3 points uniquely define a circle.) >> >> > So then we can do a kind of multidimensional scaling. Such that we >> >> > try >> >> > to >> >> > find a point which satisfies the criterion as best as it can. >> >> > While this is challenging enough to calculate on a euclidean plane. >> >> > Spherical geometry makes things even worse!! >> >> > >> >> > I hope I was able to explain myself. Please do ask me if I was not >> >> > clear. >> >> > >> >> > -- >> >> > thanks and regards, >> >> > >> >> > ~Apurv Verma >> >> > B. Tech.(CSE) >> >> > IIT- Ropar >> >> > Mobile - 09256587545 >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > On Mon, Jul 25, 2011 at 1:10 PM, Michael Bedward >> >> > <[email protected]> >> >> > wrote: >> >> >> >> >> >> Hello, >> >> >> >> >> >> Please reply via the list. >> >> >> >> >> >> So what sort of centroid do you want ? There are many in common use >> >> >> (see >> >> >> http://user.gs.rmit.edu.au/rod/files/publications/MSIA_Centroid.pdf >> >> >> for a comparison of some). >> >> >> >> >> >> Or is it enough to have any point that is inside some polygon formed >> >> >> by the data points e.g. the convex hull ? >> >> >> >> >> >> Michael >> >> >> >> >> >> >> >> >> On 25 July 2011 16:58, Apurv Verma <[email protected]> wrote: >> >> >> > Yes it is a type of centroid calculation only. >> >> >> > Given a polygon on the surface of earth, I need to calculate its >> >> >> > centroid. >> >> >> > Have a look at this page. >> >> >> > http://www.fmepedia.com/index.php/InsidePointReplacer >> >> >> > >> >> >> > thanks and regards, >> >> >> > >> >> >> > ~Apurv Verma >> >> >> > B. Tech.(CSE) >> >> >> > IIT- Ropar >> >> >> > Mobile - 09256587545 >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > On Mon, Jul 25, 2011 at 10:37 AM, Michael Bedward >> >> >> > <[email protected]> wrote: >> >> >> >> >> >> >> >> Hello Apurv, >> >> >> >> >> >> >> >> > I am absolutely new to the geo tool library. In fact I want to >> >> >> >> > use >> >> >> >> > it >> >> >> >> > for a >> >> >> >> > specific purpose in the open source project "phyloGeoRef". >> >> >> >> >> >> >> >> Great to see taxonomy / biogeography making an appearance here :) >> >> >> >> >> >> >> >> > Here is the >> >> >> >> > functionality that I want. >> >> >> >> >> >> >> >> > Given a set of (lat,long) pairs on the globe. I have to >> >> >> >> > calculate >> >> >> >> > the >> >> >> >> > inside >> >> >> >> > point replacer for these set of nodes. Is there some function >> >> >> >> > in >> >> >> >> > Geo >> >> >> >> > Tools >> >> >> >> > that provides this functionality. If not, Is there any other >> >> >> >> > method >> >> >> >> > to >> >> >> >> > do it >> >> >> >> > ? >> >> >> >> >> >> >> >> Can you provide more detail about the required output. I'm not >> >> >> >> familiar with the term "inside point replacer" and Wikipedia >> >> >> >> doesn't >> >> >> >> seem to know it either. Is it a type of centroid calculation ? >> >> >> >> >> >> >> >> Michael >> >> >> > >> >> >> > >> >> > >> >> > >> > >> > > > ------------------------------------------------------------------------------ Got Input? Slashdot Needs You. Take our quick survey online. Come on, we don't ask for help often. Plus, you'll get a chance to win $100 to spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
