Skip to content

Commit 2e59949

Browse files
committed
dealing with missing onset/cess, correct indexing, better use of for
1 parent 28c406d commit 2e59949

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

enacts/onset/maproom.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -872,15 +872,13 @@ def tot_plots(
872872
cess_delta = cess_delta.isel({"T": slice(1, None)})
873873
if cess_delta["T"].size != onset_delta["T"].size:
874874
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")
884882
try:
885883
# Total seasonal rainfall between onset and cessation dates is
886884
# every other sum over groups defined by onset and cessation dates
@@ -889,7 +887,7 @@ def tot_plots(
889887
"T",
890888
seasonal_edges,
891889
include_lowest=True
892-
).sum().rename({"T_bins" :"T"})[0:-1:2]
890+
).sum().rename({"T_bins" :"T"})[0::2]
893891
isnan = np.isnan(seasonal_total).mean()
894892
if isnan == 1:
895893
error_fig = pingrid.error_fig(
@@ -904,13 +902,11 @@ def tot_plots(
904902
tot_graph = pgo.Figure()
905903
tot_graph.add_trace(
906904
pgo.Bar(
907-
x=onset_delta["T"].dt.year.values,
905+
x=[interval.left.year for interval in seasonal_total["T"].data],
908906
y=seasonal_total.squeeze().values,
909907
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],
914910
), axis=-1),
915911
hovertemplate="%{y:d} mm from %{customdata[0]|%-d %b %Y} to %{customdata[1]|%-d %b %Y}",
916912
name="",

0 commit comments

Comments
 (0)