Skip to content

Classic Modflow time-related classes and start_datetime #1915

@mwtoews

Description

@mwtoews

For classic Modflow models, there appears to be two classes to handle time in some-way.

For example, a model object has "tr" and "modeltime" properties:

import flopy

m = flopy.modflow.Modflow.load("freyberg.nam", model_ws="examples/data/freyberg_multilayer_transient")
m.tr
# <flopy.utils.reference.TemporalReference at 0x1faedd76c80>
m.modeltime
# <flopy.discretization.modeltime.ModelTime at 0x1faedb130a0>

Source code for:

There are at least three start_datetime attributes, some that contradict others:

m.tr.start_datetime  # '1/1/1970'
m.dis.start_datetime  # '1/1/2015'
m.modeltime.start_datetime  # '1/1/2015'

As for setters, there are more inconsistencies:

# this doesn't work
m.modeltime.start_datetime = "2001-11-15"
# AttributeError: can't set attribute 'start_datetime'

# but this does work
m.dis.start_datetime = "2001-11-15"
assert m.dis.start_datetime == m.modeltime.start_datetime == "2001-11-15"

# and this works, but seems to be isolated from other workflows
m.tr.start_datetime = "2008-03-17"

My suggestion is to deprecate the .tr property and TemporalReference class (eventually remove flopy/utils/reference.py). Does start_datetime need to be duplicated for the .dis property? Other ideas?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions