coastal-cascade


Namecoastal-cascade JSON
Version 0.1.1 PyPI version JSON
download
home_page
SummaryThe CoAStal Community-lAnDscape Evolution (CASCADE) model
upload_time2023-03-21 15:30:11
maintainerKatherine Anarde
docs_urlNone
authorKatherine Anarde
requires_python>=3.8
license# The MIT License (MIT) Copyright (c) `2023` `Katherine Anarde` Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords barrier islands coastal management economics overwash sea level rise
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            🌀 🌊 🏄‍♀️ 🏚️ 🌀 🌊 🏄‍♀️ 🏚️ 🌀 🌊 🏄‍♀️ 🏚️ 🌀 🌊 🏄‍♀️ 🏚️
# cascade

The CoAStal Community-lAnDscape Evolution (*cascade*) model is a coupled landscape and human-dynamics modeling framework.
*cascade* combines elements of two exploratory morphodynamic models of barrier evolution -- *barrier3d*
(Reeves et al., 2021) and the BarrierR Inlet Environment (*brie*) model (Nienhuis & Lorenzo-Trueba, 2019) -- into a
single model framework (figure below). *barrier3d*, a spatially-explicit cellular exploratory model, is the core of *cascade*.
It is used within the *cascade* framework to simulate the effects of individual storm events and SLR on shoreface
evolution; dune dynamics, including dune growth, erosion, and migration; and overwash deposition by individual storms.
*brie* is used to simulate large-scale coastline evolution arising from alongshore sediment transport processes; this is
accomplished by connecting individual *barrier3d* models through diffusive alongshore sediment transport. Human dynamics
are incorporated in *cascade* in two separate modules. The first module simulates strategies for preventing roadway
pavement damage during overwashing events, including rebuilding roadways at sufficiently low elevations to allow for
burial by overwash, constructing large dunes, and relocating the road into the barrier interior. The second module
incorporates management strategies for maintaining a coastal community, including beach nourishment, dune construction,
and overwash removal. For a full description of model dynamics, please see the pre-print of "The Future of Developed
Barrier Systems: Pathways Toward Uninhabitability, Drowning, and Rebound" by Anarde et al., (in review, [Earth ArXiv preprint](https://doi.org/10.31223/X5P947)).

![ModelTimeLoop-01](https://user-images.githubusercontent.com/57640439/226623608-d0c58437-d44f-4dca-8f43-0b92623fcda6.png)

In development: *cascade* represents decisions about coastal land-use (e.g., housing markets) and community-level
mitigation measures using an empirically-grounded agent-based real estate model – the Coastal Home Ownership Model (*chom*).
*chom* receives information about the coastal environment and acts on that information to cause change to the environment,
including decisions about beach nourishment and dune construction and maintenance.

## Model coupling
*cascade* can initialize a series of *barrier3d* models, each describing a barrier segment with different initial conditions
or management strategies (detailed below). The *barrier3d* segments are then coupled alongshore through a
diffusive wave-driven sediment transport model (with periodic boundary conditions; i.e., Ashton & Murray, 2006)
housed within the *brie* model, which distributes sediment alongshore amongst the different barrier segments.
This coupling is possible because both models describe shoreface and shoreline dynamics using the formulations of
Lorenzo-Trueba and Ashton (2014). Functionally, this coupling of *barrier3d*’s cross-shore morphodynamics with *brie*’s
alongshore transport model requires 1) initializing both models with equivalent barrier geometry and environmental
parameters, 2) separating dune migration within *barrier3d* from the other model processes in the one year time step
(Figure 1), and 3) turning off all other model processes within *brie*
(i.e., cross-shore barrier model and tidal inlet model). While the version of *barrier3d* in the *cascade* framework
produces equivalent results to the version used in Reeves et al., (2021; version testing is automated in *cascade*,
see the `tests` folder), the default parameters are modified to match the shoreface configuration in *brie*, which depends
on local wave and sediment characteristics as well as the offshore wave climate (Hallermeier, 1980; Ferguson & Church, 2004;
Lorenzo-Trueba & Ashton, 2014; Ortiz & Ashton, 2016). For ease of model coupling, *brie* and *chom* were rewritten in Python
and all models (*barrier3d*, *brie*, *chom*) were appended with a basic-model interface with the help of the
Community Surface Dynamics Modeling System. The repositories for the models coupled within *cascade* are noted here:
- *barrier3d*: [GitHub Python Repository - Version 2.0 (BMI)](https://github.com/UNC-CECL/Barrier3D)
- *brie*: [GitHub Python Repository - Version 1.0 (BMI)](https://github.com/UNC-CECL/brie)
- *chom*: [GitHub Python Repository - Version 0.0.1.dev0 (BMI)](https://github.com/UNC-CECL/CHOM)

## Installation

This ReadMe corresponds to the development version of *cascade* used for the
simulations detailed in *"The Future of Developed Barrier Systems: Pathways Toward
Uninhabitability, Drowning, and Rebound" by Anarde et al., (in review, [Earth ArXiv preprint](https://doi.org/10.31223/X5P947))*. Prior
to publication, *cascade* will be made available for easy installation using either
`pip` or `conda`. Reviewers can follow the instructions provided below for installation
of *cascade*.

To install the latest release of *cascade* using *pip*, simply run the following
in your terminal of choice:

      pip install coastal-cascade

You can also use `conda`:

      conda install coastal-cascade

### From Source

*cascade* is actively being developed on GitHub, where the code is freely available.
If you would like to modifying code or contributing new code to *cascade*, you will first
need to get *cascade*'s source code, and then install *cascade* from that code.

To get the source code you can either clone the repository with *git*:

      git clone git@github.com/UNC-CECL/cascade

or download a [zip file](https://github.com/UNC-CECL/CASCADE/archive/refs/heads/main.zip):

      curl -OL https://github.com/UNC-CECL/CASCADE/archive/refs/heads/main.zip

Once you have a copy of the source code, you can install it into your current
environment,

      pip install -e .

We use [nox] to automate routine maintenance tasks like running the tests,
removing lint, etc. Install [nox] with *pip*::

      pip install nox

When you're done making changes, you can now run [nox] to check that the tests
pass and that there isn't any lint:

      nox -s test  # run the unit tests
      nox -s test-notebooks  # test that the notebooks run successfully
      nox -s lint  # find and, where possible, remove lint (black, flake8, etc.)

To run all of the above in a single command:

      nox

[nox]: https://nox.thea.codes/

## Example simulations
For a more complete set of example model runs and description of module functionality, we direct the use to the examples
provided in `notebooks`.

Example (default) data inputs for cascade are provided in the `data` directory:
```
from cascade.cascade import Cascade

datadir = "data/"
```
To initialize an instance of *cascade* with no human dynamics, 3 barrier segments (each 500-m long), and
default *barrier3d* and *brie* parameters:
```
cascade = Cascade(
    datadir,
    name="no_human_dynamics_3_barrier_segments",
    alongshore_section_count=3,
    roadway_management_module=False,
    alongshore_transport_module=True,
    beach_nourishment_module=False,
    community_economics_module=False,
)
```
To initialize an instance of *cascade* with roadway barrier management on 1 barrier segment:
```
cascade = Cascade(
    datadir,
    name="roadway_mgmt_1_barrier_segments",
    alongshore_section_count=1,
    roadway_management_module=True,
    alongshore_transport_module=False,
    beach_nourishment_module=False,
    community_economics_module=False,
)
```
To initialize *cascade* with community barrier management on 1 barrier segment:
```
cascade = Cascade(
    datadir,
    name="community_mgmt_1_barrier_segments",
    alongshore_section_count=1,
    roadway_management_module=False,
    alongshore_transport_module=False,
    beach_nourishment_module=True,
    community_economics_module=False,
)
```
Once initialized, a *cascade* time loop can be completed as follows:
```
for time_step in range(cascade.time_step_count - 1):
    cascade.update()
    if cascade.b3d_break:
        break
```

# Credits

## Development Leads

* Katherine Anarde <kanarde@ncsu.edu>

## Contributors

* Eric Hutton <mcflugen@gmail.com>
* Zachary Williams <zachary.c.williams@duke.edu>

# Changelog for CASCADE

## 0.1.1 (2023-03-21)

- Added additional tests for the ``rebuild_dunes`` function that uses that new
  *numpy* interpolator, ``RegularGridInterpolator``.
  (`#36 <https://github.com/UNC-CECL/cascade/issues/36>`_)


## 0.1.0 (2023-03-17)

- This is the version of *cascade* used for the simulations in "The Future of
  Developed Barrier Systems: Pathways Toward Uninhabitability, Drowning, and
  Rebound" by Anarde et al., (in review).

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "coastal-cascade",
    "maintainer": "Katherine Anarde",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "kanarde@ncsu.edu",
    "keywords": "barrier islands,coastal management,economics,overwash,sea level rise",
    "author": "Katherine Anarde",
    "author_email": "kanarde@ncsu.edu",
    "download_url": "https://files.pythonhosted.org/packages/24/1a/0a146752d084186c65fa4a864e462d0b5896d67ac427c03502978c16cb02/coastal-cascade-0.1.1.tar.gz",
    "platform": null,
    "description": "\ud83c\udf00 \ud83c\udf0a \ud83c\udfc4\u200d\u2640\ufe0f \ud83c\udfda\ufe0f \ud83c\udf00 \ud83c\udf0a \ud83c\udfc4\u200d\u2640\ufe0f \ud83c\udfda\ufe0f \ud83c\udf00 \ud83c\udf0a \ud83c\udfc4\u200d\u2640\ufe0f \ud83c\udfda\ufe0f \ud83c\udf00 \ud83c\udf0a \ud83c\udfc4\u200d\u2640\ufe0f \ud83c\udfda\ufe0f\n# cascade\n\nThe CoAStal Community-lAnDscape Evolution (*cascade*) model is a coupled landscape and human-dynamics modeling framework.\n*cascade* combines elements of two exploratory morphodynamic models of barrier evolution -- *barrier3d*\n(Reeves et al., 2021) and the BarrierR Inlet Environment (*brie*) model (Nienhuis & Lorenzo-Trueba, 2019) -- into a\nsingle model framework (figure below). *barrier3d*, a spatially-explicit cellular exploratory model, is the core of *cascade*.\nIt is used within the *cascade* framework to simulate the effects of individual storm events and SLR on shoreface\nevolution; dune dynamics, including dune growth, erosion, and migration; and overwash deposition by individual storms.\n*brie* is used to simulate large-scale coastline evolution arising from alongshore sediment transport processes; this is\naccomplished by connecting individual *barrier3d* models through diffusive alongshore sediment transport. Human dynamics\nare incorporated in *cascade* in two separate modules. The first module simulates strategies for preventing roadway\npavement damage during overwashing events, including rebuilding roadways at sufficiently low elevations to allow for\nburial by overwash, constructing large dunes, and relocating the road into the barrier interior. The second module\nincorporates management strategies for maintaining a coastal community, including beach nourishment, dune construction,\nand overwash removal. For a full description of model dynamics, please see the pre-print of \"The Future of Developed\nBarrier Systems: Pathways Toward Uninhabitability, Drowning, and Rebound\" by Anarde et al., (in review, [Earth ArXiv preprint](https://doi.org/10.31223/X5P947)).\n\n![ModelTimeLoop-01](https://user-images.githubusercontent.com/57640439/226623608-d0c58437-d44f-4dca-8f43-0b92623fcda6.png)\n\nIn development: *cascade* represents decisions about coastal land-use (e.g., housing markets) and community-level\nmitigation measures using an empirically-grounded agent-based real estate model \u2013 the Coastal Home Ownership Model (*chom*).\n*chom* receives information about the coastal environment and acts on that information to cause change to the environment,\nincluding decisions about beach nourishment and dune construction and maintenance.\n\n## Model coupling\n*cascade* can initialize a series of *barrier3d* models, each describing a barrier segment with different initial conditions\nor management strategies (detailed below). The *barrier3d* segments are then coupled alongshore through a\ndiffusive wave-driven sediment transport model (with periodic boundary conditions; i.e., Ashton & Murray, 2006)\nhoused within the *brie* model, which distributes sediment alongshore amongst the different barrier segments.\nThis coupling is possible because both models describe shoreface and shoreline dynamics using the formulations of\nLorenzo-Trueba and Ashton (2014). Functionally, this coupling of *barrier3d*\u2019s cross-shore morphodynamics with *brie*\u2019s\nalongshore transport model requires 1) initializing both models with equivalent barrier geometry and environmental\nparameters, 2) separating dune migration within *barrier3d* from the other model processes in the one year time step\n(Figure 1), and 3) turning off all other model processes within *brie*\n(i.e., cross-shore barrier model and tidal inlet model). While the version of *barrier3d* in the *cascade* framework\nproduces equivalent results to the version used in Reeves et al., (2021; version testing is automated in *cascade*,\nsee the `tests` folder), the default parameters are modified to match the shoreface configuration in *brie*, which depends\non local wave and sediment characteristics as well as the offshore wave climate (Hallermeier, 1980; Ferguson & Church, 2004;\nLorenzo-Trueba & Ashton, 2014; Ortiz & Ashton, 2016). For ease of model coupling, *brie* and *chom* were rewritten in Python\nand all models (*barrier3d*, *brie*, *chom*) were appended with a basic-model interface with the help of the\nCommunity Surface Dynamics Modeling System. The repositories for the models coupled within *cascade* are noted here:\n- *barrier3d*: [GitHub Python Repository - Version 2.0 (BMI)](https://github.com/UNC-CECL/Barrier3D)\n- *brie*: [GitHub Python Repository - Version 1.0 (BMI)](https://github.com/UNC-CECL/brie)\n- *chom*: [GitHub Python Repository - Version 0.0.1.dev0 (BMI)](https://github.com/UNC-CECL/CHOM)\n\n## Installation\n\nThis ReadMe corresponds to the development version of *cascade* used for the\nsimulations detailed in *\"The Future of Developed Barrier Systems: Pathways Toward\nUninhabitability, Drowning, and Rebound\" by Anarde et al., (in review, [Earth ArXiv preprint](https://doi.org/10.31223/X5P947))*. Prior\nto publication, *cascade* will be made available for easy installation using either\n`pip` or `conda`. Reviewers can follow the instructions provided below for installation\nof *cascade*.\n\nTo install the latest release of *cascade* using *pip*, simply run the following\nin your terminal of choice:\n\n      pip install coastal-cascade\n\nYou can also use `conda`:\n\n      conda install coastal-cascade\n\n### From Source\n\n*cascade* is actively being developed on GitHub, where the code is freely available.\nIf you would like to modifying code or contributing new code to *cascade*, you will first\nneed to get *cascade*'s source code, and then install *cascade* from that code.\n\nTo get the source code you can either clone the repository with *git*:\n\n      git clone git@github.com/UNC-CECL/cascade\n\nor download a [zip file](https://github.com/UNC-CECL/CASCADE/archive/refs/heads/main.zip):\n\n      curl -OL https://github.com/UNC-CECL/CASCADE/archive/refs/heads/main.zip\n\nOnce you have a copy of the source code, you can install it into your current\nenvironment,\n\n      pip install -e .\n\nWe use [nox] to automate routine maintenance tasks like running the tests,\nremoving lint, etc. Install [nox] with *pip*::\n\n      pip install nox\n\nWhen you're done making changes, you can now run [nox] to check that the tests\npass and that there isn't any lint:\n\n      nox -s test  # run the unit tests\n      nox -s test-notebooks  # test that the notebooks run successfully\n      nox -s lint  # find and, where possible, remove lint (black, flake8, etc.)\n\nTo run all of the above in a single command:\n\n      nox\n\n[nox]: https://nox.thea.codes/\n\n## Example simulations\nFor a more complete set of example model runs and description of module functionality, we direct the use to the examples\nprovided in `notebooks`.\n\nExample (default) data inputs for cascade are provided in the `data` directory:\n```\nfrom cascade.cascade import Cascade\n\ndatadir = \"data/\"\n```\nTo initialize an instance of *cascade* with no human dynamics, 3 barrier segments (each 500-m long), and\ndefault *barrier3d* and *brie* parameters:\n```\ncascade = Cascade(\n    datadir,\n    name=\"no_human_dynamics_3_barrier_segments\",\n    alongshore_section_count=3,\n    roadway_management_module=False,\n    alongshore_transport_module=True,\n    beach_nourishment_module=False,\n    community_economics_module=False,\n)\n```\nTo initialize an instance of *cascade* with roadway barrier management on 1 barrier segment:\n```\ncascade = Cascade(\n    datadir,\n    name=\"roadway_mgmt_1_barrier_segments\",\n    alongshore_section_count=1,\n    roadway_management_module=True,\n    alongshore_transport_module=False,\n    beach_nourishment_module=False,\n    community_economics_module=False,\n)\n```\nTo initialize *cascade* with community barrier management on 1 barrier segment:\n```\ncascade = Cascade(\n    datadir,\n    name=\"community_mgmt_1_barrier_segments\",\n    alongshore_section_count=1,\n    roadway_management_module=False,\n    alongshore_transport_module=False,\n    beach_nourishment_module=True,\n    community_economics_module=False,\n)\n```\nOnce initialized, a *cascade* time loop can be completed as follows:\n```\nfor time_step in range(cascade.time_step_count - 1):\n    cascade.update()\n    if cascade.b3d_break:\n        break\n```\n\n# Credits\n\n## Development Leads\n\n* Katherine Anarde <kanarde@ncsu.edu>\n\n## Contributors\n\n* Eric Hutton <mcflugen@gmail.com>\n* Zachary Williams <zachary.c.williams@duke.edu>\n\n# Changelog for CASCADE\n\n## 0.1.1 (2023-03-21)\n\n- Added additional tests for the ``rebuild_dunes`` function that uses that new\n  *numpy* interpolator, ``RegularGridInterpolator``.\n  (`#36 <https://github.com/UNC-CECL/cascade/issues/36>`_)\n\n\n## 0.1.0 (2023-03-17)\n\n- This is the version of *cascade* used for the simulations in \"The Future of\n  Developed Barrier Systems: Pathways Toward Uninhabitability, Drowning, and\n  Rebound\" by Anarde et al., (in review).\n",
    "bugtrack_url": null,
    "license": "# The MIT License (MIT)  Copyright (c) `2023` `Katherine Anarde`  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "The CoAStal Community-lAnDscape Evolution (CASCADE) model",
    "version": "0.1.1",
    "split_keywords": [
        "barrier islands",
        "coastal management",
        "economics",
        "overwash",
        "sea level rise"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "241a0a146752d084186c65fa4a864e462d0b5896d67ac427c03502978c16cb02",
                "md5": "27490c6e36891454921c991ccb926162",
                "sha256": "508af115b948a24ee72a4967e932745b64864344aab4bc555c0527baece84b75"
            },
            "downloads": -1,
            "filename": "coastal-cascade-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "27490c6e36891454921c991ccb926162",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 480673,
            "upload_time": "2023-03-21T15:30:11",
            "upload_time_iso_8601": "2023-03-21T15:30:11.589688Z",
            "url": "https://files.pythonhosted.org/packages/24/1a/0a146752d084186c65fa4a864e462d0b5896d67ac427c03502978c16cb02/coastal-cascade-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-21 15:30:11",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "coastal-cascade"
}
        
Elapsed time: 0.04756s