Coder Social home page Coder Social logo

hapuamodel's People

Contributors

regmeasures avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

level-8

hapuamodel's Issues

Smear river discharge sediment onto length of shoreline

At the moment all the river sediment gets deposited onto the shoreline in an evensplit between the transects either side of the outlet channel. At time of high discharge this can create a localised bump and is quite unrealistic.

Crash - size inconsistency between OnlineLagoon & ChanFlag[:-1]==1

Time = 2015-08-19 09:00:00
Time = 2015-08-19 10:00:00
Outlet channel elongated rightwards across transect line x=-280.000000
Truncating lagoon end of outlet channel (due to erosion)
Outlet intersects lagoon at 1 transects - adding channel width into lagoon
Outlet closed
Velocity change in cross-section 87 equals -0.315295 (greater than WarnTol)
Velocity change in cross-section 66 equals 0.199807 (greater than WarnTol)
Velocity change in cross-section 87 equals -0.110328 (greater than WarnTol)
Outlet closed
Outlet closed
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\ProgramData\Anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Projects\HapuaModel\hapuamod\__main__.py", line 42, in <module>
    main(ArgsIn.ModelConfigFile, ArgsIn.Overwrite)
  File "C:\Projects\HapuaModel\hapuamod\core.py", line 160, in main
    ChanFlag, Closed)
  File "C:\Projects\HapuaModel\hapuamod\riv.py", line 550, in storeBedload
    LagoonBedload[OnlineLagoon] = Bedload[ChanFlag[:-1]==1]
ValueError: shape mismatch: value array of shape (70,) could not be broadcast to indexing result of shape (71,)```

Handle hydraulics (depth/velocity) during outlet channel adjustment

Need to handle:

  • Outlet channel truncations to sea
  • Outlet channel truncations to lagoon
  • Lagoon end extension (truncation to cliffline)
  • Breach?

Maybe transfer channel hydraulics (depth and velocity) to new variables the same size as lagoon/outlet bed elevation then transfer back after adjusting morphology and interpolate new/null values as necessary.

Develop morphology test bench

Develop test script to put the main mor code through a series of tests.
Needs to check:

  • Truncation of seaward end of outlet
  • Truncation of lagoon end of outlet
  • Extension of lagoon via truncation of lagoon end of outlet to cliffline

Ideally checks should include some mass balance calcs!

Improve outlet channel in modelView visualisation

  • The outlet channel ends look very strange at the moment without their width being properly represented - improve plot to show width of channel ends
  • adding arrows showing bedload (quiver plot similar to LST and CST) would be beneficial

Incorporate momentum coefficient (β)

So far none of my river hydraulics includes a momentum coefficient (β) (also termed Boussinesq coefficient) to correct for non-uniform velocity distribution. This should be fixed.

Handle re-breach of closed outlet

Currently breaching always results in a straight channel but this is not realistic in the case of transitory closure. Need to:

  • preserve the location and size of the upstream end of the outlet channel during closure
  • Differentiate between reopening of old (upstream connected) outlet channel vs breach where there is no, or disconnected outlet channel.

Output variables linked to shoreline co-ordinates

Needs to include:

  • shoreline position
  • lagoon and barrier backshore positions
  • lagoon bed level
  • barrier crest height
  • outlet bed level
  • lagoon WL
  • lagoon velocity
  • outlet WL
  • outlet vel
  • longshore transport rate

Develop hydraulics test bench

Test bench for unsteady solver to benchmark speed, accuracy and stability under different conditions. Should include tests for:

  • supercritcal flow
  • correct water surface profile through constriction
  • reverse flow
  • shallow flow (e.g. breach/overtopping)

Read in cliff-line seperately from lagoon

Lagoon backshore and cliff position will be the same in the model, but where there is no lagoon I should track cliff line separately from shoreline. Currently I read in:

  • Shoreline (polyline)
  • Lagoon (polygon) - from which both edges of lagoon are read

I should change this to

  • Shoreline (polyline)
  • Barrier backshore (polyline) i.e. seaward edge of lagoon - only extends for length of lagoon
  • Clifftoe (polyline) i.e. landward edge of lagoon but extending beyond lagoon as well to show setback of cliff from shoreline

Track outlet channel using barrier profiles

Currently I track the outlet channel centreline as a free-form line in XY space defined by node (cross-section) locations along its length. This allows quite a bit of flexibility but it creates a number of headaches when trying to track the width of the channel and how this interacts with things (e.g. checking for truncations, working out which river-cross-section to deposit overwash sediment in, extending a approximately shore parallel outlet etc.)

As an alternative, I could track the outlet channel using the same shore profile lines as used for the shore position and lagoon width. There are a number of advantages and disadvantages:

Advantages of tracking outlet with shore-profiles Disadvantages
Simpler to move sediment between model domains Harder to add bank erosion due to outlet channel curvature (if wanted/needed to in future)
More consistent with overall model scheme Have started coding existing method
Works well for long shore-parallel outlets Need to work out how a totally straight outlet channel will work (i.e. it needs length>0!)
Easier to track migration of ends
Easier to find and deal with truncation of channel

Overall I think this change would resolve a number of issues I am facing with my original approach but I need to think it through fully as it is a bit of a change. In particular I need a plan for:

  • how to migrate the channel ends in particular d/s end due to LST
  • how to deal with a breached (straight) outlet channel
  • how to deal with channel hydraulics as outlet changes in length (step-changes?)

Add quiet and verbose options

  • Quiet = don't print logging.info statements to console
  • Verbose = print logging.debug statements to console and log file.

Using flags in argparse would be the best way to do this - although I need to make sure the main model code remains runable from python as well as commandline.

Correct shoreface area calculation

Current shoreline position adjustment only accounts for volume below mean sea level (i.e. closure depth * Dx) but need to account for barrier height in calculation as well.

Make a plot/animation showing selected lagoon transect

similar to the below but generated from real model data for a specified transect and without the dimension lines.
image

It probably makes sense to use some vertical exaggeration otherwise it will be very flat - could just let the plot auto-scale or could specify vertical exaggeration as an input parameter.

Adjust runup for wave angle

From Murray's Okarito report one approach is to apply the EurOtop (2007) “influence factor” to adjust for obliquely-approaching waves. I need to do some more reading...

EurOtop (2007) Wave overtopping of sea defences and related structures: Assessment manual. www.overtopping-manual.com, August 2007.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.