def create_tree(): result_lst = read_results(cgos_dir) hash_tree = {} i = 0 for result in result_lst: if result["P" + opponent_color]==opponent: random.seed(1) g = load_sgf.load_file(cgos_dir + result["File"]) cboard = g.current_board #print cboard print result black_won = result["RE"][0]=="B" next_move = PASS_MOVE while True: key = g.search_key() moves = hash_tree.get(key, {}) counts = moves.get(next_move, [0, 0]) counts[black_won] += 1 moves[next_move] = counts hash_tree[key] = moves if len(g.move_history)==0: break next_move = g.move_history[-1] g.undo_move() i += 1 print i, len(hash_tree), len(hash_tree)/float(i) #print hash_tree #random.seed(1) #g = Game(9) #print hash_tree[g.search_key()] #break fp = open(opening_file(), "w") cPickle.dump(hash_tree, fp)
def k_generator(data_dir, vystup_dir): os.chdir(data_dir) data_PU = read_results('results.csv') data_used = [] for i in range(0, len(data_PU)): data_used.append(data_PU[i][0]) data_used.append(data_PU[i][1]) data_used.append(data_PU[i][2]) data_used.append(data_PU[i][4]) a = 0.15 * ((float(data_PU[i][1]) * float(data_PU[i][2]) * float(data_PU[i][4]))**0.5) # print(float(data_PU[i][1]), float(data_PU[i][2]), float(data_PU[i][4])) data_used.append(str(round(a, 2))) data_used.append('{} PG6 21A/183B'.format(math.ceil(a))) data_used = list(chunks(data_used, 6)) with doc.create(Section('Hasicí přístroje')): with doc.create(Subsection('Přehled hasicích přístrojů')): doc.append( NoEscape(r'Přehled počtu a druhu všech hasicích přístrojů,\ které budou v objektu osazeny, je patrný z\ tabulky \ref{PHP_stanoveni}.')) for i in range(0, len(data_used)): data_used[i][1] = data_used[i][1].replace(".", ",") data_used[i][2] = data_used[i][2].replace(".", ",") data_used[i][3] = data_used[i][3].replace(".", ",") data_used[i][4] = data_used[i][4].replace(".", ",") with doc.create(LongTable("l c c c c l", pos=['htb'])) as data_table: doc.append(Command('caption', 'Počet a druh hasicích přístrojů')) doc.append(Command('label', NoEscape('PHP_stanoveni'))) doc.append(Command('\ ')) data_table.append data_table.add_hline() data_table.add_row([ "Požární úsek", "S", "a", "c", NoEscape('$n_r$'), "Počet PHP - typ" ]) data_table.add_row([" ", NoEscape('[m$^2$]'), "-", "-", "-", " "]) data_table.add_hline() data_table.end_table_header() for i in range(0, len(data_used)): if i % 2 != 0: data_table.add_row(data_used[i], color="Hex") else: data_table.add_row(data_used[i]) data_table.add_hline() # doc.append(NoEscape('\insertTableNotes')) os.chdir(vystup_dir) doc.generate_pdf("K_hasicaky", clean_tex=False)
def show_top_players(): result_lst = read_results(cgos_dir) d = {} d_all = {} for result in result_lst: for color in ("W", "B"): name = result["P" + color] rating = result[color + "R"] m = re.match(r"(-?\d+)", rating) if m: rating = int(m.group(1)) if rating >= 1600: d[name] = d.get(name, 0) + 1 d_all[name] = d_all.get(name, 0) + 1 pprint.pprint(d) print sum(d.values()), sum(d_all.values()) return d, d_all
def E1_generator(soubor, cesta, data_konst, vystup_dir, data_dir): os.chdir(data_dir) data_PU = read_results('results.csv') info1 = read_results('raw_data_info.csv') podlazi = int(info1[2][0]) info = info1[0][0] SPB_check = [] n_uniques = [] d = {'I.': 1, 'II.': 2, 'III.': 3, 'IV.': 4, 'V.': 5, 'VI.': 6, 'VII.': 7} e = {1: 'I.', 2: 'II.', 3: 'III.', 4: 'IV.', 5: 'V.', 6: 'VI.', 7: 'VII.'} check_PP = { 'I.': 30, 'II.': 45, 'III.': 60, 'IV.': 90, 'V.': 120, 'VI.': 180, 'VII.': 180 } check_NP = { 'I.': 15, 'II.': 30, 'III.': 45, 'IV.': 60, 'V.': 90, 'VI.': 120, 'VII.': 180 } for i in range(0, len(data_PU)): SPB_check.append(data_PU[i][6]) n_uniques.append(data_PU[i][0]) os.chdir(cesta) [Nazev_kce, Specif1, Specif2, b, a, h, Ly, Lx, zeb_a] = konst_data_prep('E.1 PKD_Stěna', data_konst) wb = openpyxl.load_workbook(soubor, data_only=True) Data_PKD = wb.get_sheet_by_name('Databaze_PKD') Name_data = [] prep_data = [] dim_row = Data_PKD.max_row # determines maximum number of rows for row in Data_PKD.iter_rows(min_row=4, max_row=dim_row, min_col=1, max_col=1): for cell in row: Name_data.append(cell.value) for row in Data_PKD.iter_rows(min_row=4, max_row=dim_row, min_col=3, max_col=3): for cell in row: prep_data.append(cell.value) preidx = Name_data.index('Porotherm') Name_data_prep = Name_data[preidx:] Prep_data_text = prep_data[preidx:] Name_data = Name_data[:preidx] prep_data = prep_data[:preidx] dictionary = dict(zip(Name_data, prep_data)) dictionary_text = dict(zip(Name_data_prep, Prep_data_text)) with doc.create(Section('Zhodnocení požární odolnosti konstrukcí')): spb_val = [] for i in range(0, len(SPB_check)): spb_val.append(d[SPB_check[i]]) spb_max = max(spb_val) spb_max = e[spb_max] if spb_max == 'I.': if info == 'nehořlavý': with doc.create(Itemize()) as itemize: itemize.add_item( "Normový požadavek na požární stěny v NP - I.SPB - (R)EI 15 DP1" ) for i in range(0, len(n_uniques)): if 'P' in n_uniques[i]: itemize.add_item( "Normový požadavek na požární stěny v PP - I.SPB - (R)EI 30 DP1" ) break if podlazi > 1: itemize.add_item( "Normový požadavek na požární stěny v posledním NP - III.SPB - (R)EI 30 DP1" ) if spb_max == 'II.': with doc.create(Itemize()) as itemize: itemize.add_item( "Normový požadavek na požární stěny v NP - II.SPB - (R)EI 30 DP1" ) if spb_max == 'III.': if info == 'nehořlavý': with doc.create(Itemize()) as itemize: itemize.add_item( "Normový požadavek na požární stěny v NP - III.SPB - (R)EI 45 DP1" ) for i in range(0, len(n_uniques)): if 'P' == n_uniques[i][0]: itemize.add_item( "Normový požadavek na požární stěny v PP - III.SPB - (R)EI 60 DP1" ) break if podlazi > 1: itemize.add_item( "Normový požadavek na požární stěny v posledním NP - III.SPB - (R)EI 30 DP1" ) if spb_max == 'IV.': with doc.create(Itemize()) as itemize: itemize.add_item( "Normový požadavek na požární stěny v NP - IV.SPB - (R)EI 60 DP1" ) if spb_max == 'V.': with doc.create(Itemize()) as itemize: itemize.add_item( "Normový požadavek na požární stěny v NP - V.SPB - (R)EI 90 DP1" ) if spb_max == 'VI.': with doc.create(Itemize()) as itemize: itemize.add_item( "Normový požadavek na požární stěny v NP - VI.SPB - (R)EI 120 DP1" ) if spb_max == 'VII.': with doc.create(Itemize()) as itemize: itemize.add_item( "Normový požadavek na požární stěny v NP - VII.SPB - (R)EI 180 DP1" ) save_var = [] save_b = [] for i in range(0, len(Specif2)): if Specif2[i] in dictionary: if Specif2[i] == 'ŽB. nenosné stěny': '''TempName = Name_data.index(Specif2[i]) if TempName > 42: doc.append(dictionary[Specif2[i]])''' ''' Posouzení podle tab. 2.2 - nenosné stěny ''' # if 0 <= TempName < 2: if b[i] < 60: raise NameError('!!! Mimo rozsah tabulkek !!!') if 60 <= b[i] < 70: check = 30 if 70 <= b[i] < 80: check = 45 if 80 <= b[i] < 100: check = 60 if 100 <= b[i] < 120: check = 90 if 120 <= b[i] < 150: check = 120 if b[i] >= 150: check = 180 token = 'železobetonovými nenosnými stěnami' token_tab = '2.2' token_type = 'EI' ''' Posouzení podle tabulky 2.3 - nosné stěny ''' if Specif2[i] == 'ŽB. nosné stěny': if b[i] < 120 and a[i] < 10: raise NameError('!!! Mimo rozsah tabulkek !!!') if 120 <= b[i] < 125 and a[i] < 25: check = 30 if 125 <= b[i] < 130 and a[i] < 25: check = 45 if (130 <= b[i] < 140 and a[i] < 25)\ or (b[i] > 140 and a[i] < 25): check = 60 if 140 <= b[i] < 160 and 25 <= a[i] < 35\ or (b[i] > 160 and a[i] < 35): check = 90 if 160 <= b[i] < 210 and 35 <= a[i] < 50\ or (b[i] > 210 and a[i] < 50): check = 120 if b[i] >= 210 and a[i] >= 50: check = 180 token = 'železobetonovými nosnými stěnami' token_tab = '2.3' token_type = 'REI' if Specif2[i] == 'Nenosné (všechny skupiny) – 500<p<2400': top = [100, 100, 100, 140, 170, 190] bottom = [70, 70, 70, 100, 140, 140] interpolate = [] for n in range(0, len(top)): intt = top[n] + (a[i] - 500) * ((bottom[n] - top[n]) / (2400 - 500)) interpolate.append(intt) if interpolate[n] - b[i] >= 0: check_len = len(interpolate) if check_len == 1: check = 60 if check_len == 4: check = 90 if check_len == 5: check = 120 if check_len == 6: check = 180 break if len(interpolate) == 6: interpolate.append(1) token = 'z nenosných pálených cihel' token_tab = '6.1.1' token_type = 'EI' if Specif2[i] == 'Skupina 1S – 1000<p<2400': interpolate = [] top = [90, 90, 90, 100, 140, 190] bottom = [90, 90, 90, 90, 140, 140] top_rho = 2400 bottom_rho = 1000 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 1S' token_tab = '6.1.2, číslo řádku 1.1 respektive 1.2' token_type = 'REI' if Specif2[i] == 'Skupina 1 – 800<p<2400': interpolate = [] top = [100, 100, 100, 170, 170, 190] bottom = [90, 90, 90, 90, 140, 170] top_rho = 2400 bottom_rho = 800 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 1' token_tab = '6.1.2, číslo řádku 2.1 respektive 2.2' token_type = 'REI' if Specif2[i] == 'Skupina 1 – 500<p<800': top = [100, 200, 200, 200, 365, 365] bottom = [100, 170, 170, 170, 300, 300] top_rho = 800 bottom_rho = 500 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 1' token_tab = '6.1.2, číslo řádku 2.3 respektive 2.4' token_type = 'REI' if Specif2[i] == 'Skupina 2 – 800<p<2200, ct>25%': interpolate = [] top = [100, 100, 100, 170, 240, 240] bottom = [100, 100, 100, 140, 140, 240] top_rho = 2200 bottom_rho = 800 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 2' token_tab = '6.1.2, číslo řádku 3.1 respektive 3.2' token_type = 'REI' if Specif2[i] == 'Skupina 2 – 700<p<800, ct>25%': interpolate = [100, 100, 170, 240, 300, 365] top_rho = 800 bottom_rho = 700 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 2' token_tab = '6.1.2, číslo řádku 3.4' token_type = 'REI' if Specif2[i] == 'Skupina 2 – 500<p<900, 16%<ct<25%': interpolate = [100, 170, 170, 240, 300, 365] top_rho = 900 bottom_rho = 500 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 2' token_tab = '6.1.2, číslo řádku 3.6' token_type = 'REI' if Specif2[i] == 'Skupina 3 – 500<p<800': interpolate = [100, 200, 240, 300, 365, 425] top_rho = 1200 bottom_rho = 500 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 3' token_tab = '6.1.2, číslo řádku 4.2' token_type = 'REI' if Specif2[i] == 'Skupina 4 – 500<p<800': interpolate = [240, 240, 240, 300, 365, 425] top_rho = 1200 bottom_rho = 500 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 4' token_tab = '6.1.2, číslo řádku 5.2' token_type = 'REI' if Specif2[i] == 'Neznámé cihly': interpolate = [240, 240, 240, 300, 365, 425] top_rho = 1200 bottom_rho = 500 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pálených zdících prvků skupiny 4' token_tab = '6.1.2, číslo řádku 5.2' token_type = 'REI' if Specif2[i] == 'Vápenopískové (nenosné) 600<p<2400': interpolate = [] top = [70, 90, 90, 100, 140, 170] bottom = [50, 70, 70, 100, 140, 140] top_rho = 2400 bottom_rho = 600 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z nenosných vápenopískových cihel' token_tab = '6.2.1, číslo řádku 1.1 respektive 1.2' token_type = 'EI' if Specif2[i] == 'Vápenopískové – Skupina 1S – 1700<p<2400': interpolate = [] top = [90, 90, 90, 100, 170, 170] bottom = [90, 90, 90, 100, 140, 170] top_rho = 2400 bottom_rho = 1700 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z vápenopískových zdících prvků skupiny 1S' token_tab = '6.2.2, číslo řádku 1.1 respektive 1.2' token_type = 'REI' if Specif2[i] == 'Vápenopískové – Skupina 1 – 1400<p<2400': interpolate = [] top = [100, 100, 100, 100, 200, 240] bottom = [100, 100, 100, 100, 140, 190] top_rho = 2400 bottom_rho = 1400 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z vápenopískových zdících prvků skupiny 1' token_tab = '6.2.2, číslo řádku 2.1 respektive 2.2' token_type = 'REI' if Specif2[i] == 'Vápenopískové – Skupina 2 – 700<p<1600': interpolate = [] top = [100, 100, 100, 100, 200, 240] bottom = [100, 100, 100, 100, 140, 190] top_rho = 1600 bottom_rho = 700 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z vápenopískových zdících prvků skupiny 2' token_tab = '6.2.2, číslo řádku 3.1 respektive 3.2' token_type = 'REI' if Specif2[ i] == 'Beton nenosné skupina 1 pórovité kamenivo 400<p<1600': interpolate = [] top = [50, 70, 90, 140, 140, 140] bottom = [50, 50, 70, 70, 140, 140] top_rho = 1600 bottom_rho = 400 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových tvárnic s pórovitým kamenivem skupiny 1' token_tab = '6.3.1, číslo řádku 1.1 respektive 1.2' token_type = 'EI' if Specif2[ i] == 'Beton nenosné skupina 1 hutné kamenivo 1400<p<2000': interpolate = [] top = [50, 70, 90, 140, 140, 190] bottom = [50, 50, 70, 70, 90, 100] top_rho = 2400 bottom_rho = 1200 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových tvárnic s hutným kamenivem skupiny 1' token_tab = '6.3.1, číslo řádku 1.3 respektive 1.4' token_type = 'EI' if Specif2[ i] == 'Beton nenosné skupina 2 pórovité kamenivo 240<p<1200': interpolate = [] top = [50, 70, 100, 100, 140, 200] bottom = [50, 50, 70, 90, 140, 140] top_rho = 1200 bottom_rho = 240 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových tvárnic s pórovitým kamenivem skupiny 2' token_tab = '6.3.1, číslo řádku 2.1 respektive 2.2' token_type = 'EI' if Specif2[ i] == 'Beton nenosné skupina 2 hutné kamenivo 720<p<1650': interpolate = [] top = [50, 70, 100, 100, 200, 200] bottom = [50, 50, 70, 70, 140, 140] top_rho = 1650 bottom_rho = 720 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových tvárnic s hutným kamenivem skupiny 2' token_tab = '6.3.1, číslo řádku 2.3 respektive 2.4' token_type = 'EI' if Specif2[ i] == 'Beton nenosné skupina 3 hutné kamenivo 480<p<1000': interpolate = [100, 150, 150, 200, 1000, 1000] top_rho = 1000 bottom_rho = 480 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových tvárnic s hutným kamenivem skupiny 3' token_tab = '6.3.1, číslo řádku 3.3' token_type = 'EI' if Specif2[ i] == 'Beton nosné skupina 1 pórovité kamenivo 400<p<1600': interpolate = [] top = [170, 170, 170, 170, 190, 240] bottom = [140, 140, 140, 140, 170, 190] top_rho = 1600 bottom_rho = 400 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových nosných tvárnic s pórovitým kamenivem skupiny 1' token_tab = '6.3.2, číslo řádku 1.1 respektive 1.2' token_type = 'REI' if Specif2[ i] == 'Beton nosné skupina 1 hutné kamenivo 1400<p<2000': interpolate = [] top = [170, 170, 170, 170, 190, 240] bottom = [140, 140, 140, 140, 170, 190] top_rho = 2000 bottom_rho = 1400 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových nosných tvárnic s hutným kamenivem skupiny 1' token_tab = '6.3.2, číslo řádku 1.3 respektive 1.4' token_type = 'REI' if Specif2[ i] == 'Beton nosné skupina 2 pórovité kamenivo 240<p<1200': interpolate = [] top = [170, 170, 170, 170, 190, 240] bottom = [140, 140, 140, 140, 170, 190] top_rho = 1200 bottom_rho = 240 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových nosných tvárnic s pórovitým kamenivem skupiny 2' token_tab = '6.3.2, číslo řádku 2.1 respektive 2.2' token_type = 'REI' if Specif2[ i] == 'Beton nosné skupina 2 hutné kamenivo 720<p<1650': interpolate = [] top = [170, 170, 170, 170, 190, 240] bottom = [140, 140, 140, 140, 170, 190] top_rho = 1650 bottom_rho = 720 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových nosných tvárnic s hutným kamenivem skupiny 2' token_tab = '6.3.2, číslo řádku 2.3 respektive 2.4' token_type = 'REI' if Specif2[ i] == 'Beton nosné skupina 3 hutné kamenivo 480<p<1000': interpolate = [140, 140, 140, 140, 200, 200] top_rho = 1000 bottom_rho = 480 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z betonových nosných tvárnic s hutným kamenivem skupiny 3' token_tab = '6.3.2, číslo řádku 3.3' token_type = 'REI' if Specif2[i] == 'Pórobeton nenosné skupina 1S a 1 350<p<500': interpolate = [] top = [65, 70, 75, 100, 100, 150] bottom = [50, 60, 60, 60, 90, 100] top_rho = 500 bottom_rho = 350 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pórobetonových tvárnic' token_tab = '6.4.1, číslo řádku 1.1 respektive 1.2' token_type = 'EI' if Specif2[i] == 'Pórobeton nenosné skupina 1S a 1 500<p<1000': interpolate = [] top = [60, 60, 70, 100, 100, 150] bottom = [50, 60, 60, 60, 90, 100] top_rho = 1000 bottom_rho = 500 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z pórobetonových tvárnic' token_tab = '6.4.1, číslo řádku 1.3 respektive 1.4' token_type = 'EI' if Specif2[i] == 'Pórobeton nosné skupina 1S a 1 350<p<500': interpolate = [] top = [115, 115, 140, 200, 225, 300] bottom = [115, 115, 115, 200, 125, 240] top_rho = 500 bottom_rho = 350 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z nosných pórobetonových tvárnic' token_tab = '6.4.2, číslo řádku 1.1 respektive 1.2' token_type = 'REI' if Specif2[i] == 'Pórobeton nosné skupina 1S a 1 500<p<1000': interpolate = [] top = [100, 100, 150, 170, 200, 240] bottom = [100, 100, 100, 150, 170, 200] top_rho = 1000 bottom_rho = 500 ' Vyzkoušení zda je rho v intervalu' if a[i] > top_rho or a[i] < bottom_rho: raise NameError('!!! Mimo rozsah tabulkek !!!') for n in range(0, len(top)): intt = top[n] + (a[i]-bottom_rho) *\ ((bottom[n]-top[n])/(top_rho-bottom_rho)) interpolate.append(intt) myArr = np.asarray(interpolate) check = cihlyPO(b, interpolate, i, myArr) token = 'z nosných pórobetonových tvárnic' token_tab = '6.4.2, číslo řádku 1.3 respektive 1.4' token_type = 'REI' doc.append(NoEscape(r'\textbf{%s}: ' % Nazev_kce[i])) if Specif2[i] in dictionary_text: doc.append(dictionary_text[Specif2[i]]) if 'PP' in Nazev_kce[i] or 'podzemní' in Nazev_kce[i]\ or 'Podzemní' in Nazev_kce[i]: if check_PP[spb_max] > check: raise NameError( '!!! Konstrukce nevyhoví na požární odolnost !!!') else: add_str = 'v podzemním podlaží' if 'NP' in Nazev_kce[i] or 'nadzemní' in Nazev_kce[i]\ or 'Nadzemní' in Nazev_kce[i]: add_str = 'v nadzemním podlaží' if check_NP[spb_max] > check: raise NameError( '!!! Konstrukce nevyhoví na požární odolnost !!!') else: if i != 0: if b[i] in save_b and Specif2[i] in save_var: doc.append( 'Požární stěny {} jsou stejně jako v podzemním podlaží tvořeny {} o tloušťce {} mm s vyhovující požární odolností {} {} DP1. ' .format(add_str, token, b[i], token_type, check)) doc.append(NoEscape(r'\newline \newline')) if i == 0 or (b[i] not in save_b and Specif2[i] not in save_var): if Specif2[i] == 'Neznámé cihly': doc.append( 'Požární stěna je tvořena neznámým druhem pálených cihel. Stěna o tloušťce {} mm vykazuje dle tabulkového hodnocení tab: {} (Zoufal a spol.) i při uvažování cihel skupiny 4, tedyskupiny, která z požárního hlediska vykazuje nejhorší požární odolnost, vyhovující odolnost {} {} DP1. ' .format(b[i], token_tab, token_type, check)) elif Specif2[i] in dictionary and Specif2[i] != 'Neznámé cihly': doc.append( 'Požární stěny {} jsou tvořeny {} o tloušťce {} mm. Dle tabulkového hodnocení tab: {} (viz Zoufal a spol.) má konstrukce požární odolnost {} {} DP1, což je vyhovující. ' .format(add_str, token, b[i], token_tab, token_type, check)) doc.append(NoEscape(r'\newline \newline')) save_var.append(Specif2[i]) save_b.append(b[i]) os.chdir(vystup_dir) doc.generate_pdf("E.1", clean_tex=False)
def appendix(data_dir, vystup_dir): os.chdir(data_dir) data_PU = read_results('raw_data_PU.csv') data_POP = read_results('raw_data_POP.csv') data_mid = read_results('results.csv') PurePath(vystup_dir) geometry_options = {"margin": "0.5cm", "includeheadfoot": True} doc = Document(page_numbers=True, geometry_options=geometry_options) doc.preamble.append(NoEscape(r'\definecolor{Hex}{RGB}{239,239,239}')) doc.documentclass.options = Options('10pt') doc.append(Command('textbf', 'Zadání hodnot pro výpočet: ')) doc.append( NoEscape(r'Tabulka \ref{rozmery} je souhrnem zadaných hodnot \ potřebných k výpočtu požárně výpočtového zatížení.')) def genenerate_longtabu(data): if data == data_PU: with doc.create(LongTable("l l c c c c c c l")) as data_table: doc.append(Command('caption', 'Zadání místností pro výpočet')) doc.append(Command('label', 'rozmery')) doc.append(Command('\ ')) data_table.append data_table.add_hline() data_table.add_row([ "PU", "Místnost", "Plocha", NoEscape('h$_s$'), NoEscape('a$_n$'), NoEscape('p$_n$'), NoEscape('p$_s$'), "c", "Tab. A.1" ]) data_table.add_hline() data_table.end_table_header() data_table.add_hline() doc.append(Command('endfoot')) doc.append(Command('endlastfoot')) # data_table.end_table_footer() data_table.add_hline() if data == data_POP: with doc.create(LongTable("l l c c c c", pos=['l'])) as data_table: doc.append(Command('caption', 'Zadání okenních otvorů')) doc.append(Command('label', 'okna')) doc.append(Command('\ ')) data_table.append data_table.add_hline() data_table.add_row([ "PU", "Místnost", "n otvorů", "šířka otvorů", "výška otvorů", "Plocha" ]) data_table.add_row( [" ", " ", " ", "[m]", "[m]", NoEscape('m$^2$')]) data_table.add_hline() data_table.end_table_header() data_table.add_hline() data_table.add_hline() for i in range(0, len(data)): if i % 2 == 0: data_table.add_row(data[i]) else: data_table.add_row(data[i], color="Hex") data_table.add_hline() for i in range(0, len(data_PU)): data_PU[i][2] = data_PU[i][2].replace(".", ",") data_PU[i][3] = data_PU[i][3].replace(".", ",") data_PU[i][4] = data_PU[i][4].replace(".", ",") data_PU[i][5] = data_PU[i][5].replace(".", ",") data_PU[i][6] = data_PU[i][6].replace(".", ",") data_PU[i][7] = data_PU[i][7].replace(".", ",") genenerate_longtabu(data_PU) doc.append( NoEscape(r'Okenní otvory nutné pro výpočet součinitele b jsou\ uvedeny v následující tabulce \ref{okna}')) for i in range(0, len(data_POP)): data_POP[i][3] = data_POP[i][3].replace(".", ",") data_POP[i][4] = data_POP[i][4].replace(".", ",") data_POP[i][5] = data_POP[i][5].replace(".", ",") genenerate_longtabu(data_POP) doc.append(Command('textbf', 'Mezivýsledky a výsledky: ')) doc.append( NoEscape(r'Mezivýsledky nutné pro stanovení parametru b jsou\ patrné z tabulky \ref{mezivysledky}')) ######################################################################### ''' Mezivýsledky parametr B ''' data_mid_ar = [] for i in range(0, len(data_mid)): data_mid_ar.append(data_mid[i][0]) data_mid_ar.append(data_mid[i][1]) data_mid_ar.append(data_mid[i][8]) data_mid_ar.append(data_mid[i][9]) data_mid_ar.append(data_mid[i][10]) data_mid_ar.append(data_mid[i][14]) data_mid_ar.append(data_mid[i][15]) data_mid_ar = list(chunks(data_mid_ar, 7)) for i in range(0, len(data_mid_ar)): data_mid_ar[i][1] = data_mid_ar[i][1].replace(".", ",") data_mid_ar[i][2] = data_mid_ar[i][2].replace(".", ",") data_mid_ar[i][3] = data_mid_ar[i][3].replace(".", ",") data_mid_ar[i][4] = data_mid_ar[i][4].replace(".", ",") data_mid_ar[i][5] = data_mid_ar[i][5].replace(".", ",") data_mid_ar[i][6] = data_mid_ar[i][6].replace(".", ",") with doc.create(LongTable("l c c c c c c", pos=['l'])) as data_table: doc.append(Command('caption', 'Mezivýsledky pro paramter b')) doc.append(Command('label', 'mezivysledky')) doc.append(Command('\ ')) data_table.append data_table.add_hline() data_table.add_row(["PÚ", "S", "S0", "hs", "h0", "n", "k"]) data_table.add_row([ " ", NoEscape('m$^2$'), NoEscape('m$^2$'), "[m]", "[m]", "[-]", "[-]" ]) data_table.add_hline() data_table.end_table_header() data_table.add_hline() data_table.add_hline() for i in range(0, len(data_mid_ar)): if i % 2 == 0: data_table.add_row(data_mid_ar[i]) else: data_table.add_row(data_mid_ar[i], color="Hex") data_table.add_hline() ######################################################################### ''' Vysledky ''' doc.append( NoEscape(r'Přehled výsledků požárních úseků je patrný z tabulky\ \ref{Vysledky}')) data_res = [] for i in range(0, len(data_mid)): data_res.append(data_mid[i][0]) data_res.append(data_mid[i][1]) data_res.append(data_mid[i][2]) data_res.append(data_mid[i][3]) data_res.append(data_mid[i][4]) data_res.append(data_mid[i][13]) # a_n data_res.append(data_mid[i][12]) # p_n data_res.append(data_mid[i][11]) # p_s data_res.append(data_mid[i][7]) # p_only data_res.append(data_mid[i][5]) # p_v data_res = list(chunks(data_res, 10)) for i in range(0, len(data_res)): data_res[i][1] = data_res[i][1].replace(".", ",") data_res[i][2] = data_res[i][2].replace(".", ",") data_res[i][3] = data_res[i][3].replace(".", ",") data_res[i][4] = data_res[i][4].replace(".", ",") data_res[i][5] = data_res[i][5].replace(".", ",") data_res[i][6] = data_res[i][6].replace(".", ",") data_res[i][7] = data_res[i][7].replace(".", ",") data_res[i][8] = data_res[i][8].replace(".", ",") data_res[i][9] = data_res[i][9].replace(".", ",") with doc.create(LongTable("l c c c c c c c c c ", pos=['l'])) as data_table: doc.append( Command( 'caption', 'Přehled požárních úseků a jejich\ výsledky')) doc.append(Command('label', 'Vysledky')) doc.append(Command('\ ')) data_table.append data_table.add_hline() data_table.add_row([ "PÚ", "Plocha", "a", "b", "c", NoEscape('a$_n$'), NoEscape('p$_n$'), NoEscape('p$_s$'), NoEscape('p'), NoEscape('p$_v$') ]) data_table.add_row([ " ", NoEscape('m$^2$'), "[-]", "[-]", "[-]", "[-]", NoEscape('[kg/m$^2$]'), NoEscape('[kg/m$^2$]'), NoEscape('[kg/m$^2$]'), NoEscape('[kg/m$^2$]') ]) data_table.end_table_header() data_table.add_hline() for i in range(0, len(data_res)): if i % 2 == 0: data_table.add_row(data_res[i]) else: data_table.add_row(data_res[i], color="Hex") data_table.add_hline() os.chdir(vystup_dir) doc.generate_pdf("Appendix", clean_tex=False)
def d_generator(data_dir, vystup_dir): os.chdir(data_dir) data_PU = read_results('results.csv') info_PU = read_results('raw_data_info.csv') # Arrange data to desired shape data_check = [] data_used = [] data_replace_p = [] data_check_p = [] data_replace_a = [] l_names = [] p_stale = [] for i in range(0, len(data_PU)): data_used.append(data_PU[i][0]) data_used.append(data_PU[i][16]) data_used.append(data_PU[i][1]) data_used.append(data_PU[i][2]) data_used.append(data_PU[i][3]) data_used.append(data_PU[i][4]) data_used.append(data_PU[i][5]) data_used.append(data_PU[i][6]) data_check.append(data_PU[i][19]) data_replace_p.append(data_PU[i][12]) data_replace_a.append(data_PU[i][13]) data_check_p.append(data_PU[i][7]) l_names.append(data_PU[i][19]) p_stale.append(data_PU[i][20]) data_used = list(chunks(data_used, 8)) list_avaiable = [ 'B.1 pol.1', 'B.1 pol.2', 'B.1 pol.3', 'B.1 pol.4', 'B.1 pol.5', 'B.1 pol.6', 'B.1 pol.7', 'B.1 pol.8', 'B.1 pol.9', 'B.1 pol.10', 'B.1 pol.11', 'B.1 pol.12', 'B.1 pol.13' ] list_avaiable2 = [ 'AZ1 Ordi.', 'AZ1 Lék.', 'AZ2 Ordi', 'AZ2 vyšet.', 'AZ2 Lék.', 'LZ1', 'LZ2 lůž', 'LZ2 int.péče', 'LZ2 Lék', 'LZ2 biochem', 'peč. Služ', 'soc.péče.ošetř.', 'soc.péče.lůž.', 'soc.péče.byt', 'Jesle' ] check = [] for i in range(0, len(data_check)): if data_check[i] in list_avaiable or\ data_check[i] == 'OB2 byt' or\ data_check[i] == 'OB3' or data_check[i] == 'OB4 ubyt.' or data_check[i] == 'OB4 sklad' or\ data_check[i] == 'CHÚC-A' or data_check[i] == 'CHÚC-B' or\ data_check[i] == 'CHÚC-C' or data_check[i] in list_avaiable2: check.append(i) sys.path.insert(0, "c:/Users/Honza/Google Drive/Work/Generator_zprav/minor/") from stupen import spb_def type_sys = info_PU[0] h_p = float(info_PU[1][0]) podlazi = float(info_PU[2][0]) if len(check) > 0: for item in check: data_used[item][4] = '-' '''data_used[item][4] = '-' if data_check[item] == 'OB2 byt': if (float(data_check_p[item]) - float(data_replace_p[item])) >= 0: data_used[item][6] = '%.2f' % 40 spb_fix = spb_def(h_p, type_sys[0], [40], [1.00], podlazi, str(data_PU[item][0])) data_used[item][7] = spb_fix[0] if (float(data_check_p[item]) - float(data_replace_p[item])) > 5: data_used[item][6] = '%.2f' % 45.00 spb_fix = spb_def(h_p, type_sys[0], [45], [1.00], podlazi, data_PU[item][0]) data_used[item][7] = spb_fix[0] if (float(data_check_p[item]) - float(data_replace_p[item])) >= 15: data_used[item][6] = '%.2f' % 50.00 spb_fix = spb_def(h_p, type_sys[0], [50], [1.00], podlazi, data_PU[item][0]) data_used[item][7] = spb_fix[0] data_used[item][3] = str('%.2f' % 1.00) # pozn = ' $^{1)}$' # data_used[item][0] = NoEscape(data_used[item][0] + pozn) if data_check[item] in list_avaiable: if 0 <= float(p_stale[item]) <= 5: data_used[item][6] = '%.2f' % float(data_replace_p[item]) if float(p_stale[item]) > 5: data_replace_p[item] = ((float(p_stale[item]) - 5) * 1.15)\ + float(data_replace_p[item]) data_used[item][6] = '%.2f' % data_replace_p[item] spb_fix = spb_def(h_p, type_sys[0], [float(data_replace_p[item])], [1.00], podlazi, data_PU[item][0]) data_used[item][7] = spb_fix[0] data_used[item][3] = str('%.2f' % 1.00) if data_check[item] in list_avaiable2: data_used[item][6] = '%.2f' % float(data_replace_p[item]) data_used[item][3] = data_replace_a[item] spb_fix = spb_def(h_p, type_sys[0], [float(data_used[item][6])], [float(data_used[item][3])], podlazi, data_PU[item][0]) data_used[item][7] = spb_fix[0] if data_check[item] == 'OB3' or data_check[i] == 'OB4 ubyt.': data_used[item][6] = '%.2f' % float(data_replace_p[item]) spb_fix = spb_def(h_p, type_sys[0], [30], [1.00], podlazi, data_PU[item][0]) data_used[item][7] = spb_fix[0] data_used[item][3] = str('%.2f' % 1.00) if data_check[item] == 'OB4 sklad': data_used[item][6] = '%.2f' % float(data_replace_p[item]) spb_fix = spb_def(h_p, type_sys[0], [60], [1.00], podlazi, data_PU[item][0]) data_used[item][7] = spb_fix[0] data_used[item][3] = str('%.2f' % 1.00)''' if data_check[item] == 'CHÚC-A' or data_check[item] == 'CHÚC-B' or\ data_check[item] == 'CHÚC-C': data_used[item][3] = '-' data_used[item][4] = '-' data_used[item][5] = '-' data_used[item][6] = '-' if h_p < 30: data_used[item][7] = 'II.' if h_p >= 30: data_used[item][7] = 'III.' if h_p >= 45: data_used[item][7] = 'IV.' with doc.create(Section('Posouzení požárních úseků')): with doc.create(Subsection('Vyhodnocení požárních úseků')): doc.append( NoEscape(r'Z tabulky \ref{PU} je patrné požární riziko\ a stupeň požární bezpečnosti všech řešených\ požárních úseků. Není-li v poznámce pod\ tabulkou uvedeno jinak, je požární riziko PÚ\ stanoveno výpočtem (viz příloha \ref{A-1}:\ Výpočet požárního rizika).')) save_var = [] save_id = [] save_name = [] save_id_check = [] for i in range(0, len(data_check)): if data_check[i] == 'B.1 pol.1' or data_check[i] == 'B.1 pol.2' or\ data_check[i] == 'B.1 pol.3' or data_check[i] == 'B.1 pol.4' or\ data_check[i] == 'B.1 pol.5' or data_check[i] == 'B.1 pol.6' or\ data_check[i] == 'B.1 pol.7' or data_check[i] == 'B.1 pol.8' or\ data_check[i] == 'B.1 pol.9' or data_check[i] == 'B.1 pol.10' or\ data_check[i] == 'B.1 pol.11' or data_check[i] == 'B.1 pol.12' or\ data_check[i] == 'B.1 pol.13' or data_check[i] == 'OB2 byt' or\ data_check[i] == 'CHÚC-A' or data_check[i] == 'CHÚC-B' or\ data_check[i] == 'CHÚC-C' or data_check[i] == 'OB3' or\ data_check[i] == 'OB4 ubyt.' or\ data_check[i] == 'OB4 sklad' or\ data_check[i] in list_avaiable2: save_var.append(data_check[i]) save_id_check.append(i) count = list(range(1, len(save_var) + 1)) pre = ' $^{' suf = ')}$' for i in range(0, len(save_var)): count[i] = pre + str(count[i]) count[i] = str(count[i]) + suf for n in range(0, len(save_var)): if n == 0: new_dict = dict(zip([save_var[n]], [count[n]])) save_id.append(save_id_check[n]) save_name.append(save_var[n]) # new_dict = dict(zip([save_var[n]], str(count[n]))) if n > 0: if save_var[n] in new_dict: save_id.append(save_id_check[n]) save_name.append(save_var[n]) else: len_dict = len(new_dict) + 1 len_dict = pre + str(len_dict) len_dict = str(len_dict) + suf save_id.append(save_id_check[n]) save_name.append(save_var[n]) new_dict[save_var[n]] = len_dict for i in range(0, len(save_id)): data_used[save_id[i]][1] = NoEscape(data_used[save_id[i]][1] + new_dict[save_name[i]]) doc.append(Command('begin', 'ThreePartTable')) if len(check) > 0: doc.append(Command('begin', 'TableNotes')) doc.append(NoEscape('\small')) for key in new_dict.keys(): pre_str = '\item' if key == 'OB2 byt': idx = l_names.index(key) suf_str = ' Uvažováno s požárně výpočetním zatížením (p$_v$)\ podle normy ČSN 73 0833 čl. 5.1.2.' string = new_dict[key] if 0 <= (float(data_check_p[idx]) - float(data_replace_p[idx])) < 5: loc_str = pre_str + string + suf_str doc.append(NoEscape(loc_str)) if (float(data_check_p[idx]) - float(data_replace_p[idx])) > 5: suf_str = suf_str + ' Stálé požární\ zatížení v požárním úseku je p$_s$ = 10 kg/m$^2$.\ Je tak přihlédnuto k poznámce stejného článku,\ která stanovuje požární zatížení na hodnotu\ p$_v$ = 45 kg/m$^2$.' loc_str = pre_str + string + suf_str doc.append(NoEscape(loc_str)) if key in list_avaiable: string = new_dict[key] idx = l_names.index(key) polozka = str(list_avaiable.index(key) + 1) suf_str_f = ' Hodnota požárně výpočtového zatížení je\ stanovena paušálně z položky ' suf_str_ff = ' tabulky B.1 normy ČSN 73 0802.' suf_str_b = ' Stálé požární zatížení je p$_s$ = ' suf_str_bb = ' kg/m$^2$. Při stanovení požárně výpočtového\ zaížení je tak přihlédnuto k čl. B.1.2.' if 0 <= (float(data_check_p[idx]) - float(data_replace_p[idx])) <= 5: suf_str_f = suf_str_f + polozka + suf_str_ff loc_str = pre_str + string + suf_str_f doc.append(NoEscape(loc_str)) if 5 < (float(data_check_p[idx]) - float(data_replace_p[idx])): suf_str_num = str(p_stale[idx]) suf_str_f = suf_str_f + polozka + suf_str_ff suf_str_b = suf_str_b + suf_str_num + suf_str_bb loc_str = pre_str + string + suf_str_f + suf_str_b doc.append(NoEscape(loc_str)) if key in list_avaiable2: string = new_dict[key] idx = l_names.index(key) suf_str_f = ' Hodnota požárně výpočtového zatížení je\ stanovena paušálně z ' suf_str_ff = ' z normy ČSN 73 0835.' if key == 'AZ1 Ordi.': odkaz = 'čl. 5.3.1' suf_str_b = ' Jedná se o zařízení lékařské péče\ zařazené do skupiny AZ1' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'AZ1 Lék.': odkaz = 'čl. 5.3.1' suf_str_b = ' Jedná se o lékárenské zařízení\ zařazené do skupiny AZ1' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'AZ2 Ordi': odkaz = 'čl. 6.2.1' suf_str_b = ' Jedná se o lékárenské pracoviště\ zařazené do skupiny AZ2' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'AZ2 vyšet.': odkaz = 'čl. 6.2.1' suf_str_b = ' Jedná se o vyšetřovací nebo léčebnou\ část budovy zařazené do skupiny AZ2' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'AZ2 Lék.': odkaz = 'čl. 6.2.1' suf_str_b = ' Jedná se o lékárenské zařízení\ zařazené do skupiny AZ2' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'LZ1': odkaz = 'čl. 7.2.1' suf_str_b = ' Jedná se o požární úsek, který je\ součástí budovy skupiny LZ1' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(No.Escape(loc_str)) if key == 'LZ2 lůž': odkaz = 'čl. 8.2.1' suf_str_b = ' Jedná se o lůžkové jednotky v\ budově skupiny LZ2' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'LZ2 int.péče': odkaz = 'čl. 8.2.1' suf_str_b = ' Jedná se o jednotky intenzivní péče,\ ansteziologicko resustitační oddělení,\ nebo o operační oddělení v budově\ zařazené do skupiny LZ2' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'LZ2 Lék': odkaz = 'čl. 8.2.1' suf_str_b = ' Jedná se o lékárenské zařízení v\ budově skupiny LZ2' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'LZ2 biochem': odkaz = 'čl. 8.2.1' suf_str_b = ' Jedná se o oddělení klinické biochemie\ v budově skupiny LZ2' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'peč. Služ': odkaz = 'čl. 9.3.1' suf_str_b = ' Jedná se o bytovou jednotku v domě\ s pečovatelskou službou' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'soc.péče.oštř.': odkaz = 'čl. 10.3.1' suf_str_b = ' Jedná se o ošetřovatelské oddělení v\ budově sociální péče' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'soc.péče.lůž.': odkaz = 'čl. 10.3.1' suf_str_b = ' Jedná se o lůžkovou část ústavu\ sociální péče' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'soc.péče.byt.': odkaz = 'čl. 10.3.1' suf_str_b = ' Jedná se o bytové jednotky v budově\ sociální péče.' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'Jesle.': odkaz = 'čl. 10.3.1' suf_str_b = ' Jedná se o zrdavotnické zařízení\ pro děti - jesle' loc_str = pre_str + string + suf_str_f + odkaz +\ suf_str_ff + suf_str_b doc.append(NoEscape(loc_str)) if key == 'OB3': string = new_dict[key] pre_str = '\item' suf_str = ' Požární riziko pro ubytovací jednotku bylo\ stanoveno paušálně pomocí čl. 6.1.1 normy\ ČSN 73 0833.' loc_str = pre_str + string + suf_str doc.append(NoEscape(loc_str)) if key == 'OB4 ubyt.': string = new_dict[key] pre_str = '\item' suf_str = ' Požární riziko pro ubytovací jednotku v budově OB4 bylo\ stanoveno paušálně pomocí čl. 7.1.1 normy\ ČSN 73 0833.' loc_str = pre_str + string + suf_str doc.append(NoEscape(loc_str)) if key == 'OB4 sklad': string = new_dict[key] pre_str = '\item' suf_str = ' Požární riziko pro ubytovací jednotku v budově OB4 bylo\ stanoveno paušálně pomocí čl. 7.1.3 normy\ ČSN 73 0833.' loc_str = pre_str + string + suf_str doc.append(NoEscape(loc_str)) if key == 'CHÚC-A' or key == 'CHÚC-B' or key == 'CHÚC-C': string = new_dict[key] pre_str = '\item' suf_str = ' CHÚC je zatříděna v souladu s čl. 9.3.2 normy\ ČSN 73 0802.' loc_str = pre_str + string + suf_str doc.append(NoEscape(loc_str)) if info_PU[3] == ['ANO']: try: new_dict except NameError: var_exist = False else: var_exist = True if var_exist is False: new_dict = [] pre_str = '\item' doc.append(Command('begin', 'TableNotes')) doc.append(NoEscape('\small')) if info_PU[5] == ['osobní výtahy, malé nákladní výtahy']: if h_p <= 22.5: s_vytah = [ 'Šv', 'Výtahové šachty', '-', '-', '-', '-', '-', 'II.' ] if 22.5 < h_p <= 45.0: s_vytah = [ 'Šv', 'Výtahové šachty', '-', '-', '-', '-', '-', 'III.' ] if h_p > 45.0: s_vytah = [ 'Šv', 'Výtahové šachty', '-', '-', '-', '-', '-', 'IV.' ] len_vytah = len(new_dict) + 1 app_vytah = pre + str(len_vytah) + suf suf_str_v = ' Výtahová šachta odpovídá čl. 8.10.2 a) normy\ ČSN 73 0802. Šachta slouží pro přepravu\ osob, nebo jako malý nákladní výtah.' loc_str_v = pre_str + app_vytah + suf_str_v doc.append(NoEscape(loc_str_v)) if info_PU[5] == ['osobně-nákladní, nákladní výtahy']: if h_p <= 30: s_vytah = [ 'Šv', 'Výtahové šachty', '-', '-', '-', '-', '-', 'III.' ] if h_p > 30: s_vytah = [ 'Šv', 'Výtahové šachty', '-', '-', '-', '-', '-', 'IV.' ] len_vytah = len(new_dict) + 1 app_vytah = pre + str(len_vytah) + suf suf_str_v = ' Výtahová šachta odpovídá čl. 8.10.2 normy\ ČSN 73 0802 bodu b). Šachta slouží jako\ osobo nákladní nebo nákladní výtah.' loc_str_v = pre_str + app_vytah + suf_str_v doc.append(NoEscape(loc_str_v)) app_this = pre + str(len_vytah) + suf s_vytah[1] = NoEscape(s_vytah[1] + app_this) if info_PU[4] == ['ANO']: try: new_dict except NameError: var_exist = False else: var_exist = True if var_exist is False: new_dict = [] pre_str = '\item' doc.append(Command('begin', 'TableNotes')) doc.append(NoEscape('\small')) if info_PU[6] == ['rozvody hořlavých látek – max 1000 mm2']: if h_p <= 22.5: s_inst = [ 'Ši', 'Instalační šachty', '-', '-', '-', '-', '-', 'II.' ] if 22.5 < h_p <= 45.0: s_inst = [ 'Ši', 'Instalační šachty', '-', '-', '-', '-', '-', 'III.' ] if h_p > 45.0: s_inst = [ 'Ši', 'Instalační šachty', '-', '-', '-', '-', '-', 'IV.' ] if info_PU[3] == ['ANO']: len_inst = len_vytah + 1 app_vytah = pre + str(len_inst) + suf suf_str_i = ' Instalační šachty jsou zatříděny v souladu s\ čl. 8.12.2 c). Šachty jsou dimenzovány\ pro rozvody hořlavých látek o celkovém\ průřezu 1000 m$^2$' loc_str_i = pre_str + app_vytah + suf_str_i doc.append(NoEscape(loc_str_i)) if info_PU[6] == [ 'rozvody nehořlavých látek – potrubí A1,\ A2' ]: s_inst = [ 'Ši', 'Instalační šachty', '-', '-', '-', '-', '-', 'I.' ] if info_PU[6] == ['rozvody nehořlavých látek – potrubí B-F']: s_inst = [ 'Ši', 'Instalační šachty', '-', '-', '-', '-', '-', 'II.' ] if info_PU[6] == ['rozvody hořlavých látek – 1000-8000 mm2']: if h_p <= 45.0: s_inst = [ 'Ši', 'Instalační šachty', '-', '-', '-', '-', '-', 'IV.' ] if h_p > 45.0: s_inst = [ 'Ši', 'Instalační šachty', '-', '-', '-', '-', '-', 'V.' ] if info_PU[6] == [ 'rozvody hořlavých látek – více než 8000 mm2' ]: s_inst = [ 'Ši', 'Instalační šachty', '-', '-', '-', '-', '-', 'VI.' ] if info_PU[3] == ['ANO']: len_inst = len_vytah + 1 else: len_inst = len(new_dict) + 1 app_this = pre + str(len_inst) + suf s_inst[1] = NoEscape(s_inst[1] + app_this) data_used.append(s_vytah) data_used.append(s_inst) if len(check) > 0 or info_PU[4] == ['ANO' ] or info_PU[3] == ['ANO']: doc.append(Command('end', 'TableNotes')) for i in range(0, len(data_used)): data_used[i][2] = data_used[i][2].replace(".", ",") data_used[i][3] = data_used[i][3].replace(".", ",") data_used[i][4] = data_used[i][4].replace(".", ",") data_used[i][5] = data_used[i][5].replace(".", ",") data_used[i][6] = data_used[i][6].replace(".", ",") with doc.create(LongTable("l l c c c c c c", pos=['htb'])) as data_table: doc.append( Command('caption', 'Přehled požárních úselků a jejich SPB')) doc.append(Command('label', 'PU')) doc.append(Command('\ ')) data_table.append data_table.add_hline() data_table.add_row([ "Číslo", "Popis", "Plocha", MultiColumn(3, data='Součinitelé'), NoEscape('p$_v$'), "SPB" ]) data_table.add_row([ " ", " ", NoEscape('[m$^2$]'), "a", "b", "c", NoEscape('[kg/m$^2$]'), '[-]' ]) data_table.add_hline() data_table.end_table_header() for i in range(0, len(data_used)): if i % 2 != 0: data_table.add_row(data_used[i], color="Hex") else: data_table.add_row(data_used[i]) data_table.add_hline() if len(check) > 0 or info_PU[4] == ['ANO' ] or info_PU[3] == ['ANO']: doc.append(NoEscape('\insertTableNotes')) os.chdir(vystup_dir) doc.append(Command('end', 'ThreePartTable')) doc.generate_pdf("D_PU", clean_tex=False)
def odstup(wb, data_dir): odstup = wb.get_sheet_by_name('Odstupové vzdálenosti') # Variables, aneb co počítat: From_POP = odstup["B2"].value POP_singl = odstup["B3"].value ''' Varianta 1: zadání otvorů jednotlivě B2 = NE, B3 = ANO''' # Načtení zadaných dat data = [] Name_data = [] PU_data = [] p_v = [] h = [] b = [] fasada = [] Nazev_result = [] p_v_result = [] odstup_row = odstup.max_row # determines maximum number of rows for row in odstup.iter_rows(min_row=5, max_row=odstup_row, min_col=1, max_col=6): for cell in row: data.append(cell.value) # Zadat data z excelu do jednoho listu Odstup_data = list(chunks(data, 6)) for i in range(0, len(Odstup_data)): Name_data.append((Odstup_data[i])[0]) PU_data.append((Odstup_data[i])[1]) p_v.append((Odstup_data[i])[2]) h.append((Odstup_data[i])[3]) b.append((Odstup_data[i])[4]) fasada.append((Odstup_data[i])[5]) ''' Načtení informací o objektu a požárních úsecích ''' os.chdir(data_dir) info1 = read_results('raw_data_info.csv') data_PU = read_results('results.csv') info = info1[0][0] for i in range(0, len(data_PU)): Nazev_result.append(data_PU[i][0]) p_v_result.append(data_PU[i][5]) if POP_singl == 'ANO' and From_POP == 'NE': for i in range(0, len(PU_data)): if p_v[i] is None and Nazev_result[i] is not None: id = Nazev_result.index(PU_data[i]) p_v[i] = p_v_result[id] if p_v[i] is not None: pass elif p_v[i] is None and Nazev_result[i] is None: raise NameError('!!! Nejsou zadány hodnoty pro výpočet !!!') # Změna písmen na čísla + připočtení za hořlavost systému p_v = [float(x) for x in p_v] if info == 'smíšený': p_v = [x + 5 for x in p_v] elif info == 'hořlavý': p_v = [x + 10 for x in p_v] elif info == 'hořlavý DP3': p_v = [x + 15 for x in p_v] ''' Hustota tepleného toku ''' p_v_array = np.asarray(p_v) print(p_v_array) epsilon = 1.00 T_n = 20 + (345 * np.log10((8 * p_v_array[0]) + 1)) I_tok = epsilon * np.power((T_n + 273), 4) * 5.67 * 10**-11 # Configuration factor H_f = 5 W_f = 10 krit = 18.5 pol_crit = krit / I_tok print(pol_crit) res = 1 r = 0.1 x = H_f / (r * 2) y = W_f / (r * 2) first = (x / (np.sqrt((1 + x**2)))) / (2 * 3.14159) second = np.arctan((y / (np.sqrt((1 + x**2))))) A = (first * second) / (2 * 360) third = (y / (np.sqrt((1 + y**2)))) fourth = np.arctan((x / (np.sqrt((1 + y**2))))) B = (third * fourth) / (2 * 360) while res > pol_crit: r += 0.05 x = H_f / (r * 2) y = W_f / (r * 2) first = (x / (np.sqrt((1 + x**2)))) / (2 * 3.14159) second = np.arctan((y / (np.sqrt((1 + x**2))))) A = (first * second) / (2 * 360) third = (y / (np.sqrt((1 + y**2)))) fourth = np.arctan((x / (np.sqrt((1 + y**2))))) B = (third * fourth) / (2 * 360) res = A + B print(r, res, pol_crit)
def c_generator(data_dir, vystup_dir): os.chdir(data_dir) data_PU = read_results('results.csv') info_PU = read_results('raw_data_info.csv') list_names = [] for i in range(0, len(data_PU)): list_names.append(data_PU[i][19]) geometry_options = {"margin": "0.5cm", "includeheadfoot": True} doc = Document(page_numbers=True, geometry_options=geometry_options) doc.documentclass.options = Options('10pt') with doc.create(Section('Mezní rozměry požárních úseků')): doc.append( NoEscape(r'\textbf{Rozdělení do požárních úseků}: Objekt\ bude rozdělen do požárních úseků podle požadavků\ norem. V souladu s požadavky budou požární úseky\ tvořit především tyto provozy/prostory.')) with doc.create(Itemize()) as itemize: if 'OB2 byt' in list_names: itemize.add_item("Dle normy ČSN 73 0833 čl. 3.6 musí každá\ bytová buňka v objektech skupiny OB2 tvořit\ samostatný požární úsek.") if '15.10 c)' in list_names: itemize.add_item("Kotelna III. kategorie podle normy\ ČSN 07 0703 bude tvořit samostatný požární\ úsek") if 'CHÚC-A' in list_names or 'CHÚC-B' in list_names or\ 'CHÚC-C' in list_names: itemize.add_item("Chráněné únikové cesty tvoří samostatné\ požární úseky") if ['ANO'] == info_PU[3]: itemize.add_item("Výtahové šachty budou tvořit samostatné\ požární useky.") if ['ANO'] == info_PU[4]: itemize.add_item("Instalační šachty budou tvořit samostatné\ požární úseky.") if 'OB2 sklad' in list_names: itemize.add_item("Prostory určené pro skladování věcí pro\ domácnost budou tvořit samostatné požární\ úseky.") if 'OB3' in list_names: itemize.add_item("Každá ubytovací buňka tvoří samostatný\ požární úsek.") if 'OB4 ubyt' in list_names: itemize.add_item("Ubytovací (lůžkové) části budovy skupiny\ OB4 budou tvořit samostatné požární úseky.") if 'OB4 sklad' in list_names: itemize.add_item("Prostory určené pro skladování věcí různých\ potřeb pro provoz ubytovacích částí budovy\ budou tvořit samostatné požární úsek.y") if 'AZ1 Ordi.' in list_names or 'AZ2 Ordi' in list_names: itemize.add_item("Ordinace lékaře bude tvořit samostatný\ požární úsek.") if 'AZ1 Lék.' in list_names or 'AZ2 Lék' in list_names or\ 'LZ2 Lék' in list_names: itemize.add_item("Lékárna včetně zázemí bude tvořit samostatný\ požární úsek.") if 'AZ2 vyšet.' in list_names: itemize.add_item("Vyšetřovací a léčebné části objektu budou\ tvořit samostatný požární úsek.") if 'LZ1' in list_names or 'LZ2 lůž' in list_names: itemize.add_item("Lůžkové části pro pacienty v objektu budou\ tvořit samostatné požární úseky") if 'LZ2 int.péče' in list_names: itemize.add_item("Jednotky intenzivní péče, anesteziologicko\ resistutační oddělení a operační sály budou\ tvořit samostatný požární úseky.") if 'LZ2 biochem' in list_names: itemize.add_item("Oddělení klinické biochemie bude tvořit\ samostatný požární úsek.") if 'peč. Služ' in list_names: itemize.add_item("Každá bytová jednotka v domě s pečovatelskou\ službou bude tvořit samostatný požární\ úsek.") if 'soc.péče.ošetř' in list_names: itemize.add_item("Ošetřovny v domovech sodiální poče budou\ tvořit samostatné požární úsek.") if 'soc.péče.lůž' in list_names: itemize.add_item("Lůžkové prostory v domovech sociální péče\ budou tvořit samostatné požární úseky.") if 'soc.péče.byt' in list_names: itemize.add_item("Každá bytová jednotka v domě sociální péče\ bude tvořit samostatný požární úsek.") if 'Jesle' in list_names: itemize.add_item("Prostory pro děti do tří let (Jesle)\ budou tvořit samostatný požární úsek.") os.chdir(vystup_dir) doc.generate_pdf("C", clean_tex=False)
data_ = data[i]['v'] except KeyError: pass else: # Iterate over z positions for z, v in zip(zprofile[i].values(), data_[:, it]): f.write('%E, %E, %E, %E\n' % (xx_[i], yy_[i], z, v)) # Results folder folder = os.path.join(os.getcwd(), "code/data/results") # Read the results data, zprofile, xyr = read_results.read_results(folder) print('Finished with read_results') xx_, yy_, rr_ = xyr # All cable indices all_cable_indices = list(data.keys()) # Variable of interest var_interest = 'v' var_interest = 'vext[1]' # Callables callables = { 'v': save_v_xyz, 'vext[0]': save_vext_xyz, 'vext[1]': save_vext_xyz,
os.remove(name) #------------------------------------------------------------------------------------------------------- # Run AVL #------------------------------------------------------------------------------------------------------- print('Running AVL...\n') for i in range(Input.batch_index): Input.run_full_name = Input.run_file + str(i) + '.run' print(Input.run_full_name) call_avl(Input) #------------------------------------------------------------------------------------------------------- # Post-process results #------------------------------------------------------------------------------------------------------- # Read ouput results print('Reading outputs...\n') labels, results = read_results(Input) # Write output into the file print('Writing outputs to Excel...\n') workbook = xlsxwriter.Workbook('AVL_derivatives.xlsx') worksheet = workbook.add_worksheet() row = 0 worksheet.write_column(row, 0, labels) for col, result in enumerate(results): worksheet.write_column(row, col + 1, result) workbook.close() print('Calculations are completed\n')
def z_slice(ax, filename, folder, z, t, tarray): """ This slicing function uses a much more efficient method to interpolate along the z-axiz """ # This is from a xyz file # Load data data = np.loadtxt(filename, delimiter=',') x = data[:,0] y = data[:,1] z_ = data[:,2] v = data[:,3] # Set the cables xy_all = np.array(list(zip(x, y))) xy_unique = np.unique(xy_all, axis=0) nc = len(xy_unique) data_intp = np.zeros(nc) # Construct zprofile for i, xy in enumerate(xy_unique): # Select the corresponding rows rows = np.where((xy == xy_all).all(axis=1))[0] # Sort z_ just in case # argsort = np.argsort(z_[rows]) # z_.sort() # Sort v accordingly # Not yet # v.sort(argsort) # Select z_ z__ = z_[rows] z_lower = z__[np.where(z__ < z)] z__minus_z = np.abs(z__ - z) z_lower_minus_z = np.abs(z_lower - z).min() here = np.where(z__minus_z == z_lower_minus_z)[0][0] # Interpolate v__ = v[rows] data_intp[i] = (z__minus_z[here + 1] * v__[here] + z__minus_z[here] * v__[here + 1]) / (z__[here + 1] - z__[here]) # if v[here] < -100.: # Show result ax.scatter(xy_unique[:, 0], xy_unique[:, 1], c=data_intp, s=10, cmap=plt.cm.jet_r) ax.set_aspect('equal') # KEEP THE CODE BELOW, DON'T DELETE IT. # It works only when there are results if False: # Read results data, zprofile, xyr = read_results.read_results(folder) xx_, yy_, rr_ = xyr nc = len(data) data_intp = np.zeros(nc) for i in range(nc): # Choose data try: data_ = data[i]['vext[0]'] except KeyError: data_ = data[i]['vext[1]'] # Find the zprofile[i] value lying just below z zpr = np.array(zprofile[i].values()) zpr_minus_z = np.abs(zpr - z) here = np.where(zpr_minus_z == zpr_minus_z.min()) # Interpolate v it = np.where(tarray == t)[0][0] v = data_[:, it] # data_intp[i] = (zpr_minus_z[here] * v[here] + zpr_minus_z[here + 1] * v[here + 1]) / (zpr[here + 1] - zpr[here]) data_intp[i] = (zpr_minus_z[here + 1] * v[here] + zpr_minus_z[here] * v[here + 1]) / (zpr[here + 1] - zpr[here]) # Show result ax.scatter(xx_, yy_, c=data_intp) return xy_unique, data_intp
def d1_generator(data_dir, vystup_dir): os.chdir(data_dir) data_PU = read_results('results.csv') info_PU = read_results('raw_data_info.csv') list_names = [] for i in range(0, len(data_PU)): list_names.append(data_PU[i][19]) # Arrange data to desired shape data_used = [] forbiden = ['CHÚC-A', 'CHÚC-B', 'CHÚC-C', 'OB2 byt'] for i in range(0, len(data_PU)): if list_names[i] not in forbiden: data_used.append(data_PU[i][0]) data_used.append(data_PU[i][2]) data_used.append("%.2f" % float(data_PU[i][17])) A = float(data_PU[i][17]) data_used.append("%.2f" % float(data_PU[i][18])) B = float(data_PU[i][18]) C = A * B data_used.append("%.2f" % C) data_used.append(data_PU[i][1]) if (A * B) > float(data_PU[i][1]): data_used.append('ANO') else: data_used.append('NE') print() print('D.1 Pozor nevyhovuje - ' + str(data_PU[i][0])) print() data_used = list(chunks(data_used, 7)) geometry_options = {"margin": "0.5cm", "includeheadfoot": True} doc = Document(page_numbers=True, geometry_options=geometry_options) doc.preamble.append(NoEscape(r'\usepackage[czech]{babel}')) doc.preamble.append(NoEscape(r'\usepackage{threeparttablex}')) doc.preamble.append(NoEscape(r'\usepackage{pdfpages}')) doc.preamble.append(NoEscape(r'\definecolor{Hex}{RGB}{239,239,239}')) doc.documentclass.options = Options('10pt') with doc.create(Subsection('Mezní rozměry požárních úseků')): doc.append( NoEscape(r'\textbf{Mezní půdorysné rozměry}: Posouzení\ rozměrů požárního úseku je patrné z tabulky\ \ref{rozmery}.')) if 'OB2 byt' in list_names: doc.append('Mezní rozměry bytových jednotek se v souladu\ s čl. 5.1.5 normy ČSN 73 0833 nestanovují.') if info_PU[0] == ['nehořlavý']: str1 = str(9) if info_PU[0] == ['smíšený']: str1 = str(10) if info_PU[0] == ['hořlavý']: str1 = str(11) string1 = 'Mezní délky a mezní šířky jednotlivých požárních\ úseků byly stanoveny tabulkou ' string2 = ' normy ČSN 73 0802 na základě součinitele rychlosti\ odhořívání požárního úseků.' string = string1 + str1 + string2 doc.append(string) for i in range(0, len(data_used)): data_used[i][1] = data_used[i][1].replace(".", ",") data_used[i][2] = data_used[i][2].replace(".", ",") data_used[i][3] = data_used[i][3].replace(".", ",") data_used[i][4] = data_used[i][4].replace(".", ",") data_used[i][5] = data_used[i][5].replace(".", ",") with doc.create(LongTable("l c c c c c c", pos=['htb!'])) as data_table: doc.append(Command('caption', 'Ověření rozměrů požárních úseků')) doc.append(Command('label', 'rozmery')) doc.append(Command('\ ')) data_table.append data_table.add_hline() data_table.add_row([ "PÚ", "Souč.", "Mězní délka", "Mezní šířka", "Mezní plocha", "Plocha", "Vyhovuje" ]) data_table.add_row([ " ", "a", "[m]", "[m]", NoEscape('[m$^2$]'), NoEscape('[m$^2$]'), "" ]) data_table.add_hline() data_table.end_table_header() for i in range(0, len(data_used)): if i % 2 != 0: data_table.add_row(data_used[i], color="Hex") else: data_table.add_row(data_used[i]) data_table.add_hline() os.chdir(vystup_dir) doc.generate_pdf("D1_PU", clean_tex=False)