closestN
index
/Users/schwehr/projects/xcore/src/segy-py/closestN.py

Module to handle tracking the closest points to some target.
 
Used by segysqldist.py.
    
     Copyright (C) 2005  Kurt Schwehr
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
$Id: closestN.py,v 1.5 2005/06/23 02:55:33 schwehr Exp $

 
Modules
       
math
mmap
os
sqlite
struct
sys

 
Classes
       
ClosestPoints

 
class ClosestPoints
    Handle keeping track of the closest N points to some location
 
Throw points at this class and it will keep track of the best
 
  Methods defined here:
__init__(self, lonlat, N=100)
Setup a closest point object.  Distance is in km.
 
lonlat - location of the target point to compare with (decimal degrees)
N      - specifies the number of points to keep
almostEqual(self, a, b, delta=0.0001)
checkPoint(self, lonlat, data=None, ignore=False)
Check a point to compare against what is already known
 
lonlat - decimal degrees of the point to compare
data   - any data you want stored with point
ignore - set to true to not insert points that have the same location
        for data sets that have many pings with the same latlon
getInsertPoint(self, distance)
Find the index where this distance should be inserted into the list
isInPoints(self, lonlat)
Super slow idiot way to figure this out

 
Functions
       
greatCircleDistKm(lonlat1, lonlat2)
#from distance import greatCircleDistKm
printPoints(pts)
printPointsGnuplot(pts)

 
Data
        VERSION = '0.31'
myparser = <optparse.OptionParser instance>