示例#1
0
def state2stations(state):
    """
    Translate a state identifier (ie DC) into a list of
    Station tuples from that state
    """
    state = state[:2].upper()
    for row in rows():
        if row[5] == state:
            yield tuple(row)
示例#2
0
def state2stations(state):
    """
    Translate a state identifier (ie DC) into a list of
    Station tuples from that state
    """
    state = state[:2].upper()
    for row in rows():
        if row[5]==state:
            yield tuple(row)
示例#3
0
def location2station(location):
    """
    Translate full location into Station tuple by closest match
    Locations can be in any Google friendly form like
    "State St, Troy, NY", "2nd st & State St, Troy, NY" and "7 State St, Troy, NY"
    """
    # just forget it, use google
    location = quote(str(location))
    geo_url = 'http://maps.google.com/maps/geo?key=%s&q=%s&sensor=false&output=csv'%(API_KEY,location)
    point = map(float,urlopen(geo_url).readline().split(',')[-2:])
    best,result = 99999999,[]
    for row in rows():
        test_point = map(float, (row[2],row[3]))
        distance = ((test_point[0]-point[0])**2 + (test_point[1]-point[1])**2)**.5
        if distance < best:
            best,result = distance,row
    return tuple(result)
示例#4
0
def location2station(location):
    """
    Translate full location into Station tuple by closest match
    Locations can be in any Google friendly form like
    "State St, Troy, NY", "2nd st & State St, Troy, NY" and "7 State St, Troy, NY"
    """
    # just forget it, use google
    location = quote(str(location))
    geo_url = 'http://maps.google.com/maps/geo?key=%s&q=%s&sensor=false&output=csv' % (
        API_KEY, location)
    point = map(float, urlopen(geo_url).readline().split(',')[-2:])
    best, result = 99999999, []
    for row in rows():
        test_point = map(float, (row[2], row[3]))
        distance = ((test_point[0] - point[0])**2 +
                    (test_point[1] - point[1])**2)**.5
        if distance < best:
            best, result = distance, row
    return tuple(result)
示例#5
0
 def update(self, live=False):
     self.data = {}
     # csv update
     keys = ('latitude','longitude','city','state','zipcode')
     for row in rows():
         if self.station == row[0]:
             UserDict.update(self, dict(zip(keys,row[2:-1])))
             break
     if not self.data:
         raise AttributeError,'Station %s not found'%self.station
     # sgmllib update
     self.reset()
     if os.path.isfile(ZFILE) and not live:
         zfile = zipfile.ZipFile(ZFILE,'r')
         for name in zfile.namelist():
             if name.endswith('%s.xml'%self.station):
                 SGMLParser.feed(self, zfile.read(name))
                 del zfile
                 break
     else:
         #Fetch().start()
         SGMLParser.feed(self, urlopen(WURL%self.station).read())
     self.close()
示例#6
0
 def update(self, live=False):
     self.data = {}
     # csv update
     keys = ('latitude', 'longitude', 'city', 'state', 'zipcode')
     for row in rows():
         if self.station == row[0]:
             UserDict.update(self, dict(zip(keys, row[2:-1])))
             break
     if not self.data:
         raise AttributeError, 'Station %s not found' % self.station
     # sgmllib update
     self.reset()
     if os.path.isfile(ZFILE) and not live:
         zfile = zipfile.ZipFile(ZFILE, 'r')
         for name in zfile.namelist():
             if name.endswith('%s.xml' % self.station):
                 SGMLParser.feed(self, zfile.read(name))
                 del zfile
                 break
     else:
         #Fetch().start()
         SGMLParser.feed(self, urlopen(WURL % self.station).read())
     self.close()
示例#7
0
def stations():
    """
    Returns iterator of station tuples
    """
    for row in rows():
        yield tuple(row)
示例#8
0
 def __init__(self,outlier=1000):
     self.sequence = []
     for x in rows():
         d = float(x[-1])
         if d > outlier: continue
         self.sequence.append(d)
示例#9
0
def stations():
    """
    Returns iterator of station tuples
    """
    for row in rows():
        yield tuple(row)