import os
+from Errors import RecordError
import GPS
import StringUtils
-class RecordError(StandardError):
- pass
-
class GeoRecord:
"""
This class wraps one record in an SF1 geo file.
self.coordinates.longitude = (float(geo_record.intptlon) / (10**6))
- def tiger_blkidfp00(self):
+ def blkidfp00(self):
# From the Tiger/Line shapefile documentation:
#
# Current block identifier; a concatenation of Census 2000
return record
-
-
-
-def FindClosestBlock(blocks, target_coords):
- """
- Find the closest block (from within blocks) to the GPS
- coordinates given by target_coords.
- """
-
- # Empty by default. Hopefully we're passed some blocks.
- closest_block = None
- min_distance = 999999999.0 # Don't look at me like that.
-
- for block in blocks:
- this_distance = GPS.CalculateDistance(target_coords, block.coordinates)
- if (this_distance < min_distance):
- closest_block = block
- min_distance = this_distance
-
- return closest_block
-
-
-
-def FindAveragePopulationDensity(coords, geo_file_path):
- grp = GeoRecordParser()
- blocks = grp.parse_blocks(geo_file_path)
- closest_block = FindClosestBlock(blocks, coords)
-
- return closest_block.population_density()