@@ -872,15 +872,13 @@ def tot_plots(
872
872
cess_delta = cess_delta .isel ({"T" : slice (1 , None )})
873
873
if cess_delta ["T" ].size != onset_delta ["T" ].size :
874
874
onset_delta = onset_delta .isel ({"T" : slice (None , - 1 )})
875
- toto = np .stack ([
876
- (onset_delta ["T" ] + onset_delta ["onset_delta" ]).data ,
877
- (cess_delta ["T" ] + cess_delta ["cess_delta" ]).data ,
878
- ])
879
- toto = toto [~ np .isnan (toto ).any (axis = 1 )]
880
- seasonal_edges = np .stack ([
881
- (onset_delta ["T" ] + onset_delta ["onset_delta" ]).data ,
882
- (cess_delta ["T" ] + cess_delta ["cess_delta" ]).data ,
883
- ]).flatten ("F" )
875
+ seasonal_edges = xr .concat (
876
+ [
877
+ (onset_delta ["T" ] + onset_delta ["onset_delta" ]).drop_vars ("T" ),
878
+ (cess_delta ["T" ] + cess_delta ["cess_delta" ]).drop_vars ("T" ),
879
+ ],
880
+ dim = "edges"
881
+ ).where (lambda x : ~ np .isnan (x ).any (axis = 0 ), drop = True ).data .flatten ("F" )
884
882
try :
885
883
# Total seasonal rainfall between onset and cessation dates is
886
884
# every other sum over groups defined by onset and cessation dates
@@ -889,7 +887,7 @@ def tot_plots(
889
887
"T" ,
890
888
seasonal_edges ,
891
889
include_lowest = True
892
- ).sum ().rename ({"T_bins" :"T" })[0 :- 1 :2 ]
890
+ ).sum ().rename ({"T_bins" :"T" })[0 ::2 ]
893
891
isnan = np .isnan (seasonal_total ).mean ()
894
892
if isnan == 1 :
895
893
error_fig = pingrid .error_fig (
@@ -904,13 +902,11 @@ def tot_plots(
904
902
tot_graph = pgo .Figure ()
905
903
tot_graph .add_trace (
906
904
pgo .Bar (
907
- x = onset_delta [ "T" ].dt . year . values ,
905
+ x = [ interval . left . year for interval in seasonal_total [ "T" ].data ] ,
908
906
y = seasonal_total .squeeze ().values ,
909
907
customdata = np .stack ((
910
- [seasonal_total ["T" ].data [i ].left
911
- for i in np .arange (seasonal_total ["T" ].size )],
912
- [seasonal_total ["T" ].data [i ].right
913
- for i in np .arange (seasonal_total ["T" ].size )],
908
+ [interval .left for interval in seasonal_total ["T" ].data ],
909
+ [interval .right for interval in seasonal_total ["T" ].data ],
914
910
), axis = - 1 ),
915
911
hovertemplate = "%{y:d} mm from %{customdata[0]|%-d %b %Y} to %{customdata[1]|%-d %b %Y}" ,
916
912
name = "" ,
0 commit comments