From 4f4472bb9dccb60bf98df56b774e8893cf4376d5 Mon Sep 17 00:00:00 2001 From: Fred Thomas Date: Thu, 28 Mar 2024 11:24:38 +0000 Subject: [PATCH] WIP --- config/config.yaml | 2 +- src/open_gira/io.py | 4 ++-- tests/config/config.yaml | 1 + .../processed/slice-0_edges.geoparquet | Bin 94430 -> 94299 bytes .../hazard-jba-event/slice-0.geoparquet | Bin 111851 -> 111724 bytes .../hazard-jba-event/cost/slice-0.gpq | Bin 95038 -> 94817 bytes .../hazard-jba-event/fraction/slice-0.gpq | Bin 110805 -> 110678 bytes 7 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 72173941..69428c46 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -98,7 +98,7 @@ direct_damages: 'road_unpaved', 'rail_railway', ] - rehab_cost_multiplier: 0.5 + rehab_cost_multiplier: 2 ############################### diff --git a/src/open_gira/io.py b/src/open_gira/io.py index 137d4d61..42d6af47 100644 --- a/src/open_gira/io.py +++ b/src/open_gira/io.py @@ -289,7 +289,7 @@ def read_rehab_costs(path: str) -> pd.DataFrame: assert costs.asset_type.dtype == object # check costs - assert costs.iloc[:, 1].dtype == float + assert pd.api.types.is_numeric_dtype(costs.iloc[:, 1].dtype) assert (costs.iloc[:, 1] >= 0).all() - return costs \ No newline at end of file + return costs diff --git a/tests/config/config.yaml b/tests/config/config.yaml index 1256fa9b..3f2d4a3d 100644 --- a/tests/config/config.yaml +++ b/tests/config/config.yaml @@ -53,6 +53,7 @@ direct_damages: 'road_unpaved', 'rail_railway', ] + rehab_cost_multiplier: 1 ############################### diff --git a/tests/integration/event_set_direct_damages/data/results/geoparquet/djibouti-latest_filter-road/processed/slice-0_edges.geoparquet b/tests/integration/event_set_direct_damages/data/results/geoparquet/djibouti-latest_filter-road/processed/slice-0_edges.geoparquet index be069fd378d5deaf58f2954388b049bbb84ab677..0116b319139d63f97bfa54108a4d193ba970ea4e 100644 GIT binary patch delta 1856 zcmb7EUuaup6wkSBS|c6XI$P|Y)wOFcZq?r0gt`SB+n4{znl_0|(p>RRlG`M0Z~ka& zv&2FahTwxT9e892zW6e5timv3Fjip?GKS2Dy;Kwh5ga;(4tyEnckW%Yb{(ka;mbYe z`+ev8o!>cMe)!4!-H+zCF2KzLAmCFTc&@SgAp8a5$yG~#S4Ypdscl!!lkM5pONCeF z)Gnd>26TVEqx-jZ@yA-N%9%_?ihUBg!~}+VgA9~{DZLqEj~)hQ*q-!ZZ(G_9p=9tuMXm= z$-!q!uybENW1rMiufsY!0V3Aj(ms;ak)o%&r4DkcWSVAWP zYuW{&;){DwktuvH+pt4q8x!^*W)7U2DEJ^Ef<9Cf_cDg4_@qNN@jEw3mk?j}k=)$x zJHPXtbAIP{$dA7me!gXR^&|Lx#MqipQi&CM&jZKG<|FVojJ|cn)Z1b1a_WqacO5n- zU(9D$a(N}OvZi$CJHLg_%k7=Nwc7sq&}2Jb9ytn!^dqM~sq<*t$T#Azw0GWawf+0C z$#$9UcwvaXJ_aH9hVG7m)p+L`JHAGDIIz%DV=zE{9Ps)#uG10+gNFA%HQDaa_c(Y? zfBFVp@j-XX`Oi%6JpX7PowP#&exT>kjBMT>Zji zyG!46z%Kks7yU3~`1~uA?J9knhd-T_!q=2x-F&Z3r|U2e>l>@BH`IzMe=rWq`|C)X zco@2<=mqP;v1M&0YOuxD#E+%L)<{r~-qu9UNFy)pejrV}IOqjG^ypuEqWmTD)vu{z zO|cvuuq4+Ks%_b~Q4_GP&I{hphq$lR!I1MgQ9oZbWw&LdOHc>eTv_ejAvb$s{7Y6 zbhQ<$u2o=}0WFUJp{5KR*%oFAA%aXc3GtByLKcae5ceiY5%ys=?-JXSCEPoSmyr1- zf!Sx-35np|jeC!sVaOIf<`|F&d3+7v1A)Xd$ptx%y$C`G&xni<=1AzJ9GIhGEKrhS zp`k*y9dY zLFQdaG0bRUK3tLGczQ^MfhX|}zjQLrJCduh0OQ+RBA(JHOW(^C>AN|wF4wh%fmeeQ z99Qxng6+IMttuqCp+K#w##TqQ(nuElc@Mp>LjN|BDQNPE@oI)F;I*T(m>wDgq`8i9 zZAY-Rgh+g(7>`Ema!#w6OyIQ>;aXb$|L0v~p28X;VR*p#ALr~C&|sZ1Px z1hC~M-Y`ecWnk#AU5qM8F*jGh*nH+R)%X}oqh<;h|v8iUhMK%sv z-E8P^F-OLvR>lm$S;UL>0#*mWt@U2(2?7Yov#(H;nd%hY=hT|7HFgtcnBAkLjX+an kBFNMf{VUIg-`;ia0Cf~#kWLrifEoW%jL+zFK@xKO2R&vyrvLx| diff --git a/tests/integration/event_set_direct_damages/data/results/splits/djibouti-latest_filter-road/hazard-jba-event/slice-0.geoparquet b/tests/integration/event_set_direct_damages/data/results/splits/djibouti-latest_filter-road/hazard-jba-event/slice-0.geoparquet index 4d20ec40276fff3d1f464e87f169716d3a0e8ec8..5663e97616e68bfd6eeaf3aee09ca4e9e5b0d4bd 100644 GIT binary patch delta 2287 zcma)6YfO_@80IavQJgL)XoVpb`4W-X7Uc4oT|B)4wzd6eY5VP>y--^C3MdHlGa1Yu zW&w5cwv#N*Wm)Ft;shpJm$;bB>=LIln)!nme{5zyG~FIgT zdEWPZ&hx(K`{Q2T?A^T4X{fP-ie`^NLn>wms^T78P?r@i)6{3>J*QcdAKlZN*cp!$ zt4eOEOYW~IIjiPQrPSOHsp=hYLA7D}#|7Zrf!=xO!xbgx)ZEM^HFtn67hqU5dzro^ zKxOXeWi|I5ofKdnd_`;8K$~~z3WBcCDFL)}unk^=1GIM>p3lDev-;Teg7RaZ<~>W- zd0-I6=-F{tpZn8wH8)DX@xUdxO-H;?o;&-CnmbD?4#GBi#|txXlU``YRFgAm?lc`c z2!_-uADqd7TlC^9us;9j?`m%BwwhK4poS(7K~ZYMtFSc(PSTybF#est)!b)v`ytqt z`hFKwYv3Zip9F2e-I+pec7I{n8fuVXWookw1pwD*(>}20|9Y>Gd*@yuJt9L{>XUu2 zHd}S)A1WV)jk#C%E~HUR;8L3ci|ptn5r6unSyjt8lSQp z6w6Ur#XW5~Dzmvq>hbP4R4yt9jDz;kN|dU&#TD47;ue>HJf?o_lXPGCnBrtc)G}1O;E~b!;RFEjkG=sZ8#a za1t(p$}yBGItB0Nl?Q$9xZOnJVnUKaHX#~HSO>(mmWCEnYoBPMQy+nbUONMx+(bCR z4^Z6)P)2({hJ5;ft=LJvK4jn(?1!L%!BpvK_%a{b=#9^zdV~<-#~3ohM8 zoVE}LA$DRW#Hc4jxXEmz8*Otp=_F*3v=GutOt`7oPG%D~+U5WYwVPn5W){k5VYZps zPFxTZdJ`hBiMR`JGIwr51?Z+}C>>F@{YW>I5Tp((-!J+_DP(OL@*A2MG{B(DlX#Um ztaB;0kqk2%bFrCC=^?Yfpv~G4@V9o`ebU~DuRa;Xm|=-e2I`1DY;KQwyi%J-?-&r; zH#(hmud_w)8lsLaB0H>nGHfQp4l_z%4)Ho2BVi#CmrM_T0oroguoOx}^g%1XC&cb% zo5Qq_KEzx*59J(V(A*je*9k1?Zf25JPg6P;O3G|!7u`Prn>C7IZpmC~?vf5&lxog{ zwj$tn%A#M0Mw+D|5wT%colYlr&G9nPE0a)K+8^-MOJS@TF?ljanKU+Pn1TwC6~H(U z@FSsw6bmr|#EeOFI*A2jp6-A`#ipDoOJ$|7Z8pXtiS}-`!83fLJV(Gvw@*On8l~UD zwR|+-!KNXkQ#Yv7HMr{N@<}MKV&QFKGE{4b2K~-Kf2~C(78&c>k;t%t?N7#3@~I}}%CiJLfB;~M)!oQD{GOV=D8 zEOZ?2`+|I{fx`NJeMa(#Z! z*1e*iNo3xEhwSS3eq>xJbj=D!(_*^pj>fdV&$=aCXOu)mq5yNof(7uLjTR!fbhKv* zHmr+@20o6p?iOqD*=+B^4E#_gBNO|^1Qd_hnN!4O?eW(+4dH|s3n19QSl7=}N-KzY za4b-;AI&tSpiSxtHb-Kp6rQ`&Pth^&Z&I9$>Z@pE1^FWx0r8_#fwZ!e;;g delta 2401 zcmb7EYiyHM817rvmUT0rxVf>hjm>?@81ZX6D=R+?r|V@a>(+L?eEqzzwO!Y-UM9Pg zbw9Smgv5ah3F0x_3wN#vg$DVF(7JM19Zqb+g6P-Wx&v)am%;&P)xy}Z1vIJza3 z*py5~dN=h)N|dEPYD<4xR(f2^9m#6B%h{SvIIC>9cp=Y1JDhq@|L(HV87((|Ud!#F z|F~hRa_SO2HU)L617B&mpXosljKfvBstamWH@?<#hiKJysNLl%RMU7D2-SzaMdyn0 zdbOgwOf}du+M7#bQdxQixZAXQJFI%&3)|obo!AbmRW~ndxdZfs7tX_f$?LGb0M1ZXH-?$Kr{ylvs&`>S_OotSQx4bZPh(J9xb24`ZtCr#$})QJU09K= z&Ojl+JZ%_xQm@I=Ox+{0v%$J0cSCXAU+6J0qC`bSxM4Q^+@pN6{y1#E6;%}ywhcdqxq zSGYJV(goG+22}x@9g4Styki!c+=#GaUv|ZA*rEbmcH16khQfIr&z7!_Uf2t-Dy<}| z*$1D4vNM&vupjoT)ndSt6#aDSFjQz0{sGb8kM;!IwDV&~6pKm6Xvl9G2^lBW)$b>@(xGjkpPM5es1-yo(VhAvPwE0VbPJgE;$I2x;+=K0-t$TihrUE0YcQ zM>h7ME3=Nd@-UgCQMUMSLsIO=iWf|ukO`u5jq*H8!rdmFI@lGn%q>aRWD0*|NAYIe$*ciAOs9&!3aUvd3b*3EP<1;?WO=lKzo!B5n`` zM>L%1NO!any`a-Od;=y+yU*|ScIho$R)2?(X-hjZ=4d!c(oQda2}$r#o=10PV)r)l zd^2vX7P@l|Dk_J>fH4`d$D%z39n%QpR9lF{O9Qj;QXIiT5UspRazTg$kEJaqn-O`o z!t93;lUs;39wuy=h}}OX7zU){k%gLb81M_S+b0#?N}$7pto z33E;@)*uHAGLLxyB~(Lp+lVM&#h7MJKbNpMNcYV`b-k2VC}7hejDx`d1DTLfR};^_ z>}6q4vfAm5S*Un69Tdd4$nHDYRpXHCK_Wh4N2Y}iY-4MNX;@wBc;2*m!Gn!<&qC>{ zA-pjs!U@wbHgyIYJcg_`^Vmpc*E+iEB)sU$9|SCQb0g-EW*W@YEH{P3Kwha*efh(N z-erIt%-+;T@6SPXO)E=Go>$YLh@-*W_OnE#Hg?mBSyevFpK5Hm=d&Y*!H-U;>&IS z@EEZHCbIo-P>5y1cE7}dxsMHSkl??(`pj0Irw3-CwkBe?B?W_HtcSf#*hp`&7)_R3 zOsh;rqeO--7>Go}P5v=4VcRUaEmGde#hm0eY@^@J!SkG)MXDzdNkt4cM90ngjlBjW zvuM#q_nw4`^&N2$K@255>@_5$9cNoAn3$!;Mmy|Jxqvi#sU$zr64N|O diff --git a/tests/integration/event_set_direct_damages/expected/results/direct_damages/djibouti-latest_filter-road/hazard-jba-event/cost/slice-0.gpq b/tests/integration/event_set_direct_damages/expected/results/direct_damages/djibouti-latest_filter-road/hazard-jba-event/cost/slice-0.gpq index cc969c13a714e0e4ea54ac417c27e917d604b60c..bb8257612ec972a09854011a838964cf1c185970 100644 GIT binary patch delta 2793 zcmb_cX>43q751?+9=|qCgE#DWsXd;&EOwdA+Z3tfzS#%Q#N%a_2X*Q>4VI{XU|a1u8o|+yq2o0=ez~&e*p2!{et+) zn$X>W^Zn3Lo9l;YJ^TXw5)3q+dr%PHdjOA1@CocOLmAHCLuN1;e)X^*UclESVE7L+ ztiX@3ydTVlAD$J&*YKNu+eBHIq`^#`1 z=MKPtVeN52d=UHGV6Xk)0GtEyYv0<$)tEj}DsEJK~fbZkb zVK5udeOnNpz98VA4naE>4}%J8_)j-g{rE*ed;{Aq8*XeS^?%{QXmc_}Ehd zP7XpFp7ua9?_H(-#F1pNG+q|RwCG}nAx za19#PUJ~%hBhYL7(hGw4&hr9ZJ3_qATjArR{o7U;Y#_<7!v+r}S3Mx@q;Ja(%HHroSI^t6pE2b$HFfe>vQ$_qY8BI6 zeV;OIXnN2GUxD_VY8vV@rE{r*dQ6)yrf7>Pr(z@wQ+OxOK3zK;hF9wGx*tO5iNGk>YM+h3lLq0ZqZa-+7=A1UcY~`|jKM`?y&S>LW6*n- z9GlYQsIx4)g6f2ezQ65}PGVmXqz#WhEB1 zCbb2eQ=vo9s=8)61p zjdILZRs9Qiw*npbL>e6Uhywc>=3^23O%{rVq|a-Y@zW~o!}sQ4H@=#JR&35tpT4U= z3pUcQFIsL+XS1)3YmiiY>3zzR;3Rp@T8Dz;iA3D50< zGQK|#owpR_6~%7j5d5D@__HkC7{9)kh$S7-6}jlm%lKjnwB3~HEGO;GbYdo?Gv6BF zWuq}qw{%j4mRlDSybZ-dmU{kD3W|HIiI|#JV&37TLn^FO+q*SJ6}-9tC090^DtcFB zmyK$VE)j-ZjtA4pVz?UiGh5th3(hV$-4nCXnVD&ud)gBX$5#W@(5jS9YOETXq2Hs_ zR!{N&0Hhb+iK8i)ZQ5|%&Avq!$O;>MyXRDVx|#_T!z*&kYgHTp?mzO)$#OyqX2~nM zcar`BeFvA-l|Uun3UXen^D*ZV_h%sQu}$RJQfNBp+^l8XAs3QbxUATRb&ODMxH^#! z<~ZE4kCsLE8fm1kF1Zx-P35eeE%{21r6@g(R& z%8{2yv{@=LPtfC5%QEgSf$5_%X`;}5a?{-`I5}pq*xk6N4CW5qr1QRlHt$!nsfZNe z#PXA4oMz7{7gxYPm6dJIN+LE=NLHDTQG2NZdh3sih1?tExz@|m8@j2y5^a>0lXMPM zyLUuq&m=3q0(Atcn5%NLqY}&NQO-$Omqnj5FMlcg4v3TV%(bu;fNjhrX-ZGv0Ne6a zpOc%KFGYC%41VD_9EBXdb{s6H)JY1BxoO~Xd%Wv(^xd22kPVnrmT4^V{mz+<{nCG- zulJcwOIh}*1)}SrBn#~)@_IY{*IF#AQi8j hfCIa1o&RdZk5s^neHCci-Cb8#ca7E6O|mK5e*mfAS7QJG delta 3192 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 W(IwD<0S_&~p4>xqDpf0S8~z6nvDPR6 delta 3113 zcmb7FdrX_x73X-^5S!&O3IWnk2-&A4B=Lig;AvBHZDSh~gAK-yuhJ51V+{CJ-gufI zggjTR>C|y50*s_I%OJ^^G|iKmqAu$nX{M%KwRT&isch=@N7_~C{#d7~igxa2^Irex zm3+T@p7%U{=lcC6#e08KjQk3KDRSC^?QJJ8bPA4O4TH;Y3#U&(h5W%8rSN&`3kHA6 zCRXk!lq)X2pcFzWh!?>f zoDRUAoa-Yh;r2}>mY;+JcySEAf$|_2U>v8%U^l#ox9O8Q9fUoyeeX`Fo-D{KuFg_y zFD_E{#!tlJ!L}0}!2(&~b!Fk*yuv%V!W-i%;SxR`gNoG0A$VB^3wWu6GJf%@ibAYE z1IO^c9dH;P;=xYXEgQR@I^GHO*_6q>Gf*y{Tu=!g;v=s1I0nPA=N54|4to@5Un94- z@tL!rP5n6zWwOfAyK92U3w6h%o5ESl75?)(mGB0Zc7qc>$3!=j=Ptgf5@z01?ZYK2 zJb^d6p#^5}iE~tmTfbKc|GuZfgEpwZ#vTaDM&HJh=b$WSzA zVgCmvx~~e53Ym~b$gX9C94N>x$SRO!(YBpFSy{pcpuBb(%D)sN`J0hJwciL0!zNHX z1D~aKUjU^no4*~n^a2#5Pm9k(OX~R_LUDFBpF2sClNrJk2`gkP{F3yETj0`jkezD! zF(|$Unw0M+Py@=5Dm7n&?Jm4L4&Rm82T~8lVG(53Kx*P8cvU8McZoVTesTq#+!7Hj z!H8EE>B9L}Ad1@Jvh9bN-1!ZWPggm@I38p-a&l3!-QP{nzJpnPCnF7U@ zc&jHE59-X-*f#4pA>SHZqDXwirKQGJ(4x066}pSS{YMRmVuafdK|84_FlRSmt~ zs$jTnMX3n?afM!%os$sE^~G!nUUwVTysUG8fylYgG$c5%qB({2c|R4xUbip;`DHW=|=*J0nVkJ0L9 zPR6Y5wTv0;2BJ-zZg83yGq$q<#{A4q%mJe5Ky($WW30a2NcuIboiP`u4Njs>ac&l^q#EbfTNnap^k zl17Ign9)_ER`Y;sO;VIp3{LP(T80+-7=}boIP8n)JE`Luuh#8qGV2GV_USYvH|bXV zSxn3R%#sts0K@Ok!`5BguYuyAv5H2*e#yDfsdlKx`q}9y)c6=?3{C+V>G;nWL7e1T^wZcT~$^brf z0}kig9Y@#oO5>=)vvW`?@+wG4uD#2|t5?Hs;L#Yu+$)nnyCzAg>C(ui+i$w0JWpux(tUX9k)(xo>YZ*jX^&014)t-HaStQ)W=4WU4c4cJ}ulRWw| z0Z5P|P94iCDoeC>Kik*VdoX|>{Q?TJHN{^P;f@9P4wfxI-j=LSk7i{#Sd;dD7AWeA