def write(self):
		table = connect.Rout_unit_ele
		order_by = connect.Rout_unit_ele.id

		if table.select().count() > 0:
			with open(self.file_name, 'w') as file:
				file.write(self.get_meta_line())
				file.write(utils.int_pad("id"))
				file.write(utils.string_pad("name", direction="left"))
				file.write(utils.code_pad("obj_typ"))
				file.write(utils.int_pad("obj_id"))
				file.write(utils.num_pad("frac"))
				file.write(utils.string_pad("dlr"))
				file.write("\n")

				i = 1
				for row in table.select().order_by(order_by):
					file.write(utils.int_pad(i))
					i += 1
					file.write(utils.string_pad(row.name, direction="left"))
					file.write(utils.code_pad(row.obj_typ))
					file.write(utils.int_pad(row.obj_id))
					file.write(utils.exp_pad(row.frac))
					file.write(utils.key_name_pad(row.dlr, text_if_null="0"))
					file.write("\n")
示例#2
0
    def write(self):
        table = db.Path_hru_ini
        order_by = db.Path_hru_ini.id

        if table.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())

                for row in table.select().order_by(order_by):
                    file.write(
                        utils.string_pad("name",
                                         direction="left",
                                         default_pad=25))
                    file.write(utils.num_pad("plant"))
                    file.write(utils.num_pad("soil"))
                    file.write("\n")

                    file.write(
                        utils.string_pad(row.name,
                                         direction="left",
                                         default_pad=25))
                    file.write("\n")

                    for item in row.path_hrus:
                        file.write(
                            utils.string_pad("",
                                             text_if_null="",
                                             default_pad=1))
                        file.write(
                            utils.key_name_pad(item.name, default_pad=22))
                        file.write(utils.num_pad(item.plant))
                        file.write(utils.num_pad(item.soil))
                        file.write("\n")
示例#3
0
	def write(self):
		table = db.Recall_rec
		order_by = db.Recall_rec.id

		if table.select().count() > 0:
			with open(self.file_name, 'w') as file:
				file.write(self.get_meta_line())
				cols = [col(table.id),
						col(table.name, direction="left"),
						col(table.rec_typ),
						col("file", not_in_db=True, padding_override=utils.DEFAULT_STR_PAD, direction="left")]
				self.write_headers(file, cols)
				file.write("\n")

				for row in table.select().order_by(order_by):
					file_name = '{name}.rec'.format(name=row.name) if row.rec_typ != 4 else row.name
					file.write(utils.int_pad(row.id))
					file.write(utils.string_pad(row.name, direction="left"))
					file.write(utils.int_pad(row.rec_typ))
					file.write(utils.string_pad(file_name, direction="left"))
					file.write("\n")

					dir = os.path.dirname(self.file_name)
					if row.rec_typ != 4:
						self.write_data(row.data, os.path.join(dir, file_name))
    def write(self):
        table = connect.Aquifer_con
        order_by = table.id

        if table.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                file.write(utils.int_pad("id"))
                file.write(utils.string_pad("name", direction="left"))
                file.write(utils.code_pad("obj_typ"))
                file.write(utils.int_pad("obj_typ_no", default_pad=10))
                file.write(utils.num_pad("bsn_frac"))
                file.write(utils.num_pad("sub_frac"))
                file.write(utils.num_pad("reg_frac"))
                file.write("\n")

                tot_area = connect.Rout_unit_con.select(
                    fn.Sum(connect.Rout_unit_con.area)).scalar()

                i = 1
                for row in table.select().order_by(order_by):
                    file.write(utils.int_pad(i))
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.code_pad("aqu"))
                    file.write(utils.int_pad(i, default_pad=10))
                    file.write(
                        utils.num_pad(row.area / tot_area,
                                      use_non_zero_min=True))
                    file.write(utils.num_pad(0))
                    file.write(utils.num_pad(0))
                    file.write("\n")
                    i += 1
    def write(self):
        table = db.Ls_unit_ele
        order_by = db.Ls_unit_ele.id

        if table.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                file.write(utils.int_pad("id"))
                file.write(utils.string_pad("name", direction="left"))
                file.write(utils.code_pad("obj_typ"))
                file.write(utils.int_pad("obj_typ_no"))
                file.write(utils.num_pad("bsn_frac"))
                file.write(utils.num_pad("sub_frac"))
                file.write(utils.num_pad("reg_frac"))
                file.write("\n")

                i = 1
                for row in table.select().order_by(order_by):
                    file.write(utils.int_pad(i))
                    i += 1
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.code_pad(row.obj_typ))
                    file.write(utils.int_pad(row.obj_typ_no, default_pad=10))
                    file.write(
                        utils.exp_pad(row.bsn_frac, use_non_zero_min=True))
                    file.write(utils.num_pad(row.sub_frac))
                    file.write(utils.num_pad(row.reg_frac))
                    file.write("\n")
示例#6
0
    def write(self):
        table = db.Ls_unit_def
        order_by = db.Ls_unit_def.id
        count = table.select().count()

        if count > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                file.write(str(count))
                file.write("\n")
                file.write(utils.int_pad("id"))
                file.write(utils.string_pad("name"))
                file.write(utils.num_pad("area"))
                file.write(utils.int_pad("elem_tot"))
                file.write(utils.int_pad("elements"))
                file.write("\n")

                i = 1
                for row in table.select().order_by(order_by):
                    file.write(utils.int_pad(i))
                    i += 1
                    file.write(utils.string_pad(row.name))
                    file.write(utils.num_pad(row.area))

                    self.write_ele_ids(file,
                                       table,
                                       db.Ls_unit_ele,
                                       row.elements,
                                       use_obj_id=False)
                    file.write("\n")
	def write(self):
		table = connect.Rout_unit_con
		order_by = connect.Rout_unit_con.id
		count = table.select().count()

		if count > 0:
			element_table = connect.Rout_unit_ele
			first_elem = element_table.get()
			obj_table = table_mapper.obj_typs.get(first_elem.obj_typ, None)
			obj_ids = [o.id for o in obj_table.select(obj_table.id).order_by(obj_table.id)]
			
			with open(self.file_name, 'w') as file:
				file.write(self.get_meta_line())
				file.write(utils.int_pad("id"))
				file.write(utils.string_pad("name"))
				file.write(utils.int_pad("elem_tot"))
				file.write(utils.int_pad("elements"))
				file.write("\n")

				i = 1
				for row in table.select().order_by(order_by):
					file.write(utils.int_pad(i))
					i += 1
					file.write(utils.string_pad(row.name))

					self.write_ele_ids2(file, table, element_table, row.elements, obj_table, obj_ids)
					file.write("\n")
示例#8
0
def write_row(file, con, index, con_to_index, con_outs):
    file.write(utils.int_pad(index))
    file.write(utils.string_pad(con.name, direction="left"))
    file.write(utils.int_pad(con.gis_id))
    file.write(utils.num_pad(con.area, use_non_zero_min=True))
    file.write(utils.num_pad(con.lat))
    file.write(utils.num_pad(con.lon))
    file.write(utils.num_pad(con.elev))
    file.write(utils.int_pad(con_to_index))
    file.write(utils.string_pad("null" if con.wst is None else con.wst.name))
    file.write(utils.int_pad(con.cst_id))
    file.write(utils.int_pad(con.ovfl))
    file.write(utils.int_pad(con.rule))
    file.write(utils.int_pad(con_outs.count()))

    for out in con_outs:
        obj_id = out.obj_id

        elem_table = table_mapper.obj_typs.get(out.obj_typ, None)
        if elem_table is not None:
            obj_id = elem_table.select().where(
                elem_table.id <= out.obj_id).count()

        file.write(utils.code_pad(out.obj_typ))
        file.write(utils.int_pad(obj_id))
        file.write(utils.code_pad(out.hyd_typ))
        file.write(utils.num_pad(out.frac))

    file.write("\n")
示例#9
0
    def write(self):
        table = db.Delratio_del
        order_by = db.Delratio_del.id

        if table.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                cols = [
                    col(table.name, direction="left"),
                    col(table.om),
                    col(table.pest),
                    col(table.path),
                    col(table.hmet),
                    col(table.salt)
                ]
                self.write_headers(file, cols)
                file.write("\n")

                for row in table.select().order_by(order_by):
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.key_name_pad(row.om))
                    file.write(utils.key_name_pad(row.pest))
                    file.write(utils.key_name_pad(row.path))
                    file.write(utils.key_name_pad(row.hmet))
                    file.write(utils.key_name_pad(row.salt))
                    file.write("\n")
示例#10
0
	def write(self):
		table = db.Graze_ops
		order_by = db.Graze_ops.id

		if table.select().count() > 0:
			with open(self.file_name, 'w') as file:
				file.write(self.get_meta_line())
				cols = [col(table.name, direction="left"),
						col(table.fert),
						col(table.bm_eat),
						col(table.bm_tramp),
						col(table.man_amt),
						col(table.grz_bm_min),
						col(table.description, is_desc=True)]
				self.write_headers(file, cols)
				file.write("\n")

				for row in table.select().order_by(order_by):
					file.write(utils.string_pad(row.name, direction="left"))
					file.write(utils.key_name_pad(row.fert))
					file.write(utils.num_pad(row.bm_eat))
					file.write(utils.num_pad(row.bm_tramp))
					file.write(utils.num_pad(row.man_amt))
					file.write(utils.num_pad(row.grz_bm_min))
					utils.write_desc_string(file, row.description)
					file.write("\n")
	def write(self):
		table = db.Rout_unit_rtu
		order_by = db.Rout_unit_rtu.id

		if table.select().count() > 0:
			with open(self.file_name, 'w') as file:
				file.write(self.get_meta_line())
				file.write(utils.int_pad("id"))
				file.write(utils.string_pad("name"))
				file.write(utils.string_pad("define"))
				file.write(utils.string_pad("dlr"))
				file.write(utils.string_pad("topo"))
				file.write(utils.string_pad("field"))
				file.write("\n")

				i = 1
				for row in table.select().order_by(order_by):
					file.write(utils.int_pad(i))
					i += 1
					file.write(utils.string_pad(row.name))
					file.write(utils.string_pad(row.name))
					file.write(utils.key_name_pad(row.dlr))
					file.write(utils.key_name_pad(row.topo))
					file.write(utils.key_name_pad(row.field))
					file.write("\n")
    def write(self):
        table = db.Reservoir_res
        order_by = db.Reservoir_res.id

        if table.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                file.write(utils.int_pad("id"))
                file.write(utils.string_pad("name", direction="left"))
                file.write(utils.string_pad("init"))
                file.write(utils.string_pad("hyd"))
                file.write(utils.string_pad("rel"))
                file.write(utils.string_pad("sed"))
                file.write(utils.string_pad("nut"))
                file.write("\n")

                for row in table.select().order_by(order_by):
                    file.write(utils.int_pad(row.id))
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(
                        utils.key_name_pad(row.init,
                                           default_pad=utils.DEFAULT_STR_PAD))
                    file.write(
                        utils.key_name_pad(row.hyd,
                                           default_pad=utils.DEFAULT_STR_PAD))
                    file.write(
                        utils.key_name_pad(row.rel,
                                           default_pad=utils.DEFAULT_STR_PAD))
                    file.write(
                        utils.key_name_pad(row.sed,
                                           default_pad=utils.DEFAULT_STR_PAD))
                    file.write(
                        utils.key_name_pad(row.nut,
                                           default_pad=utils.DEFAULT_STR_PAD))
                    file.write("\n")
示例#13
0
    def write(self):
        table = db.Landuse_lum
        order_by = db.Landuse_lum.id

        if table.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                cols = [
                    col(table.name, padding_override=20, direction="left"),
                    col(table.cal_group),
                    col(table.plnt_com),
                    col(table.mgt),
                    col(table.cn2),
                    col(table.cons_prac),
                    col(table.urban),
                    col(table.urb_ro),
                    col(table.ov_mann),
                    col(table.tile),
                    col(table.sep),
                    col(table.vfs),
                    col(table.grww),
                    col(table.bmp)
                ]
                self.write_headers(file, cols)
                file.write("\n")

                for row in table.select().order_by(order_by):
                    file.write(
                        utils.string_pad(row.name,
                                         direction="left",
                                         default_pad=20))
                    file.write(utils.string_pad(row.cal_group))
                    file.write(utils.key_name_pad(row.plnt_com))
                    file.write(utils.key_name_pad(row.mgt))
                    file.write(utils.key_name_pad(row.cn2))
                    file.write(utils.key_name_pad(row.cons_prac))
                    file.write(utils.key_name_pad(row.urban))
                    file.write(utils.string_pad(row.urb_ro))
                    file.write(utils.key_name_pad(row.ov_mann))
                    file.write(utils.key_name_pad(row.tile))
                    file.write(utils.key_name_pad(row.sep))
                    file.write(utils.key_name_pad(row.vfs))
                    file.write(utils.key_name_pad(row.grww))
                    file.write(utils.key_name_pad(row.bmp))
                    file.write("\n")
示例#14
0
 def write_rows(self, file, items):
     for row in items.order_by(db.Topography_hyd.id):
         file.write(utils.string_pad(row.name, direction="left"))
         file.write(utils.num_pad(row.slp))
         file.write(utils.num_pad(row.slp_len))
         file.write(utils.num_pad(row.lat_len))
         file.write(utils.num_pad(row.dist_cha))
         file.write(utils.num_pad(row.depos))
         file.write("\n")
示例#15
0
    def write(self):
        table = db.Plant_ini
        order_by = db.Plant_ini.id

        if table.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                file.write(utils.string_pad("pcom_name", direction="left"))
                file.write(utils.int_pad("plt_cnt"))
                file.write(utils.int_pad("rot_yr_ini"))
                file.write(
                    utils.string_pad("plt_name",
                                     default_pad=utils.DEFAULT_KEY_PAD))
                file.write(utils.code_pad("lc_status"))
                file.write(utils.num_pad("lai_init"))
                file.write(utils.num_pad("bm_init"))
                file.write(utils.num_pad("phu_init"))
                file.write(utils.num_pad("plnt_pop"))
                file.write(utils.num_pad("yrs_init"))
                file.write(utils.num_pad("rsd_init"))
                file.write("\n")

                for row in table.select().order_by(order_by):
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.int_pad(row.plants.count()))
                    file.write(utils.int_pad(row.rot_yr_ini))
                    file.write("\n")

                    for plant in row.plants:
                        file.write(utils.string_pad("", text_if_null=""))
                        file.write(
                            utils.string_pad(
                                "",
                                text_if_null="",
                                default_pad=utils.DEFAULT_INT_PAD))
                        file.write(utils.key_name_pad(plant.plnt_name))
                        utils.write_bool_yn(file, plant.lc_status)
                        file.write(utils.num_pad(plant.lai_init))
                        file.write(utils.num_pad(plant.bm_init))
                        file.write(utils.num_pad(plant.phu_init))
                        file.write(utils.num_pad(plant.plnt_pop))
                        file.write(utils.num_pad(plant.yrs_init))
                        file.write(utils.num_pad(plant.rsd_init))
                        file.write("\n")
示例#16
0
    def write(self):
        table = db.Path_water_ini.select().order_by(db.Path_water_ini.id)
        items = db.Path_water_ini_item.select().order_by(
            db.Path_water_ini_item.name)
        query = prefetch(table, items)

        if table.count() > 0 and Constituents_cs.select().count() > 0:
            constits_row = Constituents_cs.select().first()
            constits = [] if constits_row.path_coms is None else sorted(
                constits_row.path_coms.split(','))
            if len(constits) > 0:
                with open(self.file_name, 'w') as file:
                    file.write(self.get_meta_line())

                    file.write(
                        utils.string_pad("name",
                                         direction="left",
                                         default_pad=25))
                    for c in constits:
                        file.write(utils.num_pad(c))
                    file.write("\n")

                    for row in query:
                        file.write(
                            utils.string_pad(row.name,
                                             direction="left",
                                             default_pad=25))
                        file.write("\n")

                        water_line = "  " + utils.string_pad(
                            "water", direction="left", default_pad=23)
                        benthic_line = "  " + utils.string_pad(
                            "benthic", direction="left", default_pad=23)
                        for item in row.path_waters:
                            water_line += utils.num_pad(item.water, decimals=3)
                            benthic_line += utils.num_pad(item.benthic,
                                                          decimals=3)

                        file.write(water_line)
                        file.write("\n")
                        file.write(benthic_line)
                        file.write("\n")
示例#17
0
    def write(self):
        table = db.Exco_exc
        order_by = db.Exco_exc.id

        valid_recs = Recall_dat.select(Recall_dat.recall_rec_id).join(
            Recall_rec).where((Recall_rec.rec_typ == 4)
                              & (Recall_dat.flo != 0))
        valid_ids = [r.recall_rec_id for r in valid_recs]
        recall_recs = Recall_rec.select().where(Recall_rec.id.in_(valid_ids))
        #recall_recs = Recall_rec.select(Recall_rec, Recall_dat).join(Recall_dat).where((Recall_rec.rec_typ == 4) & (Recall_dat.flo != 0))

        if recall_recs.count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                cols = [
                    col(table.name, direction="left"),
                    col(table.om),
                    col(table.pest),
                    col(table.path),
                    col(table.hmet),
                    col(table.salt)
                ]
                self.write_headers(file, cols)
                file.write("\n")
                """for row in table.select().order_by(order_by):
					file.write(utils.string_pad(row.name, direction="left"))
					file.write(utils.key_name_pad(row.om))
					file.write(utils.key_name_pad(row.pest))
					file.write(utils.key_name_pad(row.path))
					file.write(utils.key_name_pad(row.hmet))
					file.write(utils.key_name_pad(row.salt))
					file.write("\n")"""

                for row in recall_recs:
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.string_pad(row.name))
                    file.write(utils.key_name_pad(None))
                    file.write(utils.key_name_pad(None))
                    file.write(utils.key_name_pad(None))
                    file.write(utils.key_name_pad(None))
                    file.write("\n")
示例#18
0
    def write(self):
        table = db.Pest_hru_ini.select().order_by(db.Pest_hru_ini.id)
        items = db.Pest_hru_ini_item.select().order_by(
            db.Pest_hru_ini_item.name)
        query = prefetch(table, items)

        if table.count() > 0 and Constituents_cs.select().count() > 0:
            constits_row = Constituents_cs.select().first()
            constits = [] if constits_row.pest_coms is None else sorted(
                constits_row.pest_coms.split(','))
            if len(constits) > 0:
                with open(self.file_name, 'w') as file:
                    file.write(self.get_meta_line())

                    file.write(
                        utils.string_pad("name",
                                         direction="left",
                                         default_pad=25))
                    for c in constits:
                        file.write(utils.num_pad(c))
                    file.write("\n")

                    for row in query:
                        file.write(
                            utils.string_pad(row.name,
                                             direction="left",
                                             default_pad=25))
                        file.write("\n")

                        soil_line = "  " + utils.string_pad(
                            "soil", direction="left", default_pad=23)
                        plant_line = "  " + utils.string_pad(
                            "plant", direction="left", default_pad=23)
                        for item in row.pest_hrus:
                            soil_line += utils.num_pad(item.soil, decimals=3)
                            plant_line += utils.num_pad(item.plant, decimals=3)

                        file.write(soil_line)
                        file.write("\n")
                        file.write(plant_line)
                        file.write("\n")
	def write_constit(self, file, values, label):
		items = [] if values is None else values.split(",")
		items.sort()
		file.write(utils.int_pad(len(items), default_pad=6, direction="right"))
		file.write("              ")
		file.write(utils.string_pad("!{}".format(label), direction="left"))
		file.write("\n")
		file.write("        ")
		for item in items:
			file.write(item)
			file.write(" ")
		file.write("\n")
    def write(self):
        table = db.Ls_unit_def
        order_by = db.Ls_unit_def.id
        count = table.select().count()

        element_table = db.Ls_unit_ele
        first_elem = element_table.get()
        obj_table = table_mapper.obj_typs.get(first_elem.obj_typ, None)
        obj_ids = [
            o.id for o in obj_table.select(obj_table.id).order_by(obj_table.id)
        ]

        if count > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                file.write(str(count))
                file.write("\n")
                file.write(utils.int_pad("id"))
                file.write(utils.string_pad("name"))
                file.write(utils.num_pad("area"))
                file.write(utils.int_pad("elem_tot"))
                file.write(utils.int_pad("elements"))
                file.write("\n")

                i = 1
                for row in table.select().order_by(order_by):
                    file.write(utils.int_pad(i))
                    i += 1
                    file.write(utils.string_pad(row.name))
                    file.write(utils.num_pad(row.area))

                    self.write_ele_ids2(file,
                                        table,
                                        element_table,
                                        row.elements,
                                        obj_table,
                                        obj_ids,
                                        use_obj_id=False)
                    file.write("\n")
示例#21
0
	def write(self):
		table = connect.Rout_unit_con
		order_by = connect.Rout_unit_con.id
		count = table.select().count()

		if count > 0:
			with open(self.file_name, 'w') as file:
				file.write(self.get_meta_line())
				file.write(utils.int_pad("id"))
				file.write(utils.string_pad("name"))
				file.write(utils.int_pad("elem_tot"))
				file.write(utils.int_pad("elements"))
				file.write("\n")

				i = 1
				for row in table.select().order_by(order_by):
					file.write(utils.int_pad(i))
					i += 1
					file.write(utils.string_pad(row.name))

					self.write_ele_ids(file, table, connect.Rout_unit_ele, row.elements)
					file.write("\n")
示例#22
0
    def write(self):
        if db.Hydrology_hyd.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                file.write(utils.string_pad("name", direction="left"))
                file.write(utils.num_pad("lat_ttime"))
                file.write(utils.num_pad("lat_sed"))
                file.write(utils.num_pad("can_max"))
                file.write(utils.num_pad("esco"))
                file.write(utils.num_pad("epco"))
                file.write(utils.num_pad("orgn_enrich"))
                file.write(utils.num_pad("orgp_enrich"))
                file.write(utils.num_pad("evap_pothole"))
                file.write(utils.num_pad("bio_mix"))
                file.write(utils.num_pad("perco"))
                file.write(utils.num_pad("lat_orgn"))
                file.write(utils.num_pad("lat_orgp"))
                file.write(utils.num_pad("harg_pet"))
                file.write(utils.num_pad("cn_plntet"))
                file.write("\n")

                for row in db.Hydrology_hyd.select().order_by(
                        db.Hydrology_hyd.id):
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.num_pad(row.lat_ttime))
                    file.write(utils.num_pad(row.lat_sed))
                    file.write(utils.num_pad(row.can_max))
                    file.write(utils.num_pad(row.esco))
                    file.write(utils.num_pad(row.epco))
                    file.write(utils.num_pad(row.orgn_enrich))
                    file.write(utils.num_pad(row.orgp_enrich))
                    file.write(utils.num_pad(row.evap_pothole))
                    file.write(utils.num_pad(row.bio_mix))
                    file.write(utils.num_pad(row.perco))
                    file.write(utils.num_pad(row.lat_orgn))
                    file.write(utils.num_pad(row.lat_orgp))
                    file.write(utils.num_pad(row.harg_pet))
                    file.write(utils.num_pad(row.cn_plntet))
                    file.write("\n")
示例#23
0
def write_header(file, elem_name, has_con_out):
    file.write(utils.int_pad("id"))
    file.write(utils.string_pad("name", direction="left"))
    file.write(utils.int_pad("gis_id"))
    file.write(utils.num_pad("area"))
    file.write(utils.num_pad("lat"))
    file.write(utils.num_pad("lon"))
    file.write(utils.num_pad("elev"))
    file.write(utils.int_pad(elem_name))
    file.write(utils.string_pad("wst"))
    file.write(utils.int_pad("cst"))
    file.write(utils.int_pad("ovfl"))
    file.write(utils.int_pad("rule"))
    file.write(utils.int_pad("out_tot"))

    if has_con_out:
        file.write(utils.code_pad("obj_typ"))
        file.write(utils.int_pad("obj_id"))
        file.write(utils.code_pad("hyd_typ"))
        file.write(utils.num_pad("frac"))

    file.write("\n")
示例#24
0
    def write(self):
        table = db.Pest_water_ini
        order_by = db.Pest_water_ini.id

        if table.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())

                for row in table.select().order_by(order_by):
                    file.write(
                        utils.string_pad("name",
                                         direction="left",
                                         default_pad=25))
                    file.write(utils.num_pad("water_sol"))
                    file.write(utils.num_pad("water_sor"))
                    file.write(utils.num_pad("benthic_sol"))
                    file.write(utils.num_pad("benthic_sor"))
                    file.write("\n")

                    file.write(
                        utils.string_pad(row.name,
                                         direction="left",
                                         default_pad=25))
                    file.write("\n")

                    for item in row.pest_waters:
                        file.write(
                            utils.string_pad("",
                                             text_if_null="",
                                             default_pad=1))
                        file.write(
                            utils.key_name_pad(item.name, default_pad=22))
                        file.write(utils.num_pad(item.water_sol))
                        file.write(utils.num_pad(item.water_sor))
                        file.write(utils.num_pad(item.benthic_sol))
                        file.write(utils.num_pad(item.benthic_sor))
                        file.write("\n")
示例#25
0
    def write(self):
        table = db.Exco_exc
        order_by = db.Exco_exc.id
        recall_recs = Recall_rec.select().where(Recall_rec.rec_typ == 4)

        if table.select().count() > 0 or recall_recs.count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                cols = [
                    col(table.name, direction="left"),
                    col(table.om),
                    col(table.pest),
                    col(table.path),
                    col(table.hmet),
                    col(table.salt)
                ]
                self.write_headers(file, cols)
                file.write("\n")

                for row in table.select().order_by(order_by):
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.key_name_pad(row.om))
                    file.write(utils.key_name_pad(row.pest))
                    file.write(utils.key_name_pad(row.path))
                    file.write(utils.key_name_pad(row.hmet))
                    file.write(utils.key_name_pad(row.salt))
                    file.write("\n")

                for row in recall_recs:
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.string_pad(row.name))
                    file.write(utils.key_name_pad(None))
                    file.write(utils.key_name_pad(None))
                    file.write(utils.key_name_pad(None))
                    file.write(utils.key_name_pad(None))
                    file.write("\n")
示例#26
0
    def write(self):
        if db.Topography_hyd.select().count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                file.write(utils.string_pad("name", direction="left"))
                file.write(utils.num_pad("slp"))
                file.write(utils.num_pad("slp_len"))
                file.write(utils.num_pad("lat_len"))
                file.write(utils.num_pad("dist_cha"))
                file.write(utils.num_pad("depos"))
                file.write("\n")

                self.write_rows(
                    file,
                    db.Topography_hyd.select().where(
                        db.Topography_hyd.type == "hru"))
                self.write_rows(
                    file,
                    db.Topography_hyd.select().where(
                        db.Topography_hyd.type == "sub"))
示例#27
0
    def write(self):
        #self.write_default_table(db.Exco_om_exc, True)
        table = db.Exco_om_exc
        order_by = db.Exco_om_exc.id
        #recall_recs = Recall_rec.select(Recall_rec, Recall_dat).join(Recall_dat).where((Recall_rec.rec_typ == 4) & (Recall_dat.flo != 0))
        valid_recs = Recall_dat.select(Recall_dat.recall_rec_id).join(
            Recall_rec).where((Recall_rec.rec_typ == 4)
                              & (Recall_dat.flo != 0))
        valid_ids = [r.recall_rec_id for r in valid_recs]
        recall_recs = Recall_rec.select().where(Recall_rec.id.in_(valid_ids))

        if recall_recs.count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                cols = [
                    col(table.name, direction="left"),
                    col(table.flo),
                    col(table.sed),
                    col(table.orgn),
                    col(table.sedp),
                    col(table.no3),
                    col(table.solp),
                    col(table.chla),
                    col(table.nh3),
                    col(table.no2),
                    col(table.cbod),
                    col(table.dox),
                    col(table.sand),
                    col(table.silt),
                    col(table.clay),
                    col(table.sag),
                    col(table.lag),
                    col(table.gravel),
                    col(table.tmp)
                ]
                self.write_headers(file, cols)
                file.write("\n")
                """for row in table.select().order_by(order_by):
					file.write(utils.string_pad(row.name, direction="left"))
					file.write(utils.num_pad(row.flo))
					file.write(utils.num_pad(row.sed))
					file.write(utils.num_pad(row.orgn))
					file.write(utils.num_pad(row.sedp))
					file.write(utils.num_pad(row.no3))
					file.write(utils.num_pad(row.solp))
					file.write(utils.num_pad(row.chla))
					file.write(utils.num_pad(row.nh3))
					file.write(utils.num_pad(row.no2))
					file.write(utils.num_pad(row.cbod))
					file.write(utils.num_pad(row.dox))
					file.write(utils.num_pad(row.sand))
					file.write(utils.num_pad(row.silt))
					file.write(utils.num_pad(row.clay))
					file.write(utils.num_pad(row.sag))
					file.write(utils.num_pad(row.lag))
					file.write(utils.num_pad(row.gravel))
					file.write(utils.num_pad(row.tmp))
					file.write("\n")"""

                for rec in recall_recs:
                    row = Recall_dat.get_or_none(
                        (Recall_dat.recall_rec_id == rec.id)
                        & (Recall_dat.flo != 0))
                    if row is not None:
                        file.write(utils.string_pad(rec.name,
                                                    direction="left"))
                        file.write(utils.num_pad(row.flo))
                        file.write(utils.num_pad(row.sed))
                        file.write(utils.num_pad(row.orgn))
                        file.write(utils.num_pad(row.sedp))
                        file.write(utils.num_pad(row.no3))
                        file.write(utils.num_pad(row.solp))
                        file.write(utils.num_pad(row.chla))
                        file.write(utils.num_pad(row.nh3))
                        file.write(utils.num_pad(row.no2))
                        file.write(utils.num_pad(row.cbod))
                        file.write(utils.num_pad(row.dox))
                        file.write(utils.num_pad(row.sand))
                        file.write(utils.num_pad(row.silt))
                        file.write(utils.num_pad(row.clay))
                        file.write(utils.num_pad(row.sag))
                        file.write(utils.num_pad(row.lag))
                        file.write(utils.num_pad(row.gravel))
                        file.write(utils.num_pad(row.tmp))
                        file.write("\n")
示例#28
0
    def write(self):
        table = db.Management_sch
        op_table = db.Management_sch_op

        mgts = table.select().order_by(table.id)
        ops = op_table.select().order_by(op_table.order, op_table.hu_sch,
                                         op_table.mon, op_table.day)
        query = prefetch(mgts, ops)

        if mgts.count() > 0:
            with open(self.file_name, 'w') as file:
                self.write_meta_line(file)
                header_cols = [
                    col(table.name, direction="left", padding_override=25),
                    col("numb_ops",
                        not_in_db=True,
                        padding_override=utils.DEFAULT_INT_PAD),
                    col("numb_auto", not_in_db=True, padding_override=9),
                    col(op_table.op_typ),
                    col(op_table.mon),
                    col(op_table.day),
                    col(op_table.hu_sch),
                    col(op_table.op_data1),
                    col(op_table.op_data2),
                    col(op_table.op_data3)
                ]
                self.write_headers(file, header_cols)

                total_pad = 46

                file.write("\n")

                for row in query:
                    row_cols = [
                        col(row.name, direction="left", padding_override=25),
                        col(len(row.operations)),
                        col(len(row.auto_ops), padding_override=9)
                    ]
                    self.write_row(file, row_cols)
                    file.write("\n")

                    special_tables = [
                        'pl_hv_summer1', 'pl_hv_summer2', 'pl_hv_winter1'
                    ]

                    for aop in row.auto_ops:
                        file.write(utils.string_pad(" ",
                                                    default_pad=total_pad))
                        file.write(utils.key_name_pad(aop.d_table))
                        if aop.d_table.name in special_tables:
                            file.write(
                                utils.string_pad(aop.plant1, default_pad=5))
                            if aop.d_table.name == special_tables[1]:
                                file.write(
                                    utils.string_pad(aop.plant2,
                                                     default_pad=5))
                        file.write("\n")

                    skip_op = 'skip'

                    for op in row.operations:
                        op_row_cols = [
                            col(" ", padding_override=total_pad),
                            col(op.op_typ),
                            col(op.mon if op.op_typ != skip_op else 0),
                            col(op.day if op.op_typ != skip_op else 0),
                            col(op.hu_sch if op.op_typ != skip_op else 0),
                            col(op.op_data1),
                            col(op.op_data2),
                            col(op.op_data3)
                        ]
                        self.write_row(file, op_row_cols)
                        file.write("\n")
	def write(self):
		table = db.Object_cnt
		order_by = db.Object_cnt.id

		if table.select().count() > 0:
			with open(self.file_name, 'w') as file:
				self.write_meta_line(file)
				header_cols = [col(table.name, direction="left"),
							   col("ls_area", not_in_db=True, padding_override=utils.DEFAULT_NUM_PAD),
							   col("tot_area", not_in_db=True, padding_override=utils.DEFAULT_NUM_PAD),
							   col(table.obj),
							   col(table.hru),
							   col(table.lhru),
							   col(table.rtu),
							   col(table.mfl),
							   col(table.aqu),
							   col(table.cha),
							   col(table.res),
							   col(table.rec),
							   col(table.exco),
							   col(table.dlr),
							   col(table.can),
							   col(table.pmp),
							   col(table.out),
							   col(table.lcha),
							   col(table.aqu2d),
							   col(table.hrd),
							   col(table.wro)]
				self.write_headers(file, header_cols)
				file.write("\n")

				for row in table.select().order_by(order_by):
					ls_area = Ls_unit_def.select(fn.Sum(Ls_unit_def.area)).scalar()
					tot_area = Rout_unit_con.select(fn.Sum(Rout_unit_con.area)).scalar()

					file.write(utils.string_pad(row.name, direction="left"))
					file.write(utils.num_pad(ls_area))
					file.write(utils.num_pad(tot_area))

					hru = self.get_value_or_count(row.hru, Hru_con)
					lhru = self.get_value_or_count(row.lhru, Hru_lte_con)
					rtu = self.get_value_or_count(row.rtu, Rout_unit_con)
					mfl = self.get_value_or_count(row.mfl, Modflow_con)
					aqu = self.get_value_or_count(row.aqu, Aquifer_con)
					cha = self.get_value_or_count(row.cha, Channel_con)
					res = self.get_value_or_count(row.res, Reservoir_con)
					#rec = self.get_value_or_count(row.rec, Recall_con)
					#exco = self.get_value_or_count(row.exco, Exco_con)
					#exco = Recall_con.select().join(Recall_rec).join(Recall_dat).where((Recall_rec.rec_typ == 4) & (Recall_dat.flo != 0)).count()
					#rec = Recall_con.select().join(Recall_rec).join(Recall_dat).where(Recall_rec.rec_typ != 4).count()
					rec = Recall_rec.select().where(Recall_rec.rec_typ != 4).count()
					exco = Recall_dat.select().join(Recall_rec).where((Recall_rec.rec_typ == 4) & (Recall_dat.flo != 0)).count()
					dlr = self.get_value_or_count(row.dlr, Delratio_con)
					out = self.get_value_or_count(row.out, Outlet_con)
					lcha = self.get_value_or_count(row.lcha, Chandeg_con)
					aqu2d = self.get_value_or_count(row.aqu2d, Aquifer2d_con)

					obj_tot = hru + lhru + rtu + mfl + aqu + cha + res + rec + exco + dlr + out + lcha + aqu2d
					obj_tot += row.can + row.pmp + row.hrd + row.wro

					file.write(utils.int_pad(obj_tot))

					file.write(utils.int_pad(hru))
					file.write(utils.int_pad(lhru))
					file.write(utils.int_pad(rtu))
					file.write(utils.int_pad(mfl))
					file.write(utils.int_pad(aqu))
					file.write(utils.int_pad(cha))
					file.write(utils.int_pad(res))
					file.write(utils.int_pad(rec))
					file.write(utils.int_pad(exco))
					file.write(utils.int_pad(dlr))

					file.write(utils.int_pad(row.can))
					file.write(utils.int_pad(row.pmp))

					file.write(utils.int_pad(out))
					file.write(utils.int_pad(lcha))
					file.write(utils.int_pad(aqu2d))

					file.write(utils.int_pad(row.hrd))
					file.write(utils.int_pad(row.wro))

					file.write("\n")
示例#30
0
    def write(self):
        #self.write_default_table(db.Exco_om_exc, True)
        table = db.Exco_om_exc
        order_by = db.Exco_om_exc.id
        recall_recs = Recall_rec.select().where(Recall_rec.rec_typ == 4)

        if table.select().count() > 0 or recall_recs.count() > 0:
            with open(self.file_name, 'w') as file:
                file.write(self.get_meta_line())
                cols = [
                    col(table.name, direction="left"),
                    col(table.flo),
                    col(table.sed),
                    col(table.orgn),
                    col(table.sedp),
                    col(table.no3),
                    col(table.solp),
                    col(table.chla),
                    col(table.nh3),
                    col(table.no2),
                    col(table.cbod),
                    col(table.dox),
                    col(table.sand),
                    col(table.silt),
                    col(table.clay),
                    col(table.sag),
                    col(table.lag),
                    col(table.gravel),
                    col(table.tmp)
                ]
                self.write_headers(file, cols)
                file.write("\n")

                for row in table.select().order_by(order_by):
                    file.write(utils.string_pad(row.name, direction="left"))
                    file.write(utils.num_pad(row.flo))
                    file.write(utils.num_pad(row.sed))
                    file.write(utils.num_pad(row.orgn))
                    file.write(utils.num_pad(row.sedp))
                    file.write(utils.num_pad(row.no3))
                    file.write(utils.num_pad(row.solp))
                    file.write(utils.num_pad(row.chla))
                    file.write(utils.num_pad(row.nh3))
                    file.write(utils.num_pad(row.no2))
                    file.write(utils.num_pad(row.cbod))
                    file.write(utils.num_pad(row.dox))
                    file.write(utils.num_pad(row.sand))
                    file.write(utils.num_pad(row.silt))
                    file.write(utils.num_pad(row.clay))
                    file.write(utils.num_pad(row.sag))
                    file.write(utils.num_pad(row.lag))
                    file.write(utils.num_pad(row.gravel))
                    file.write(utils.num_pad(row.tmp))
                    file.write("\n")

                for rec in recall_recs:
                    row = Recall_dat.get_or_none(
                        Recall_dat.recall_rec_id == rec.id)
                    if row is not None:
                        file.write(utils.string_pad(rec.name,
                                                    direction="left"))
                        file.write(utils.num_pad(row.flo))
                        file.write(utils.num_pad(row.sed))
                        file.write(utils.num_pad(row.ptl_n))
                        file.write(utils.num_pad(row.ptl_p))
                        file.write(utils.num_pad(row.no3_n))
                        file.write(utils.num_pad(row.sol_p))
                        file.write(utils.num_pad(row.chla))
                        file.write(utils.num_pad(row.nh3_n))
                        file.write(utils.num_pad(row.no2_n))
                        file.write(utils.num_pad(row.cbn_bod))
                        file.write(utils.num_pad(row.oxy))
                        file.write(utils.num_pad(row.sand))
                        file.write(utils.num_pad(row.silt))
                        file.write(utils.num_pad(row.clay))
                        file.write(utils.num_pad(row.sm_agg))
                        file.write(utils.num_pad(row.lg_agg))
                        file.write(utils.num_pad(row.gravel))
                        file.write(utils.num_pad(row.tmp))
                        file.write("\n")