def main():

	# Get params from command line.
	if len(sys.argv) != 3:
		print >> sys.stderr, "Must provide csv file and id of effort set to be created in db."
		exit(1)
	csv_file = sys.argv[1]
	tag = sys.argv[2]

	# Setup DAOs.
	db_session = sa_session.get_session()
	effort_dao = SA_Effort_DAO(session = db_session)
	cell_dao = SA_Cell_DAO(session = db_session)

	# Get 100km cells and make id lookup.
	cells = cell_dao.get_cells(filters=[{'attr': 'type', 'op': '==', 'value': 'km100'}])
	cells_by_100km_id = {}
	for c in cells: cells_by_100km_id[c.type_id] = c

	# Make gears lookup.
	gears_by_id = {}
	for gear in db_session.query(Gear).all():
		gears_by_id[gear.id] = gear

	# Create efforts from csv rows.
	efforts = []
	csv_reader = csv.DictReader(open(csv_file, "rb"))
	r_counter = 0
	for r in csv_reader:

		r_counter += 1
		if (r_counter % 1000) == 0:
			print >> sys.stderr, r_counter

		# Get cell.
		cell = cells_by_100km_id[int(r['id_100'])]

		# Get gear.
		gear_id = "GC%s" % r['gear_code']
		gear = gears_by_id[gear_id]

		# Create effort.
		efforts.append(Effort(
			cell = cell,
			time = r['year'],
			gear = gear,
			tag = tag,
			swept_area = float(r['A']),
			hours_fished = float(r['hours_fished'])
			))
	
	# Save efforts.
	effort_dao.save_efforts(efforts)
	def test(self):
		cell_dao = SA_Cell_DAO(session=self.session)
		cells = cell_dao.get_cells(filters=[
			{
				'attr': 'type',
				'value': ['km100'],
				},
			{
				'attr': 'depth',
				'op': '>=',
				'value': -138
				}
			]
			)