X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FCensus.py;h=63f69aaccaadf355b7d1b82414841e1d2839111b;hb=a288d4500730745bdd483c33c02411b9237b4a9f;hp=a69ff58b9cb68fea0e8c398d5fce289f7954a87e;hpb=e29f3e5cc471e3cb60f641fcf3a3577c87896f36;p=dead%2Fcensus-tools.git diff --git a/src/Census.py b/src/Census.py index a69ff58..63f69aa 100644 --- a/src/Census.py +++ b/src/Census.py @@ -1,5 +1,6 @@ import pgdb +import Configuration.Defaults import GPS import SummaryFile1 @@ -11,11 +12,16 @@ class Database: one or two methods from within this class. """ - def __init__(self, _host, _database, _username, _srid): - self.connection = pgdb.connect(host=_host, - database=_database, - user=_username) - self.srid = _srid + def __init__(self, + initial_host=Configuration.Defaults.DATABASE_HOST, + initial_database=Configuration.Defaults.DATABASE_NAME, + initial_username=Configuration.Defaults.DATABASE_USERNAME, + initial_srid=Configuration.Defaults.SRID): + + self.connection = pgdb.connect(host=initial_host, + database=initial_database, + user=initial_username) + self.srid = initial_srid def __del__(self): @@ -30,9 +36,9 @@ class Database: query = """ SELECT population_density - FROM (sf1_blocks INNER JOIN tiger - ON sf1_blocks.tiger_blkidfp00=tiger.blkidfp00) - WHERE ST_Contains(tiger.the_geom, + FROM (sf1_blocks INNER JOIN tiger_blocks + ON sf1_blocks.blkidfp00=tiger_blocks.blkidfp00) + WHERE ST_Contains(tiger_blocks.the_geom, ST_SetSRID(ST_Point(%.6f, %.6f), %d)); """ @@ -71,8 +77,8 @@ class Database: # query = """ SELECT SUM(sf1_blocks.pop100 * - ( ST_Area(ST_Intersection(%s, tiger.the_geom)) - / ST_Area(tiger.the_geom) ) + ( ST_Area(ST_Intersection(%s, tiger_blocks.the_geom)) + / ST_Area(tiger_blocks.the_geom) ) ) AS covered_population """ % geometric_object sql_params = (well_known_text, self.srid) @@ -81,15 +87,15 @@ class Database: # Join our two block tables, so that we have both the demographic # and geometric data. query += """ - FROM (sf1_blocks INNER JOIN tiger - ON sf1_blocks.tiger_blkidfp00 = tiger.blkidfp00) + FROM (sf1_blocks INNER JOIN tiger_blocks + ON sf1_blocks.blkidfp00 = tiger_blocks.blkidfp00) """ # We only need to calculate the covered population for the blocks # that actually intersect our object. query += """ - WHERE (ST_Intersects(%s, tiger.the_geom)) + WHERE (ST_Intersects(%s, tiger_blocks.the_geom)) """ % geometric_object # geometric_object hasn't been substituted yet, so we need # to add the sql_params twice. @@ -121,9 +127,9 @@ class Database: cursor = self.connection.cursor() query = """ - SELECT ST_AsText(tiger.the_geom) - FROM tiger - WHERE tiger.blkidfp00 = %s; + SELECT ST_AsText(tiger_blocks.the_geom) + FROM tiger_blocks + WHERE tiger_blocks.blkidfp00 = %s; """ sql_params = (blkidfp00,)