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 = 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")
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")
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")
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")
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.Hru_data_hru order_by = db.Hru_data_hru.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("topo")) file.write(utils.string_pad("hydro")) file.write(utils.string_pad("soil")) file.write(utils.string_pad("lu_mgt")) file.write(utils.string_pad("soil_plant_init")) file.write(utils.string_pad("surf_stor")) file.write(utils.string_pad("snow")) file.write(utils.string_pad("field")) 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.topo)) file.write(utils.key_name_pad(row.hydro)) file.write(utils.key_name_pad(row.soil)) file.write(utils.key_name_pad(row.lu_mgt)) file.write(utils.key_name_pad(row.soil_plant_init)) file.write(utils.key_name_pad(row.surf_stor)) file.write(utils.key_name_pad(row.snow)) file.write(utils.string_pad(row.field)) file.write("\n")
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_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")
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")
def write_ele_ids2(self, file, table, element_table, elements, elem_table, element_ids, use_obj_id=True): """ SWAT+ requires line numbers rather than designated ID numbers. The following writes the number of the element based on what line it will be in the ls_unit.ele file. The format of the element list uses a "-" to denote "through" """ last_id = 0 last_appended_id = 0 just_wrote = False ele_to_write = [] for ele in elements.order_by(element_table.id): #elem_table = table_mapper.obj_typs.get(ele.obj_typ, None) if elem_table is not None: if use_obj_id: obj_id_col = ele.obj_id else: obj_id_col = ele.obj_typ_no #obj_id = elem_table.select().where(elem_table.id <= obj_id_col).count() obj_id = element_ids.index(obj_id_col) + 1 if last_id == 0: ele_to_write.append(utils.int_pad(obj_id)) just_wrote = True last_appended_id = obj_id elif obj_id > (last_id + 1): if last_appended_id != last_id: ele_to_write.append(utils.int_pad(last_id * -1)) ele_to_write.append(utils.int_pad(obj_id)) last_appended_id = obj_id just_wrote = True else: just_wrote = False last_id = obj_id if not just_wrote and len(elements) > 0: ele_to_write.append(utils.int_pad(last_id * -1)) file.write(utils.int_pad(len(ele_to_write))) for w in ele_to_write: file.write(w)
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")
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")
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")
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")
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")
def write(self): table = db.Print_prt if table.select().count() > 0: row = table.select().first() with open(self.file_name, 'w') as file: self.write_meta_line(file) header_cols = [col(table.nyskip, direction="left", padding_override=10), col(table.day_start, direction="left"), col(table.yrc_start, direction="left"), col(table.day_end, direction="left"), col(table.yrc_end, direction="left"), col(table.interval, direction="left")] self.write_headers(file, header_cols) file.write("\n") row_cols = [col(row.nyskip, direction="left", padding_override=10), col(row.day_start, direction="left"), col(row.yrc_start, direction="left"), col(row.day_end, direction="left"), col(row.yrc_end, direction="left"), col(row.interval, direction="left")] self.write_row(file, row_cols) file.write("\n") aa_int_cnt = len(row.aa_ints) file.write(utils.int_pad("aa_int_cnt", default_pad=10, direction="left")) file.write("\n") file.write(utils.int_pad(aa_int_cnt, default_pad=10, direction="left")) if aa_int_cnt > 0: for aa_int in row.aa_ints: file.write(utils.int_pad(aa_int, direction="left")) file.write("\n") header_cols = [col(table.csvout, direction="left"), col(table.dbout, direction="left"), col(table.cdfout, direction="left")] self.write_headers(file, header_cols) file.write("\n") utils.write_bool_yn(file, row.csvout, direction="left") utils.write_bool_yn(file, row.dbout, direction="left") utils.write_bool_yn(file, row.cdfout, direction="left") file.write("\n") header_cols = [col(table.soilout, direction="left"), col(table.mgtout, direction="left"), col(table.hydcon, direction="left"), col(table.fdcout, direction="left")] self.write_headers(file, header_cols) file.write("\n") utils.write_bool_yn(file, row.soilout, direction="left") utils.write_bool_yn(file, row.mgtout, direction="left") utils.write_bool_yn(file, row.hydcon, direction="left") utils.write_bool_yn(file, row.fdcout, direction="left") file.write("\n") obj_table = db.Print_prt_object header_cols = [col("objects", not_in_db=True, direction="left"), col(obj_table.daily), col(obj_table.monthly), col(obj_table.yearly), col(obj_table.avann)] self.write_headers(file, header_cols) file.write("\n") for obj in row.objects.order_by(obj_table.id): utils.write_string(file, obj.name, direction="left") utils.write_bool_yn(file, obj.daily) utils.write_bool_yn(file, obj.monthly) utils.write_bool_yn(file, obj.yearly) utils.write_bool_yn(file, obj.avann) 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")