Kildekode for lister



[dokumentasjon]def _hent_tall(str): """Henter ut tallverdi fra string for sortering.""" tall = [int(s) for s in str.split() if s.isdigit()] return tall
# Kilometrering på dictionary-format, hentet fra gamle KL_fund kilometer = { "0010 Oslo S": [0.0, 0.95], "0011 Oslo S fra spor 17 mot Gjøvikbanen": [0.0, 0.95], "0012 Gjøvikbanen inn i spor 16 Oslo S": [0.15, 0.95], "0013 Oslo S fra spor 9 mot Hovedbanen": [0.0, 0.95], "0014 Hovedbanen inn i spor 7 Oslo S": [0.0, 0.95], "0020 Lodalen": [0.0, 0.0], "0022 Oslo S fra spor 9 mot Østfoldbanen": [0.394, 2.18], "0023 Østfoldbanen inn i spor 7 Oslo S": [0.394, 2.18], "0030 Alnabru": [0.0, 0.0], "0040 Loenga": [0.0, 0.0], "0210 (Oslo S) - Alnabru/Alna": [0.95, 9.041], "0211 Alnabru/Alna - (Oslo S)": [0.95, 9.041], "0220 (Alnabru/Alna) - Lillestrøm": [9.041, 22.415], "0221 Lillestrøm - (Alnabru/Alna)": [9.041, 22.415], "0230 (Lillestrøm) - Eidsvoll": [22.415, 68.904], "0240 (Grefsen) - (Alnabru) g.spor": [0.0, 3.18], "0250 (Grefsen) - (Alnabru) g.spor": [3.18, 5.19], "0270 Etterstad - Gardermoen(GMB)": [2.4, 52.838], "0271 Gardermoen - Etterstad (GMB)": [2.4, 52.838], "0280 (Gardermoen)-(Eidsvoll)": [52.838, 69.3], "0281 Venjar - (Gardermoen)": [52.838, 65.74], "0300 (Lillestrøm) - Kongsvinger": [20.95, 101.692], "0310 (Kongsvinger) - Charlottenberg": [101.692, 136.27], "0510 (Loenga) - (Alnabru) g.spor": [0.0, 6.3], "0540 (Oslo S) - Ski": [0.39, 25.585], "0541 Ski - (Oslo S)": [0.39, 25.585], "0550 (Ski) - Moss": [25.585, 61.47], "0551 Sandbukta- (Ski)": [25.585, 57.187], "0560 (Moss) - Sarpsborg": [61.47, 111.853], "0561 Haug - Såstad": [67.82, 73.967], "0570 (Sarpsborg) - Kornsjø": [111.853, 170.123], "0580 (Ski) - (Sarpsborg) østre linje": [0.201, 78.9282], "0581 Hafslundsløyfa": [78.4366, 78.826], "0610 (Oslo S) - Grefsen": [0.95, 7.47], "0611 (Grefsen) - (Oslo S)": [0.95, 6.942], "0620 (Grefsen) - Roa": [7.47, 58.4], "0630 (Roa) - Eina": [58.4, 101.585], "0640 (Eina) - Gjøvik": [101.585, 124.3], "0670 (Roa) - Hønefoss": [57.74, 90.6], "0700 (Eidsvoll) - Hamar": [68.904, 127.21], "0710 (Hamar) - Lillehammer": [127.21, 185.174], "0720 (Lillehammer) - Vinstra": [185.174, 267.21], "0721 (Vinstra) - Dombås": [267.21, 343.596], "1100 (Dombås) - Hjerkinn": [343.596, 382.33], "1110 (Hjerkinn) - Oppdal": [382.33, 430.2], "1111 (Oppdal) - Støren": [430.2, 502.19], "1120 (Støren) - Trondheim": [502.19, 552.85], "1121 Trondheim": [0.0, 1.51], "1140 Marienborg": [548.5, 549.7], "1400 (Oslo S) - Lysaker": [0.0, 7.827], "1401 Lysaker - (Oslo S)": [0.0, 7.827], "1410 (Lysaker) - Asker": [7.827, 24.881], "1411 Asker - (Lysaker)": [7.827, 24.881], "1420 (Asker) - Drammen": [24.881, 53.88], "1421 Drammen - (Asker)": [24.881, 54.07], "1450 Fillipstad - (Skøyen)": [0.0, 3.0], "1460 (Asker) - Spikkestad": [24.03, 39.03], "1510 (Drammen) - Eidanger": [54.07, 192.603], "1511 (Larvik) - (Drammen)": [54.07, 159.173], "1550 (Skoppum) - Horten": [99.54, 106.51], "1600 (Drammen) - Hokksund": [53.88, 71.38], "1610 (Hokksund) - Hønefoss": [70.22, 125.3], "1650 (Hokksund) - Kongsberg": [71.38, 99.98], "1660 (Kongsberg) - Nordagutu": [99.98, 146.52], "1680 (Hønefoss) - Nesbyen": [90.6, 186.059], "1800 (Hjuksebø) - Tinnoset": [136.24, 175.3], "1820 (Nordagutu) - Skien": [145.95, 180.836], "1830 (Skien) - (Eidanger)": [180.836, 193.39], "2000 (Nordagutu) - Nelaug": [146.52, 282.0], "2120 (Nelaug) - Kristiansand": [282.0, 365.95], "2130 (Kristiansand) - Egersund": [365.95, 526.581], "2160 (Nelaug) - Arendal": [281.41, 317.64], "2220 (Egersund) - Stavanger": [526.581, 598.77], "2301 (Nesbyen) - Ål": [186.059, 228.811], "2310 (Ål) - (Haugastøl)": [228.811, 274.875], "2311 Haugastøl - Myrdal": [274.875, 336.7], "2312 (Myrdal) - Reimegrend": [336.7, 363.542], "2313 (Myrdal) - Flåm": [335.8, 356.0], "2320 (Reimegrend) - Voss": [363.542, 386.153], "2330 (Voss) - Dale": [386.153, 425.866], "2331 (Voss) - Palmafoss": [385.32, 389.4], "2340 (Dale) - Bergen": [425.866, 471.25], "2341 Minde - (Bergen)": [487.9, 491.3], "2400 Narvik havn - Vassijaure": [0.0, 42.99] } # Kilometrering på listeformat kilometer_list = [] for k in kilometer: kilometer_list.append(k) kilometer_list.sort(key=_hent_tall) # Liste over AT-ledninger at_list = ["Al 400-37", "Al 240-19", "Al 150-19"] # Liste over jordledninger jord_list = ["KHF-70", "KHF-95"] # Liste over systemer system_list = ["System 20A", "System 20B", "System 25", "System 35"] # Overhøyde UE [m] pga. kurveradius [m] overhoyde = {"180": 0.150, "250": 0.150, "300": 0.150, "400": 0.150, "500": 0.150, "600": 0.150, "700": 0.150, "800": 0.150, "900": 0.150, "1000": 0.135, "1100": 0.120, "1200": 0.120, "1300": 0.115, "1400": 0.110, "1500": 0.110, "1600": 0.110, "1800": 0.110, "2000": 0.100, "2400": 0.090, "2700": 0.080, "3000": 0.070, "3500": 0.060, "4000": 0.050, "5000": 0.040, "7000": 0.020, "10000": 0, "20000": 0, "10000000": 0} # Sammenheng mellom kurveradie og sikksakkverdier for forskjellige systemer sikksakk_20 = {"180": [-0.30, -0.30], "250": [-0.30, -0.30], "300": [-0.30, -0.30], "400": [-0.30, -0.30], "500": [-0.30, -0.30], "600": [-0.30, -0.30], "700": [-0.30, -0.30], "800": [-0.30, -0.30], "900": [-0.30, -0.30], "1000": [-0.30, -0.30], "1100": [-0.30, -0.30], "1200": [-0.30, -0.30], "1300": [-0.30, -0.30], "1400": [-0.30, -0.25], "1500": [-0.30, -0.20], "1600": [-0.30, -0.20], "1800": [-0.30, -0.15], "2000": [-0.30, -0.15], "2400": [-0.30, -0.10], "2700": [-0.30, -0.10], "3000": [-0.30, -0.10], "3500": [-0.30, -0.10], "4000": [-0.30, -0.20], "5000": [-0.30, 0.30], "7000": [-0.30, 0.30], "10000": [-0.30, 0.30], "20000": [-0.30, 0.30], "10000000": [-0.30, 0.30]} sikksakk_25 = {"180": [-0.30, -0.30], "250": [-0.30, -0.30], "300": [-0.30, -0.30], "400": [-0.30, -0.30], "500": [-0.30, -0.30], "600": [-0.30, -0.30], "700": [-0.30, -0.30], "800": [-0.30, -0.30], "900": [-0.30, -0.30], "1000": [-0.30, -0.30], "1100": [-0.30, -0.30], "1200": [-0.30, -0.30], "1300": [-0.30, -0.30], "1400": [-0.30, -0.30], "1500": [-0.30, -0.30], "1600": [-0.30, -0.30], "1800": [-0.30, -0.29], "2000": [-0.30, -0.22], "2400": [-0.30, -0.16], "2700": [-0.30, -0.13], "3000": [-0.30, -0.13], "3500": [-0.30, -0.07], "4000": [-0.30, -0.02], "5000": [-0.30, 0.28], "7000": [-0.30, 0.19], "10000": [-0.30, 0.22], "20000": [-0.30, 0.25], "10000000": [-0.30, 0.30]} sikksakk_35 = {"180": [-0.4, -0.4], "250": [-0.4, -0.4], "300": [-0.4, -0.4], "400": [-0.4, -0.4], "500": [-0.4, -0.4], "600": [-0.4, -0.4], "700": [-0.4, -0.4], "800": [-0.4, -0.4], "900": [-0.4, -0.4], "1000": [-0.4, -0.4], "1100": [-0.4, -0.4], "1200": [-0.4, -0.4], "1300": [-0.4, -0.4], "1400": [-0.4, -0.4], "1500": [-0.2, -0.2], "1600": [-0.2, -0.2], "1800": [-0.2, -0.2], "2000": [-0.2, -0.2], "2400": [-0.2, -0.2], "2700": [-0.2, -0.2], "3000": [-0.2, -0.2], "3500": [-0.2, -0.2], "4000": [-0.2, -0.2], "5000": [-0.4, 0.4], "7000": [-0.4, 0.4], "10000": [-0.4, 0.4], "20000": [-0.4, 0.4], "10000000": [-0.4, 0.4]} # Kurveradier på listeformat radius_list = [] for s in sikksakk_20: radius_list.append(s) radius_list.sort(key=_hent_tall) sidekraftbidrag_strekk = ["Strekk: Bæreline", "Strekk: Kontakttråd"] sidekraftbidrag_sno = ["Vindlast: Kontakttråd, økt diameter", "Vindlast: Bæreline, økt diameter", "Vindlast: Hengetråd, økt diameter", "Vindlast: Y-line, økt diameter"] sidekraftbidrag_vind = ["Vindlast: Kontakttråd", "Vindlast: Bæreline", "Vindlast: Hengetråd", "Vindlast: Y-line"] ulykkeslaster_KL = ["Egenvekt: Bæreline", "Egenvekt: Hengetråd", "Egenvekt: Kontakttråd", "Egenvekt: Y-line", "Strekk: Bæreline", "Strekk: Kontakttråd", "Strekk: Bæreline til avspenning", "Strekk: Kontakttråd til avspenning", "Strekk: Torsjon, eksentrisitet utliggere", "Vandringskraft: Bæreline", "Vandringskraft: Kontakttråd", "Geometri: Ulik høyde mellom master"]
[dokumentasjon]def hent_lastkombinasjoner(ec3): """Henter last- og kombinasjonsfaktorer til utregning av dimensjonerene laster. :param Boolean ec3: Brukerens valg av beregningsmetode :return: ``lastsituasjoner`` (kombinasjonsfaktorer), ``lastfaktorer`` :rtype: :class:`dict`, :class:`dict` """ if ec3: # Lastsituasjoner og faktorer ihht. EC3 lastsituasjoner = {"Temperatur dominerende": {"psi_T": 1.0, "psi_S": 0.7, "psi_V": 0.6}, "Snølast dominerende": {"psi_T": 0.6, "psi_S": 1.0, "psi_V": 0.6}, "Vind dominerende": {"psi_T": 0.6, "psi_S": 0.7, "psi_V": 1.0}} lastfaktorer = {"G": (1.2, 1.0), "L": (1.2, 1.0), "T": (1.5, 0), "S": (1.5, 0), "V": (1.5, 0)} else: # Lastsituasjoner og faktorer ihht. NEK (bransjestandard) lastsituasjoner = {"Maksimal temperaturlast": {"psi_T": 1.0, "psi_S": 0, "psi_V": 0}, "Maksimal vindlast": {"psi_T": 0, "psi_S": 0, "psi_V": 1.0}, "Maksimal snølast": {"psi_T": 0, "psi_S": 1.0, "psi_V": 0}, "Kombinert vind- og snølast": {"psi_T": 0, "psi_S": 1.0, "psi_V": 0.5}} lastfaktorer = {"G": (1.3, 1.0), "L": (1.3, 0), "T": (1.3, 0), "S": (1.3, 0), "V": (1.3, 0)} return lastsituasjoner, lastfaktorer