Skip to content

Generic reduce and statistics - #881

Draft
otzi5300 wants to merge 3 commits into
mainfrom
generic-statistics-v2
Draft

Generic reduce and statistics#881
otzi5300 wants to merge 3 commits into
mainfrom
generic-statistics-v2

Conversation

@otzi5300

@otzi5300 otzi5300 commented Dec 18, 2025

Copy link
Copy Markdown
Collaborator

Implements functionality for reducing time dimension in dataset using user specified aggregation functions, similar to python's reduce(). A statistics method is also implemented to simplify calculations of basic statistics (min, max, mean) directly from a DFSU file. This function utilized the new reduce functions for this purpose.

import mikeio.generic
# Compute min and max simultaneously using reduce
generic.reduce("input.dfsu", "minmax.dfsu", 
       functions=[np.minimum, np.maximum])

# With custom function labels
generic.reduce("input.dfsu", "stats.dfsu",
       functions=[np.minimum, np.maximum, np.add],
       function_labels=["Min", "Max", "Sum"],
)

Using statistics as a convenience function for computing min, max, and mean:

generic.statistics("input.dfsu", "stats.dfsu") # basic
generic.statistics("input.dfsu", "stats2.dfsu", items=["Temperature"]) # Specified items
generic.statistics("input.dfsu", "stats3.dfsu",  from_ts=100, to_ts = 150) # To from specific time steps

@ecomodeller

Copy link
Copy Markdown
Member

The reduce function should be very similar to the existing Dataset.aggregate, name, arguments, etc to make it familiar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants