
    j]                        S SK r S SKrS SKrS SKrS SKrS rS r	S r
\S:X  a  0 SS_SS	_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_0 S"S_S#S_S$S%_S&S_S'S_S(S)_S*S_S+S_S,S-_S.S_S/S_S0S1_S2S_S3S_S4S5_S6S7_S8S9_E0 S:S;_S<S7_S=S9_S>S?_S@S_SAS_SBSC_SDS_SES7_SFS9_SGSH_SISJ_SKS_SLSM_SNS_SOS_SPSQ_ESRSS0Er\
" \S5      r\" \5        gg)T    Nc           
      ,   [         R                  " US   SUS   S   U S      S   /   [        R                  S9n[         R                  " [        R                  S   R                  5        Vs/ s H	  oUS	   S
4PM     sn[        R                  S9n[        R                  " Xd5      n [        U S   5        U S   US   US   S:H  '   U S   n US   S   U     [         R                  " US   SUS   S   U   S   /   [        R                  S9n[        R                  " XDS   S:H     S   XDS   S:H     S   -   XS   S:H     S   -  [        U S   5      -
  5      US   US   S:H  '   [        R                  " XDS   S:H     S   XDS   S:H     S   -   XS   S:H     S   -  5      US   US   S:H  '   [        R                  " XDS   S:H     S   XS   S:H     S   -  5      US   US   S:H  '   US   S   U S      S   n	[         R                  " US   SU	/   [        R                  S9n
XS   S:H     S   n[        R                  " XDS   S:H     S   SU-
  -  5      US   US   S:H  '   [        R                  " XDS   S:H     S   U-  5      US   US   S:H  '   [        R                  " XDS   S:H     S   XS   S:H     S   -  5      US   US   S:H  '   [         R                  " US   SS/   [        R                  S9nUS   US   US   S   U S      S    :H     n[         R                  " US   SS!/   [        R                  S9nUS   US   US   S   U S      S    :H     n[        R                  " US   US   S":H     US   US   S#:H     -   XUS   S:H     S   XS   S:H     S   -   -  U-   -  5      US   US   S:H  '   [         R                  " US   SS$/   [        R                  S9nX3S   S:g     n/ S%Qn[         R                  " [!        U5      [        R                  S9n[#        U5       H/  u  nn UUS   US   U:H     S   US   US   U:H     S   -  4UU'   M1     Sn [        U S)   5      n[        R                  " SUUS   US   S+:H     S   -  [         R&                  " US   5      -  -
  5      nU H4  n[        R                  " US   US   U:H     U-  5      US   US   U:H  '   M6     UUS   US   S+:H  '   U$ s  snf !   [        SU S    3[        R                  S9  SU S'    GN{= f!   [        [        US   S   5      5      n GN{= f!   [%        S&U S'U S(U 35      e= f!   [        S*U S)    3[        R                  S9   GN= f),NStandardwerte	Parameter	anwendungoptionsanwendung_selectstdwerte_ods_titledtypebestandteile
resultName        einspeicherungGranulat_massez<error: cannot float inData['einspeicherungGranulat_masse] = filer   Wert   Im Granulat eingelagertes CO₂sorte_selectsortezKoernung grobSandBetongranulat CMischgranulat MzKoernung primaerkoernung_ods_titleGesteinskoernungu   Anteil gebrochene Körnung   	Kies rundKies gebrochenFliessmittelzFaktor Granulat Cfliess_ods_title	KonstanteZement	2. ZementDichte)r   r   r   r   r   zcannot calculate for z, betonmischArray=z, stdDichteArray=einspeicherungKohle_massez:error: cannot float inData['einspeicherungKohle_masse'] = Pflanzenkohle)nparraymznLCAdType
input_metavaluesfnctsupdateMassefloatprintsysstderrnextiter	roundKg2gemptylen	enumerate
ValueErrorsum)inDatar*   rechnerdaten_dictstdDichteArrayanwArraybestandteilbetonmischArray	inNormBezrecArraygewaehlteAnwTitelKoernungkoernungArrayfaktorGebrochenfactorFMCarray	factorFMCconstFMarrayconstFMgranulatListegranulatVolArrayinamer$   fKohles                         V/var/www/oekobilanz-rechner-gitlab-dev2026v8/cgi-bin/../pyscripts/betonrechner_main.pyauswertungNPKrO   )   s   xx)/:K{+I6v>P7QRSgh<j k!ll,H hh=@^^N=[=b=b=de=dkl
#S	)=deO ''BO3f345 bh  iG  bHOFOK8<]]^~&I?7I&y1 xx)/:Kw'	29=>RS<U V!ll,H RWQ`Q`	;'?:	;F	C[)V34V<
=
K(,==
>v
F	GINvVtOuIv	wRxOFOK8<MMN RWQ`Q`	;'?:	;F	C[)V34V<
=
K(,==
>v
F	GRHOFOK8<MMN
 BG+&/9:6B
K(,>>
?
G	HBIHVXk*o=> !+; 7	 B6J\C] ^_s tHH./AB%'@BDKN<<ZM$;%?C_%_`aghOKP??+&/9:6B	!L"OFOK8KGH QVP_P_+&/9:6B	QOFOK8<LLM GLoo+&&01&9
K(,>>
?
G	HGIOFOK8FBC XX/?Na@cd \\+Nv&~k'B{+I6v>P7QRSef(g hI88-n={K>YZ \\+L6"<#<{+I6v>P7QRSef$g hGNSoo
&
!/+">("J
Ko^dNefu  wB  gC  GR  gR  OS  S8K#8<M#MNvV
K(,==
>v
FG I
	OOFOK8NJK XX/@+xAXYcfcocopN#6$:a$?@NaMxxM 2#,,G]+4	A#')@Q\A]aeAe)fgh)i"0"89TX\9\"]^_"`*a #bQ , !"C$)&1L*M$N! __a";%f-n[.I_.\]^_`#avv.v67#8 8 9F HMF#OK$@D$HIFRIT < DE  & FOK8OKL A 	f3LVTrMsLtu|  }G  }G  	H12-.
?j1)<=>	|	A4TF:L_L]]no}n~  A  ACJ6RmKnJopwz  xB  xB  	Cs6   .T)T
 T5 9(U(U0 
%T25UU-0 Vc                 r   US   R                  5        H  u  p4 [        X S3   5        M     [        R                  " US   R                  5        VVs/ s H2  u  p4SUR	                  S/ 5      ;   d  M  US   [        X S3   5      4PM4     snnUS9nSUS   US	   S
:H  '   U$ !   SX S3'    M  = fs  snnf )Nr   _masser   detailedDefinitionvalUsedAsInputInr   r
   r   r   	Bewehrung)itemsr.   r&   r'   get)r:   r*   r)   r>   bestDictr?   s         rN   auswertungDetailsrX      s    !+N!;!A!A!C	&=/01 "D hh~&,,.	J. Nc[ HLL1CR$HH 
I(<
 %f/E(F"G	H.	J 	O LMOFOK8KGH	-.F]&)*	Js   B$B3
4B3
$	B0c                 `   [         R                  " 5       n [        R                  " [        R
                  R                  US5      SS9n[        R                  " US   S[        R                  S   S   S	   /   [        R                  S
9n[        R                  " US   S[        R                  S   S   S	   /   [        R                  S
9n[        U 5      S:X  a&  [         R                  " [        R                  XU5      n [         R                  " 5       n[        R                  " US   SS/   [        R                  S
9nXwS   S:g     nU S   S:X  a  [        U [        R                  X75      nO2U S   S:X  a)  [!        U [        R                  [        R                  5      n[        R"                  " S[        R$                  S
9n	S[        R&                  " WS   5      S4U	S'   Sn
 [)        U S   5      n
SU
US   US   S:H     S   -  -
  nUR1                  5       nUS   U-  US'   XS   US   S:H  '   S[        R&                  " US   5      S4U	S'   [)        U S   5      U-  US   US   S:H  '   US   S:H  n[        R2                  " U5      (       a  XS   U'   O6[        R4                  " U[        R                  " SU4UR6                  S
95      n0 n[        R                  " US   US   R6                  5      US'   US   S   [        R                  S   S    U S!      S"   :H  nSUS   S   U'   US   S   [        R                  S#   S$   S    U S%      S"   :H  nSUS   S&   U'    US   S   [        R                  S#   S$   S    U S'      S"   :H  nSUS   S(   U'   US   S   [        R                  S#   S)   S    U S*      S"   :H  nSUS   S   U'   U S   S:X  ax  U R9                  5        Hd  u  nnS+U;   a(  UUS   US   [        R                  S#   US S,    S-   :H  '   S.U;   d  M<  UUS   US   [        R                  S#   US S/    S-   :H  '   Mf     U HY  nUS   US   R6                  R:                  ;   d  M%  US   S0-  US   US      US   S   [        R                  S   S   S"   :H  '   M[     U HY  nUS   US   R6                  R:                  ;   d  M%  US   S0-  US   US      US   S   [        R                  S   S   S"   :H  '   M[     0 n[         R<                  " XS   5      US'   [        R                  " [        R
                  R                  US15      SS9nUS2   nUUS   S:g     n[        R                  " [        R>                   Vs/ s HN  n[        R>                    H6  n[A        U/S3/[        UR6                  R:                  SS  5      -  -   5      PM8     MP     snUR6                  S
9n[        RB                  " UU/5      n/ S4Qn[E        U5       H  u  nnU H{  nUS   [        R                  S5   S    U   S6   :X  d  M(  [        R                  S5   S    U   S"   UU   S'   UR6                  R:                  SS   H  nUU   U   S7-  UU   U'   M     M}     M     [         RF                  " UUS8   US8   S   S:g     5      n0 n[         RH                  " UUS   5      US'   [        R                  " US9   US9   R6                  5      US:'   [         R<                  " XS:   5      US:'   [         RH                  " UUS:   5      US:'   [        R"                  " URJ                  [        R$                  S
9nUS   US'   US   US;'   SUS<'   [        RB                  " U[        R                  " S=U	S   S;   U	S   S<   4/[        R$                  S
945      n[        R"                  " URJ                  [        R$                  S
9nUS   US'   US   US;'   SUS<'   UUS   S:g     nUUS;   S:g     n[        RB                  " U[        R                  " S>U	S   S;   U	S   S<   4/[        R$                  S
945      n[         RL                  " UU 5      n[         RN                  " U5      n[         RP                  " U5      n U S   S:X  ah  [        R                  " [        R                  S?   [         RR                  " U V!s0 s H  n!U!S   U!S   _M     sn!5         S@   /[        RT                  S
9n"OU S   S:X  a  [        R                  " / 5      n"U UU[         RV                  " US   5      UU [        R                  " SU	S   S;   U	S   S<   4/[        R$                  S
9W"SA.4$ !   SS KnUR                  5         [        R                  " [        R
                  R                  US5      SS9n G	N= f!   [+        SU S    3[,        R.                  S9   GN$= f!    GN= fs  snf s  sn!f )BNzrechnerdaten_py.npzT)allow_pickler   r   r   
transportestrasser	   r
   bahnr#   r   rechnertyp_selectnpkDefinitionrR      zBeton unbewehrtu   kg/m³bewehrung_massez0error: cannot float inData['bewehrung_masse'] = r   r   rT   zBeton bewehrtr   r   zVolumen Betonz Bestandteile zu LCIA HerstellungHerstellungr   r   r   	Datensatzr   cemtypcemtyp_selectr!   cemtyp2_selectr"   	bewehrungbewehrung_select_lkwr   _bahni  zlcia_data_openlca.npzzLCIA Resultsr   )priGEpriErnpriTotumwindikatorDatensatzMJg@zLCIA ZusatzdatenzBestandteile zu LCIA Entsorgung
EntsorgungZusammensetzungEinheitzDichte unbewehrtzDichte bewehrtnormbezeichnungentext)tabZusBetonUnbewehrttabZusBetontabDetailsAllBesttabDetailsResGruppentabUebersichtRes	tabDichte
tabNormBez),r,   get_data_dirr&   loadospathjoin
updateDataupdateFromODSr'   r(   r*   r)   r6   setStdInputValuesrO   rX   r5   ZusdTyper9   r.   r/   r0   r1   copyanyappendr   rU   names
vectMatrixadditionalLCIAparamstupleconcatenater7   addAdditionalLCIAData
matrixMultshapelciaDetailsgruppiereBestandteilelciaSumcalcConcreteNormLabelnormBezdTypetransposeNamedArray)#r:   inRechnertypdatadirr;   uDtransStdStrArraytransStdBahnArrayr<   betonmischungUnbewehrtArraydichteArrayra   volBetonbetonmischungArrayvolMaske
zuordArrayrowMaskeinKeyinValueroweingabe2LCIADictlcia_data_openlca_dict	lciaArrayparamnewLciaRowstestStringsrK   testStrrL   
resultDictzusBetonUnbewehrtArrayzusBetonArraydetailsResGrpArrayuebersichtResArrayttabNormBezArrays#                                      rN   rechneBilanzr      s     "GeGGBGGLL:O$P_cd xx 1/ BKNN<0;<PQDS !T!ll, !2?!C[NN<089MNEP "Q!ll, 6{a((Yjk  "GXX/@+xAXY&)ll4N#6$:a$?@N !"6&3FCNNL]&n#	#	$)=	='8QTQ]Q]'^	$ ((1CLL1K'1LV1T)UW_`KN
 Oo'8 9: O ()D)STUVWX XH499;!3F!;h!FvQ`v1+>+MN &rvv.@.H'I8TKN
 	f345@ v1+>Bccd "+./AH	vvh/76"8,YY'9288_V^D_gygg  <A  BJ "):;])^`q  sU  aV  a\  a\  !]J} -(59TU^9_`fgy`z9{  }H  :I  IH;<J}o.x8 -(59WX`9abk9lms  uD  nE  :F  GR  :S  SH45J}h'1m,[9S^^N=[\d=efo=pqw  yI  rJ  >K  LW  >X  X;<
=!+.x8
 -(59WXc9den9opv  xJ  qK  :L  MX  :Y  YH78J}k*84 !"&::$llnNE7Y` !(*:;*GNN>:5":F|T+U W%Y` "&)+<[+INN>:5":F|T,U W -  q6Z.44::: QT  UV  QW  Z^  Q^J}%c!f-j.G.TX[XfXfgsXtu~X  AL  YM  /M  N   !q6Z.44::: NQ  RS  NT  W[  N[J}%c!f-j.G.TX[XfXfgsXtu{X|  ~I  YJ  /J  K ! &+&6&67IVcKd&e]#WWRWW\\';R%Sbfg&~6I)K0A56I((bebzbz  bbzY^  IL  Ia  Ia  @EUE7cUS9N9Nqr9R5S-S#ST  IaTbz  b  js  jy  jy  {K	;78I/KI&3"G;CNN>$B9$Mg$VWd$ee,/NN>,J9,UV],^_j,k	![)%OO11!"5D)21d);c)AIaL& 6 # ' ++I,-.?@R.ST_.`de.efhI J % 0 0<L]<[ \J}  "xx(9:[(\^o  qR  _S  _Y  _Y   ZJ|%*%5%56HUaJb%c\"$//	;KL;YZJ|  XX&A&G&Gs||\*Ek*R;'0KF0S,-(09%  ^^
%{1~6G'H+VW.YbJcdempmymyz-  HH/55S\\JM!3K!@M+'9&'AM#$'M)!-"<"OPM!-0A"Ba"GHMNN
#[^4E%FTUW`Habcknkwkwx$ M **:v>445GH z2 !"';;(( 34,,BX-YBXQadAaDjBX-YZ\\bd ))+ 
#	$	8((2, 6$"66z-7PQ!3.XX+a.9J*K[YZ^\eMfghpsp|p|}%	 	 	Ke
GGBGGLL:O$P_cdNo@HYAZ@[\cfcmcmnHB b^ .Zs1   3f) )g8 )6h Ah&h+)A	g58 hh#__main__r^   rR   r   hochAre   cem1cemtyp_masse280
cemtyp_lkwz20.0cemtyp_bahnz100.0rf   cemtyp2_masse0cemtyp2_lkwcemtyp2_bahnbetongranulat_masse10betongranulat_lkwbetongranulat_bahnz0.0mischgranulat_masse20mischgranulat_lkwmischgranulat_bahnkies_rund_masse1405kies_rund_lkwkies_rund_bahnkies_gebrochen_massez14.2kies_gebrochen_lkwkies_gebrochen_bahn
sand_massez400.4sand_lkw	sand_bahnkalksteinmehl_masse50kalksteinmehl_lkwkalksteinmehl_bahnflugasche_masse66flugasche_lkwflugasche_bahnfliessmittel_massez1.3fliessmittel_lkwz50.0fliessmittel_bahnz600.0weitere_zusaetze_masse100weitere_zusaetze_lkwweitere_zusaetze_bahnwasser_masse140
wasser_lkwwasser_bahnrh   globalra   bewehrung_lkwbewehrung_bahnr$   11einspeicherungKohle_lkwz70.0einspeicherungKohle_bahnr   12einspeicherungGranulat_lkweinspeicherungGranulat_bahnumwindikator_selectthgactTabInput_selecttabZus)r   r0   numpyr&   matrizenr(   	functionsr,   rO   rX   r   __name__
test_inputresultr/        rN   <module>r      s  D    fP$Sr z
1
3Ew

!/
8Df
N[]d
 	&
 #23
 9Fv
 P^_f
 	t	
 &9&	
 CWX]	

 	t

 &9&

 CWX]
 	6
 $3F
 =Me
 	
 )=f
 G\]b
 	g
  *6
 4?
 	t
 &9&
 CWX]
 	4
 "1&
 ;KE
 	e
 &8
 BUV]
 	!%
 *@
 Jabi
 	
  ,U
 5B5
 	H
 '8
 ?Nv
 Xhip
 	$T
 ,Ef
 Oijo
  	'!
  /KE!
  Tqrw!
" 	u#
" ';H#
J& *&:;F	&M- r   