X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FSummaryFile1.py;h=3c82186474108e72908d3d3ded341d48470c1409;hb=67ebbeeaad11d0c1c934c07692e932708aa3aecf;hp=50f23ad0c96a83227137d60c7ff0fd2a4057efe8;hpb=84d512e317cac78d67bec5c64fcf761d3f5e0689;p=dead%2Fcensus-tools.git diff --git a/src/SummaryFile1.py b/src/SummaryFile1.py index 50f23ad..3c82186 100644 --- a/src/SummaryFile1.py +++ b/src/SummaryFile1.py @@ -3,6 +3,8 @@ import os, GPS, inspect class RecordError(StandardError): pass +class InvalidAreaError(StandardError): + pass class GeoRecord: """ @@ -25,6 +27,7 @@ class Block: # if the input string cannot be converted o the specified # type. self.block_number = int(geo_record.block) + self.tract_number = int(geo_record.tract) self.population = int(geo_record.pop100) self.area_land = float(geo_record.arealand) self.area_water = float(geo_record.areawatr) @@ -33,6 +36,9 @@ class Block: self.coordinates.latitude = float(geo_record.intptlat) self.coordinates.longitude = float(geo_record.intptlon) + if (self.total_area() == 0): + raise InvalidAreaError('A block may not have zero area.') + def total_area(self): return (self.area_land + self.area_water) @@ -75,6 +81,10 @@ class GeoRecordParser: block = Block(record) blocks.append(block) except ValueError: + # A value couldn't be converted to the appropriate type. + continue + except InvalidAreaError: + # Something is funny with the geometry. continue return blocks