if runtype not in ['raster', 'proximity']:
    print "type", runtype, "not recognized"
    sys.exit()

startx = int(options.startx)
starty = int(options.starty)    

place = MapGardening.get_place(options.place)

if place is not None:
                                                    
    print "starting with", options.place
        
    MapGardening.init_logging()

    MapGardening.init_db(place['dbname'])
    
    # analyze to nodes table, ignore others for now. 
    
    nodetable = MapGardening.NodeTable()
    
    # TODO: test for spatial indexes before proceeding
    
    bstm = MapGardening.BlankSpotTableManager() 
   
    # We assume the manager table exists. If not, create it. 
    #if not bstm.table_exists():
    #    bstm.create_manager_table()

    params = {
                'runtype': runtype,
usage = "usage: %prog [options]"
p = optparse.OptionParser(usage)
p.add_option('--place', '-p',
             default="all"
             )

options, arguments = p.parse_args()

if options.place == "all":

    places = MapGardening.get_all_places()

else:
   
    placename = options.place 
    place = MapGardening.get_place(placename)
    places = {placename: place}
    
MapGardening.init_logging()

for placename in places.keys():
    print "printing raster info for", placename

    MapGardening.init_db(places[placename]['dbname'])
    
    raster = MapGardening.Raster()
    
    raster.get_raster_stats()

    MapGardening.disconnect_db()
    
# TODO: query the BlankSpotTableManager to see which resolutions are present
possible_resolutions = ["250", "500", "1000"]

if options.resolution == "all":
    resolutions = possible_resolutions
else:
    resolutions = [options.resolution]


MapGardening.init_logging()

for placename in places.keys():

    # Each place exists in a different database, so we connect/disconnect inside the places loop
    (conn, cur) = MapGardening.init_db(places[placename]["dbname"])

    bstm = MapGardening.BlankSpotTableManager()

    nt = MapGardening.NodeTable()  # Using defaults for table name and projection

    for runtype in runtypes:

        for resolution in resolutions:

            st = time.time()
            lt = st

            print "starting", placename, resolution, runtype

            params = {"runtype": runtype, "resolution": resolution}