def get_coordinates(self, t): try: bbl = t[0] address = t[1] # Normalizer.set_address(t[1], bbl) lat, lon, full_address = self.geo.search_nominatim(address) time.sleep(0.2) if lat is None: raise ValueError num = CsvManager.read_progress() + 1 CsvManager.write_progress(num) return (bbl, t[1], full_address.encode("utf-8"), lon, lat, 1), num except ValueError: self.error_log.open() self.error_log.write(t[1] + ", " + str(t[0])) self.error_log.close() NominatimGeocode.print_status(" Lat, Long not found ") time.sleep(1) return -1, False except (GeocoderTimedOut, GeocoderServiceError) as e: self.error_log.open() self.error_log.write(e.message) self.error_log.close() NominatimGeocode.print_status(e.message) time.sleep(1) return -2, False except KeyboardInterrupt: NominatimGeocode.print_status(" Stopped ") time.sleep(1) return -3, False
def geocode_process(self, t, geocode): re, num = geocode.get_coordinates(t) if num: CsvManager.append_geo_codes([re], self.output) self.progress.update_progress(num) else: val = CsvManager.read_progress() self.progress.update_progress(val+1) return re, num
def preprocess(self): tuples = CsvManager.read(self.input) num = CsvManager.read_progress() print num if num == 0: CsvManager.write_geo_codes([], self.output) CsvManager.write_progress('0') self.progress.set_size(len(tuples)) self.progress.update_progress(num) Normalizer.set_tuple(num, tuples) return tuples
def get_coordinates(self, t): try: bbl = t[0] address = t[1]# Normalizer.set_address(t[1], bbl) lon, lat, full_address = self.geo.search_dao(address, t[0]) if lat is None: raise ValueError TIGERGeocode.print_status(" TIGER") num = CsvManager.read_progress()+1 CsvManager.write_progress(num) return (bbl, t[1], full_address.encode('utf-8'), lon, lat, 4), num except ValueError: self.error_log.open() self.error_log.write(t[1]+", "+str(t[0])) self.error_log.close() TIGERGeocode.print_status(" Lat, Long not found ") return -1, False except KeyboardInterrupt: TIGERGeocode.print_status(" Stopped ") return -3, False