Exemplo n.º 1
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")
Exemplo n.º 2
0
    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")
Exemplo n.º 3
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")
Exemplo n.º 4
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")
Exemplo n.º 5
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")
Exemplo n.º 6
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")
	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")
Exemplo n.º 8
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")
Exemplo n.º 9
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"))
Exemplo n.º 10
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")
Exemplo n.º 11
0
    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
Exemplo n.º 12
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")
Exemplo n.º 13
0
    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")
Exemplo n.º 14
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")
	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")
Exemplo n.º 16
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")
Exemplo n.º 17
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")
Exemplo n.º 18
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")
Exemplo n.º 19
0
	def write_data(self, data, file_name):
		table = db.Recall_dat
		with open(file_name, 'w') as file:
			file.write(self.get_meta_line())
			file.write(str(len(data)))
			file.write("\n")

			cols = [
				col(table.yr),
				col(table.t_step),
				col(table.flo),
				col(table.sed),
				col(table.ptl_n),
				col(table.ptl_p),
				col(table.no3_n),
				col(table.sol_p),
				col(table.chla),
				col(table.nh3_n),
				col(table.no2_n),
				col(table.cbn_bod),
				col(table.oxy),
				col(table.sand),
				col(table.silt),
				col(table.clay),
				col(table.sm_agg),
				col(table.lg_agg),
				col(table.gravel),
				col(table.tmp)
			]

			self.write_headers(file, cols)
			file.write("\n")
			
			for row in data.order_by(db.Recall_dat.yr, db.Recall_dat.t_step):
				file.write(utils.int_pad(row.yr))
				file.write(utils.int_pad(row.t_step))
				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")
Exemplo n.º 20
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")
Exemplo n.º 21
0
    def write_data(self, data, file_name):
        table = db.Recall_dat
        with open(file_name, 'w') as file:
            time_sim = simulation.Time_sim.get()
            valid_data = []
            for row in data.order_by(db.Recall_dat.yr, db.Recall_dat.jday,
                                     db.Recall_dat.id):
                valid_row = row.yr >= time_sim.yrc_start and row.yr <= time_sim.yrc_end
                rec_typ = row.recall_rec.rec_typ
                if valid_row and rec_typ == 1:  #daily
                    valid_row = (time_sim.day_start == 0
                                 or row.jday >= time_sim.day_start) and (
                                     time_sim.day_end == 0
                                     or row.jday <= time_sim.day_end)
                if valid_row and rec_typ == 2:  #monthly
                    rec_jday = datetime.datetime(row.yr, row.mo,
                                                 1).timetuple().tm_yday
                    valid_row = (time_sim.day_start == 0
                                 or rec_jday >= time_sim.day_start) and (
                                     time_sim.day_end == 0
                                     or rec_jday <= time_sim.day_end)

                if valid_row:
                    valid_data.append(row)

            file.write(self.get_meta_line())
            file.write(str(len(valid_data)))
            file.write("\n")

            cols = [
                col(table.jday),
                col(table.mo),
                col(table.day_mo),
                col(table.yr),
                col(table.ob_typ),
                col(table.ob_name),
                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 valid_data:
                file.write(utils.int_pad(row.jday))
                file.write(utils.int_pad(row.mo))
                file.write(utils.int_pad(row.day_mo))
                file.write(utils.int_pad(row.yr))
                file.write(utils.string_pad(row.ob_typ))
                file.write(utils.string_pad(row.ob_name))
                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")