diff --git a/.credits.toml b/.credits.toml index 9dad87887b..2f5d45f02e 100644 --- a/.credits.toml +++ b/.credits.toml @@ -43,6 +43,17 @@ aliases = [ alternate_emails = [ ] +[[tool.landlab.credits.author]] +name = 'Annie Thompson' +email = 'ann.anwei.thompson@gmail.com' +aliases = [ + 'annie', +] +alternate_emails = [ + '100159358+anweiii@users.noreply.github.com', +] +github = 'anweiii' + [[tool.landlab.credits.author]] name = 'Benjamin Campforts' email = 'benjamincampforts@gmail.com' @@ -51,9 +62,18 @@ aliases = [ ] alternate_emails = [ 'bca@Benjamins-MacBook-Pro.local', + 'bca@benjamins-mbp.kpn', ] github = 'BCampforts' +[[tool.landlab.credits.author]] +name = 'Berkan M' +email = '49427416+BerkM125@users.noreply.github.com' +aliases = [ +] +alternate_emails = [ +] + [[tool.landlab.credits.author]] name = 'Charlie Shobe' email = 'cmshobe@email.wm.edu' @@ -361,6 +381,14 @@ aliases = [ alternate_emails = [ ] +[[tool.landlab.credits.author]] +name = 'pankajiitkgp' +email = 'pankajmkd@gmail.com' +aliases = [ +] +alternate_emails = [ +] + [[tool.landlab.credits.author]] name = 'pre-commit-ci[bot]' email = '66853113+pre-commit-ci[bot]@users.noreply.github.com' diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index b1f0a24b3c..6c4d8968e5 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,13 +24,21 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v4 + - uses: conda-incubator/setup-miniconda@v3 with: - python-version: 3.11 + python-version: 3.12 + miniforge-variant: Miniforge3 + miniforge-version: latest + auto-update-conda: true + + - name: install and check pandoc + run: | + conda install pandoc -c conda-forge + pandoc --help + pandoc --version - name: Install dependencies run: pip install nox - name: Build documentation - run: nox -s build-docs + run: nox -s docs-build diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml deleted file mode 100644 index 276360865a..0000000000 --- a/.github/workflows/prerelease.yml +++ /dev/null @@ -1,131 +0,0 @@ -name: TestPyPI - -on: - push: - tags: - - 'v[0-9]+.[0-9]+.[0-9]+[ab][0-9]+' - -jobs: - - build-wheels: - name: Build wheels on ${{ matrix.cibw-only }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - # Linux x86_64 - - cibw-only: "cp310-manylinux_x86_64" - os: "ubuntu-latest" - - cibw-only: "cp311-manylinux_x86_64" - os: "ubuntu-latest" - - cibw-only: "cp312-manylinux_x86_64" - os: "ubuntu-latest" - - # Linux aarch64 - - cibw-only: "cp310-manylinux_aarch64" - os: "ubuntu-latest" - - cibw-only: "cp311-manylinux_aarch64" - os: "ubuntu-latest" - - cibw-only: "cp312-manylinux_aarch64" - os: "ubuntu-latest" - - # Mac x86_64 - - cibw-only: "cp310-macosx_x86_64" - os: "macos-latest" - - cibw-only: "cp311-macosx_x86_64" - os: "macos-latest" - - cibw-only: "cp312-macosx_x86_64" - os: "macos-latest" - - # Mac arm64 - - cibw-only: "cp310-macosx_arm64" - os: "macos-latest" - - cibw-only: "cp311-macosx_arm64" - os: "macos-latest" - - cibw-only: "cp312-macosx_arm64" - os: "macos-latest" - - # Windows 64bit - - cibw-only: "cp310-win_amd64" - os: "windows-latest" - - cibw-only: "cp311-win_amd64" - os: "windows-latest" - - cibw-only: "cp312-win_amd64" - os: "windows-latest" - - steps: - - uses: actions/checkout@v4 - - - name: Use Python 3.10 - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - - name: Set up QEMU # Needed to build aarch64 wheels - if: runner.os == 'Linux' - uses: docker/setup-qemu-action@v3 - with: - platforms: all - - - name: Print build identifiers - run: | - python -m pip install cibuildwheel==2.11.4 - python -m cibuildwheel --only ${{ matrix.cibw-only }} --print-build-identifiers - - - name: Build wheels - uses: pypa/cibuildwheel@v2.17.0 - with: - only: ${{ matrix.cibw-only }} - - - uses: actions/upload-artifact@v3 - with: - name: pypi-artifacts - path: ./wheelhouse/*.whl - - build-sdist: - name: Build source distribution - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Build sdist - run: pipx run build --sdist - - - uses: actions/upload-artifact@v3 - with: - name: pypi-artifacts - path: dist/*.tar.gz - - show-artifacts: - needs: ["build-wheels", "build-sdist"] - name: "Show artifacts" - runs-on: ubuntu-latest - steps: - - uses: actions/download-artifact@v3 - with: - name: pypi-artifacts - path: ${{ github.workspace }}/dist - - - shell: bash - run: | - ls -l ${{ github.workspace }}/dist - - publish-to-test-pypi: - needs: ["build-wheels", "build-sdist"] - name: "Publish to TestPyPI" - runs-on: ubuntu-latest - - steps: - - uses: actions/download-artifact@v3 - with: - name: pypi-artifacts - path: ${{ github.workspace }}/dist - - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: __token__ - password: ${{ secrets.TEST_PYPI_API_TOKEN }} - repository_url: 'https://test.pypi.org/legacy/' - skip_existing: true - print_hash: true - verify_metadata: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index ef1640dc7d..0000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,131 +0,0 @@ -name: PyPI - -on: - push: - tags: - - 'v[0-9]+.[0-9]+.[0-9]+' - - '!v[0-9]+.[0-9]+.[0-9]+[ab][0-9]+' - - -jobs: - build-wheels: - name: Build wheels on ${{ matrix.cibw-only }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - # Linux x86_64 - - cibw-only: "cp310-manylinux_x86_64" - os: "ubuntu-latest" - - cibw-only: "cp311-manylinux_x86_64" - os: "ubuntu-latest" - - cibw-only: "cp312-manylinux_x86_64" - os: "ubuntu-latest" - - # Linux aarch64 - - cibw-only: "cp310-manylinux_aarch64" - os: "ubuntu-latest" - - cibw-only: "cp311-manylinux_aarch64" - os: "ubuntu-latest" - - cibw-only: "cp312-manylinux_aarch64" - os: "ubuntu-latest" - - # Mac x86_64 - - cibw-only: "cp310-macosx_x86_64" - os: "macos-latest" - - cibw-only: "cp311-macosx_x86_64" - os: "macos-latest" - - cibw-only: "cp312-macosx_x86_64" - os: "macos-latest" - - # Mac arm64 - - cibw-only: "cp310-macosx_arm64" - os: "macos-latest" - - cibw-only: "cp311-macosx_arm64" - os: "macos-latest" - - cibw-only: "cp312-macosx_arm64" - os: "macos-latest" - - # Windows 64bit - - cibw-only: "cp310-win_amd64" - os: "windows-latest" - - cibw-only: "cp311-win_amd64" - os: "windows-latest" - - cibw-only: "cp312-win_amd64" - os: "windows-latest" - - steps: - - uses: actions/checkout@v4 - - - name: Use Python 3.10 - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - - name: Set up QEMU # Needed to build aarch64 wheels - if: runner.os == 'Linux' - uses: docker/setup-qemu-action@v3 - with: - platforms: all - - - name: Print build identifiers - run: | - python -m pip install cibuildwheel==2.11.4 - python -m cibuildwheel --only ${{ matrix.cibw-only }} --print-build-identifiers - - - name: Build wheels - uses: pypa/cibuildwheel@v2.17.0 - with: - only: ${{ matrix.cibw-only }} - - - uses: actions/upload-artifact@v3 - with: - name: pypi-artifacts - path: ./wheelhouse/*.whl - - build-sdist: - name: Build source distribution - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Build sdist - run: pipx run build --sdist - - - uses: actions/upload-artifact@v3 - with: - name: pypi-artifacts - path: dist/*.tar.gz - - show-artifacts: - needs: ["build-wheels", "build-sdist"] - name: "Show artifacts" - runs-on: ubuntu-latest - steps: - - uses: actions/download-artifact@v3 - with: - name: pypi-artifacts - path: ${{ github.workspace }}/dist - - - shell: bash - run: | - ls -l ${{ github.workspace }}/dist - - publish-to-pypi: - needs: ["build-wheels", "build-sdist"] - name: "Publish to PyPI" - runs-on: ubuntu-latest - - steps: - - uses: actions/download-artifact@v3 - with: - name: pypi-artifacts - path: ${{ github.workspace }}/dist - - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} - skip_existing: true - print_hash: true - verify_metadata: false diff --git a/.github/workflows/test-notebooks.yml b/.github/workflows/test-notebooks.yml deleted file mode 100644 index 21f7a53a59..0000000000 --- a/.github/workflows/test-notebooks.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Notebooks - -on: [push, pull_request] - -concurrency: - group: ${{ github.ref }}-${{ github.workflow }} - cancel-in-progress: true - -jobs: - build-and-test: - name: Check notebooks - # We want to run on external PRs, but not on our own internal PRs as they'll be run - # by the push to the branch. Without this if check, checks are duplicated since - # internal PRs match both the push and pull_request events. - if: - github.event_name == 'push' || github.event.pull_request.head.repo.full_name != - github.repository - - runs-on: ${{ matrix.os }} - - defaults: - run: - shell: bash -l {0} - - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.12"] - markers: ["slow", "not slow"] - - steps: - - uses: actions/checkout@v4 - - - uses: conda-incubator/setup-miniconda@v2 - with: - python-version: ${{ matrix.python-version }} - miniforge-variant: Miniforge3 - miniforge-version: latest - auto-update-conda: true - - - name: Install compilers - run: | - conda install c-compiler cxx-compiler - - - name: Show conda installation info - run: | - conda info - conda list - - - name: Test jupyter notebooks - env: - OPENTOPOGRAPHY_API_KEY: ${{ secrets.OPENTOPOGRAPHY_API_KEY }} - MPLBACKEND: "Agg" - run: | - pip install nox - nox --verbose -s test-notebooks --force-pythons="${{ matrix.python-version }}" -- -m "${{ matrix.markers }}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6e5e6aea86..9d0ca8d90f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,79 +1,369 @@ name: Test -on: [push, pull_request] +on: + - push + - pull_request concurrency: group: ${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true jobs: - build-and-test: - name: Run the tests - # We want to run on external PRs, but not on our own internal PRs as they'll be run - # by the push to the branch. Without this if check, checks are duplicated since - # internal PRs match both the push and pull_request events. - if: - github.event_name == 'push' || github.event.pull_request.head.repo.full_name != - github.repository + check-tag: + # Run on external PRs, but not on internal PRs, to avoid duplicate runs + if: | + github.event_name == 'push' || + github.event.pull_request.head.repo.full_name != github.repository + + runs-on: ubuntu-latest + outputs: + publish_url: ${{ steps.check-publish.outputs.publish_url }} + steps: + - name: Check if this is a release/prerelease + id: check-publish + run: | + tag_name="${GITHUB_REF#refs/tags/}" + if [[ "$tag_name" =~ ^v[0-9]+\.[0-9]+\.[0-9]+[ab][0-9]+$ ]]; then + publish_url="https://test.pypi.org/legacy/" + elif [[ "$tag_name" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + publish_url="https://upload.pypi.org/legacy/" + else + publish_url="none" + fi + echo "publish_url=$publish_url" >> "$GITHUB_OUTPUT" + echo "tag_name=$tag_name" + echo "publish_url=$publish_url" + + build-sdist: + name: Build source distribution + needs: check-tag + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Build sdist + run: pipx run build --sdist + + - uses: actions/upload-artifact@v4 + with: + name: build-sdist + path: ${{ github.workspace }}/dist/*.tar.gz + + # Until GA has native aarch64 runners, this step is extremely + # slow so we run it as a separate job and hope if finishes + # around the same time as everything else. + build-aarch64: + needs: check-tag + name: Build aarch64 wheels on ${{ matrix.cibw-only }} runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - cibw-only: "cp310-manylinux_aarch64" + os: "ubuntu-latest" + - cibw-only: "cp311-manylinux_aarch64" + os: "ubuntu-latest" + - cibw-only: "cp312-manylinux_aarch64" + os: "ubuntu-latest" + steps: + - uses: actions/checkout@v4 + - name: Use Python 3.12 + uses: actions/setup-python@v5 + with: + python-version: '3.12' - defaults: - run: - shell: bash -l {0} + # Needed to build aarch64 wheels + - name: Set up QEMU + if: runner.os == 'Linux' + uses: docker/setup-qemu-action@v3 + with: + platforms: all + + - name: Print build identifiers + run: | + python -m pip install cibuildwheel + python -m cibuildwheel --only ${{ matrix.cibw-only }} --print-build-identifiers + - name: Build wheels + if: ${{ startsWith(needs.check-tag.outputs.publish_url, 'http') }} + uses: pypa/cibuildwheel@v2.21.2 + with: + only: ${{ matrix.cibw-only }} + + - uses: actions/upload-artifact@v4 + with: + name: build-wheels-${{ matrix.os }}-${{ matrix.cibw-only }} + path: ${{ github.workspace }}/wheelhouse/*.whl + if-no-files-found: ignore + + build-wheels: + name: Build wheels on ${{ matrix.cibw-only }} + needs: check-tag + runs-on: ${{ matrix.os }} strategy: + fail-fast: false + matrix: + include: + # Linux x86_64 + - cibw-only: "cp310-manylinux_x86_64" + os: "ubuntu-latest" + - cibw-only: "cp311-manylinux_x86_64" + os: "ubuntu-latest" + - cibw-only: "cp312-manylinux_x86_64" + os: "ubuntu-latest" + + # Mac x86_64 + - cibw-only: "cp310-macosx_x86_64" + os: "macos-13" + - cibw-only: "cp311-macosx_x86_64" + os: "macos-13" + - cibw-only: "cp312-macosx_x86_64" + os: "macos-13" + + # Mac arm64 + - cibw-only: "cp310-macosx_arm64" + os: "macos-14" + - cibw-only: "cp311-macosx_arm64" + os: "macos-14" + - cibw-only: "cp312-macosx_arm64" + os: "macos-14" + + # Windows 64bit + - cibw-only: "cp310-win_amd64" + os: "windows-latest" + - cibw-only: "cp311-win_amd64" + os: "windows-latest" + - cibw-only: "cp312-win_amd64" + os: "windows-latest" + + steps: + - uses: actions/checkout@v4 + - name: Use Python 3.12 + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Print build identifiers + run: | + python -m pip install cibuildwheel + python -m cibuildwheel --only ${{ matrix.cibw-only }} --print-build-identifiers + + - name: Install openmp + if: runner.os == 'macOS' + run: | + curl -O https://mac.r-project.org/openmp/openmp-13.0.0-darwin21-Release.tar.gz + sudo tar fvxz openmp-13.0.0-darwin21-Release.tar.gz -C / + + - name: Build wheels + uses: pypa/cibuildwheel@v2.21.2 + with: + only: ${{ matrix.cibw-only }} + + - uses: actions/upload-artifact@v4 + with: + name: build-wheels-${{ matrix.os }}-${{ matrix.cibw-only }} + path: ${{ github.workspace }}/wheelhouse/*.whl + + test-landlab: + needs: build-wheels + name: Run the tests + + strategy: + fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] python-version: ["3.10", "3.11", "3.12"] pytest-marker: ["slow", "not slow"] - fail-fast: false + + runs-on: ${{ matrix.os }} + + defaults: + run: + shell: bash -l {0} steps: - uses: actions/checkout@v4 - - - uses: conda-incubator/setup-miniconda@v2 + - uses: conda-incubator/setup-miniconda@v3 with: python-version: ${{ matrix.python-version }} miniforge-variant: Miniforge3 miniforge-version: latest auto-update-conda: true - - name: Install compilers - run: | - conda install c-compiler cxx-compiler - - - name: Show conda installation info - run: | - conda info - conda list - - - name: Install and test richdem engine - run: | - conda install richdem "numpy<2" -c conda-forge - python -c 'import _richdem' + - uses: actions/download-artifact@v4 + name: Download build artifacts + with: + pattern: "build-*" + merge-multiple: true + path: ${{ github.workspace }}/dist - name: Test env: HYPOTHESIS_PROFILE: "ci" + MPLBACKEND: "Agg" run: | pip install nox - nox -s test --force-pythons="${{ matrix.python-version }}" -- -m "${{ matrix.pytest-marker }}" + nox --verbose -s test \ + --force-pythons=${{ matrix.python-version }} \ + -- -m '${{ matrix.pytest-marker }}' --path=dist - name: Coveralls - if: matrix.os == 'ubuntu-latest' + if: ${{ matrix.os == 'ubuntu-latest' }} uses: AndreMiras/coveralls-python-action@develop with: parallel: true flag-name: py${{ matrix.python-version }}-${{ matrix.os }}-${{ matrix.pytest-marker }} debug: true + test-notebooks: + needs: build-wheels + name: Run the notebook tests + + strategy: + fail-fast: false + matrix: + os: [macos-latest, windows-latest] + python-version: ["3.12"] + pytest-marker: ["slow", "not slow"] + + runs-on: ${{ matrix.os }} + + defaults: + run: + shell: bash -l {0} + + steps: + - uses: actions/checkout@v4 + - uses: conda-incubator/setup-miniconda@v3 + with: + python-version: ${{ matrix.python-version }} + miniforge-variant: Miniforge3 + miniforge-version: latest + auto-update-conda: true + + - uses: actions/download-artifact@v4 + name: Download build artifacts + with: + pattern: "build-*" + merge-multiple: true + path: ${{ github.workspace }}/dist + + - name: Test + env: + OPENTOPOGRAPHY_API_KEY: ${{ secrets.OPENTOPOGRAPHY_API_KEY }} + MPLBACKEND: "module://matplotlib_inline.backend_inline" + PYTEST_ADDOPTS: "--overwrite" + run: | + pip install matplotlib_inline + pip install nox + nox --verbose -s test-notebooks \ + --force-pythons=${{ matrix.python-version }} \ + -- -m '${{ matrix.pytest-marker }}' --path=dist + + - name: Find executed notebooks + run: | + for f in $(git diff --name-only); do + mkdir -p executed/$(dirname $f); + cp $f executed/$(dirname $f); + done + ls -R executed/ + + - name: Upload executed notebooks + if: ${{ matrix.os == 'macos-latest' }} + uses: actions/upload-artifact@v4 + with: + name: notebooks-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.pytest-marker }} + path: executed/ + overwrite: true + + docs: + needs: test-notebooks + strategy: + matrix: + os: [macos-latest] + python-version: ["3.12"] + + runs-on: ${{ matrix.os }} + + defaults: + run: + shell: bash -l {0} + + steps: + - uses: actions/checkout@v4 + - uses: conda-incubator/setup-miniconda@v3 + with: + python-version: ${{ matrix.python-version }} + miniforge-variant: Miniforge3 + miniforge-version: latest + auto-update-conda: true + + - uses: actions/download-artifact@v4 + name: Download build artifact + with: + pattern: notebooks-* + merge-multiple: true + + - name: Display structure of downloaded files + run: ls -R + + - name: install and check pandoc + run: | + conda install pandoc -c conda-forge + pandoc --help + pandoc --version + + - name: Build documentation + run: | + pip install nox + pip install -r requirements/docs.txt + nox -s docs-build --no-venv + + - name: Create zip + run: zip -r docs.zip build/html + + - name: Upload docs + uses: actions/upload-artifact@v4 + with: + name: docs-${{ matrix.os }}-${{ matrix.python-version }} + path: docs.zip + coveralls_finish: - needs: build-and-test + needs: test-landlab runs-on: ubuntu-latest + steps: - name: Coveralls Finished uses: AndreMiras/coveralls-python-action@develop with: parallel-finished: true debug: true + + publish: + needs: + - check-tag + - test-landlab + - test-notebooks + - build-sdist + - build-aarch64 + name: "Publish to PyPI/TestPyPI" + runs-on: ubuntu-latest + + permissions: + id-token: write + + steps: + - uses: actions/download-artifact@v4 + with: + pattern: "build-*" + merge-multiple: true + path: ${{ github.workspace }}/dist + - uses: pypa/gh-action-pypi-publish@release/v1 + if: ${{ startsWith(needs.check-tag.outputs.publish_url, 'http') }} + with: + repository-url: ${{ needs.check-tag.outputs.publish_url }} + skip-existing: true + print-hash: true + verify-metadata: false diff --git a/.mailmap b/.mailmap index 779534a2e4..0902f428b5 100644 --- a/.mailmap +++ b/.mailmap @@ -23,10 +23,17 @@ Allison Pfeiffer pfeiffea Amanda Manaster Amanda Manaster Andy Wickert Andy Wickert Andy Wickert awickert +Annie Thompson Annie Thompson <100159358+anweiii@users.noreply.github.com> +Annie Thompson Annie Thompson +Annie Thompson annie <100159358+anweiii@users.noreply.github.com> +Annie Thompson annie Benjamin Campforts Benjamin +Benjamin Campforts Benjamin Benjamin Campforts Benjamin Benjamin Campforts Benjamin Campforts +Benjamin Campforts Benjamin Campforts Benjamin Campforts Benjamin Campforts +Berkan M <49427416+BerkM125@users.noreply.github.com> Berkan M <49427416+BerkM125@users.noreply.github.com> Charlie Shobe Charlie Shobe Charlie Shobe Charlie Shobe Charlie Shobe cmshobe @@ -194,5 +201,6 @@ Sebastien Lenard sebastien-lenard <91671955+sebasti Sebastien Lenard sebastien-lenard Shelby Ahrendt <36043125+shelbyahrendt@users.noreply.github.com> Shelby Ahrendt <36043125+shelbyahrendt@users.noreply.github.com> dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +pankajiitkgp pankajiitkgp pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> root root diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7aae69df38..ff2c496c2d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -60,6 +60,12 @@ repos: - flake8-comprehensions - flake8-simplify +- repo: https://github.com/mcflugen/heartfelt-hooks + rev: v1.3.3 + hooks: + - id: check-whitespace + - id: check-heading-levels + - repo: https://github.com/nbQA-dev/nbQA rev: 1.8.7 hooks: @@ -70,7 +76,7 @@ repos: args: ["--extend-ignore=E402"] exclude: | (?x)^( - notebooks/tutorials/making_components/making_components.ipynb + docs/source/tutorials/making_components/making_components.ipynb ) - repo: https://github.com/kynan/nbstripout @@ -111,6 +117,12 @@ repos: - id: forbid-new-submodules - id: mixed-line-ending - id: trailing-whitespace + - id: file-contents-sorter + files: | + (?x)^( + cython-files.txt| + .*requirements(-\w+)?.(in|txt) + ) - repo: https://github.com/regebro/pyroma rev: "4.2" diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 2f80b844dc..43abeffae7 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -3,7 +3,12 @@ version: 2 build: os: ubuntu-22.04 tools: - python: "3.11" + python: "3.12" + jobs: + pre_build: + - pip install nox + - nox -s docs-build-api + - nox -s docs-build-gallery-index sphinx: builder: html @@ -13,5 +18,3 @@ sphinx: python: install: - requirements: requirements/docs.txt - - method: pip - path: . diff --git a/AUTHORS.md b/AUTHORS.md new file mode 100644 index 0000000000..731f06e816 --- /dev/null +++ b/AUTHORS.md @@ -0,0 +1,57 @@ +# Credits + +## Development Leads + +- [Greg Tucker](https://github.com/gregtucker) +- [Nicole Gasparini](https://github.com/nicgaspar) +- [Erkan Istanbulluoglu](https://github.com/erkanistan) +- [Daniel Hobley](https://github.com/SiccarPoint) +- [Sai S. Nudurupati](https://github.com/saisiddu) +- [Jordan Adams](https://github.com/jadams15) +- [Eric Hutton](https://github.com/mcflugen) +- [Jenny Knuth](https://github.com/jennyknuth) +- [Katy Barnhart](https://github.com/kbarnhart) +- [Margaux Mouchene](https://github.com/margauxmouchene) +- [Christina Bandaragoda](https://github.com/ChristinaB) +- [Nathan Lyons](https://github.com/nathanlyons) + +## Contributors + + + +- [Eric Hutton](https://github.com/mcflugen) +- [Katy Barnhart](https://github.com/kbarnhart) +- [Dan Hobley](https://github.com/SiccarPoint) +- [Greg Tucker](https://github.com/gregtucker) +- [Jordan Adams](https://github.com/jadams15) +- [Sai Nudurupati](https://github.com/saisiddu) +- [Nicole M Gasparini](https://github.com/nicgaspar) +- [Charlie Shobe](https://github.com/cmshobe) +- [David Litwin](https://github.com/DavidLitwin) +- [Laurent Roberge](https://github.com/loroberge) +- [Sebastien Lenard](https://github.com/sebastien-lenard) +- [Ronda Strauch](https://github.com/RondaStrauch) +- [Benjamin Campforts](https://github.com/BCampforts) +- [Margaux Mouchene](https://github.com/margauxmouchene) +- [Jenny Knuth](https://github.com/jennyknuth) +- [Berkan M](https://github.com/BerkM125) +- [Jeffrey Keck](https://github.com/keckje) +- [Nathan Lyons](https://github.com/nathanlyons) +- [Allison Pfeiffer](https://github.com/pfeiffea) +- [Rachel Glade](https://github.com/Glader011235) +- [Annie Thompson](https://github.com/anweiii) +- [Giuseppecipolla95](https://github.com/Giuseppecipolla95) +- [Dylan Ward](https://github.com/ddoubleprime) +- [Amanda Manaster](https://github.com/amanaster2) +- [Mark Piper](https://github.com/mdpiper) +- [Jay Hariharan](https://github.com/elbeejay) +- [Shelby Ahrendt](https://github.com/shelbyahrendt) +- [Abby Langston](https://github.com/alangston) +- [Andy Wickert](https://github.com/awickert) +- [Christopher Sheehan](https://github.com/Sheehace) +- [Francis Rengers](https://github.com/frengers) +- [Josh Wolpert](https://github.com/josh-wolpert) +- [Kristen Thyng](https://github.com/kthyng) +- [Muneer Ahammad](https://github.com/muneerVT) +- [Sarah Lundell](https://github.com/slundell123) +- [pankajiitkgp](https://github.com/pankajiitkgp) diff --git a/AUTHORS.rst b/AUTHORS.rst deleted file mode 100644 index cbb27f8953..0000000000 --- a/AUTHORS.rst +++ /dev/null @@ -1,58 +0,0 @@ -======= -Credits -======= - -Development Leads ------------------ - -- `Greg Tucker `_ -- `Nicole Gasparini `_ -- `Erkan Istanbulluoglu `_ -- `Daniel Hobley `_ -- `Sai S. Nudurupati `_ -- `Jordan Adams `_ -- `Eric Hutton `_ -- `Jenny Knuth `_ -- `Katy Barnhart `_ -- `Margaux Mouchene `_ -- `Christina Bandaragoda `_ -- `Nathan Lyons `_ - -Contributors ------------- - -.. credits-roll start-author-list - -* `Eric Hutton `_ -* `Katy Barnhart `_ -* `Dan Hobley `_ -* `Greg Tucker `_ -* `Jordan Adams `_ -* `Sai Nudurupati `_ -* `Nicole M Gasparini `_ -* `Charlie Shobe `_ -* `David Litwin `_ -* `Sebastien Lenard `_ -* `Ronda Strauch `_ -* `Margaux Mouchene `_ -* `Jenny Knuth `_ -* `Benjamin Campforts `_ -* `Nathan Lyons `_ -* `Jeffrey Keck `_ -* `Rachel Glade `_ -* `Laurent Roberge `_ -* `Giuseppecipolla95 `_ -* `Dylan Ward `_ -* `Amanda Manaster `_ -* `Allison Pfeiffer `_ -* `Mark Piper `_ -* `Jay Hariharan `_ -* `Shelby Ahrendt `_ -* `Abby Langston `_ -* `Andy Wickert `_ -* `Christopher Sheehan `_ -* `Francis Rengers `_ -* `Josh Wolpert `_ -* `Kristen Thyng `_ -* `Muneer Ahammad `_ -* `Sarah Lundell `_ diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000000..b08ed5d7a9 --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,10349 @@ +# Release Notes + +```{towncrier-draft-entries} Not yet released +``` + + + + + +## 2.9.1 (2024-10-10) + + +### ✨ New Components + +- Added shared stream power component that models mixed bedrock-alluvial erosion in channels. [#1976](https://github.com/landlab/landlab/issues/1976) + + +### 🍰 New Features + +- Added new, faster, aggregator functions for the {class}`~.DataRecord`. These new functions, + {func}`~.aggregate_items_at_link_count`, {func}`~.aggregate_items_at_link_sum`, and + {func}`~.aggregate_items_at_link_mean` are written in *cython* and are several orders + of magnitude faster than the previous method of using *merge*/*group_by*. [#1648](https://github.com/landlab/landlab/issues/1648) +- Improved perfomance when creating graphs by using openmp for + parallelism. [#1940](https://github.com/landlab/landlab/issues/1940) +- Added {func}`~.esri_ascii.dump` and {func}`~.esri_ascii.load` functions for reading and writing + grids to/from ESRI ASCII format. [#1948](https://github.com/landlab/landlab/issues/1948) +- Added transport dependent bed material abrasion to the {class}`~.NetworkSedimentTransporter`, as in Pfeiffer et al. (2022). [#1952](https://github.com/landlab/landlab/issues/1952) + + +### 🛠️ Bug Fixes + +- Fixed a bug in {class}`~.NetworkSedimentTransporter` where porosity was + corrected for twice in calculated topographic change at nodes. [#1921](https://github.com/landlab/landlab/issues/1921) +- Update {class}`~.ConcentrationTrackerForDiffusion` run methods to to solve two situations that cause the mass balance to fail. [#1967](https://github.com/landlab/landlab/issues/1967) +- Fixed an issue when using :func:`~.jaggedarray.unravel` when using + an `int32` array for offsets. [#2015](https://github.com/landlab/landlab/issues/2015) + + +### 📖 Documentation Enhancements + +- Significantly reduced the amount of time needed to build the documentation. [#1987](https://github.com/landlab/landlab/issues/1987) +- Autogenerate Landlab's API reference docs using *sphinx-apidoc*. [#1989](https://github.com/landlab/landlab/issues/1989) +- Cleaned up the documentation by removing obsolete documentation and moving + posters and presentations to figshare. [#1993](https://github.com/landlab/landlab/issues/1993) +- Added a notebook gallery that shows all of the *Landlab* tutorial and teaching + notebooks on the documentation site. [#1994](https://github.com/landlab/landlab/issues/1994) +- Converted documentation files from ReStructuredText to MyST. [#2003](https://github.com/landlab/landlab/issues/2003) + + +### 🔩 Other Changes and Additions + +- Speed up the Flexure component through parallelism using openmp. [#1660](https://github.com/landlab/landlab/issues/1660) +- Provide effective sediment erosion and deposition rates for {class}`~.SpaceLargeScaleEroder`. [#1931](https://github.com/landlab/landlab/issues/1931) +- Require ``numpy<2`` temporarily while we upgrade to support ``numpy>=2``. [#1945](https://github.com/landlab/landlab/issues/1945) +- Updated *Landlab* to be compatible with *numpy* v2. [#1956](https://github.com/landlab/landlab/issues/1956) +- Enhanced the continuous integration workflows to automatically + cancel any ongoing tests when new changes are pushed to the same branch. [#1971](https://github.com/landlab/landlab/issues/1971) +- Changed the Landlab package to a src-layout. [#1985](https://github.com/landlab/landlab/issues/1985) +- Decreased the run time of the continuous integraion tests by about a factor of two. [#1995](https://github.com/landlab/landlab/issues/1995) +- Moved the nbmake markers stored in the notebooks' metadata into their own + namespace for newer versions of nbmake. [#1996](https://github.com/landlab/landlab/issues/1996) +- Added a configurable parameter to the `landlab authors` command that + allows for a user-specified start string for the credits list in the + authors file. [#2005](https://github.com/landlab/landlab/issues/2005) +- Changed the changelog and towncrier to use myst files. [#2006](https://github.com/landlab/landlab/issues/2006) +- Modified *Landlab*'s test workflow to run the tests using wheels built + using cibuildwheel. [#2012](https://github.com/landlab/landlab/issues/2012) +- Combined the `release` and prerelease `workflows` with the `test` + workflow. [#2013](https://github.com/landlab/landlab/issues/2013) + +## 2.8.0 (2024-05-12) + +### ✨ New Components + +- Added new component {class}`~.ConcentrationTrackerForDiffusion` + for tracking hillslope sediment properties. ([#1662](https://github.com/landlab/landlab/issues/1662)) +- Added new component {class}`~.MassWastingRunout` + for predicting the hazard extent, sediment transport and topographic change associated with the runout of a landslide. ([#1830](https://github.com/landlab/landlab/issues/1830)) + +### 🍰 New Features + +- Fixed the Radiation component by computing fields with ASCE standard formulas, added + increased test coverage for both field computations and standard unit testing. + Min, max, and avg daily temp are also three optional, newly added + user-defined arguments for the component. ([#1755](https://github.com/landlab/landlab/issues/1755)) +- Added a new grid type, {class}`~.IcosphereGlobalGrid` (plus underlying graph + machinery, etc.). ([#1808](https://github.com/landlab/landlab/issues/1808)) +- Added a new function, calc_net_face_flux_at_cell, that computes the + net flux of a quantity into each of a RasterModelGrid's cells. This + function uses openmp to parallelize its calculations. ([#1900](https://github.com/landlab/landlab/issues/1900)) +- Added a new *vtk* writer, `landlab.io.legacy_vtk.dump` that is + able to write *Landlab* grids that have three spatial coordinates. + This function is also able to write both the main grid (*nodes* and + *patches*) as well as the dual grid (*corners* and *cells*). ([#1932](https://github.com/landlab/landlab/issues/1932)) + +### 🛠️ Bug Fixes + +- Fixed a bug when ordering links at patches with patches composed of varying + numbers of links. ([#1807](https://github.com/landlab/landlab/issues/1807)) +- Fixed a bug where SpaceLargeScaleEroder deviates from analytical solution for mixed bedrock-alluvial river in a portion of the parameter space. ([#1901](https://github.com/landlab/landlab/issues/1901)) +- Fixed a bug that caused a `ModuleNotFoundError` for *pkg_config* on + Python 3.12. ([#1927](https://github.com/landlab/landlab/issues/1927)) + +### 📖 Documentation Enhancements + +- Update list of publications in USEDBY.rst. ([#1928](https://github.com/landlab/landlab/issues/1928)) + +### 🔩 Other Changes and Additions + +- Removed the broken `map_link_vector_to_nodes` method from + `ModelGrid`. As a replacement, use + {func}`~.map_link_vector_components_to_node_raster` for raster grids, and + {func}`~.map_link_vector_components_to_node_hex` for hex grids. ([#1786](https://github.com/landlab/landlab/issues/1786)) +- Fixed the path to the requirements file needed by *readthedocs*. ([#1797](https://github.com/landlab/landlab/issues/1797)) +- Fixed an issue that caused with the CI to fail when building *multidict* on + Mac and Python 3.12. ([#1850](https://github.com/landlab/landlab/issues/1850)) +- Fixed warnings caused by using xarray.Dataset.dims rather than + xarray.Dataset.sizes. ([#1910](https://github.com/landlab/landlab/issues/1910)) +- Added a list of Landlab's extensions to setup.py that must be + maintained manually. This replaces the old, and somewhat buggy, + method of conducting a recursive glob for pyx files. ([#1915](https://github.com/landlab/landlab/issues/1915)) +- Added a new linter, *cython-lint*, that checks for lint in cython + files. ([#1924](https://github.com/landlab/landlab/issues/1924)) +- Changed the *numpy* printing options from the legacy 1.13 format + to the latest, default, version. ([#1929](https://github.com/landlab/landlab/issues/1929)) +- Removed duplicate shapefile modules. ([#1933](https://github.com/landlab/landlab/issues/1933)) + +## 2.7.0 (2023-11-04) + +### ✨ New Components + +- Added new component {class}`~.GravelBedrockEroder` to model rock-cutting gravel rivers. ([#1505](https://github.com/landlab/landlab/issues/1505)) +- Added new component {class}`~.AdvectionSolverTVD` for advection using + a Total Variation Diminishing method. ([#1582](https://github.com/landlab/landlab/issues/1582)) + +### 📚 New Tutorial Notebooks + +- Added a tutorial notebook for the {class}`~.AdvectionSolverTVD` component. ([#1582](https://github.com/landlab/landlab/issues/1582)) + +### 🍰 New Features + +- Added two new mapping functions to assist numerical advection schemes: + {func}`~.map_node_to_link_linear_upwind` and {func}`~.map_node_to_link_lax_wendroff`. ([#1570](https://github.com/landlab/landlab/issues/1570)) +- Added {attr}`.RasterModelGrid.orientation_of_link` and {attr}`.HexModelGrid.orientation_of_link` + attributes to get orientation codes for links. ([#1573](https://github.com/landlab/landlab/issues/1573)) +- Added {attr}`.RasterModelGrid.parallel_links_at_link` and {attr}`.HexModelGrid.parallel_links_at_link` + attributes. ([#1576](https://github.com/landlab/landlab/issues/1576)) +- AdvectionSolverTVD can now handle advection of multiple fields ([#1632](https://github.com/landlab/landlab/issues/1632)) +- Refactor ListricKinematicExtender to use AdvectionSolverTVD ([#1635](https://github.com/landlab/landlab/issues/1635)) +- Add output function for legacy VTK files ([#1643](https://github.com/landlab/landlab/issues/1643)) +- Added an `rng` keyword to the {class}`~.NetworkSedimentTransporter` utilities + that allows a user to control the random number generator used. ([#1722](https://github.com/landlab/landlab/issues/1722)) +- Added an `alpha` keyword to {func}`~.plot.imshow_grid` that allows a user to set + the transparency value for image plots. ([#1735](https://github.com/landlab/landlab/issues/1735)) +- Added the ability for {class}`~.OverlandFlow` to accept an array + for the `rainfall_intensity` keyword. ([#1743](https://github.com/landlab/landlab/issues/1743)) + +### 🛠️ Bug Fixes + +- Fixed a bug that prevented the {class}`~.DrainageDensity` component from + working on hex grids. ([#1266](https://github.com/landlab/landlab/issues/1266)) +- Fixed a boundary condition issue on D8 flow accumulation in the {class}`~.PriorityFloodFlowRouter`. ([#1542](https://github.com/landlab/landlab/issues/1542)) +- Fixed broken link to header image in `notebooks/tutorials/syllabus.ipynb`. ([#1556](https://github.com/landlab/landlab/issues/1556)) +- Update obsolete function name in raster_gradients.calc_slope_at_node ([#1606](https://github.com/landlab/landlab/issues/1606)) +- Fixed a bug in {class}`~.SpaceLargeScaleEroder` where it would overwrite parts + of the *sediment\_\_influx* field with zeros. ([#1638](https://github.com/landlab/landlab/issues/1638)) +- Fixed a bug where the `colorbar_label` keyword of {func}`~.imshow.imshow_grid` + was being ignored for non-raster grids. ([#1654](https://github.com/landlab/landlab/issues/1654)) +- Fixed errors introduced with *argsort* from *numpy* v1.25. These were the result of + vectorized versions of the quicksort algorithm used on some architectures. ([#1670](https://github.com/landlab/landlab/issues/1670)) +- Fixed an issue with the agent based modeling tutorial notebooks that + caused a "too many values to unpack" error with *mesa* v2. ([#1674](https://github.com/landlab/landlab/issues/1674)) +- Fixed an issue with {class}`~.PriorityFloodFlowRouter` where flooded nodes were not updated properly. + This is fixed by setting the `flood_status_code` to 3 (i.e. `_FLOODED`) ([#1683](https://github.com/landlab/landlab/issues/1683)) +- Fixed a bug that caused an incorrect Python version to be used in *Landlab*'s + continuous integration tests. ([#1754](https://github.com/landlab/landlab/issues/1754)) + +### 📖 Documentation Enhancements + +- Added links in docs and README to open Landlab tutorials on EarthscapeHub. ([#1556](https://github.com/landlab/landlab/issues/1556)) +- Removed out-dated installation instructions from the documentation. ([#1592](https://github.com/landlab/landlab/issues/1592)) +- Add a tutorial notebook on bringing Landlab raster NetCDF output into Paraview for visualization and animation. ([#1646](https://github.com/landlab/landlab/issues/1646)) +- Fixed an error that caused the documentation build to fail with an error + saying that the documentation was not using `furo.css` as the stylesheet. ([#1696](https://github.com/landlab/landlab/issues/1696)) +- Add tutorial on bringing Landlab .obj output into Blender ([#1698](https://github.com/landlab/landlab/issues/1698)) +- Updated the installation instructions to include options to fetch dependencies + from, and only from, *conda-forge*. ([#1704](https://github.com/landlab/landlab/issues/1704)) +- Reformatted all *doctests* and *reStructuredText* *code-blocks* to conform + to [black](https://github.com/psf/black), giving the code across all of + our documentation a consistent format. To keep things formatted correctly, + added [blackdoc](https://github.com/keewis/blackdoc) to our linters ([#1785](https://github.com/landlab/landlab/issues/1785)) + +### 🔩 Other Changes and Additions + +- Removed the `on_diagonals` method from the {class}`~.LinearDiffuser` component. ([#1236](https://github.com/landlab/landlab/issues/1236)) +- Moved unversioned requirements into *requirements.in* files and pinned + requirements into *requirements.txt* files. ([#1546](https://github.com/landlab/landlab/issues/1546)) +- Set up [dependabot](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates) + to track and update dependencies. ([#1546](https://github.com/landlab/landlab/issues/1546)) +- Added pre-commit hooks for delinting the notebooks and removed newly-found + lint. ([#1585](https://github.com/landlab/landlab/issues/1585)) +- Changed the target branch for *dependabot* pull requests to *dependencies* + and added a GitHub action that automatically keeps the *dependencies* branch + up-to-date with *master*. ([#1602](https://github.com/landlab/landlab/issues/1602)) +- Added two new references to list of publications. ([#1603](https://github.com/landlab/landlab/issues/1603)) +- Added better error reporting and input validation for the LinearDiffser + component. ([#1607](https://github.com/landlab/landlab/issues/1607)) +- Added Cython 3.x (beta) to the build-system for compiling extension modules. ([#1639](https://github.com/landlab/landlab/issues/1639)) +- Fixed an issue with a missing package, *hypothesis*, not being installed when + the notebook tests were run through *nox*. ([#1644](https://github.com/landlab/landlab/issues/1644)) +- Added getters for several {class}`~.BedrockLandslider` input parameters. ([#1651](https://github.com/landlab/landlab/issues/1651)) +- Added getter for several {class}`~SpaceLargeScaleEroder` input parameters. ([#1652](https://github.com/landlab/landlab/issues/1652)) +- Modified the *TaylorDiffuser* components, {class}`~.DepthDependentTaylorDiffuser` and + {class}`~.TaylorNonLinearDiffuser` to use the shortest link instead of `dx` in calculatting + time steps. ([#1694](https://github.com/landlab/landlab/issues/1694)) +- Changed the continuous integraion to use *micromamba* rather than *miniconda*. ([#1703](https://github.com/landlab/landlab/issues/1703)) +- Updated *Landlab* for *matplotlib* 3.7.2. Removed calls to newly deprecated + `get_cmap` and fixed some notebook errors. ([#1714](https://github.com/landlab/landlab/issues/1714)) +- Removed unused requirements for building the documentation. ([#1720](https://github.com/landlab/landlab/issues/1720)) +- Fixed a flaky test with the {class}`~.lateral_erosion.lateral_erosion.LateralEroder` where it would occasionally + fail to reach the steady state solution. ([#1722](https://github.com/landlab/landlab/issues/1722)) +- Fixed a flaky test with the `sediment_pulser_at_links.ipynb` notebook where it + would occasionally hang. ([#1722](https://github.com/landlab/landlab/issues/1722)) +- Fixed incorrect doctests for `parallel_links_at_link` and + `orientation_of_link`. ([#1738](https://github.com/landlab/landlab/issues/1738)) +- Fixed an issue with *Landlab*'s environment file that caused an error when + trying to run the tutorial notebooks through *Binder*. ([#1758](https://github.com/landlab/landlab/issues/1758)) +- Updated the *readthedocs* configuration file to exclude the + [now invalid](https://blog.readthedocs.com/drop-support-system-packages) + `system_packages` option. ([#1762](https://github.com/landlab/landlab/issues/1762)) +- Updated the *isort* configuration to identify *landlab* as a first-party + package to prevent it from moving *landlab* imports into the third-party + section. ([#1763](https://github.com/landlab/landlab/issues/1763)) +- Updated *dependabot* to only manage *Landlab* direct dependencies and changed + our CI to ensure we are running with those pinned dependencies. ([#1773](https://github.com/landlab/landlab/issues/1773)) +- Added support for Python 3.12 and dropped Python 3.9. ([#1782](https://github.com/landlab/landlab/issues/1782)) +- Removed the unused and broken *cython* functions `reorient_links` and + `get_angle_of_links` from the `remap_element` *cython* module. ([#1788](https://github.com/landlab/landlab/issues/1788)) +- Fixed flaky tests of the {class}`~.SedimentPulserAtLinks` and + {class}`~.SedimentPulserEachParcel` components by testing them using a random seed. ([#1794](https://github.com/landlab/landlab/issues/1794)) +- Added a tool that builds a list of *Landlab* contributors and updates the + `AUTHORS.rst` and `.mailmap` files. ([#1795](https://github.com/landlab/landlab/issues/1795)) + +## 2.6.0 (2023-02-16) + +### ✨ New Components + +- Added two {class}`SedimentPulser <.SedimentPulserBase>` components ({class}`~.SedimentPulserAtLinks`, + {class}`~.SedimentPulserEachParcel`) that allow the user to efficiently add sediment + parcels to the {class}`~.DataRecord` while using the + {class}`~.NetworkSedimentTransporter` component. ([#1208](https://github.com/landlab/landlab/issues/1208)) + +- Added a set of {class}`BedParcelInitializer <.BedParcelInitializerBase>` components + ({class}`~.BedParcelInitializerDischarge`, {class}`~.BedParcelInitializerDepth`, + {class}`~.BedParcelInitializerArea`, {class}`~.BedParcelInitializerUserD50`) that + allow the user to efficiently create initial river bed sediment conditions for use + in the {class}`~.NetworkSedimentTransporter` component. ([#1208](https://github.com/landlab/landlab/issues/1208)) + +- Added a new component, {class}`~.GravelRiverTransporter`, that models + gravel transport and abrasion in a gridded network of river segments. ([#1439](https://github.com/landlab/landlab/issues/1439)) + +- Added a new component, {class}`~.AreaSlopeTransporter`. + + The {class}`~.AreaSlopeTransporter` is a generic transport-limited landscape evolution component that models the time rate of change of elevation at a set of grid nodes, each of which has a defined contributing drainage area 𝐴 (field drainage_area) and a local steepest-descent slope gradient, 𝑆, defined from the node itself toward one of its neighboring nodes. The drainage area and slope can be computed with a drainage-routing component such as {class}`~.FlowAccumulator` or {class}`~.PriorityFloodFlowRouter`. The component is designed to function as an integral part of a transport-limited landscape evolution model in the spirit of the Willgoose et al. "SIBERIA" model. ([#1502](https://github.com/landlab/landlab/issues/1502)) + +### 📚 New Tutorial Notebooks + +- Added tutorial notebooks for the new + {class}`BedParcelInitializer <.BedParcelInitializerBase>` and + {class}`SedimentPulser <.SedimentPulserBase>` components, all associated with the + {class}`~.NetworkSedimentTransporter`. ([#1208](https://github.com/landlab/landlab/issues/1208)) +- Added a tutorial notebook that demonstrates use of the new {class}`~.GravelRiverTransporter` component. ([#1439](https://github.com/landlab/landlab/issues/1439)) + +### 🍰 New Features + +- Updated the `NetworkSedimentTransporter` component to allow the user to + specify a minimum acceptable channel slope threshold. ([#1208](https://github.com/landlab/landlab/issues/1208)) +- Added the `calculate_window_statistic` utility that calculates local grid node statistics within a moving window. ([#1263](https://github.com/landlab/landlab/issues/1263)) +- Added the `at` keyword to the `imshow_grid` functions so that they now + use the same pattern as many other *landlab* functions. ([#1424](https://github.com/landlab/landlab/issues/1424)) +- The `plot_graph` function now can take lists of graph elements rather than only comma-separated strings. ([#1425](https://github.com/landlab/landlab/issues/1425)) +- Added a new keyword, `axes` to `plot_graph` to allow plotting within an + existing axes. ([#1425](https://github.com/landlab/landlab/issues/1425)) +- Enhanced the `plot_graph` function: allow the `with_id` keyword to + accept a list of elements that should have included IDs, fill in patches and + cells. ([#1425](https://github.com/landlab/landlab/issues/1425)) +- Added an `imshow` method to all *landlab* model grids that is a wrapper for + the `imshow_grid` function. ([#1430](https://github.com/landlab/landlab/issues/1430)) +- Updated the `BedrockLandslider` component so that a user can now specify a + threshold slope to determine the transport length within the deposition part + of the component. ([#1431](https://github.com/landlab/landlab/issues/1431)) +- Added the `ThresholdEroder` component that erodes material to a user-suplied maximum slope. ([#1440](https://github.com/landlab/landlab/issues/1440)) +- Added a new class of grid, *FramedVoronoiGrid* which is an elaborated version of the VoronoiDelaunayGrid. The user input parameters to automatically calculate the positions of the nodes. The boundary nodes are automatically fixed, in a not random way. The core nodes are first positioned in a rectangular pattern, and then moved by a random distance in such a way that a minimal distance between nodes is respected. This minimal distance is convenient when we have to run diffusion or river incision processes on the grid, which can become unstable for two small distances between nodes (depending on the timestep of the run). ([#1450](https://github.com/landlab/landlab/issues/1450)) +- Enhance possibilities for .pyx compilation through setup.py update. Now include the tests and compile using Python 3. Compilation instructions (C++, multithreading openmp, macros) can be added at top of the .pyx and .pxd files. See use case with files linked to the future FlowRouter component (including tests). ([#1467](https://github.com/landlab/landlab/issues/1467)) +- Enhance Exponential weatherer so that it takes spatially explicit input values for soil production maximum rate and soil production decay depth. ([#1529](https://github.com/landlab/landlab/issues/1529)) + +### 🛠️ Bug Fixes + +- Fixed an issue in the NetworkSedimentTransporter tutorial notebooks related to + deprecated xarray dataset syntax in the calc_aggregate_value method of `DataRecord` ([#1208](https://github.com/landlab/landlab/issues/1208)) +- Fixed a bug in notebooks that use *bmi-topography* where an incorrect API key was being used. ([#1410](https://github.com/landlab/landlab/issues/1410)) +- Fixed a bug in `plot_graph` where patch and cell polygons were not drawn. ([#1428](https://github.com/landlab/landlab/issues/1428)) +- Fixed a bug where `plot_graph` would incorrectly include the last + node/corner with patches/cells that had fewer links/faces than the maximum of + the graph. ([#1428](https://github.com/landlab/landlab/issues/1428)) +- Fixed an issue related to flow re-routing on an irregular Voronoi-Delaunay grid. ([#1442](https://github.com/landlab/landlab/issues/1442)) +- Fixed the ABM tutorial notebooks that were using an older syntax for the + *Mesa* *remove_agent* method. ([#1444](https://github.com/landlab/landlab/issues/1444)) +- Fixed a bug where the *tests* folder was also being installed in + *site-packages*. ([#1445](https://github.com/landlab/landlab/issues/1445)) +- Fixed a bug where the `SpaceLargeScaleEroder` was only able to accept a scalar value for the erodibility coefficient. + Now it is able to accept either a scalar or an array. ([#1477](https://github.com/landlab/landlab/issues/1477)) +- Fixed a bug in *imshowhs_grid* where, when a no-data drape was provided, the plot was + inverted in the north-south directions. ([#1484](https://github.com/landlab/landlab/issues/1484)) +- Fixed a bug in *imshowhs_grid* where the hillshade base layer was not plotting data from rows and columns adjacent to boundary nodes. ([#1484](https://github.com/landlab/landlab/issues/1484)) +- Fixed a bug in the *HyLandsTutorial* notebook where the *BedrockLandslider*'s + *topographic\_\_elevation* field was not being updated correctly. ([#1490](https://github.com/landlab/landlab/issues/1490)) +- Fixed a bug in *imshowhs_grid* that caused the axis tick marks to be slightly in the wrong position. ([#1492](https://github.com/landlab/landlab/issues/1492)) +- Fixed a bug in *imshowhs_grid* where boundary nodes were not indicated even if requested. ([#1492](https://github.com/landlab/landlab/issues/1492)) +- Fixed an issue when plotting the colorbar in the `plot_drainage` function + using *matplotlib* 3.6. ([#1493](https://github.com/landlab/landlab/issues/1493)) +- Fixed usages of `plt.gca` that used keywords to create new axes objects. With + *matplotlib* 3.6, the way to do this is with `plt.axes`. ([#1494](https://github.com/landlab/landlab/issues/1494)) +- Fixed a possible memory leak caused by using the *lru_cache* decorator of + class methods. ([#1514](https://github.com/landlab/landlab/issues/1514)) +- Fixed a bug that, when using randomly positioned nodes, sometimes resulted in a voronoi + diagram that contained cells without any vertices. ([#1516](https://github.com/landlab/landlab/issues/1516)) + +### 📖 Documentation Enhancements + +- Combined multiple "Tectonics" sections on the component documentation page. ([#1415](https://github.com/landlab/landlab/issues/1415)) +- Fixed the broken links to the openearthscape JupyterHub. ([#1419](https://github.com/landlab/landlab/issues/1419)) +- Cleaned up the indexing of field names used and provided by all landlab + components. ([#1476](https://github.com/landlab/landlab/issues/1476)) +- Cleaned up the categorization of all the landlab grid methods. ([#1476](https://github.com/landlab/landlab/issues/1476)) +- Updated the installation instructions for the tutorial notebooks to better + describe how to install the tutorial dependencies. ([#1526](https://github.com/landlab/landlab/issues/1526)) +- Added additional publications to the list in the documentation. ([#1538](https://github.com/landlab/landlab/issues/1538)) + +### 🔩 Other Changes and Additions + +- Added a pull request template that contains a checklist of items for + contributors to complete. ([#1340](https://github.com/landlab/landlab/issues/1340)) +- Added a citation file, using the Citation File Format, that describes how to cite the *landlab* code base. ([#1342](https://github.com/landlab/landlab/issues/1342)) +- Added a short script that can be used to download a set of *landlab* notebooks + that are compatible with a specified version of *landlab*. ([#1408](https://github.com/landlab/landlab/issues/1408)) +- Moved static project metadata into pyproject.toml. ([#1409](https://github.com/landlab/landlab/issues/1409)) +- Fixed an issue where notebooks that download DEMs from OpenTopography were + failing with an error about a missing API key. ([#1410](https://github.com/landlab/landlab/issues/1410)) +- Fixed some failing read_shapefile tests related to a new version of pyshp by requiring pyshp != v2.3.0. ([#1418](https://github.com/landlab/landlab/issues/1418)) +- Fixed some typos in the doctest for the `StreamPowerEroder`. ([#1426](https://github.com/landlab/landlab/issues/1426)) +- Added *water_surface\_\_elevation* as a field in the + `LinearDiffusionOverlandFlowRouter`. ([#1433](https://github.com/landlab/landlab/issues/1433)) +- Fixed doctests that were failing because "0"s were being printed as "-0"s. ([#1435](https://github.com/landlab/landlab/issues/1435)) +- Added a GitHub Actions workflow to the continuous integration that checks to + see if a pull request contains a news fragment. ([#1446](https://github.com/landlab/landlab/issues/1446)) +- Update tutorial template notebook remove obsolute "%" magic and edit description of link to tutorials page. ([#1457](https://github.com/landlab/landlab/issues/1457)) +- Added unit tests for the cython function, *adjust_flow_receivers*, used by the *FlowDirectorSteepest* component. ([#1459](https://github.com/landlab/landlab/issues/1459)) +- Added a *nox* file to help with routine project maintenance tasks like, for + example, running the tests, and checking for coding style. ([#1469](https://github.com/landlab/landlab/issues/1469)) +- Added two new *nox* sessions: *requirements* and *nuke*. *requirements* + recreates the various requirements files while *nuke* does an extra bit of + cleaning. ([#1474](https://github.com/landlab/landlab/issues/1474)) +- Fixed an issue that prevented the docs from building due to a compatibility + issue with *sphinxcontrib.towncrier* and *towncrier* v22.8. ([#1480](https://github.com/landlab/landlab/issues/1480)) +- Changed `FramedVoronoiGrid` to accept a single seed for the *seed* keyword. ([#1495](https://github.com/landlab/landlab/issues/1495)) +- Modified to skip the doctests for `ExampleData` and `write_esri_ascii` that created + files in the user's working directory. These doctests are now repeated as unit tests + that clean up after themselves. ([#1496](https://github.com/landlab/landlab/issues/1496)) +- Improved the error message that's reported when a user attempts to add a field + to a grid that already contains a field with that name. ([#1500](https://github.com/landlab/landlab/issues/1500)) +- Allow the cumulative_subsidence_depth field in ListricKinematicExtender to clobber a pre-existing field, which is needed if the caller has read in a pre-existing saved grid. ([#1510](https://github.com/landlab/landlab/issues/1510)) +- Fixed a broken *pre-commit* hook that caused an error when checking for lint + with *flake8*. ([#1512](https://github.com/landlab/landlab/issues/1512)) +- Added *flake8-comprehension* to the *flake8* *pre-commit* hook to identify + comprehension-related lint. ([#1512](https://github.com/landlab/landlab/issues/1512)) +- Added additional linters via pre-commit hooks and removed the newly discovered + lint. ([#1514](https://github.com/landlab/landlab/issues/1514)) +- In the Tutorials doc, updated the URL to download the `notebook.py` script from GitHub. ([#1520](https://github.com/landlab/landlab/issues/1520)) +- Updated code to work with *numpy* v1.24 and *scipy* v1.10. ([#1521](https://github.com/landlab/landlab/issues/1521)) +- Removed the *richdem* package as a mandatory requirement for *landlab*. Users + needing to use *richdem* (i.e. the `PriorityFloodFlowRouter`) must now install it + separately. ([#1523](https://github.com/landlab/landlab/issues/1523)) +- Updated the pre-commit hooks (most notably flake8 and its plugins) and removed + newly-found lint. ([#1524](https://github.com/landlab/landlab/issues/1524)) +- Updated *Landlab*'s CI to use Python 3.11 and to drop testing with Python 3.8. ([#1527](https://github.com/landlab/landlab/issues/1527)) +- Updated `landlab.__version__` to match that of the latest release. ([#1531](https://github.com/landlab/landlab/issues/1531)) +- Removed obsolete files from the top-level directory of the repository. ([#1534](https://github.com/landlab/landlab/issues/1534)) +- Updated the ci workflows to use a newer version of cibuildwheel when building + wheels for releases and pre-releases. ([#1536](https://github.com/landlab/landlab/issues/1536)) +- Fixed a test failure in the `PriorityFlood_realDEMs.ipynb` notebook by + constraining bmi-topography to versions other than 0.8.1. ([#1539](https://github.com/landlab/landlab/issues/1539)) +- Changed the ci testing of the notebooks to use nbmake. ([#1541](https://github.com/landlab/landlab/issues/1541)) +- Increased the stacklevel for warnings from 1 (the default) to 2 to provide + more information to the user. ([#1545](https://github.com/landlab/landlab/issues/1545)) + +## 2.5.0 (2022-04-15) + +### ✨ New Components + +- `CarbonateProducer` Grow carbonate strata using growth function of Bosscher and Schlager (1992). ([#1284](https://github.com/landlab/landlab/issues/1284)) +- `DimensionlessDischarge`, that calculates the dimensionless discharge value, debris flow threshold value, and boolean for predicted debris flow for stream segments. ([#1377](https://github.com/landlab/landlab/issues/1377)) +- `LinearDiffusionOverlandFlowRouter`: overland flow using the linearized diffusion-wave approximation. ([#1383](https://github.com/landlab/landlab/issues/1383)) + +### 📚 New Tutorial Notebooks + +- Added a notebook that shows how to use USGS NHDPlus HR datasets with the + `NetworkSedimentTransporter` component ([#1345](https://github.com/landlab/landlab/issues/1345)) +- Addded a new notebook that demonstrates ways to create a `NetworkModelGrid` from a DEM fetched from *OpenTopography* using the *Topography* utility. ([#1400](https://github.com/landlab/landlab/issues/1400)) + +### 🍰 New Features + +- Added the ability for a user to add layers at grid elements other than cells (i.e. + nodes, links, etc.). Previously, the *at_layer* variables could only be at cell elements. ([#1292](https://github.com/landlab/landlab/issues/1292)) +- Added the ability to define the units of a field when creating a grid from a file + through the `create_grid` function. ([#1358](https://github.com/landlab/landlab/issues/1358)) +- Added the `network_grid_from_raster` function that creates a `NetworkModelGrid` + from a `RasterModelGrid`. This function extracts channel segments from the + source grid to become links of the newly-created grid. ([#1360](https://github.com/landlab/landlab/issues/1360)) +- Added *sediment\_\_influx* and *sediment\_\_outflux* fields to the `ErosionDeposition`, + `LateralEroder`, `SpaceLargeScaleEroder`, and `Space` components. ([#1370](https://github.com/landlab/landlab/issues/1370)) +- Added `ticks_km`, `cbar_ticks_color` keywords to the `imshowhs_grid` function for more control of colorbar ticks. ([#1397](https://github.com/landlab/landlab/issues/1397)) +- Added control on location of the ylabels of colorbars in the `imshowhs_grid` function using the `y_label_offSet_var_1` and `y_label_offSet_var_2` keywords. ([#1397](https://github.com/landlab/landlab/issues/1397)) +- Added a new utility, *plot_layers*, that plots sediment layers along with sea level and bedrock. ([#1398](https://github.com/landlab/landlab/issues/1398)) + +### 🛠️ Bug Fixes + +- Clip active layer thickness to zero in the NetworkSedimentTransporter component. This + eliminates an `invalid value encountered in power` warning. ([#1356](https://github.com/landlab/landlab/issues/1356)) +- Allow *landlab* to be installed without the *richdem* package in the case that + *richdem* is not available for a particular platform or Python version. ([#1379](https://github.com/landlab/landlab/issues/1379)) +- Resolved instabilities related to the use of very small `H*` values when using the `Space_Large_Scale_Eroder`. ([#1397](https://github.com/landlab/landlab/issues/1397)) +- Fixed a broken reference in the `PriorityFloodFlowDirector` where the gradient of the hillslopes are being updated. ([#1397](https://github.com/landlab/landlab/issues/1397)) +- Fixed a bug that incorrectly diagnosed if the *richdem* engine was installed and working correctly. ([#1399](https://github.com/landlab/landlab/issues/1399)) + +### 📖 Documentation Enhancements + +- Added missing documentation files for `BedrockLandslider` and `SpaceLargeScaleEroder`. ([#1373](https://github.com/landlab/landlab/issues/1373)) +- Set up *\[towncrier\](https://towncrier.readthedocs.io/en/actual-freaking-docs/)* + to update and manage the *landlab* changelog. New fragments are placed in the + `news/` folder. ([#1396](https://github.com/landlab/landlab/issues/1396)) + +### 🔩 Other Changes and Additions + +- Added an OpenTopography API key to notebooks that use *bmi-topography* to fetch + data from OpenTopography. ([#1384](https://github.com/landlab/landlab/issues/1384)) +- Updated the coding style to conform to new version of black. This was, primarily, + hugging the `**` operator. ([#1385](https://github.com/landlab/landlab/issues/1385)) +- The notebooks are tested only with Python 3.9. ([#1399](https://github.com/landlab/landlab/issues/1399)) +- Added Python 3.10 to continuous integration tests and dropped Python 3.7. ([#1399](https://github.com/landlab/landlab/issues/1399)) +- Speed up our continuous integration tests by about 2x by running them in parallel using *pytest-xdist*. ([#1399](https://github.com/landlab/landlab/issues/1399)) +- Turn off *hypothesis* deadline setting globally when running continuous + integration tests. ([#1401](https://github.com/landlab/landlab/issues/1401)) +- Updated the documentation to build with newer versions of *Sphinx*. ([#1404](https://github.com/landlab/landlab/issues/1404)) +- Added several new *landlab*-using references. ([#1407](https://github.com/landlab/landlab/issues/1407)) + +## 2.4.1 (2021-12-02) + +### 📚 New Tutorial Notebooks + +- Added two ABM tutorial notebooks ([#1364](https://github.com/landlab/landlab/issues/1364)) + +### 🔩 Other Changes and Additions + +- fixed a bug that causes release workflows to not be triggered ([#1371](https://github.com/landlab/landlab/issues/1371)) +- Fixed the building of source distributions for prerelease and release + workflows ([#1372](https://github.com/landlab/landlab/issues/1372)) + +## 2.4.0 (2021-11-29) + +### 🔩 Other Changes and Additions + +- Changed GitHub actions to use cibuildwheel for building wheels ([#1368](https://github.com/landlab/landlab/issues/1368)) + +## 2.4.0b0 (2021-11-28) + +### ✨ New Components + +- ListricKinematicExtender: Simulate Extensional Tectonic Motion on a Listric Fault Plane ([#1283](https://github.com/landlab/landlab/issues/1283)) +- PriorityFloodFlowRouter and SpaceLargeScaleEroder ([#1352](https://github.com/landlab/landlab/issues/1352)) +- Added BedrockLandslider component ([#1362](https://github.com/landlab/landlab/issues/1362)) + +### 📚 New Tutorial Notebooks + +- Added tutorial notebook for depth dependent taylor diffuser ([#1306](https://github.com/landlab/landlab/issues/1306)) + +- Added tutorial notebook for chi finder ([#1307](https://github.com/landlab/landlab/issues/1307)) + +- Added tutorial notebook for kinwave impl ([#1308](https://github.com/landlab/landlab/issues/1308)) + +- Added tutorial notebook for taylor diffuser ([#1309](https://github.com/landlab/landlab/issues/1309)) + +- Added notebook tutorials for two components (both written by Jordan Adams): + \* `DepthSlopeProductErosion`, + \* `DetachmentLtdErosion` + + Added a tutorial showing how to "D4 pit fill" a DEM, and a version of the simple `hugo_site.asc` DEM that has been pit-filled. ([#1313](https://github.com/landlab/landlab/issues/1313)) + +- Added tutorial notebook for Space component ([#1314](https://github.com/landlab/landlab/issues/1314)) + +- Added tutorial notebook for erosiondeposition ttl ([#1315](https://github.com/landlab/landlab/issues/1315)) + +- Added tutorial notebook for erodep ([#1317](https://github.com/landlab/landlab/issues/1317)) + +- Added tutorial notebook for StreamPowerSmoothThresholdEroder ([#1331](https://github.com/landlab/landlab/issues/1331)) + +### 🍰 New Features + +- Infer data types of fields when reading from shape files ([#1357](https://github.com/landlab/landlab/issues/1357)) + +### 🛠️ Bug Fixes + +- Fixed ability to pass a masked array to imshow_grid_at_node ([#1297](https://github.com/landlab/landlab/issues/1297)) +- Fixed xarray 'axis' keyword error in map function ([#1300](https://github.com/landlab/landlab/issues/1300)) +- Fixed a missing absolute value in Courant condition in dupuit_percolator ([#1311](https://github.com/landlab/landlab/issues/1311)) +- Fixed pits and division by zero in lateral_erosion component ([#1353](https://github.com/landlab/landlab/issues/1353)) + +### 📖 Documentation Enhancements + +- Updated installation instructions ([#1287](https://github.com/landlab/landlab/issues/1287)) +- Minor updates to documentation ([#1290](https://github.com/landlab/landlab/issues/1290)) +- Run the link checker on docs ([#1336](https://github.com/landlab/landlab/issues/1336)) +- Fixed documentation errors in green ampt component ([#1343](https://github.com/landlab/landlab/issues/1343)) +- Added new references to landlab ([#1344](https://github.com/landlab/landlab/issues/1344)) +- Added a link to launch landlab notebooks on the CSDMS JupyterHub ([#1347](https://github.com/landlab/landlab/issues/1347)) + +### 🔩 Other Changes and Additions + +- Fixed warnings related to unnecessary use of numpy number types ([#1323](https://github.com/landlab/landlab/issues/1323)) +- Changed continuous integration to always check the docs build ([#1336](https://github.com/landlab/landlab/issues/1336)) +- Added a pre-commit configuration file ([#1338](https://github.com/landlab/landlab/issues/1338)) +- Drop the "file:" prefix when referencing pip requirements files ([#1339](https://github.com/landlab/landlab/issues/1339)) +- Removed usages of np.int from Cython code ([#1354](https://github.com/landlab/landlab/issues/1354)) +- Check that notebooks are both clean and blackened as part of continuous integration ([#1355](https://github.com/landlab/landlab/issues/1355)) + +## 2.3.0 (2021-03-19) + +### ✨ New Components + +- Added a tidal flow component ([#1225](https://github.com/landlab/landlab/issues/1225)) +- Added ExponentialWeathererIntegrated component ([#1254](https://github.com/landlab/landlab/issues/1254)) +- Added simple submarine diffuser component ([#1269](https://github.com/landlab/landlab/issues/1269)) + +### 📚 New Tutorial Notebooks + +- Added tutorial for river input to LEMs ([#1258](https://github.com/landlab/landlab/issues/1258)) + +### 🍰 New Features + +- Added recharge to the GroundwaterDupuitPercolator callback ([#1223](https://github.com/landlab/landlab/issues/1223)) +- Added Wavefront OBJ output ([#1241](https://github.com/landlab/landlab/issues/1241)) + +### 🛠️ Bug Fixes + +- Fixed bug in Flow router/depression finder which incorrectly directed flow ([#1248](https://github.com/landlab/landlab/issues/1248)) +- Fixed an error in the streampower notebook ([#1260](https://github.com/landlab/landlab/issues/1260)) +- Fixed a bug in the FlowAccumulator to update pit present logic to also include node flood status ([#1277](https://github.com/landlab/landlab/issues/1277)) +- Fixed a bug when adding a missing at_grid field when testing components ([#1286](https://github.com/landlab/landlab/issues/1286)) + +### 📖 Documentation Enhancements + +- Fixed documentation bugs ([#1233](https://github.com/landlab/landlab/issues/1233)) +- Added two 2020 publications ([#1243](https://github.com/landlab/landlab/issues/1243)) +- Added docs for the flow accumulator ([#1251](https://github.com/landlab/landlab/issues/1251)) +- Added a reference to the papers and presentations list ([#1255](https://github.com/landlab/landlab/issues/1255)) +- Added additional references for 2020 and 2021 ([#1273](https://github.com/landlab/landlab/issues/1273)) + +### 🔩 Other Changes and Additions + +- NetworkSedimentTtransporter JOSS paper fixes ([#1235](https://github.com/landlab/landlab/issues/1235)) +- Small changes to JOSS paper ([#1237](https://github.com/landlab/landlab/issues/1237)) +- Changed to use GitHub Actions for CI ([#1270](https://github.com/landlab/landlab/issues/1270)) +- Added building and testing of landlab with Python 3.9 ([#1274](https://github.com/landlab/landlab/issues/1274)) +- Added release and prerelease github actions ([#1275](https://github.com/landlab/landlab/issues/1275)) +- Cleaned up landlab metadata files; Removed versioneer, we'll use zest.releaser from now on the manage versions ([#1285](https://github.com/landlab/landlab/issues/1285)) + +## 1.5.1 (2018-06-22) + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] + +## 1.5.0 (2018-06-18) + +(fixed-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] + +(changed-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] + +## 1.4.0 (2018-05-03) + +(fixed-2-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] + +(added-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] + +(changed-2-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] + +## 1.3.1 (2018-03-24) + +(fixed-3-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] + +(added-2-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] + +(changed-3-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- Set versioneer to ignore `v` prefix in tags \[Eric Hutton\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] + +## 1.3.0 (2018-03-14) + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-4-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] + +(added-3-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-4-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] + +## 1.2.0 (2017-10-19) + +(removed-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-5-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] + +(added-4-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-5-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] + +## 1.1.0 (2017-06-26) + +(removed-2-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-6-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-5-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-6-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] + +## 1.0.3 (2017-03-04) + +(removed-3-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-7-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-6-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-7-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.2 (2016-11-24) + +(removed-4-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-8-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-7-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-8-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.1 (2016-08-25) + +(removed-5-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-9-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-8-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-9-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/patch-flowaccum-reclimit \[#375\] \[Dan Hobley\] +- Merge remote-tracking branch ‘refs/remotes/origin/master’ into + release \[saisiddu\] +- Merge remote-tracking branch ‘refs/remotes/origin/master’ into + release \[saisiddu\] + +## 1.0.0-beta.8 (2016-07-07) + +(removed-6-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-10-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-9-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-10-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.0-beta.7 (2016-07-07) + +(removed-7-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-11-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-10-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-11-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.0-beta.6 (2016-06-16) + +(removed-8-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-12-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-11-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-12-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.0-beta.5 (2016-06-14) + +(removed-9-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-13-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-12-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-13-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.0-beta.4 (2016-06-14) + +(removed-10-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-14-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-13-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-14-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/pot-fr-modernise \[#344\] \[Jordan Adams\] +- landlab/mcflugen/fix-landlab-test-function \[#345\] \[Dan Hobley\] + +## 1.0.0-beta.3 (2016-06-06) + +(removed-11-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-15-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-14-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-15-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.0-beta.2 (2016-06-06) + +(removed-12-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-16-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-15-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-16-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.0-beta.12 (2016-08-02) + +(removed-13-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-17-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-16-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-17-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/patch-flowaccum-reclimit \[#375\] \[Dan Hobley\] + +## 1.0.0-beta.11 (2016-07-19) + +(removed-14-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-18-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-17-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-18-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- Merge remote-tracking branch ‘refs/remotes/origin/master’ into + release \[saisiddu\] + +## 1.0.0-beta.10 (2016-07-14) + +(removed-15-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-19-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-18-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-19-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- Merge remote-tracking branch ‘refs/remotes/origin/master’ into + release \[saisiddu\] + +## 1.0.0-beta.1 (2016-05-18) + +(removed-16-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-20-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-19-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-20-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] + +## 1.0.0-beta (2016-05-13) + +(removed-17-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-21-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-20-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-21-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] + +## 1.0.0-alpha (2016-05-13) + +(removed-18-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-22-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-21-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-22-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] + +## 1.0.0 (2016-08-19) + +(removed-19-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-23-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-22-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-23-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-flowaccum-reclimit \[#375\] \[Dan Hobley\] +- Merge remote-tracking branch ‘refs/remotes/origin/master’ into + release \[saisiddu\] +- Merge remote-tracking branch ‘refs/remotes/origin/master’ into + release \[saisiddu\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] + +## 0.5.0 (2016-03-12) + +(removed-20-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-24-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-23-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-24-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] + +## 0.2.3 (2016-03-10) + +(removed-21-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-25-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-24-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-25-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] + +## 0.2.2 (2016-02-09) + +(removed-22-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-26-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-25-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-26-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] + +## 0.2.1 (2016-02-08) + +(removed-23-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-27-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-26-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-27-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] + +## 0.2.0 (2015-12-20) + +(removed-24-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-28-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-27-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-28-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] + +## 0.1.41 (2015-12-13) + +(removed-25-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-29-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-28-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-29-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] + +## 0.1.40 (2015-12-13) + +(removed-26-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-30-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-29-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-30-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] + +## 0.1.39 (2015-10-28) + +(removed-27-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-31-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-30-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-31-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/SiccarPoint/D4routing \[#176\] \[Jordan Adams\] +- landlab/sed_fill \[#173\] \[Eric Hutton\] +- landlab/sed_fill \[#168\] \[Jordan Adams\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] + +## 0.1.38 (2015-10-21) + +(removed-28-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-32-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-31-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-32-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] + +## 0.1.37 (2015-10-20) + +(removed-29-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-33-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-32-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-33-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] + +## 0.1.36 (2015-10-20) + +(removed-30-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-34-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-33-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-34-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] + +## 0.1.35 (2015-10-20) + +(removed-31-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-35-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-34-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-35-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] + +## 0.1.34 (2015-10-19) + +(removed-32-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-36-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-35-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-36-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] + +## 0.1.33 (2015-10-11) + +(removed-33-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-37-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-36-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-37-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] + +## 0.1.32 (2015-10-11) + +(removed-34-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-38-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-37-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-38-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] + +## 0.1.31 (2015-10-11) + +(removed-35-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-39-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-38-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-39-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] + +## 0.1.30 (2015-10-11) + +(removed-36-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-40-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-39-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-40-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] +- landlab/mcflugen/make-node-status-private \[#152\] \[Eric Hutton\] +- landlab/mcflugen/code-clean-up \[#148\] \[Eric Hutton\] +- landlab/mcflugen/add-appveyor-slack-notifications \[#149\] \[Eric + Hutton\] +- Merge remote-tracking branch ‘origin/link_status’ \[mcflugen\] +- landlab/link_status \[#143\] \[Eric Hutton\] + +## 0.1.29 (2015-09-13) + +(removed-37-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-41-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-40-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-41-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] +- landlab/mcflugen/make-node-status-private \[#152\] \[Eric Hutton\] +- landlab/mcflugen/code-clean-up \[#148\] \[Eric Hutton\] +- landlab/mcflugen/add-appveyor-slack-notifications \[#149\] \[Eric + Hutton\] +- Merge remote-tracking branch ‘origin/link_status’ \[mcflugen\] +- landlab/link_status \[#143\] \[Eric Hutton\] +- landlab/mcflugen/fix-failing-docs-build \[#145\] \[Eric Hutton\] + +## 0.1.28 (2015-09-09) + +(removed-38-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-42-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-41-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-42-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] +- landlab/mcflugen/make-node-status-private \[#152\] \[Eric Hutton\] +- landlab/mcflugen/code-clean-up \[#148\] \[Eric Hutton\] +- landlab/mcflugen/add-appveyor-slack-notifications \[#149\] \[Eric + Hutton\] +- Merge remote-tracking branch ‘origin/link_status’ \[mcflugen\] +- landlab/link_status \[#143\] \[Eric Hutton\] +- landlab/mcflugen/fix-failing-docs-build \[#145\] \[Eric Hutton\] +- landlab/mcflugen/update-mappers \[#142\] \[Eric Hutton\] +- landlab/fix-issue-128 \[#129\] \[Eric Hutton\] +- landlab/mcflugen/add-netcdf-tests \[#138\] \[Eric Hutton\] +- landlab/mcflugen/add-better-testing-docs \[#137\] \[Eric Hutton\] + +## 0.1.27 (2015-07-29) + +(removed-39-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-43-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-42-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-43-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] +- landlab/mcflugen/make-node-status-private \[#152\] \[Eric Hutton\] +- landlab/mcflugen/code-clean-up \[#148\] \[Eric Hutton\] +- landlab/mcflugen/add-appveyor-slack-notifications \[#149\] \[Eric + Hutton\] +- Merge remote-tracking branch ‘origin/link_status’ \[mcflugen\] +- landlab/link_status \[#143\] \[Eric Hutton\] +- landlab/mcflugen/fix-failing-docs-build \[#145\] \[Eric Hutton\] +- landlab/mcflugen/update-mappers \[#142\] \[Eric Hutton\] +- landlab/fix-issue-128 \[#129\] \[Eric Hutton\] +- landlab/mcflugen/add-netcdf-tests \[#138\] \[Eric Hutton\] +- landlab/mcflugen/add-better-testing-docs \[#137\] \[Eric Hutton\] + +## 0.1.26 (2015-07-20) + +(removed-40-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-44-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-43-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-44-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] +- landlab/mcflugen/make-node-status-private \[#152\] \[Eric Hutton\] +- landlab/mcflugen/code-clean-up \[#148\] \[Eric Hutton\] +- landlab/mcflugen/add-appveyor-slack-notifications \[#149\] \[Eric + Hutton\] +- Merge remote-tracking branch ‘origin/link_status’ \[mcflugen\] +- landlab/link_status \[#143\] \[Eric Hutton\] +- landlab/mcflugen/fix-failing-docs-build \[#145\] \[Eric Hutton\] +- landlab/mcflugen/update-mappers \[#142\] \[Eric Hutton\] +- landlab/fix-issue-128 \[#129\] \[Eric Hutton\] +- landlab/mcflugen/add-netcdf-tests \[#138\] \[Eric Hutton\] +- landlab/mcflugen/add-better-testing-docs \[#137\] \[Eric Hutton\] + +## 0.1.25 (2015-07-16) + +(removed-41-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-45-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-44-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-45-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] +- landlab/mcflugen/make-node-status-private \[#152\] \[Eric Hutton\] +- landlab/mcflugen/code-clean-up \[#148\] \[Eric Hutton\] +- landlab/mcflugen/add-appveyor-slack-notifications \[#149\] \[Eric + Hutton\] +- Merge remote-tracking branch ‘origin/link_status’ \[mcflugen\] +- landlab/link_status \[#143\] \[Eric Hutton\] +- landlab/mcflugen/fix-failing-docs-build \[#145\] \[Eric Hutton\] +- landlab/mcflugen/update-mappers \[#142\] \[Eric Hutton\] +- landlab/fix-issue-128 \[#129\] \[Eric Hutton\] +- landlab/mcflugen/add-netcdf-tests \[#138\] \[Eric Hutton\] +- landlab/mcflugen/add-better-testing-docs \[#137\] \[Eric Hutton\] +- resolved conflicts in lake mapper \[gregtucker\] +- ierge branch ‘master’ of + \[gregtucker\] + +## 0.1.24 (2015-07-12) + +(removed-42-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-46-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-45-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-46-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] +- landlab/mcflugen/fix-component-imports \[#214\] \[Dan Hobley\] +- landlab/SiccarPoint/component-tests \[#209\] \[Eric Hutton\] +- landlab/SiccarPoint/component-tests \[#204\] \[Eric Hutton\] +- landlab/mcflugen/add-value-name-decorator \[#199\] \[Dan Hobley\] +- landlab/SiccarPoint/component-introspection \[#200\] \[Jenny Knuth\] +- landlab/mcflugen/fix-voronoi-cell-areas \[#202\] \[Dan Hobley\] +- landlab/mcflugen/fix-testing-script \[#198\] \[Eric Hutton\] +- landlab/mcflugen/add-neighbor-at-node \[#195\] \[saisiddu\] +- landlab/mcflugen/fix-appveyor-builds \[#185\] \[Eric Hutton\] +- landlab/mcflugen/clean-up-imshow \[#178\] \[saisiddu\] +- landlab/mcflugen/fix-reset_lists_of_nodes_cells \[#182\] \[Greg Tucker\] +- landlab/SiccarPoint/var-doc \[#187\] \[Eric Hutton\] +- landlab/gtucker/cleanup \[#186\] \[Eric Hutton\] +- landlab/mcflugen/add-gradients-module \[#169\] \[Eric Hutton\] +- landlab/SiccarPoint/delete-fields \[#167\] \[Dan Hobley\] +- landlab/voronoi_stream_power \[#158\] \[Dan Hobley\] +- landlab/mcflugen/make-node-status-private \[#152\] \[Eric Hutton\] +- landlab/mcflugen/code-clean-up \[#148\] \[Eric Hutton\] +- landlab/mcflugen/add-appveyor-slack-notifications \[#149\] \[Eric + Hutton\] +- Merge remote-tracking branch ‘origin/link_status’ \[mcflugen\] +- landlab/link_status \[#143\] \[Eric Hutton\] +- landlab/mcflugen/fix-failing-docs-build \[#145\] \[Eric Hutton\] +- landlab/mcflugen/update-mappers \[#142\] \[Eric Hutton\] +- landlab/fix-issue-128 \[#129\] \[Eric Hutton\] +- landlab/mcflugen/add-netcdf-tests \[#138\] \[Eric Hutton\] +- landlab/mcflugen/add-better-testing-docs \[#137\] \[Eric Hutton\] +- resolved conflicts in lake mapper \[gregtucker\] +- ierge branch ‘master’ of + \[gregtucker\] +- landlab/mcflugen/add-python-3-support-with-six \[#121\] \[Eric Hutton\] +- landlab/mcflugen/fix-setuptools-error \[#126\] \[Eric Hutton\] + +## v0.1.23 (2015-05-15) + +(removed-43-1)= + +### Removed + +- Removed inlink and outlink matrices. \[Eric Hutton\] +- Removed deprecated raster_steepest_descent module. \[Eric Hutton\] +- Removed corner_node_at_cell \[Eric Hutton\] +- Removed old and unused \_route_flow_old from lake_mapper \[Eric + Hutton\] +- Removed unused code from flow_direction_DN \[Eric Hutton\] + +(fixed-47-1)= + +### Fixed + +- Fixed bug in Flexure1D when using “flexure” method \[Eric Hutton\] +- Fixed unit test failures related to masked arrays (#710) \[Eric + Hutton\] +- Fixed failed Travis builds being reported as passing \[Eric Hutton\] +- Fixed doctest for graph.adjacent_nodes_at_node \[Eric Hutton\] +- Fixed names of packages deployed to Anaconda Cloud \[Eric Hutton\] +- Fixed incorrect signatures of decorated methods in docs. \[Eric + Hutton\] +- Fixed Travis build errors with Python version conflicts. \[Eric + Hutton\] +- Fixed values not being cached (#614) \[Eric Hutton\] +- Fixed component documentation not building (issue #575) \[Eric Hutton\] +- Fixed netcdf4 import error \[Eric Hutton\] + +(added-46-1)= + +### Added + +- Added CONTRIBUTING.md document \[Eric Hutton\] +- Added script to create a nicely formatted changelog \[Eric Hutton\] +- Added 1D Flexure component \[Eric Hutton\] +- Added cite_as function to get landlab component citations \[Eric + Hutton\] +- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. + \[Eric Hutton\] +- Added additional tests for SoilInfiltrationGreenAmpt. \[Eric Hutton\] +- Added citation tracker for components. \[Eric Hutton\] +- Added nodes_at_link attribute to ModelGrid. \[Eric Hutton\] +- Added event layers to track stratigraphy \[Eric Hutton\] + +(changed-47-1)= + +### Changed + +- amanaster2/master \[#733\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/major_cleanup_to_space_and_erodepo_init \[#709\] \[Katy + Barnhart\] +- landlab/gt/fix-doctest-issue-726 \[#728\] \[Greg Tucker\] +- landlab/gt/ca-top-hit-bug \[#720\] \[Greg Tucker\] +- landlab/barnhark/space_cell_area \[#719\] \[Greg Tucker\] +- landlab/barnhark/use_field_name_array_or_float \[#683\] \[Katy Barnhart\] +- landlab/barnhark/give_hex_models_watershed_methods \[#685\] \[Katy + Barnhart\] +- landlab/SiccarPoint/fix-issue-702 \[#706\] \[Katy Barnhart\] +- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility \[#658\] + \[Katy Barnhart\] +- landlab/barnhark/revert_channel_profiler \[#695\] \[Katy Barnhart\] +- landlab/barnhark/space_rounding \[#698\] \[Katy Barnhart\] +- landlab/barnhark/add_docs_to_normal_fault \[#677\] \[Katy Barnhart\] +- landlab/barnhark/space_type_updates \[#669\] \[Katy Barnhart\] +- landlab/barnhark/minor_changes_to_normal_fault \[#663\] \[Katy Barnhart\] +- landlab/gt-debug-ca-propswap \[#661\] \[Greg Tucker\] +- landlab/barnhark/space_hex \[#655\] \[Katy Barnhart\] +- landlab/barnhark/add_kwargs \[#645\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault_kwargs \[#649\] \[Katy Barnhart\] +- landlab/barnhark/normal_fault \[#640\] \[Katy Barnhart\] +- landlab/barnhark/exponential_weatherer_docstring \[#643\] \[Katy + Barnhart\] +- landlab/nathanlyons/watershed \[#545\] \[Nathan Lyons\] +- landlab/barnhark/updates_to_channel_profile \[#637\] \[Katy Barnhart\] +- landlab/barnhark/typo_in_imshow \[#636\] \[Katy Barnhart\] +- landlab/barnhark/add_component_docs \[#634\] \[Katy Barnhart\] +- landlab/gt-ca-uplift \[#581\] \[Greg Tucker\] +- landlab/barnhark/make_stream_profiler \[#605\] \[Katy Barnhart\] +- landlab/mcflugen/remove-old-flux-div \[#619\] \[Dan Hobley\] +- Simplified continuous integration and versioning. \[Eric Hutton\] +- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions + \[#612\] \[Katy Barnhart\] +- landlab/barnhark/fix_stream_power_type_check \[#610\] \[Katy Barnhart\] +- Clean up API for diagonals. \[Eric Hutton\] +- landlab/gt-taylor-fix \[#606\] \[Katy Barnhart\] +- landlab/mcflugen/fix-travis-ioerror \[#607\] \[Nathan Lyons\] +- landlab/barnhark/depth_dependent_boundary_conditions \[#601\] \[Katy + Barnhart\] +- landlab/mcflugen/tidy-green-ampt \[#591\] \[Jordan Adams\] +- landlab/barnhark/improving_cubic_flux \[#582\] \[Katy Barnhart\] +- Clean up Sphinx documentation \[Eric Hutton\] +- landlab/margauxmouchene/test2 \[#546\] \[margauxmouchene\] +- landlab/gt-fastscape-q \[#574\] \[Greg Tucker\] +- amanaster2/master \[#572\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/kwargs_depth_dependent_diffuser \[#553\] \[Katy + Barnhart\] +- landlab/gt-lattice-uplifter \[#539\] \[Greg Tucker\] +- landlab/gt-add-phi-to-space-adaptive \[#551\] \[Greg Tucker\] +- landlab/barnhark/cubic_nl_diffuser_kwargs \[#550\] \[Katy Barnhart\] +- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser \[#548\] \[Katy + Barnhart\] +- landlab/gt-cmap-in-hexplot \[#544\] \[Greg Tucker\] +- landlab/SiccarPoint/uniform_precip \[#517\] \[Dan Hobley\] +- landlab/mcflugen/fix-greenampt-issue-530 \[#535\] \[Katy Barnhart\] +- landlab/mcflugen/add-logging-function \[#504\] \[Eric Hutton\] +- landlab/gt-try-dyn-ts-space \[#529\] \[Katy Barnhart\] +- landlab/barnhark/get_set_state_methods_for_grid \[#525\] \[Greg Tucker\] +- landlab/fixing_small_bug_in_erosion_deposition \[#528\] \[Greg Tucker\] +- landlab/barnhark/eroder_depo_with_n_less_than_one \[#523\] \[Greg + Tucker\] +- landlab/barnhark/cubic_timestepper \[#519\] \[Greg Tucker\] +- landlab/barnhark/addressing_brent_method_index_error \[#510\] \[Katy + Barnhart\] +- landlab/gt-edit-erodep \[#516\] \[Katy Barnhart\] +- cmshobe/cmshobe/make-erosion-deposition-component \[#511\] \[Greg + Tucker\] +- landlab/barnhark/lake_mapper_faster \[#512\] \[Greg Tucker\] +- nathanlyons/master \[#505\] \[Nicole M Gasparini\] +- cmshobe/cmshobe/minor_fixes_to_space \[#509\] \[Katy Barnhart\] +- cmshobe/cmshobe/change-hybrid-to-SPACE \[#506\] \[Katy Barnhart\] +- cmshobe/cmshobe/fix-hybrid-q-mechanics \[#502\] \[Katy Barnhart\] +- RondaStrauch/master \[#480\] \[Sai Siddhartha Nudurupati\] +- landlab/barnhark/use_newton_fastscape \[#492\] \[Katy Barnhart\] +- landlab/barnhark/improve_streampower_smooth_thresh_stability \[#499\] + \[Greg Tucker\] +- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser \[#497\] \[Greg + Tucker\] +- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient \[#490\] + \[Katy Barnhart\] +- landlab/barnhark/cython_hybrid_alluviaum \[#494\] \[Greg Tucker\] +- cmshobe/cmshobe/fix_hybrid_q_options \[#488\] \[Katy Barnhart\] +- landlab/barnhark/smallchangestohybrid \[#487\] \[Greg Tucker\] +- landlab/gt-add-stretched-expo \[#485\] \[Katy Barnhart\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#481\] \[Katy Barnhart\] +- landlab/mcflugen/add-graph-class \[#477\] \[Greg Tucker\] +- landlab/barnhark/accumulator_efficiency \[#476\] \[Greg Tucker\] +- landlab/barnhark/making_flow_accumulator_faster \[#474\] \[Greg Tucker\] +- landlab/barnhark/fixing_kinwave_flow_issue \[#471\] \[Greg Tucker\] +- cmshobe/cmshobe_fixes_to_hybrid_alluv \[#469\] \[Greg Tucker\] +- landlab/gt-implicit-kinwave \[#464\] \[Greg Tucker\] +- cmshobe/cmshobe/make_hybrid_alluv_initis \[#467\] \[Katy Barnhart\] +- Glader011235/master \[#465\] \[Katy Barnhart\] +- landlab/nicgaspar/diffusion_not_depositing \[#463\] \[Jordan Adams\] +- landlab/kbarnhart/make_raster_netcdf \[#462\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#461\] \[Katy Barnhart\] +- cmshobe/cmshobe_hybrid_alluvium_model \[#460\] \[Greg Tucker\] +- Merge remote-tracking branch ‘origin/master’ \[SiccarPoint\] +- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ + \[SiccarPoint\] +- landlab/kbarnhart/consistent_parameter_names \[#459\] \[Katy Barnhart\] +- landlab/gt-stream-power-K \[#457\] \[Greg Tucker\] +- landlab/gt-fix-fastscape-variable-k \[#456\] \[Katy Barnhart\] +- landlab/gt-create-depth-dep-cubic-diffuser \[#452\] \[Katy Barnhart\] +- landlab/mcflugen/add-py36-builds \[#453\] \[Eric Hutton\] +- landlab/kbarnhart/stream_power_error \[#450\] \[Greg Tucker\] +- landlab/gt-fix-issue-448 \[#449\] \[Dan Hobley\] +- landlab/mcflugen/fix-issue-428 \[#447\] \[Jordan Adams\] +- landlab/jadams15/depth_slope_product \[#445\] \[Jordan Adams\] +- landlab/SiccarPoint/fix_429 \[#430\] \[Katy Barnhart\] +- landlab/SiccarPoint/add-docs \[#442\] \[Katy Barnhart\] +- landlab/gt-fix-issue-431 \[#433\] \[Dan Hobley\] +- landlab/gt-add-Q-stream-power-smooth-thresh \[#443\] \[Katy Barnhart\] +- landlab/SiccarPoint/auto-build-docs \[#437\] \[Dan Hobley\] +- landlab/jadams15/spatially_variable_roughness \[#438\] \[Jordan Adams\] +- landlab/kbarnhart/make_nd_fields \[#434\] \[Greg Tucker\] +- landlab/kbarnhart/improvements_to_set_watershed_boundary \[#426\] \[Katy + Barnhart\] +- landlab/gt-float64-fastscape \[#427\] \[Greg Tucker\] +- landlab/gt-more-cts-cython \[#378\] \[Greg Tucker\] +- landlab/gt-smooth-threshold-stream-power \[#418\] \[Greg Tucker\] +- landlab/gt-tweak-cubic-diff \[#416\] \[Greg Tucker\] +- landlab/gt-fix-init_typo \[#415\] \[Greg Tucker\] +- landlab/jk-move-old-rst \[#412\] \[Greg Tucker\] +- landlab/gt-merge-rg-cubic \[#414\] \[Greg Tucker\] +- cmshobe/cmshobe-drainage-density \[#398\] \[Katy Barnhart\] +- fix minor conflict in raster.py \[Greg Tucker\] +- landlab/SiccarPoint/grid_docs \[#329\] \[Dan Hobley\] +- landlab/SiccarPoint/diagonal_link_lengths \[#328\] \[Eric Hutton\] +- landlab/mcflugen/remove-deprecations \[#327\] \[Eric Hutton\] +- landlab/SiccarPoint/imshow_grid_returns_im \[#326\] \[Dan Hobley\] +- landlab/SiccarPoint/last-minute-deprecation \[#324\] \[Eric Hutton\] +- landlab/SiccarPoint/BAD-INDEX-is-minus1 \[#323\] \[Eric Hutton\] +- landlab/SiccarPoint/patch-methods \[#322\] \[Eric Hutton\] +- landlab/SiccarPoint/tweak-plotter \[#321\] \[Eric Hutton\] +- landlab/saisiddu/Version_1_final \[#320\] \[Eric Hutton\] +- landlab/SiccarPoint/modernise-field-names \[#319\] \[Dan Hobley\] +- landlab/SiccarPoint/modernise-components \[#314\] \[Eric Hutton\] +- landlab/SiccarPoint/most-egregious-diagonals \[#315\] \[Dan Hobley\] +- landlab/gt-calc-of-to-at \[#316\] \[Greg Tucker\] +- landlab/saisiddu/Version_1_final \[#317\] \[Eric Hutton\] +- landlab/jadams15/uniform_precip_changes \[#310\] \[Dan Hobley\] +- landlab/saisiddu/Version_1 \[#311\] \[Dan Hobley\] +- landlab/mcflugen/moved-slope-methods \[#313\] \[Dan Hobley\] +- landlab/SiccarPoint/Horn-slope \[#309\] \[Eric Hutton\] +- landlab/mcflugen/remove-craters \[#312\] \[Eric Hutton\] +- landlab/mcflugen/fix-docs-not-building \[#304\] \[Dan Hobley\] +- landlab/SiccarPoint/grid_trawl \[#307\] \[Eric Hutton\] +- landlab/nicgaspar/watershed_boundary_condition \[#306\] \[Jordan Adams\] +- landlab/SiccarPoint/slopes \[#305\] \[Dan Hobley\] +- landlab/gt-fix-diffuser-bug \[#294\] \[Dan Hobley\] +- landlab/gt-update-gradients \[#303\] \[Greg Tucker\] +- landlab/doc-component-reorg \[#296\] \[Greg Tucker\] +- landlab/gt-fix-ca-tectonics \[#297\] \[Greg Tucker\] +- landlab/gt-flux-divergence \[#295\] \[Greg Tucker\] +- landlab/jk_cleanup_grid_docs \[#289\] \[Greg Tucker\] +- landlab/SiccarPoint/fastscape-threshold \[#290\] \[Jordan Adams\] +- landlab/SiccarPoint/component-modernisation \[#288\] \[Greg Tucker\] +- landlab/gt_fix_faces_at_cell \[#282\] \[Greg Tucker\] +- landlab/sed-flux-dep \[#277\] \[Dan Hobley\] +- landlab/SiccarPoint/chi \[#273\] \[Greg Tucker\] +- landlab/SiccarPoint/plotter_modernisation \[#274\] \[Greg Tucker\] +- landlab/jk_rearrange_index \[#275\] \[Greg Tucker\] +- landlab/SiccarPoint/steepness-index \[#271\] \[nicgaspar\] +- landlab/mcflugen/fix-issue-268 \[#269\] \[Dan Hobley\] +- landlab/mcflugen/add-py35-support \[#270\] \[saisiddu\] +- landlab/SiccarPoint/fix-issue-250 \[#251\] \[Dan Hobley\] +- landlab/SiccarPoint/stream_power_standard \[#256\] \[Eric Hutton\] +- landlab/mcflugen/fix-travis-not-running-all-tests \[#265\] \[Eric + Hutton\] +- landlab/SiccarPoint/dynamic-docstring-import \[#258\] \[Greg Tucker\] +- landlab/SiccarPoint/enhance-mappers \[#263\] \[Dan Hobley\] +- landlab/SiccarPoint/enhance-mappers \[#262\] \[Dan Hobley\] +- Merged fix for deployment from AppVeyor to PyPI. \[mcflugen\] +- landlab/SiccarPoint/enhance-mappers \[#255\] \[Greg Tucker\] +- landlab/jk_copy_init_docstring \[#248\] \[Jenny Knuth\] +- landlab/gtucker/node_link_connectivity \[#253\] \[Dan Hobley\] +- landlab/mcflugen/add-bmi-bridge \[#246\] \[Greg Tucker\] +- landlab/gt-handle-flooded-nodes-in-stream-power \[#247\] \[Dan Hobley\] +- landlab/jk_include_init_docstring \[#244\] \[Jenny Knuth\] +- landlab/mcflugen/fix-issue-242 \[#243\] \[Eric Hutton\] +- Changed to deploy on release branch. \[mcflugen\] +- landlab/SiccarPoint/fix-issue-237 \[#239\] \[Dan Hobley\] +- landlab/mcflugen/fix-flexure-init \[#231\] \[Jordan Adams\] +- landlab/jadams15/fix_node_links \[#234\] \[Eric Hutton\] +- merge commit \[Jenny Knuth\] diff --git a/CHANGES.rst b/CHANGES.rst deleted file mode 100644 index 329c39344c..0000000000 --- a/CHANGES.rst +++ /dev/null @@ -1,10594 +0,0 @@ -============= -Release Notes -============= - -.. towncrier-draft-entries:: Not yet released - -.. towncrier release notes start - -2.8.0 (2024-05-12) ------------------- - -New Components -`````````````` - -- Added new component :class:`~.ConcentrationTrackerForDiffusion` - for tracking hillslope sediment properties. (`#1662 `_) -- Added new component :class:`~.MassWastingRunout` - for predicting the hazard extent, sediment transport and topographic change associated with the runout of a landslide. (`#1830 `_) - - -New Features -```````````` - -- Fixed the Radiation component by computing fields with ASCE standard formulas, added - increased test coverage for both field computations and standard unit testing. - Min, max, and avg daily temp are also three optional, newly added - user-defined arguments for the component. (`#1755 `_) -- Added a new grid type, :class:`~.IcosphereGlobalGrid` (plus underlying graph - machinery, etc.). (`#1808 `_) -- Added a new function, calc_net_face_flux_at_cell, that computes the - net flux of a quantity into each of a RasterModelGrid's cells. This - function uses openmp to parallelize its calculations. (`#1900 `_) -- Added a new *vtk* writer, ``landlab.io.legacy_vtk.dump`` that is - able to write *Landlab* grids that have three spatial coordinates. - This function is also able to write both the main grid (*nodes* and - *patches*) as well as the dual grid (*corners* and *cells*). (`#1932 `_) - - -Bug Fixes -````````` - -- Fixed a bug when ordering links at patches with patches composed of varying - numbers of links. (`#1807 `_) -- Fixed a bug where SpaceLargeScaleEroder deviates from analytical solution for mixed bedrock-alluvial river in a portion of the parameter space. (`#1901 `_) -- Fixed a bug that caused a ``ModuleNotFoundError`` for *pkg_config* on - Python 3.12. (`#1927 `_) - - -Documentation Enhancements -`````````````````````````` - -- Update list of publications in USEDBY.rst. (`#1928 `_) - - -Other Changes and Additions -``````````````````````````` - -- Removed the broken ``map_link_vector_to_nodes`` method from - ``ModelGrid``. As a replacement, use - :func:`~.map_link_vector_components_to_node_raster` for raster grids, and - :func:`~.map_link_vector_components_to_node_hex` for hex grids. (`#1786 `_) -- Fixed the path to the requirements file needed by *readthedocs*. (`#1797 `_) -- Fixed an issue that caused with the CI to fail when building *multidict* on - Mac and Python 3.12. (`#1850 `_) -- Fixed warnings caused by using xarray.Dataset.dims rather than - xarray.Dataset.sizes. (`#1910 `_) -- Added a list of Landlab's extensions to setup.py that must be - maintained manually. This replaces the old, and somewhat buggy, - method of conducting a recursive glob for pyx files. (`#1915 `_) -- Added a new linter, *cython-lint*, that checks for lint in cython - files. (`#1924 `_) -- Changed the *numpy* printing options from the legacy 1.13 format - to the latest, default, version. (`#1929 `_) -- Removed duplicate shapefile modules. (`#1933 `_) - - -2.7.0 (2023-11-04) ------------------- - -New Components -`````````````` - -- Added new component :class:`~.GravelBedrockEroder` to model rock-cutting gravel rivers. (`#1505 `_) -- Added new component :class:`~.AdvectionSolverTVD` for advection using - a Total Variation Diminishing method. (`#1582 `_) - - -New Tutorial Notebooks -`````````````````````` - -- Added a tutorial notebook for the :class:`~.AdvectionSolverTVD` component. (`#1582 `_) - - -New Features -```````````` - -- Added two new mapping functions to assist numerical advection schemes: - :func:`~.map_node_to_link_linear_upwind` and :func:`~.map_node_to_link_lax_wendroff`. (`#1570 `_) -- Added :attr:`.RasterModelGrid.orientation_of_link` and :attr:`.HexModelGrid.orientation_of_link` - attributes to get orientation codes for links. (`#1573 `_) -- Added :attr:`.RasterModelGrid.parallel_links_at_link` and :attr:`.HexModelGrid.parallel_links_at_link` - attributes. (`#1576 `_) -- AdvectionSolverTVD can now handle advection of multiple fields (`#1632 `_) -- Refactor ListricKinematicExtender to use AdvectionSolverTVD (`#1635 `_) -- Add output function for legacy VTK files (`#1643 `_) -- Added an ``rng`` keyword to the :class:`~.NetworkSedimentTransporter` utilities - that allows a user to control the random number generator used. (`#1722 `_) -- Added an ``alpha`` keyword to :func:`~.plot.imshow_grid` that allows a user to set - the transparency value for image plots. (`#1735 `_) -- Added the ability for :class:`~.OverlandFlow` to accept an array - for the ``rainfall_intensity`` keyword. (`#1743 `_) - - -Bug Fixes -````````` - -- Fixed a bug that prevented the :class:`~.DrainageDensity` component from - working on hex grids. (`#1266 `_) -- Fixed a boundary condition issue on D8 flow accumulation in the :class:`~.PriorityFloodFlowRouter`. (`#1542 `_) -- Fixed broken link to header image in `notebooks/tutorials/syllabus.ipynb`. (`#1556 `_) -- Update obsolete function name in raster_gradients.calc_slope_at_node (`#1606 `_) -- Fixed a bug in :class:`~.SpaceLargeScaleEroder` where it would overwrite parts - of the *sediment__influx* field with zeros. (`#1638 `_) -- Fixed a bug where the ``colorbar_label`` keyword of :func:`~.imshow.imshow_grid` - was being ignored for non-raster grids. (`#1654 `_) -- Fixed errors introduced with *argsort* from *numpy* v1.25. These were the result of - vectorized versions of the quicksort algorithm used on some architectures. (`#1670 `_) -- Fixed an issue with the agent based modeling tutorial notebooks that - caused a "too many values to unpack" error with *mesa* v2. (`#1674 `_) -- Fixed an issue with :class:`~.PriorityFloodFlowRouter` where flooded nodes were not updated properly. - This is fixed by setting the ``flood_status_code`` to 3 (i.e. ``_FLOODED``) (`#1683 `_) -- Fixed a bug that caused an incorrect Python version to be used in *Landlab*'s - continuous integration tests. (`#1754 `_) - - -Documentation Enhancements -`````````````````````````` - -- Added links in docs and README to open Landlab tutorials on EarthscapeHub. (`#1556 `_) -- Removed out-dated installation instructions from the documentation. (`#1592 `_) -- Add a tutorial notebook on bringing Landlab raster NetCDF output into Paraview for visualization and animation. (`#1646 `_) -- Fixed an error that caused the documentation build to fail with an error - saying that the documentation was not using `furo.css` as the stylesheet. (`#1696 `_) -- Add tutorial on bringing Landlab .obj output into Blender (`#1698 `_) -- Updated the installation instructions to include options to fetch dependencies - from, and only from, *conda-forge*. (`#1704 `_) -- Reformatted all *doctests* and *reStructuredText* *code-blocks* to conform - to `black `_, giving the code across all of - our documentation a consistent format. To keep things formatted correctly, - added `blackdoc `_ to our linters (`#1785 `_) - - -Other Changes and Additions -``````````````````````````` - -- Removed the ``on_diagonals`` method from the :class:`~.LinearDiffuser` component. (`#1236 `_) -- Moved unversioned requirements into *requirements.in* files and pinned - requirements into *requirements.txt* files. (`#1546 `_) -- Set up `dependabot `_ - to track and update dependencies. (`#1546 `_) -- Added pre-commit hooks for delinting the notebooks and removed newly-found - lint. (`#1585 `_) -- Changed the target branch for *dependabot* pull requests to *dependencies* - and added a GitHub action that automatically keeps the *dependencies* branch - up-to-date with *master*. (`#1602 `_) -- Added two new references to list of publications. (`#1603 `_) -- Added better error reporting and input validation for the LinearDiffser - component. (`#1607 `_) -- Added Cython 3.x (beta) to the build-system for compiling extension modules. (`#1639 `_) -- Fixed an issue with a missing package, *hypothesis*, not being installed when - the notebook tests were run through *nox*. (`#1644 `_) -- Added getters for several :class:`~.BedrockLandslider` input parameters. (`#1651 `_) -- Added getter for several :class:`~SpaceLargeScaleEroder` input parameters. (`#1652 `_) -- Modified the *TaylorDiffuser* components, :class:`~.DepthDependentTaylorDiffuser` and - :class:`~.TaylorNonLinearDiffuser` to use the shortest link instead of ``dx`` in calculatting - time steps. (`#1694 `_) -- Changed the continuous integraion to use *micromamba* rather than *miniconda*. (`#1703 `_) -- Updated *Landlab* for *matplotlib* 3.7.2. Removed calls to newly deprecated - ``get_cmap`` and fixed some notebook errors. (`#1714 `_) -- Removed unused requirements for building the documentation. (`#1720 `_) -- Fixed a flaky test with the :class:`~.lateral_erosion.lateral_erosion.LateralEroder` where it would occasionally - fail to reach the steady state solution. (`#1722 `_) -- Fixed a flaky test with the `sediment_pulser_at_links.ipynb` notebook where it - would occasionally hang. (`#1722 `_) -- Fixed incorrect doctests for ``parallel_links_at_link`` and - ``orientation_of_link``. (`#1738 `_) -- Fixed an issue with *Landlab*'s environment file that caused an error when - trying to run the tutorial notebooks through *Binder*. (`#1758 `_) -- Updated the *readthedocs* configuration file to exclude the - `now invalid `_ - ``system_packages`` option. (`#1762 `_) -- Updated the *isort* configuration to identify *landlab* as a first-party - package to prevent it from moving *landlab* imports into the third-party - section. (`#1763 `_) -- Updated *dependabot* to only manage *Landlab* direct dependencies and changed - our CI to ensure we are running with those pinned dependencies. (`#1773 `_) -- Added support for Python 3.12 and dropped Python 3.9. (`#1782 `_) -- Removed the unused and broken *cython* functions ``reorient_links`` and - ``get_angle_of_links`` from the ``remap_element`` *cython* module. (`#1788 `_) -- Fixed flaky tests of the :class:`~.SedimentPulserAtLinks` and - :class:`~.SedimentPulserEachParcel` components by testing them using a random seed. (`#1794 `_) -- Added a tool that builds a list of *Landlab* contributors and updates the - ``AUTHORS.rst`` and ``.mailmap`` files. (`#1795 `_) - - -2.6.0 (2023-02-16) ------------------- - -New Components -`````````````` - -- Added two :class:`SedimentPulser <.SedimentPulserBase>` components (:class:`~.SedimentPulserAtLinks`, - :class:`~.SedimentPulserEachParcel`) that allow the user to efficiently add sediment - parcels to the :class:`~.DataRecord` while using the - :class:`~.NetworkSedimentTransporter` component. (`#1208 `_) -- Added a set of :class:`BedParcelInitializer <.BedParcelInitializerBase>` components - (:class:`~.BedParcelInitializerDischarge`, :class:`~.BedParcelInitializerDepth`, - :class:`~.BedParcelInitializerArea`, :class:`~.BedParcelInitializerUserD50`) that - allow the user to efficiently create initial river bed sediment conditions for use - in the :class:`~.NetworkSedimentTransporter` component. (`#1208 `_) -- Added a new component, :class:`~.GravelRiverTransporter`, that models - gravel transport and abrasion in a gridded network of river segments. (`#1439 `_) -- Added a new component, :class:`~.AreaSlopeTransporter`. - - The :class:`~.AreaSlopeTransporter` is a generic transport-limited landscape evolution component that models the time rate of change of elevation at a set of grid nodes, each of which has a defined contributing drainage area 𝐴 (field drainage_area) and a local steepest-descent slope gradient, 𝑆, defined from the node itself toward one of its neighboring nodes. The drainage area and slope can be computed with a drainage-routing component such as :class:`~.FlowAccumulator` or :class:`~.PriorityFloodFlowRouter`. The component is designed to function as an integral part of a transport-limited landscape evolution model in the spirit of the Willgoose et al. "SIBERIA" model. (`#1502 `_) - - -New Tutorial Notebooks -`````````````````````` - -- Added tutorial notebooks for the new - :class:`BedParcelInitializer <.BedParcelInitializerBase>` and - :class:`SedimentPulser <.SedimentPulserBase>` components, all associated with the - :class:`~.NetworkSedimentTransporter`. (`#1208 `_) -- Added a tutorial notebook that demonstrates use of the new :class:`~.GravelRiverTransporter` component. (`#1439 `_) - - -New Features -```````````` - -- Updated the ``NetworkSedimentTransporter`` component to allow the user to - specify a minimum acceptable channel slope threshold. (`#1208 `_) -- Added the ``calculate_window_statistic`` utility that calculates local grid node statistics within a moving window. (`#1263 `_) -- Added the ``at`` keyword to the ``imshow_grid`` functions so that they now - use the same pattern as many other *landlab* functions. (`#1424 `_) -- The ``plot_graph`` function now can take lists of graph elements rather than only comma-separated strings. (`#1425 `_) -- Added a new keyword, ``axes`` to ``plot_graph`` to allow plotting within an - existing axes. (`#1425 `_) -- Enhanced the ``plot_graph`` function: allow the ``with_id`` keyword to - accept a list of elements that should have included IDs, fill in patches and - cells. (`#1425 `_) -- Added an ``imshow`` method to all *landlab* model grids that is a wrapper for - the ``imshow_grid`` function. (`#1430 `_) -- Updated the ``BedrockLandslider`` component so that a user can now specify a - threshold slope to determine the transport length within the deposition part - of the component. (`#1431 `_) -- Added the ``ThresholdEroder`` component that erodes material to a user-suplied maximum slope. (`#1440 `_) -- Added a new class of grid, *FramedVoronoiGrid* which is an elaborated version of the VoronoiDelaunayGrid. The user input parameters to automatically calculate the positions of the nodes. The boundary nodes are automatically fixed, in a not random way. The core nodes are first positioned in a rectangular pattern, and then moved by a random distance in such a way that a minimal distance between nodes is respected. This minimal distance is convenient when we have to run diffusion or river incision processes on the grid, which can become unstable for two small distances between nodes (depending on the timestep of the run). (`#1450 `_) -- Enhance possibilities for .pyx compilation through setup.py update. Now include the tests and compile using Python 3. Compilation instructions (C++, multithreading openmp, macros) can be added at top of the .pyx and .pxd files. See use case with files linked to the future FlowRouter component (including tests). (`#1467 `_) -- Enhance Exponential weatherer so that it takes spatially explicit input values for soil production maximum rate and soil production decay depth. (`#1529 `_) - - -Bug Fixes -````````` - -- Fixed an issue in the NetworkSedimentTransporter tutorial notebooks related to - deprecated xarray dataset syntax in the calc_aggregate_value method of ``DataRecord`` (`#1208 `_) -- Fixed a bug in notebooks that use *bmi-topography* where an incorrect API key was being used. (`#1410 `_) -- Fixed a bug in ``plot_graph`` where patch and cell polygons were not drawn. (`#1428 `_) -- Fixed a bug where ``plot_graph`` would incorrectly include the last - node/corner with patches/cells that had fewer links/faces than the maximum of - the graph. (`#1428 `_) -- Fixed an issue related to flow re-routing on an irregular Voronoi-Delaunay grid. (`#1442 `_) -- Fixed the ABM tutorial notebooks that were using an older syntax for the - *Mesa* *remove_agent* method. (`#1444 `_) -- Fixed a bug where the *tests* folder was also being installed in - *site-packages*. (`#1445 `_) -- Fixed a bug where the ``SpaceLargeScaleEroder`` was only able to accept a scalar value for the erodibility coefficient. - Now it is able to accept either a scalar or an array. (`#1477 `_) -- Fixed a bug in *imshowhs_grid* where, when a no-data drape was provided, the plot was - inverted in the north-south directions. (`#1484 `_) -- Fixed a bug in *imshowhs_grid* where the hillshade base layer was not plotting data from rows and columns adjacent to boundary nodes. (`#1484 `_) -- Fixed a bug in the *HyLandsTutorial* notebook where the *BedrockLandslider*'s - *topographic__elevation* field was not being updated correctly. (`#1490 `_) -- Fixed a bug in *imshowhs_grid* that caused the axis tick marks to be slightly in the wrong position. (`#1492 `_) -- Fixed a bug in *imshowhs_grid* where boundary nodes were not indicated even if requested. (`#1492 `_) -- Fixed an issue when plotting the colorbar in the ``plot_drainage`` function - using *matplotlib* 3.6. (`#1493 `_) -- Fixed usages of ``plt.gca`` that used keywords to create new axes objects. With - *matplotlib* 3.6, the way to do this is with ``plt.axes``. (`#1494 `_) -- Fixed a possible memory leak caused by using the *lru_cache* decorator of - class methods. (`#1514 `_) -- Fixed a bug that, when using randomly positioned nodes, sometimes resulted in a voronoi - diagram that contained cells without any vertices. (`#1516 `_) - - -Documentation Enhancements -`````````````````````````` - -- Combined multiple "Tectonics" sections on the component documentation page. (`#1415 `_) -- Fixed the broken links to the openearthscape JupyterHub. (`#1419 `_) -- Cleaned up the indexing of field names used and provided by all landlab - components. (`#1476 `_) -- Cleaned up the categorization of all the landlab grid methods. (`#1476 `_) -- Updated the installation instructions for the tutorial notebooks to better - describe how to install the tutorial dependencies. (`#1526 `_) -- Added additional publications to the list in the documentation. (`#1538 `_) - - -Other Changes and Additions -``````````````````````````` - -- Added a pull request template that contains a checklist of items for - contributors to complete. (`#1340 `_) -- Added a citation file, using the Citation File Format, that describes how to cite the *landlab* code base. (`#1342 `_) -- Added a short script that can be used to download a set of *landlab* notebooks - that are compatible with a specified version of *landlab*. (`#1408 `_) -- Moved static project metadata into pyproject.toml. (`#1409 `_) -- Fixed an issue where notebooks that download DEMs from OpenTopography were - failing with an error about a missing API key. (`#1410 `_) -- Fixed some failing read_shapefile tests related to a new version of pyshp by requiring pyshp != v2.3.0. (`#1418 `_) -- Fixed some typos in the doctest for the ``StreamPowerEroder``. (`#1426 `_) -- Added *water_surface__elevation* as a field in the - ``LinearDiffusionOverlandFlowRouter``. (`#1433 `_) -- Fixed doctests that were failing because "0"s were being printed as "-0"s. (`#1435 `_) -- Added a GitHub Actions workflow to the continuous integration that checks to - see if a pull request contains a news fragment. (`#1446 `_) -- Update tutorial template notebook remove obsolute "%" magic and edit description of link to tutorials page. (`#1457 `_) -- Added unit tests for the cython function, *adjust_flow_receivers*, used by the *FlowDirectorSteepest* component. (`#1459 `_) -- Added a *nox* file to help with routine project maintenance tasks like, for - example, running the tests, and checking for coding style. (`#1469 `_) -- Added two new *nox* sessions: *requirements* and *nuke*. *requirements* - recreates the various requirements files while *nuke* does an extra bit of - cleaning. (`#1474 `_) -- Fixed an issue that prevented the docs from building due to a compatibility - issue with *sphinxcontrib.towncrier* and *towncrier* v22.8. (`#1480 `_) -- Changed ``FramedVoronoiGrid`` to accept a single seed for the *seed* keyword. (`#1495 `_) -- Modified to skip the doctests for ``ExampleData`` and ``write_esri_ascii`` that created - files in the user's working directory. These doctests are now repeated as unit tests - that clean up after themselves. (`#1496 `_) -- Improved the error message that's reported when a user attempts to add a field - to a grid that already contains a field with that name. (`#1500 `_) -- Allow the cumulative_subsidence_depth field in ListricKinematicExtender to clobber a pre-existing field, which is needed if the caller has read in a pre-existing saved grid. (`#1510 `_) -- Fixed a broken *pre-commit* hook that caused an error when checking for lint - with *flake8*. (`#1512 `_) -- Added *flake8-comprehension* to the *flake8* *pre-commit* hook to identify - comprehension-related lint. (`#1512 `_) -- Added additional linters via pre-commit hooks and removed the newly discovered - lint. (`#1514 `_) -- In the Tutorials doc, updated the URL to download the ``notebook.py`` script from GitHub. (`#1520 `_) -- Updated code to work with *numpy* v1.24 and *scipy* v1.10. (`#1521 `_) -- Removed the *richdem* package as a mandatory requirement for *landlab*. Users - needing to use *richdem* (i.e. the `PriorityFloodFlowRouter`) must now install it - separately. (`#1523 `_) -- Updated the pre-commit hooks (most notably flake8 and its plugins) and removed - newly-found lint. (`#1524 `_) -- Updated *Landlab*'s CI to use Python 3.11 and to drop testing with Python 3.8. (`#1527 `_) -- Updated ``landlab.__version__`` to match that of the latest release. (`#1531 `_) -- Removed obsolete files from the top-level directory of the repository. (`#1534 `_) -- Updated the ci workflows to use a newer version of cibuildwheel when building - wheels for releases and pre-releases. (`#1536 `_) -- Fixed a test failure in the ``PriorityFlood_realDEMs.ipynb`` notebook by - constraining bmi-topography to versions other than 0.8.1. (`#1539 `_) -- Changed the ci testing of the notebooks to use nbmake. (`#1541 `_) -- Increased the stacklevel for warnings from 1 (the default) to 2 to provide - more information to the user. (`#1545 `_) - - -2.5.0 (2022-04-15) ------------------- - -New Components -`````````````` - -- ``CarbonateProducer`` Grow carbonate strata using growth function of Bosscher and Schlager (1992). (`#1284 `_) -- ``DimensionlessDischarge``, that calculates the dimensionless discharge value, debris flow threshold value, and boolean for predicted debris flow for stream segments. (`#1377 `_) -- ``LinearDiffusionOverlandFlowRouter``: overland flow using the linearized diffusion-wave approximation. (`#1383 `_) - - -New Tutorial Notebooks -`````````````````````` - -- Added a notebook that shows how to use USGS NHDPlus HR datasets with the - ``NetworkSedimentTransporter`` component (`#1345 `_) -- Addded a new notebook that demonstrates ways to create a ``NetworkModelGrid`` from a DEM fetched from *OpenTopography* using the *Topography* utility. (`#1400 `_) - - -New Features -```````````` - -- Added the ability for a user to add layers at grid elements other than cells (i.e. - nodes, links, etc.). Previously, the *at_layer* variables could only be at cell elements. (`#1292 `_) -- Added the ability to define the units of a field when creating a grid from a file - through the ``create_grid`` function. (`#1358 `_) -- Added the ``network_grid_from_raster`` function that creates a ``NetworkModelGrid`` - from a ``RasterModelGrid``. This function extracts channel segments from the - source grid to become links of the newly-created grid. (`#1360 `_) -- Added *sediment__influx* and *sediment__outflux* fields to the ``ErosionDeposition``, - ``LateralEroder``, ``SpaceLargeScaleEroder``, and ``Space`` components. (`#1370 `_) -- Added ``ticks_km``, ``cbar_ticks_color`` keywords to the ``imshowhs_grid`` function for more control of colorbar ticks. (`#1397 `_) -- Added control on location of the ylabels of colorbars in the ``imshowhs_grid`` function using the ``y_label_offSet_var_1`` and ``y_label_offSet_var_2`` keywords. (`#1397 `_) -- Added a new utility, *plot_layers*, that plots sediment layers along with sea level and bedrock. (`#1398 `_) - - -Bug Fixes -````````` - -- Clip active layer thickness to zero in the NetworkSedimentTransporter component. This - eliminates an ``invalid value encountered in power`` warning. (`#1356 `_) -- Allow *landlab* to be installed without the *richdem* package in the case that - *richdem* is not available for a particular platform or Python version. (`#1379 `_) -- Resolved instabilities related to the use of very small ``H*`` values when using the ``Space_Large_Scale_Eroder``. (`#1397 `_) -- Fixed a broken reference in the ``PriorityFloodFlowDirector`` where the gradient of the hillslopes are being updated. (`#1397 `_) -- Fixed a bug that incorrectly diagnosed if the *richdem* engine was installed and working correctly. (`#1399 `_) - - -Documentation Enhancements -`````````````````````````` - -- Added missing documentation files for ``BedrockLandslider`` and ``SpaceLargeScaleEroder``. (`#1373 `_) -- Set up *[towncrier](https://towncrier.readthedocs.io/en/actual-freaking-docs/)* - to update and manage the *landlab* changelog. New fragments are placed in the - ``news/`` folder. (`#1396 `_) - - -Other Changes and Additions -``````````````````````````` - -- Added an OpenTopography API key to notebooks that use *bmi-topography* to fetch - data from OpenTopography. (`#1384 `_) -- Updated the coding style to conform to new version of black. This was, primarily, - hugging the ``**`` operator. (`#1385 `_) -- The notebooks are tested only with Python 3.9. (`#1399 `_) -- Added Python 3.10 to continuous integration tests and dropped Python 3.7. (`#1399 `_) -- Speed up our continuous integration tests by about 2x by running them in parallel using *pytest-xdist*. (`#1399 `_) -- Turn off *hypothesis* deadline setting globally when running continuous - integration tests. (`#1401 `_) -- Updated the documentation to build with newer versions of *Sphinx*. (`#1404 `_) -- Added several new *landlab*-using references. (`#1407 `_) - - -2.4.1 (2021-12-02) ------------------- - -New Tutorial Notebooks -`````````````````````` - -- Added two ABM tutorial notebooks (`#1364 `_) - - -Other Changes and Additions -``````````````````````````` - -- fixed a bug that causes release workflows to not be triggered (`#1371 `_) -- Fixed the building of source distributions for prerelease and release - workflows (`#1372 `_) - - -2.4.0 (2021-11-29) ------------------- - -Other Changes and Additions -``````````````````````````` - -- Changed GitHub actions to use cibuildwheel for building wheels (`#1368 `_) - - -2.4.0b0 (2021-11-28) --------------------- - -New Components -`````````````` - -- ListricKinematicExtender: Simulate Extensional Tectonic Motion on a Listric Fault Plane (`#1283 `_) -- PriorityFloodFlowRouter and SpaceLargeScaleEroder (`#1352 `_) -- Added BedrockLandslider component (`#1362 `_) - - -New Tutorial Notebooks -`````````````````````` - -- Added tutorial notebook for depth dependent taylor diffuser (`#1306 `_) -- Added tutorial notebook for chi finder (`#1307 `_) -- Added tutorial notebook for kinwave impl (`#1308 `_) -- Added tutorial notebook for taylor diffuser (`#1309 `_) -- Added notebook tutorials for two components (both written by Jordan Adams): - * ``DepthSlopeProductErosion``, - * ``DetachmentLtdErosion`` - - Added a tutorial showing how to "D4 pit fill" a DEM, and a version of the simple ``hugo_site.asc`` DEM that has been pit-filled. (`#1313 `_) -- Added tutorial notebook for Space component (`#1314 `_) -- Added tutorial notebook for erosiondeposition ttl (`#1315 `_) -- Added tutorial notebook for erodep (`#1317 `_) -- Added tutorial notebook for StreamPowerSmoothThresholdEroder (`#1331 `_) - - -New Features -```````````` - -- Infer data types of fields when reading from shape files (`#1357 `_) - - -Bug Fixes -````````` - -- Fixed ability to pass a masked array to imshow_grid_at_node (`#1297 `_) -- Fixed xarray 'axis' keyword error in map function (`#1300 `_) -- Fixed a missing absolute value in Courant condition in dupuit_percolator (`#1311 `_) -- Fixed pits and division by zero in lateral_erosion component (`#1353 `_) - - -Documentation Enhancements -`````````````````````````` - -- Updated installation instructions (`#1287 `_) -- Minor updates to documentation (`#1290 `_) -- Run the link checker on docs (`#1336 `_) -- Fixed documentation errors in green ampt component (`#1343 `_) -- Added new references to landlab (`#1344 `_) -- Added a link to launch landlab notebooks on the CSDMS JupyterHub (`#1347 `_) - - -Other Changes and Additions -``````````````````````````` - -- Fixed warnings related to unnecessary use of numpy number types (`#1323 `_) -- Changed continuous integration to always check the docs build (`#1336 `_) -- Added a pre-commit configuration file (`#1338 `_) -- Drop the "file:" prefix when referencing pip requirements files (`#1339 `_) -- Removed usages of np.int from Cython code (`#1354 `_) -- Check that notebooks are both clean and blackened as part of continuous integration (`#1355 `_) - - -2.3.0 (2021-03-19) ------------------- - -New Components -`````````````` - -- Added a tidal flow component (`#1225 `_) -- Added ExponentialWeathererIntegrated component (`#1254 `_) -- Added simple submarine diffuser component (`#1269 `_) - - -New Tutorial Notebooks -`````````````````````` - -- Added tutorial for river input to LEMs (`#1258 `_) - - -New Features -```````````` - -- Added recharge to the GroundwaterDupuitPercolator callback (`#1223 `_) -- Added Wavefront OBJ output (`#1241 `_) - - -Bug Fixes -````````` - -- Fixed bug in Flow router/depression finder which incorrectly directed flow (`#1248 `_) -- Fixed an error in the streampower notebook (`#1260 `_) -- Fixed a bug in the FlowAccumulator to update pit present logic to also include node flood status (`#1277 `_) -- Fixed a bug when adding a missing at_grid field when testing components (`#1286 `_) - - -Documentation Enhancements -`````````````````````````` - -- Fixed documentation bugs (`#1233 `_) -- Added two 2020 publications (`#1243 `_) -- Added docs for the flow accumulator (`#1251 `_) -- Added a reference to the papers and presentations list (`#1255 `_) -- Added additional references for 2020 and 2021 (`#1273 `_) - - -Other Changes and Additions -``````````````````````````` - -- NetworkSedimentTtransporter JOSS paper fixes (`#1235 `_) -- Small changes to JOSS paper (`#1237 `_) -- Changed to use GitHub Actions for CI (`#1270 `_) -- Added building and testing of landlab with Python 3.9 (`#1274 `_) -- Added release and prerelease github actions (`#1275 `_) -- Cleaned up landlab metadata files; Removed versioneer, we'll use zest.releaser from now on the manage versions (`#1285 `_) - - -1.5.1 (2018-06-22) ------------------- - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] - -1.5.0 (2018-06-18) ------------------- - -.. _fixed-1: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] - -.. _changed-1: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] - -1.4.0 (2018-05-03) ------------------- - -.. _fixed-2: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] - -.. _added-1: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] - -.. _changed-2: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] - -1.3.1 (2018-03-24) ------------------- - -.. _fixed-3: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] - -.. _added-2: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] - -.. _changed-3: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- Set versioneer to ignore ``v`` prefix in tags [Eric Hutton] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] - -1.3.0 (2018-03-14) ------------------- - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-4: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] - -.. _added-3: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-4: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] - -1.2.0 (2017-10-19) ------------------- - -.. _removed-1: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-5: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] - -.. _added-4: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-5: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] - -1.1.0 (2017-06-26) ------------------- - -.. _removed-2: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-6: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-5: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-6: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] - -1.0.3 (2017-03-04) ------------------- - -.. _removed-3: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-7: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-6: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-7: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.2 (2016-11-24) ------------------- - -.. _removed-4: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-8: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-7: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-8: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.1 (2016-08-25) ------------------- - -.. _removed-5: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-9: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-8: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-9: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/patch-flowaccum-reclimit [#375] [Dan Hobley] -- Merge remote-tracking branch ‘refs/remotes/origin/master’ into - release [saisiddu] -- Merge remote-tracking branch ‘refs/remotes/origin/master’ into - release [saisiddu] - -1.0.0-beta.8 (2016-07-07) -------------------------- - -.. _removed-6: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-10: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-9: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-10: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.0-beta.7 (2016-07-07) -------------------------- - -.. _removed-7: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-11: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-10: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-11: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.0-beta.6 (2016-06-16) -------------------------- - -.. _removed-8: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-12: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-11: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-12: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.0-beta.5 (2016-06-14) -------------------------- - -.. _removed-9: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-13: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-12: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-13: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.0-beta.4 (2016-06-14) -------------------------- - -.. _removed-10: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-14: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-13: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-14: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/pot-fr-modernise [#344] [Jordan Adams] -- landlab/mcflugen/fix-landlab-test-function [#345] [Dan Hobley] - -1.0.0-beta.3 (2016-06-06) -------------------------- - -.. _removed-11: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-15: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-14: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-15: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.0-beta.2 (2016-06-06) -------------------------- - -.. _removed-12: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-16: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-15: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-16: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.0-beta.12 (2016-08-02) --------------------------- - -.. _removed-13: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-17: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-16: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-17: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/patch-flowaccum-reclimit [#375] [Dan Hobley] - -1.0.0-beta.11 (2016-07-19) --------------------------- - -.. _removed-14: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-18: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-17: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-18: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- Merge remote-tracking branch ‘refs/remotes/origin/master’ into - release [saisiddu] - -1.0.0-beta.10 (2016-07-14) --------------------------- - -.. _removed-15: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-19: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-18: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-19: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- Merge remote-tracking branch ‘refs/remotes/origin/master’ into - release [saisiddu] - -1.0.0-beta.1 (2016-05-18) -------------------------- - -.. _removed-16: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-20: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-19: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-20: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] - -1.0.0-beta (2016-05-13) ------------------------ - -.. _removed-17: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-21: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-20: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-21: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] - -1.0.0-alpha (2016-05-13) ------------------------- - -.. _removed-18: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-22: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-21: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-22: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] - -1.0.0 (2016-08-19) ------------------- - -.. _removed-19: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-23: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-22: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-23: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/patch-flowaccum-reclimit [#375] [Dan Hobley] -- Merge remote-tracking branch ‘refs/remotes/origin/master’ into - release [saisiddu] -- Merge remote-tracking branch ‘refs/remotes/origin/master’ into - release [saisiddu] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] - -0.5.0 (2016-03-12) ------------------- - -.. _removed-20: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-24: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-23: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-24: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] - -0.2.3 (2016-03-10) ------------------- - -.. _removed-21: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-25: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-24: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-25: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] - -0.2.2 (2016-02-09) ------------------- - -.. _removed-22: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-26: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-25: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-26: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] - -0.2.1 (2016-02-08) ------------------- - -.. _removed-23: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-27: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-26: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-27: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] - -0.2.0 (2015-12-20) ------------------- - -.. _removed-24: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-28: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-27: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-28: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] - -0.1.41 (2015-12-13) -------------------- - -.. _removed-25: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-29: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-28: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-29: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] - -0.1.40 (2015-12-13) -------------------- - -.. _removed-26: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-30: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-29: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-30: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] - -0.1.39 (2015-10-28) -------------------- - -.. _removed-27: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-31: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-30: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-31: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/SiccarPoint/D4routing [#176] [Jordan Adams] -- landlab/sed_fill [#173] [Eric Hutton] -- landlab/sed_fill [#168] [Jordan Adams] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] - -0.1.38 (2015-10-21) -------------------- - -.. _removed-28: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-32: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-31: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-32: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] - -0.1.37 (2015-10-20) -------------------- - -.. _removed-29: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-33: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-32: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-33: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] - -0.1.36 (2015-10-20) -------------------- - -.. _removed-30: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-34: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-33: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-34: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] - -0.1.35 (2015-10-20) -------------------- - -.. _removed-31: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-35: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-34: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-35: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] - -0.1.34 (2015-10-19) -------------------- - -.. _removed-32: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-36: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-35: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-36: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] - -0.1.33 (2015-10-11) -------------------- - -.. _removed-33: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-37: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-36: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-37: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] - -0.1.32 (2015-10-11) -------------------- - -.. _removed-34: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-38: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-37: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-38: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] - -0.1.31 (2015-10-11) -------------------- - -.. _removed-35: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-39: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-38: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-39: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] - -0.1.30 (2015-10-11) -------------------- - -.. _removed-36: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-40: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-39: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-40: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] -- landlab/mcflugen/make-node-status-private [#152] [Eric Hutton] -- landlab/mcflugen/code-clean-up [#148] [Eric Hutton] -- landlab/mcflugen/add-appveyor-slack-notifications [#149] [Eric - Hutton] -- Merge remote-tracking branch ‘origin/link_status’ [mcflugen] -- landlab/link_status [#143] [Eric Hutton] - -0.1.29 (2015-09-13) -------------------- - -.. _removed-37: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-41: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-40: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-41: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] -- landlab/mcflugen/make-node-status-private [#152] [Eric Hutton] -- landlab/mcflugen/code-clean-up [#148] [Eric Hutton] -- landlab/mcflugen/add-appveyor-slack-notifications [#149] [Eric - Hutton] -- Merge remote-tracking branch ‘origin/link_status’ [mcflugen] -- landlab/link_status [#143] [Eric Hutton] -- landlab/mcflugen/fix-failing-docs-build [#145] [Eric Hutton] - -0.1.28 (2015-09-09) -------------------- - -.. _removed-38: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-42: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-41: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-42: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] -- landlab/mcflugen/make-node-status-private [#152] [Eric Hutton] -- landlab/mcflugen/code-clean-up [#148] [Eric Hutton] -- landlab/mcflugen/add-appveyor-slack-notifications [#149] [Eric - Hutton] -- Merge remote-tracking branch ‘origin/link_status’ [mcflugen] -- landlab/link_status [#143] [Eric Hutton] -- landlab/mcflugen/fix-failing-docs-build [#145] [Eric Hutton] -- landlab/mcflugen/update-mappers [#142] [Eric Hutton] -- landlab/fix-issue-128 [#129] [Eric Hutton] -- landlab/mcflugen/add-netcdf-tests [#138] [Eric Hutton] -- landlab/mcflugen/add-better-testing-docs [#137] [Eric Hutton] - -0.1.27 (2015-07-29) -------------------- - -.. _removed-39: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-43: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-42: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-43: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] -- landlab/mcflugen/make-node-status-private [#152] [Eric Hutton] -- landlab/mcflugen/code-clean-up [#148] [Eric Hutton] -- landlab/mcflugen/add-appveyor-slack-notifications [#149] [Eric - Hutton] -- Merge remote-tracking branch ‘origin/link_status’ [mcflugen] -- landlab/link_status [#143] [Eric Hutton] -- landlab/mcflugen/fix-failing-docs-build [#145] [Eric Hutton] -- landlab/mcflugen/update-mappers [#142] [Eric Hutton] -- landlab/fix-issue-128 [#129] [Eric Hutton] -- landlab/mcflugen/add-netcdf-tests [#138] [Eric Hutton] -- landlab/mcflugen/add-better-testing-docs [#137] [Eric Hutton] - -0.1.26 (2015-07-20) -------------------- - -.. _removed-40: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-44: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-43: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-44: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] -- landlab/mcflugen/make-node-status-private [#152] [Eric Hutton] -- landlab/mcflugen/code-clean-up [#148] [Eric Hutton] -- landlab/mcflugen/add-appveyor-slack-notifications [#149] [Eric - Hutton] -- Merge remote-tracking branch ‘origin/link_status’ [mcflugen] -- landlab/link_status [#143] [Eric Hutton] -- landlab/mcflugen/fix-failing-docs-build [#145] [Eric Hutton] -- landlab/mcflugen/update-mappers [#142] [Eric Hutton] -- landlab/fix-issue-128 [#129] [Eric Hutton] -- landlab/mcflugen/add-netcdf-tests [#138] [Eric Hutton] -- landlab/mcflugen/add-better-testing-docs [#137] [Eric Hutton] - -0.1.25 (2015-07-16) -------------------- - -.. _removed-41: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-45: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-44: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-45: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] -- landlab/mcflugen/make-node-status-private [#152] [Eric Hutton] -- landlab/mcflugen/code-clean-up [#148] [Eric Hutton] -- landlab/mcflugen/add-appveyor-slack-notifications [#149] [Eric - Hutton] -- Merge remote-tracking branch ‘origin/link_status’ [mcflugen] -- landlab/link_status [#143] [Eric Hutton] -- landlab/mcflugen/fix-failing-docs-build [#145] [Eric Hutton] -- landlab/mcflugen/update-mappers [#142] [Eric Hutton] -- landlab/fix-issue-128 [#129] [Eric Hutton] -- landlab/mcflugen/add-netcdf-tests [#138] [Eric Hutton] -- landlab/mcflugen/add-better-testing-docs [#137] [Eric Hutton] -- resolved conflicts in lake mapper [gregtucker] -- ierge branch ‘master’ of https://github.com/landlab/landlab - [gregtucker] - -0.1.24 (2015-07-12) -------------------- - -.. _removed-42: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-46: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-45: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-46: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] -- landlab/mcflugen/fix-component-imports [#214] [Dan Hobley] -- landlab/SiccarPoint/component-tests [#209] [Eric Hutton] -- landlab/SiccarPoint/component-tests [#204] [Eric Hutton] -- landlab/mcflugen/add-value-name-decorator [#199] [Dan Hobley] -- landlab/SiccarPoint/component-introspection [#200] [Jenny Knuth] -- landlab/mcflugen/fix-voronoi-cell-areas [#202] [Dan Hobley] -- landlab/mcflugen/fix-testing-script [#198] [Eric Hutton] -- landlab/mcflugen/add-neighbor-at-node [#195] [saisiddu] -- landlab/mcflugen/fix-appveyor-builds [#185] [Eric Hutton] -- landlab/mcflugen/clean-up-imshow [#178] [saisiddu] -- landlab/mcflugen/fix-reset_lists_of_nodes_cells [#182] [Greg Tucker] -- landlab/SiccarPoint/var-doc [#187] [Eric Hutton] -- landlab/gtucker/cleanup [#186] [Eric Hutton] -- landlab/mcflugen/add-gradients-module [#169] [Eric Hutton] -- landlab/SiccarPoint/delete-fields [#167] [Dan Hobley] -- landlab/voronoi_stream_power [#158] [Dan Hobley] -- landlab/mcflugen/make-node-status-private [#152] [Eric Hutton] -- landlab/mcflugen/code-clean-up [#148] [Eric Hutton] -- landlab/mcflugen/add-appveyor-slack-notifications [#149] [Eric - Hutton] -- Merge remote-tracking branch ‘origin/link_status’ [mcflugen] -- landlab/link_status [#143] [Eric Hutton] -- landlab/mcflugen/fix-failing-docs-build [#145] [Eric Hutton] -- landlab/mcflugen/update-mappers [#142] [Eric Hutton] -- landlab/fix-issue-128 [#129] [Eric Hutton] -- landlab/mcflugen/add-netcdf-tests [#138] [Eric Hutton] -- landlab/mcflugen/add-better-testing-docs [#137] [Eric Hutton] -- resolved conflicts in lake mapper [gregtucker] -- ierge branch ‘master’ of https://github.com/landlab/landlab - [gregtucker] -- landlab/mcflugen/add-python-3-support-with-six [#121] [Eric Hutton] -- landlab/mcflugen/fix-setuptools-error [#126] [Eric Hutton] - -v0.1.23 (2015-05-15) --------------------- - -.. _removed-43: - -Removed -``````` - -- Removed inlink and outlink matrices. [Eric Hutton] -- Removed deprecated raster_steepest_descent module. [Eric Hutton] -- Removed corner_node_at_cell [Eric Hutton] -- Removed old and unused \_route_flow_old from lake_mapper [Eric - Hutton] -- Removed unused code from flow_direction_DN [Eric Hutton] - -.. _fixed-47: - -Fixed -````` - -- Fixed bug in Flexure1D when using “flexure” method [Eric Hutton] -- Fixed unit test failures related to masked arrays (#710) [Eric - Hutton] -- Fixed failed Travis builds being reported as passing [Eric Hutton] -- Fixed doctest for graph.adjacent_nodes_at_node [Eric Hutton] -- Fixed names of packages deployed to Anaconda Cloud [Eric Hutton] -- Fixed incorrect signatures of decorated methods in docs. [Eric - Hutton] -- Fixed Travis build errors with Python version conflicts. [Eric - Hutton] -- Fixed values not being cached (#614) [Eric Hutton] -- Fixed component documentation not building (issue #575) [Eric Hutton] -- Fixed netcdf4 import error [Eric Hutton] - -.. _added-46: - -Added -````` - -- Added CONTRIBUTING.md document [Eric Hutton] -- Added script to create a nicely formatted changelog [Eric Hutton] -- Added 1D Flexure component [Eric Hutton] -- Added cite_as function to get landlab component citations [Eric - Hutton] -- Added adjacent_nodes_at_node, adjacent_corners_at_corner to Graph. - [Eric Hutton] -- Added additional tests for SoilInfiltrationGreenAmpt. [Eric Hutton] -- Added citation tracker for components. [Eric Hutton] -- Added nodes_at_link attribute to ModelGrid. [Eric Hutton] -- Added event layers to track stratigraphy [Eric Hutton] - -.. _changed-47: - -Changed -``````` - -- amanaster2/master [#733] [Sai Siddhartha Nudurupati] -- landlab/barnhark/major_cleanup_to_space_and_erodepo_init [#709] [Katy - Barnhart] -- landlab/gt/fix-doctest-issue-726 [#728] [Greg Tucker] -- landlab/gt/ca-top-hit-bug [#720] [Greg Tucker] -- landlab/barnhark/space_cell_area [#719] [Greg Tucker] -- landlab/barnhark/use_field_name_array_or_float [#683] [Katy Barnhart] -- landlab/barnhark/give_hex_models_watershed_methods [#685] [Katy - Barnhart] -- landlab/SiccarPoint/fix-issue-702 [#706] [Katy Barnhart] -- Giuseppecipolla95/Giuseppecipolla95/make_stream_length_utility [#658] - [Katy Barnhart] -- landlab/barnhark/revert_channel_profiler [#695] [Katy Barnhart] -- landlab/barnhark/space_rounding [#698] [Katy Barnhart] -- landlab/barnhark/add_docs_to_normal_fault [#677] [Katy Barnhart] -- landlab/barnhark/space_type_updates [#669] [Katy Barnhart] -- landlab/barnhark/minor_changes_to_normal_fault [#663] [Katy Barnhart] -- landlab/gt-debug-ca-propswap [#661] [Greg Tucker] -- landlab/barnhark/space_hex [#655] [Katy Barnhart] -- landlab/barnhark/add_kwargs [#645] [Katy Barnhart] -- landlab/barnhark/normal_fault_kwargs [#649] [Katy Barnhart] -- landlab/barnhark/normal_fault [#640] [Katy Barnhart] -- landlab/barnhark/exponential_weatherer_docstring [#643] [Katy - Barnhart] -- landlab/nathanlyons/watershed [#545] [Nathan Lyons] -- landlab/barnhark/updates_to_channel_profile [#637] [Katy Barnhart] -- landlab/barnhark/typo_in_imshow [#636] [Katy Barnhart] -- landlab/barnhark/add_component_docs [#634] [Katy Barnhart] -- landlab/gt-ca-uplift [#581] [Greg Tucker] -- landlab/barnhark/make_stream_profiler [#605] [Katy Barnhart] -- landlab/mcflugen/remove-old-flux-div [#619] [Dan Hobley] -- Simplified continuous integration and versioning. [Eric Hutton] -- landlab/barnhark/improving_flow_accumulator_lake_mapper_interactions - [#612] [Katy Barnhart] -- landlab/barnhark/fix_stream_power_type_check [#610] [Katy Barnhart] -- Clean up API for diagonals. [Eric Hutton] -- landlab/gt-taylor-fix [#606] [Katy Barnhart] -- landlab/mcflugen/fix-travis-ioerror [#607] [Nathan Lyons] -- landlab/barnhark/depth_dependent_boundary_conditions [#601] [Katy - Barnhart] -- landlab/mcflugen/tidy-green-ampt [#591] [Jordan Adams] -- landlab/barnhark/improving_cubic_flux [#582] [Katy Barnhart] -- Clean up Sphinx documentation [Eric Hutton] -- landlab/margauxmouchene/test2 [#546] [margauxmouchene] -- landlab/gt-fastscape-q [#574] [Greg Tucker] -- amanaster2/master [#572] [Sai Siddhartha Nudurupati] -- landlab/barnhark/kwargs_depth_dependent_diffuser [#553] [Katy - Barnhart] -- landlab/gt-lattice-uplifter [#539] [Greg Tucker] -- landlab/gt-add-phi-to-space-adaptive [#551] [Greg Tucker] -- landlab/barnhark/cubic_nl_diffuser_kwargs [#550] [Katy Barnhart] -- landlab/barnhark/no_kwargs_in_dd_cubic_diffuser [#548] [Katy - Barnhart] -- landlab/gt-cmap-in-hexplot [#544] [Greg Tucker] -- landlab/SiccarPoint/uniform_precip [#517] [Dan Hobley] -- landlab/mcflugen/fix-greenampt-issue-530 [#535] [Katy Barnhart] -- landlab/mcflugen/add-logging-function [#504] [Eric Hutton] -- landlab/gt-try-dyn-ts-space [#529] [Katy Barnhart] -- landlab/barnhark/get_set_state_methods_for_grid [#525] [Greg Tucker] -- landlab/fixing_small_bug_in_erosion_deposition [#528] [Greg Tucker] -- landlab/barnhark/eroder_depo_with_n_less_than_one [#523] [Greg - Tucker] -- landlab/barnhark/cubic_timestepper [#519] [Greg Tucker] -- landlab/barnhark/addressing_brent_method_index_error [#510] [Katy - Barnhart] -- landlab/gt-edit-erodep [#516] [Katy Barnhart] -- cmshobe/cmshobe/make-erosion-deposition-component [#511] [Greg - Tucker] -- landlab/barnhark/lake_mapper_faster [#512] [Greg Tucker] -- nathanlyons/master [#505] [Nicole M Gasparini] -- cmshobe/cmshobe/minor_fixes_to_space [#509] [Katy Barnhart] -- cmshobe/cmshobe/change-hybrid-to-SPACE [#506] [Katy Barnhart] -- cmshobe/cmshobe/fix-hybrid-q-mechanics [#502] [Katy Barnhart] -- RondaStrauch/master [#480] [Sai Siddhartha Nudurupati] -- landlab/barnhark/use_newton_fastscape [#492] [Katy Barnhart] -- landlab/barnhark/improve_streampower_smooth_thresh_stability [#499] - [Greg Tucker] -- landlab/barnhark/dynamic_timestep_cubic_flux_diffuser [#497] [Greg - Tucker] -- landlab/barnhark/switching_mfd_and_dinf_from_slope_to_gradient [#490] - [Katy Barnhart] -- landlab/barnhark/cython_hybrid_alluviaum [#494] [Greg Tucker] -- cmshobe/cmshobe/fix_hybrid_q_options [#488] [Katy Barnhart] -- landlab/barnhark/smallchangestohybrid [#487] [Greg Tucker] -- landlab/gt-add-stretched-expo [#485] [Katy Barnhart] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#481] [Katy Barnhart] -- landlab/mcflugen/add-graph-class [#477] [Greg Tucker] -- landlab/barnhark/accumulator_efficiency [#476] [Greg Tucker] -- landlab/barnhark/making_flow_accumulator_faster [#474] [Greg Tucker] -- landlab/barnhark/fixing_kinwave_flow_issue [#471] [Greg Tucker] -- cmshobe/cmshobe_fixes_to_hybrid_alluv [#469] [Greg Tucker] -- landlab/gt-implicit-kinwave [#464] [Greg Tucker] -- cmshobe/cmshobe/make_hybrid_alluv_initis [#467] [Katy Barnhart] -- Glader011235/master [#465] [Katy Barnhart] -- landlab/nicgaspar/diffusion_not_depositing [#463] [Jordan Adams] -- landlab/kbarnhart/make_raster_netcdf [#462] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#461] [Katy Barnhart] -- cmshobe/cmshobe_hybrid_alluvium_model [#460] [Greg Tucker] -- Merge remote-tracking branch ‘origin/master’ [SiccarPoint] -- Merge remote-tracking branch ‘origin/SiccarPoint/pot-fr’ - [SiccarPoint] -- landlab/kbarnhart/consistent_parameter_names [#459] [Katy Barnhart] -- landlab/gt-stream-power-K [#457] [Greg Tucker] -- landlab/gt-fix-fastscape-variable-k [#456] [Katy Barnhart] -- landlab/gt-create-depth-dep-cubic-diffuser [#452] [Katy Barnhart] -- landlab/mcflugen/add-py36-builds [#453] [Eric Hutton] -- landlab/kbarnhart/stream_power_error [#450] [Greg Tucker] -- landlab/gt-fix-issue-448 [#449] [Dan Hobley] -- landlab/mcflugen/fix-issue-428 [#447] [Jordan Adams] -- landlab/jadams15/depth_slope_product [#445] [Jordan Adams] -- landlab/SiccarPoint/fix_429 [#430] [Katy Barnhart] -- landlab/SiccarPoint/add-docs [#442] [Katy Barnhart] -- landlab/gt-fix-issue-431 [#433] [Dan Hobley] -- landlab/gt-add-Q-stream-power-smooth-thresh [#443] [Katy Barnhart] -- landlab/SiccarPoint/auto-build-docs [#437] [Dan Hobley] -- landlab/jadams15/spatially_variable_roughness [#438] [Jordan Adams] -- landlab/kbarnhart/make_nd_fields [#434] [Greg Tucker] -- landlab/kbarnhart/improvements_to_set_watershed_boundary [#426] [Katy - Barnhart] -- landlab/gt-float64-fastscape [#427] [Greg Tucker] -- landlab/gt-more-cts-cython [#378] [Greg Tucker] -- landlab/gt-smooth-threshold-stream-power [#418] [Greg Tucker] -- landlab/gt-tweak-cubic-diff [#416] [Greg Tucker] -- landlab/gt-fix-init_typo [#415] [Greg Tucker] -- landlab/jk-move-old-rst [#412] [Greg Tucker] -- landlab/gt-merge-rg-cubic [#414] [Greg Tucker] -- cmshobe/cmshobe-drainage-density [#398] [Katy Barnhart] -- fix minor conflict in raster.py [Greg Tucker] -- landlab/SiccarPoint/grid_docs [#329] [Dan Hobley] -- landlab/SiccarPoint/diagonal_link_lengths [#328] [Eric Hutton] -- landlab/mcflugen/remove-deprecations [#327] [Eric Hutton] -- landlab/SiccarPoint/imshow_grid_returns_im [#326] [Dan Hobley] -- landlab/SiccarPoint/last-minute-deprecation [#324] [Eric Hutton] -- landlab/SiccarPoint/BAD-INDEX-is-minus1 [#323] [Eric Hutton] -- landlab/SiccarPoint/patch-methods [#322] [Eric Hutton] -- landlab/SiccarPoint/tweak-plotter [#321] [Eric Hutton] -- landlab/saisiddu/Version_1_final [#320] [Eric Hutton] -- landlab/SiccarPoint/modernise-field-names [#319] [Dan Hobley] -- landlab/SiccarPoint/modernise-components [#314] [Eric Hutton] -- landlab/SiccarPoint/most-egregious-diagonals [#315] [Dan Hobley] -- landlab/gt-calc-of-to-at [#316] [Greg Tucker] -- landlab/saisiddu/Version_1_final [#317] [Eric Hutton] -- landlab/jadams15/uniform_precip_changes [#310] [Dan Hobley] -- landlab/saisiddu/Version_1 [#311] [Dan Hobley] -- landlab/mcflugen/moved-slope-methods [#313] [Dan Hobley] -- landlab/SiccarPoint/Horn-slope [#309] [Eric Hutton] -- landlab/mcflugen/remove-craters [#312] [Eric Hutton] -- landlab/mcflugen/fix-docs-not-building [#304] [Dan Hobley] -- landlab/SiccarPoint/grid_trawl [#307] [Eric Hutton] -- landlab/nicgaspar/watershed_boundary_condition [#306] [Jordan Adams] -- landlab/SiccarPoint/slopes [#305] [Dan Hobley] -- landlab/gt-fix-diffuser-bug [#294] [Dan Hobley] -- landlab/gt-update-gradients [#303] [Greg Tucker] -- landlab/doc-component-reorg [#296] [Greg Tucker] -- landlab/gt-fix-ca-tectonics [#297] [Greg Tucker] -- landlab/gt-flux-divergence [#295] [Greg Tucker] -- landlab/jk_cleanup_grid_docs [#289] [Greg Tucker] -- landlab/SiccarPoint/fastscape-threshold [#290] [Jordan Adams] -- landlab/SiccarPoint/component-modernisation [#288] [Greg Tucker] -- landlab/gt_fix_faces_at_cell [#282] [Greg Tucker] -- landlab/sed-flux-dep [#277] [Dan Hobley] -- landlab/SiccarPoint/chi [#273] [Greg Tucker] -- landlab/SiccarPoint/plotter_modernisation [#274] [Greg Tucker] -- landlab/jk_rearrange_index [#275] [Greg Tucker] -- landlab/SiccarPoint/steepness-index [#271] [nicgaspar] -- landlab/mcflugen/fix-issue-268 [#269] [Dan Hobley] -- landlab/mcflugen/add-py35-support [#270] [saisiddu] -- landlab/SiccarPoint/fix-issue-250 [#251] [Dan Hobley] -- landlab/SiccarPoint/stream_power_standard [#256] [Eric Hutton] -- landlab/mcflugen/fix-travis-not-running-all-tests [#265] [Eric - Hutton] -- landlab/SiccarPoint/dynamic-docstring-import [#258] [Greg Tucker] -- landlab/SiccarPoint/enhance-mappers [#263] [Dan Hobley] -- landlab/SiccarPoint/enhance-mappers [#262] [Dan Hobley] -- Merged fix for deployment from AppVeyor to PyPI. [mcflugen] -- landlab/SiccarPoint/enhance-mappers [#255] [Greg Tucker] -- landlab/jk_copy_init_docstring [#248] [Jenny Knuth] -- landlab/gtucker/node_link_connectivity [#253] [Dan Hobley] -- landlab/mcflugen/add-bmi-bridge [#246] [Greg Tucker] -- landlab/gt-handle-flooded-nodes-in-stream-power [#247] [Dan Hobley] -- landlab/jk_include_init_docstring [#244] [Jenny Knuth] -- landlab/mcflugen/fix-issue-242 [#243] [Eric Hutton] -- Changed to deploy on release branch. [mcflugen] -- landlab/SiccarPoint/fix-issue-237 [#239] [Dan Hobley] -- landlab/mcflugen/fix-flexure-init [#231] [Jordan Adams] -- landlab/jadams15/fix_node_links [#234] [Eric Hutton] -- merge commit [Jenny Knuth] diff --git a/FUNDING.md b/FUNDING.md new file mode 100644 index 0000000000..487215b2b1 --- /dev/null +++ b/FUNDING.md @@ -0,0 +1,23 @@ +# Funding + +Landlab is funded by the US National Science Foundation. It has been supported +by the following grants: + +- A Collaborative NSF SI2-SSE proposal to + University of Colorado (Greg Tucker, + [1147454](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1147454&HistoricalAwards=false)), + and the University of Washington (Erkan Istanbulluoglu, + [1148305](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1148305&HistoricalAwards=false)) +- A Collaborative NSF SI2-SSI proposal to + University of Colorado (Greg Tucker and Dan Hobley, + [1450409](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1450409&HistoricalAwards=false)), + Tulane University (Nicole Gasparini, + [1450338](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1450338&HistoricalAwards=false)), + and the University of Washington (Erkan Istanbulluoglu, + [1450412](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1450412&HistoricalAwards=false)). +- A NSF EAR Postdoctoral Fellowship to Katy Barnhart + ([1725774](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1725774&HistoricalAwards=false)). +- A Collaborative NSF Frameworks proposal to University of Colorado (Greg Tucker, + [2104102](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2104102&HistoricalAwards=false)). +- A Collaborative NSF Facility proposal to University of Colorado (Greg Tucker, + [2148762](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2148762&HistoricalAwards=false)). diff --git a/FUNDING.rst b/FUNDING.rst deleted file mode 100644 index 6fe875639f..0000000000 --- a/FUNDING.rst +++ /dev/null @@ -1,24 +0,0 @@ -Funding -======= - -Landlab is funded by the US National Science Foundation. It has been supported -by the following grants: - -* A Collaborative NSF SI2-SSE proposal to - University of Colorado (Greg Tucker, - `1147454 `_), - and the University of Washington (Erkan Istanbulluoglu, - `1148305 `_) -* A Collaborative NSF SI2-SSI proposal to - University of Colorado (Greg Tucker and Dan Hobley, - `1450409 `_), - Tulane University (Nicole Gasparini, - `1450338 `_), - and the University of Washington (Erkan Istanbulluoglu, - `1450412 `_). -* A NSF EAR Postdoctoral Fellowship to Katy Barnhart - (`1725774 `_). -* A Collaborative NSF Frameworks proposal to University of Colorado (Greg Tucker, - `2104102 `_). -* A Collaborative NSF Facility proposal to University of Colorado (Greg Tucker, - `2148762 `_). diff --git a/LICENSE.rst b/LICENSE.md similarity index 96% rename from LICENSE.rst rename to LICENSE.md index 462d5cc6a6..c9cdc1232b 100644 --- a/LICENSE.rst +++ b/LICENSE.md @@ -1,5 +1,4 @@ -The MIT License (MIT) -===================== +# The MIT License (MIT) Copyright (c) `2013` `The Landlab Team` diff --git a/MANIFEST.in b/MANIFEST.in index ea4caf1d88..734bf7b976 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,15 +7,16 @@ include LICENSE.rst include README.rst include USEDBY.rst include CITATION.cff +include cython-files.txt include requirements* include noxfile.py include notebooks.py recursive-include docs *.txt -recursive-include landlab *.pyx *.pxd *.hpp recursive-include landlab README.md -recursive-include landlab/data * recursive-include requirements *.md *.txt +recursive-include src/landlab *.pyx *.pxd *.hpp +recursive-include src/landlab/data * recursive-include tests *py recursive-include tests *.asc recursive-include tests *.dbf diff --git a/README.md b/README.md new file mode 100644 index 0000000000..82bd202edc --- /dev/null +++ b/README.md @@ -0,0 +1,137 @@ +![[DOI][doi-link]][doi-badge] +![[Documentation][rtd-link]][rtd-badge] +![[Coverage][coveralls-link]][coveralls-badge] +![[Testing][test-link]][test-badge] +![[Lint][lint-link]][lint-badge] + + +[coveralls-badge]: https://coveralls.io/repos/landlab/landlab/badge.png +[coveralls-link]: https://coveralls.io/r/landlab/landlab +[doi-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.3776837.svg +[doi-link]: https://doi.org/10.5281/zenodo.3776837 +[lint-badge]: https://github.com/landlab/landlab/actions/workflows/lint.yml/badge.svg +[lint-link]: https://github.com/landlab/landlab/actions/workflows/lint.yml +[rtd-badge]:https://readthedocs.org/projects/landlab/badge/?version=latest +[rtd-link]: https://landlab.readthedocs.org +[test-badge]: https://github.com/landlab/landlab/actions/workflows/test.yml/badge.svg +[test-link]: https://github.com/landlab/landlab/actions/workflows/test.yml + +# Landlab + +## What does Landlab do? + + + +Landlab is an open-source Python-language package for numerical modeling of +Earth surface dynamics. It contains + +- A gridding engine which represents the model domain. Regular and irregular + grids are supported. +- A library of process components, each of which represents a physical process + (e.g., generation of rain, erosion by flowing water). These components have + a common interface and can be combined based on a user's needs. +- Utilities that support general numerical methods, file input/output, and + visualization. + +In addition Landlab contains a set of Jupyter notebook tutorials providing +an introduction to core concepts and examples of use. + +Landlab was designed for disciplines that quantify Earth surface dynamics such +as geomorphology, hydrology, glaciology, and stratigraphy. It can also be used +in related fields. Scientists who use this type of model often build +their own unique model from the ground up, re-coding the basic building blocks +of their landscape model rather than taking advantage of codes that have +already been written. Landlab saves practitioners from the need for this kind +of re-invention by providing standardized components that they can re-use. + +Watch the webinar [Landlab Toolkit Overview](https://csdms.colorado.edu/wiki/Presenters-0407) +at CSDMS to learn more. + + + +______________________________________________________________________ + +[Read the documentation on ReadTheDocs!](https://landlab.readthedocs.io/) + +______________________________________________________________________ + +## Installation + +To install the latest release of *landlab* using *pip*, simply run the following +in your terminal of choice: + +```bash +$ pip install landlab +``` + +For a full description of how to install *Landlab*, including using *mamba*/*conda*, +please see the documentation for our [installation instructions]. + +## Source code + +If you would like to modify or contribute code to *Landlab* or use the very latest +development version, please see the documentation that describes how to +[install landlab from source]. + +## Are there any examples of using Landlab I can look at? + +The Landlab package contains a directory, `landlab/notebooks`, with +Jupyter Notebooks describing core concepts and giving examples of using components. +The file `landlab/notebooks/welcome.ipynb` provides a table of contents to +the notebooks and is the recommended starting place. +Additionally, there are a set of notebooks curated to teach physical processes +located in the directory `landlab/notebooks/teaching`. + +### Run on Binder + +To launch an instance of +Binder and [explore the notebooks click here]. + +To launch a Binder instance that goes straight to the [teaching notebooks click here]. + +### Run on EarthscapeHub + +The Landlab notebooks can also be run on [EarthscapeHub]. +Visit this link to learn how to sign up for a free account. +Explore the example notebooks on the +[lab](https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fwelcome.ipynb&branch=master) or [jupyter](https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fwelcome.ipynb&branch=master) Hub instance. +Or, use the teaching notebooks on the +[lab](https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fteaching%2Fwelcome_teaching.ipynb&branch=master) or [jupyter](https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fteaching%2Fwelcome_teaching.ipynb&branch=master) Hub instance. +Be sure to run all notebooks with the *CSDMS* kernel. + +## License + +*landlab* is licensed under the MIT License. + +## Citing Landlab + +If you use any portion of Landlab, please see the documentation for our +[citation guidelines]. + +## Contact + + + +The recommended way to contact the Landlab team is with a +[GitHub Issue](https://github.com/landlab/landlab/issues). + +- **Bug reports**: Please make an Issue describing the bug so we can address it, or work + with you to address it. Please try to provide a [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example). +- **Documentation**: If something in our documentation is not clear to you, please make an + issue describing the what isn't clear. Someone will tag + the most appropriate member of the core Landlab team. We will work to clarify + your question and revise the documentation so that it is clear for the next user. + +Keep in touch with the latest *landlab* news by following us on [Twitter](https://twitter.com/landlabtoolkit). + +During workshops and clinics, we sometimes use the +[Landlab Slack channel](https://landlab.slack.com). + + + +[citation guidelines]: https://landlab.readthedocs.io/en/master/citing.html +[earthscapehub]: https://csdms.colorado.edu/wiki/JupyterHub +[explore the notebooks click here]: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/welcome.ipynb +[install landlab from source]: https://landlab.readthedocs.io/en/master/install/developer_install.html +[installation instructions]: https://landlab.readthedocs.io/en/master/installation.html +[teaching notebooks click here]: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/teaching/welcome_teaching.ipynb diff --git a/README.rst b/README.rst deleted file mode 100644 index bf5479de91..0000000000 --- a/README.rst +++ /dev/null @@ -1,169 +0,0 @@ -.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3776837.svg - :target: https://doi.org/10.5281/zenodo.3776837 - -.. image:: https://readthedocs.org/projects/landlab/badge/?version=latest - :target: https://landlab.readthedocs.org - -.. image:: https://github.com/landlab/landlab/actions/workflows/test.yml/badge.svg - :target: https://github.com/landlab/landlab/actions/workflows/test.yml - -.. image:: https://github.com/landlab/landlab/actions/workflows/lint.yml/badge.svg - :target: https://github.com/landlab/landlab/actions/workflows/lint.yml - -.. image:: https://github.com/landlab/landlab/actions/workflows/test-notebooks.yml/badge.svg - :target: https://github.com/landlab/landlab/actions/workflows/test-notebooks.yml - -.. image:: https://github.com/landlab/landlab/actions/workflows/docs.yml/badge.svg - :target: https://github.com/landlab/landlab/actions/workflows/docs.yml - -.. image:: https://coveralls.io/repos/landlab/landlab/badge.png - :target: https://coveralls.io/r/landlab/landlab - -.. image:: https://mybinder.org/badge_logo.svg - :target: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/welcome.ipynb - -======= -Landlab -======= - -What does Landlab do? ---------------------- - -.. start-intro - -Landlab is an open-source Python-language package for numerical modeling of -Earth surface dynamics. It contains - -* A gridding engine which represents the model domain. Regular and irregular - grids are supported. -* A library of process components, each of which represents a physical process - (e.g., generation of rain, erosion by flowing water). These components have - a common interface and can be combined based on a user's needs. -* Utilities that support general numerical methods, file input/output, and - visualization. - -In addition Landlab contains a set of Jupyter notebook tutorials providing -an introduction to core concepts and examples of use. - -Landlab was designed for disciplines that quantify Earth surface dynamics such -as geomorphology, hydrology, glaciology, and stratigraphy. It can also be used -in related fields. Scientists who use this type of model often build -their own unique model from the ground up, re-coding the basic building blocks -of their landscape model rather than taking advantage of codes that have -already been written. Landlab saves practitioners from the need for this kind -of re-invention by providing standardized components that they can re-use. - -Watch the webinar `Landlab Toolkit Overview `_ -at CSDMS to learn more. - -.. end-intro - ------------ - -`Read the documentation on ReadTheDocs! `_ - ------------ - -Installation ------------- - -To install the latest release of *landlab* using *pip*, simply run the following -in your terminal of choice: - -.. code-block:: bash - - $ pip install landlab - - -For a full description of how to install *Landlab*, including using *mamba*/*conda*, -please see the documentation for our `installation instructions`_. - - -.. _installation instructions: https://landlab.readthedocs.io/en/master/installation.html - -Source code ------------ - -If you would like to modify or contribute code to *Landlab* or use the very latest -development version, please see the documentation that describes how to -`install landlab from source`_. - -.. _install landlab from source: https://landlab.readthedocs.io/en/master/install/developer_install.html - - -Are there any examples of using Landlab I can look at? ------------------------------------------------------- - -The Landlab package contains a directory, ``landlab/notebooks``, with -Jupyter Notebooks describing core concepts and giving examples of using components. -The file ``landlab/notebooks/welcome.ipynb`` provides a table of contents to -the notebooks and is the recommended starting place. -Additionally, there are a set of notebooks curated to teach physical processes -located in the directory ``landlab/notebooks/teaching``. - -Run on Binder -````````````` - -To launch an instance of -Binder and `explore the notebooks click here`_. - -.. _explore the notebooks click here: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/welcome.ipynb - -To launch a Binder instance that goes straight to the `teaching notebooks click here`_. - -.. _teaching notebooks click here: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/teaching/welcome_teaching.ipynb - -Run on EarthscapeHub -```````````````````` - -The Landlab notebooks can also be run on `EarthscapeHub`_. -Visit this link to learn how to sign up for a free account. -Explore the example notebooks on the -`lab`__ or `jupyter`__ Hub instance. -Or, use the teaching notebooks on the -`lab`__ or `jupyter`__ Hub instance. -Be sure to run all notebooks with the *CSDMS* kernel. - -.. _EarthscapeHub: https://csdms.colorado.edu/wiki/JupyterHub -.. __: https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fwelcome.ipynb&branch=master -.. __: https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fwelcome.ipynb&branch=master -.. __: https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fteaching%2Fwelcome_teaching.ipynb&branch=master -.. __: https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fteaching%2Fwelcome_teaching.ipynb&branch=master - - -License -------- - -*landlab* is licensed under the MIT License. - -Citing Landlab --------------- - -If you use any portion of Landlab, please see the documentation for our -`citation guidelines`_. - -.. _citation guidelines: https://landlab.readthedocs.io/en/master/citing.html - - -Contact -------- - -.. start-contact - -The recommended way to contact the Landlab team is with a -`GitHub Issue `_. - -* **Bug reports**: Please make an Issue describing the bug so we can address it, or work - with you to address it. Please try to provide a `minimal, reproducible example - `_. -* **Documentation**: If something in our documentation is not clear to you, please make an - issue describing the what isn't clear. Someone will tag - the most appropriate member of the core Landlab team. We will work to clarify - your question and revise the documentation so that it is clear for the next user. - -Keep in touch with the latest *landlab* news by following us on `Twitter `_. - -During workshops and clinics, we sometimes use the -`Landlab Slack channel `_. - -.. end-contact diff --git a/USEDBY.rst b/USEDBY.md similarity index 74% rename from USEDBY.rst rename to USEDBY.md index 7462d39426..bb79502c00 100644 --- a/USEDBY.rst +++ b/USEDBY.md @@ -1,320 +1,291 @@ -======================== -Papers and Presentations -======================== +# Papers and Presentations ------------------------------- -Peer-reviewed journal articles ------------------------------- +## Peer-reviewed journal articles -2024 ----- +### 2024 Bower, S. J., Shobe, C. M., Maxwell, A. E., & Campforts, B. (2024). **The uncertain future of mountaintop-removal-mined landscapes 2: Modeling the influence of topography and vegetation.** *Geomorphology,* 446, 108985. Chen, H., Wang, X., Yu, Y., Lu, H., & Van Balen, R. (2024). **Past anthropogenic land use change caused a regime shift of the fluvial response to Holocene climate change in the Chinese Loess Plateau.** *Earth Surface Dynamics,* 12(1), 163-180. -Gan, T., Tucker, G. E., Hutton, E. W., Piper, M. D., Overeem, I., Kettner, A. J., Campforts, B., Moriarty, J.M., Undzis, B., Pierce, E. and McCready, L., (2024). **CSDMS Data Components: data–model integration tools for Earth surface processes modeling**. *Geoscientific Model Development,* 17(5), 2165-2185, `https://doi.org/10.5194/gmd-17-2165-2024 `__. +Gan, T., Tucker, G. E., Hutton, E. W., Piper, M. D., Overeem, I., Kettner, A. J., Campforts, B., Moriarty, J.M., Undzis, B., Pierce, E. and McCready, L., (2024). **CSDMS Data Components: data–model integration tools for Earth surface processes modeling**. *Geoscientific Model Development,* 17(5), 2165-2185, [DOI](https://doi.org/10.5194/gmd-17-2165-2024). Mohr, C. H., Dietze, M., Tolorza, V., Gonzalez, E., Sotomayor, B., Iroume, A., Mohr, C.H., Dietze, M., Tolorza, V., Gonzalez, E., Sotomayor, B., Iroume, A., Gilfert, S., and Tautz, F. (2024). **Ideas and perspectives: Sensing energy and matter fluxes in a biota-dominated Patagonian landscape through environmental seismology–introducing the Pumalín Critical Zone Observatory.** *Biogeosciences,* 21(6), 1583-1599. Rosier, I., Diels, J., Somers, B., & Van Orshoven, J. (2024). **Maximising runoff retention by vegetated landscape elements positioned through spatial optimisation.** *Landscape and Urban Planning,* 243, 104968. -Shmilovitz, Y., Tucker, G. E., Rossi, M. W., Morin, E., Armon, M., Pederson, J., ... & Enzel, Y. (2024). **Impacts of rainstorm intensity and temporal pattern on caprock cliff persistence and hillslope morphology in drylands.** *Journal of Geophysical Research: Earth Surface,* 129(2), e2023JF007478, `https://doi.org/10.1029/2023JF007478 `__. +Shmilovitz, Y., Tucker, G. E., Rossi, M. W., Morin, E., Armon, M., Pederson, J., ... & Enzel, Y. (2024). **Impacts of rainstorm intensity and temporal pattern on caprock cliff persistence and hillslope morphology in drylands.** *Journal of Geophysical Research: Earth Surface,* 129(2), e2023JF007478, [DOI](https://doi.org/10.1029/2023JF007478). Shobe, C. M., Bower, S. J., Maxwell, A. E., Glade, R. C., & Samassi, N. M. (2024). **The uncertain future of mountaintop-removal-mined landscapes 1: How mining changes erosion processes and variables.** *Geomorphology,* 445, 108984. Walker, S. J., Wilkinson, S. N., & Hairsine, P. B. (2024). **Advancing gully topographic threshold analysis using an automated algorithm and high-resolution topography.** *CATENA,* 239, 107897. -Wang, Y. (2024) **Identifying geomorphic domains using hierarchically clustered drainage area‐slope scaling.** *Earth Surface Processes and Landforms,* https://doi.org/10.1002/esp.5796. +Wang, Y. (2024) **Identifying geomorphic domains using hierarchically clustered drainage area‐slope scaling.** *Earth Surface Processes and Landforms,* [DOI](https://doi.org/10.1002/esp.5796). -2023 ----- +### 2023 Cardenas, B. T., & Stacey, K. (2023). **Landforms Associated With the Aspect-Controlled Exhumation of Crater-Filling Alluvial Strata on Mars.** Geophysical Research Letters, 50(15), e2023GL103618. -Eschenfelder, J., Lipp, A. G., & Roberts, G. G. (2023). **Quantifying excess heavy metal concentrations in drainage basins using conservative mixing models.** *Journal of Geochemical Exploration,* 248, 107178, `https://doi.org/10.1016/j.gexplo.2023.107178 `__. +Eschenfelder, J., Lipp, A. G., & Roberts, G. G. (2023). **Quantifying excess heavy metal concentrations in drainage basins using conservative mixing models.** *Journal of Geochemical Exploration,* 248, 107178, [DOI](https://doi.org/10.1016/j.gexplo.2023.107178). -Fiolleau, S., Uhlemann, S., Falco, N., & Dafflon, B. (2023). **Assessing probability of failure of urban landslides through rapid characterization of soil properties and vegetation distribution.** *Geomorphology,* 423, 108560, `https://doi.org/10.1016/j.geomorph.2022.108560 `__. +Fiolleau, S., Uhlemann, S., Falco, N., & Dafflon, B. (2023). **Assessing probability of failure of urban landslides through rapid characterization of soil properties and vegetation distribution.** *Geomorphology,* 423, 108560, [DOI](https://doi.org/10.1016/j.geomorph.2022.108560). Morris, M. J., Lipp, A. G., & Roberts, G. G. (2023). **Towards inverse modeling of landscapes using the Wasserstein distance.** *Geophysical Research Letters,* 50(14), e2023GL103880. -Nudurupati, S. S., Istanbulluoglu, E., Tucker, G. E., Gasparini, N. M., Hobley, D. E., Hutton, E. W., Barnhart, Katherine R., and Adams, J. M. (2023). **On transient semi‐arid ecosystem dynamics using Landlab: Vegetation shifts, topographic refugia, and response to climate.** *Water Resources Research,* e2021WR031179, `https://doi.org/10.1029/2021WR031179 `__. +Nudurupati, S. S., Istanbulluoglu, E., Tucker, G. E., Gasparini, N. M., Hobley, D. E., Hutton, E. W., Barnhart, Katherine R., and Adams, J. M. (2023). **On transient semi‐arid ecosystem dynamics using Landlab: Vegetation shifts, topographic refugia, and response to climate.** *Water Resources Research,* e2021WR031179, [DOI](https://doi.org/10.1029/2021WR031179). Raistrick, A., Lipson, L., Ma, Z., Mei, L., Wang, M., Zuo, Y., Kayan, K., Wen, H., Han, B., Wang, Y., and Newell, A. (2023). **Infinite photorealistic worlds using procedural generation.** In *Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition* (pp. 12630-12641). -Rosier, I., Diels, J., Somers, B., & Van Orshoven, J. (2023). **The impact of vegetated landscape elements on runoff in a small agricultural watershed: A modelling study.** *Journal of Hydrology,* 129144, `https://doi.org/10.1016/j.jhydrol.2023.129144 `__. +Rosier, I., Diels, J., Somers, B., & Van Orshoven, J. (2023). **The impact of vegetated landscape elements on runoff in a small agricultural watershed: A modelling study.** *Journal of Hydrology,* 129144, [DOI](https://doi.org/10.1016/j.jhydrol.2023.129144). Shmilovitz, Y., Marra, F., Enzel, Y., Morin, E., Armon, M., Matmon, A., ... & Haviv, I. (2023). **The impact of extreme rainstorms on escarpment morphology in arid areas: Insights from the central Negev Desert.** *Journal of Geophysical Research: Earth Surface,* e2023JF007093. Wang, Y., Chen, S. M., Xiong, L. Y., & Li, S. J. (2023). **Paleotopography-constrained numerical modeling of loess landform evolution.** *Geomorphology,* 433, 108725. -2022 ----- +### 2022 Anders, A. M., Lai, J., & Marshak, S. (2022). **Development of Foreland Intracratonic Plateaus (Ozark Plateau and Appalachian Plateaus): A Consequence of Topographic Inversion Due To Erosion of Adjacent Fold-Thrust Belts.** *Tectonics,* 41(4), e2021TC006957. -Campforts, B., Shobe, C.M., Overeem, I., and Tucker, G.E. (2022) **The art of landslides: how stochastic mass wasting shapes topography and influences landscape dynamics.** *Journal of Geophysical Research: Earth Surface,* v. 127(8), e2022JF006745, `https://doi.org/10.1029/2022JF006745 `__. +Campforts, B., Shobe, C.M., Overeem, I., and Tucker, G.E. (2022) **The art of landslides: how stochastic mass wasting shapes topography and influences landscape dynamics.** *Journal of Geophysical Research: Earth Surface,* v. 127(8), e2022JF006745, [DOI](https://doi.org/10.1029/2022JF006745). -Cardenas, B. T., Lamb, M. P., & Grotzinger, J. P. (2022). **Martian landscapes of fluvial ridges carved from ancient sedimentary basin fill.** *Nature Geoscience,* 1-7. `https://www.nature.com/articles/s41561-022-01058-2 `__. +Cardenas, B. T., Lamb, M. P., & Grotzinger, J. P. (2022). **Martian landscapes of fluvial ridges carved from ancient sedimentary basin fill.** *Nature Geoscience,* 1-7. [DOI](https://doi.org/10.1038/s41561-022-01058-2). -Cullen, C., Anders, A. M., Lai, J., & Druhan, J. L. (2022). **Numerical modeling of groundwater‐driven stream network evolution in low‐relief post‐glacial landscapes.** *Earth Surface Processes and Landforms,* 47(2), 658-671, `https://doi.org/10.1002/esp.5278 `__. -> -Gray, H. J., DuRoss, C. B., Nicovich, S. R., & Gold, R. D. (2022). **A geomorphic-process-based cellular automata model of colluvial wedge morphology and stratigraphy.** *Earth Surface Dynamics,* 10(2), 329-348, `https://doi.org/10.5194/esurf-10-329-2022 `__. +Cullen, C., Anders, A. M., Lai, J., & Druhan, J. L. (2022). **Numerical modeling of groundwater‐driven stream network evolution in low‐relief post‐glacial landscapes.** *Earth Surface Processes and Landforms*, 47(2), 658-671, [DOI](https://doi.org/10.1002/esp.5278). -Kwang, J. S., Thaler, E. A., Quirk, B. J., Quarrier, C. L., & Larsen, I. J. (2022). **A Landscape Evolution Modeling Approach for Predicting Three‐Dimensional Soil Organic Carbon Redistribution in Agricultural Landscapes.** *Journal of Geophysical Research: Biogeosciences,* 127(2), e2021JG006616, `https://doi.org/10.1029/2021JG006616 `__. +Gray, H. J., DuRoss, C. B., Nicovich, S. R., & Gold, R. D. (2022). **A geomorphic-process-based cellular automata model of colluvial wedge morphology and stratigraphy.** *Earth Surface Dynamics,* 10(2), 329-348, [DOI](https://doi.org/10.5194/esurf-10-329-2022). -Litwin, D. G., Tucker, G. E., Barnhart, K. R., & Harman, C. J. (2022). **Groundwater affects the geomorphic and hydrologic properties of coevolved landscapes.** *Journal of Geophysical Research: Earth Surface,* 127(1), e2021JF006239, `https://doi.org/10.1029/2021JF006239 `__. +Kwang, J. S., Thaler, E. A., Quirk, B. J., Quarrier, C. L., & Larsen, I. J. (2022). **A Landscape Evolution Modeling Approach for Predicting Three‐Dimensional Soil Organic Carbon Redistribution in Agricultural Landscapes.** *Journal of Geophysical Research: Biogeosciences,* 127(2), e2021JG006616, [DOI](https://doi.org/10.1029/2021JG006616). -Maneerat, P., Bürgmann, R., & Betka, P. M. (2022). **Thrust Sequence in the Western Fold-and-Thrust Belt of the Indo-Burma Range Determined from Fluvial Profile Analysis and Dynamic Landform Modeling.** *Tectonophysics,* 845, 229638, `https://doi.org/10.1016/j.tecto.2022.229638 `__. +Litwin, D. G., Tucker, G. E., Barnhart, K. R., & Harman, C. J. (2022). **Groundwater affects the geomorphic and hydrologic properties of coevolved landscapes.** *Journal of Geophysical Research: Earth Surface,* 127(1), e2021JF006239, [DOI](https://doi.org/10.1029/2021JF006239). -Reitman, N. G., Mueller, K. J., & Tucker, G. E. (2022). **Surface slip variability on strike‐slip faults.** *Earth Surface Processes and Landforms,* 47(4), 908-935, `https://doi.org/10.1002/esp.5294 `__. +Maneerat, P., Bürgmann, R., & Betka, P. M. (2022). **Thrust Sequence in the Western Fold-and-Thrust Belt of the Indo-Burma Range Determined from Fluvial Profile Analysis and Dynamic Landform Modeling.** *Tectonophysics,* 845, 229638, [DOI](https://doi.org/10.1016/j.tecto.2022.229638). -Tucker, G. E., Hutton, E. W., Piper, M. D., Campforts, B., Gan, T., Barnhart, K. R., ... & Syvitski, J. (2022). **CSDMS: a community platform for numerical modeling of Earth surface processes.** *Geoscientific Model Development,* 15(4), 1413-1439, `https://doi.org/10.5194/gmd-15-1413-2022 `__. +Reitman, N. G., Mueller, K. J., & Tucker, G. E. (2022). **Surface slip variability on strike‐slip faults.** *Earth Surface Processes and Landforms*, 47(4), 908-935, [DOI](https://doi.org/10.1002/esp.5294). -Uhlemann, S., Dafflon, B., Wainwright, H. M., Williams, K. H., Minsley, B., Zamudio, K., ... & Hubbard, S. (2022). **Surface parameters and bedrock properties covary across a mountainous watershed: Insights from machine learning and geophysics.** *Science Advances,* 8(12), eabj2479.`https://doi.org/10.1126/sciadv.abj2479 `__. +Tucker, G. E., Hutton, E. W., Piper, M. D., Campforts, B., Gan, T., Barnhart, K. R., ... & Syvitski, J. (2022). **CSDMS: a community platform for numerical modeling of Earth surface processes.** *Geoscientific Model Development,* 15(4), 1413-1439, [DOI](https://doi.org/10.5194/gmd-15-1413-2022). -Xi, C., Hu, X., Ma, G., Rezania, M., Liu, B., & He, K. (2022). **Predictive model of regional coseismic landslides’ permanent displacement considering uncertainty.** *Landslides,* 19(10), 2513-2534, `https://doi.org/10.1007/s10346-022-01918-3 `__. +Uhlemann, S., Dafflon, B., Wainwright, H. M., Williams, K. H., Minsley, B., Zamudio, K., ... & Hubbard, S. (2022). **Surface parameters and bedrock properties covary across a mountainous watershed: Insights from machine learning and geophysics.** *Science Advances,* 8(12), eabj2479. [DOI](https://doi.org/10.1126/sciadv.abj2479). -Zhao, H., Lin, Y., Zhou, J., Delang, C. O., & He, H. (2022). **Simulation of Holocene soil erosion and sediment deposition processes in the Yellow River basin during the Holocene.** *Catena,* 219, 106600, `https://doi.org/10.1016/j.catena.2022.106600 `__. +Xi, C., Hu, X., Ma, G., Rezania, M., Liu, B., & He, K. (2022). **Predictive model of regional coseismic landslides’ permanent displacement considering uncertainty.** *Landslides,* 19(10), 2513-2534, [DOI](https://doi.org/10.1007/s10346-022-01918-3). -2021 ----- +Zhao, H., Lin, Y., Zhou, J., Delang, C. O., & He, H. (2022). **Simulation of Holocene soil erosion and sediment deposition processes in the Yellow River basin during the Holocene.** *Catena,* 219, 106600, [DOI](https://doi.org/10.1016/j.catena.2022.106600). -Barnhart, K. R., Jones, R. P., George, D. L., McArdell, B. W., Rengers, F. K., Staley, D. M., & Kean, J. W. (2021). **Multi‐Model Comparison of Computed Debris Flow Runout for the 9 January 2018 Montecito, California Post‐Wildfire Event.** *Journal of Geophysical Research: Earth Surface,* 126(12), e2021JF006245.`https://doi.org/10.1029/2021JF006245 `__. +### 2021 -Chen, H., Wang, X., Lu, H., & Van Balen, R. (2021). **Anthropogenic impacts on Holocene fluvial dynamics in the Chinese Loess Plateau, an evaluation based on landscape evolution modelling.** *Geomorphology,* 392, 107935, `https://doi.org/10.1016/j.geomorph.2021.107935 `__. +Barnhart, K. R., Jones, R. P., George, D. L., McArdell, B. W., Rengers, F. K., Staley, D. M., & Kean, J. W. (2021). **Multi‐Model Comparison of Computed Debris Flow Runout for the 9 January 2018 Montecito, California Post‐Wildfire Event.** *Journal of Geophysical Research: Earth Surface,* 126(12), e2021JF006245. [DOI](https://doi.org/10.1029/2021JF006245). -Garcia-Estève, C., Caniven, Y., Cattin, R., Dominguez, S., & Sylvain, R. (2021). **Morphotectonic Evolution of an Alluvial Fan: Results of a Joint Analog and Numerical Modeling Approach.** *Geosciences,* 11(10), 412, `https://doi.org/10.3390/geosciences11100412 `__. +Chen, H., Wang, X., Lu, H., & Van Balen, R. (2021). **Anthropogenic impacts on Holocene fluvial dynamics in the Chinese Loess Plateau, an evaluation based on landscape evolution modelling.** *Geomorphology,* 392, 107935, [DOI](https://doi.org/10.1016/j.geomorph.2021.107935). -Hooshyar, M., & Porporato, A. (2021). **Mean Dynamics and Elevation‐Contributing Area Covariance in Landscape Evolution Models.** *Water Resources Research,* 57(8), e2021WR029727, `https://doi.org/10.1029/2021WR029727 `__. +Garcia-Estève, C., Caniven, Y., Cattin, R., Dominguez, S., & Sylvain, R. (2021). **Morphotectonic Evolution of an Alluvial Fan: Results of a Joint Analog and Numerical Modeling Approach.** *Geosciences,* 11(10), 412, [DOI](https://doi.org/10.3390/geosciences11100412). -Lai, J., & Anders, A. M. (2021). **Climatic controls on mountain glacier basal thermal regimes dictate spatial patterns of glacial erosion.** *Earth Surface Dynamics*, 9(4), 845-859, `https://doi.org/10.5194/esurf-9-845-2021 `__. +Hooshyar, M., & Porporato, A. (2021). **Mean Dynamics and Elevation‐Contributing Area Covariance in Landscape Evolution Models.** *Water Resources Research,* 57(8), e2021WR029727, [DOI](https://doi.org/10.1029/2021WR029727). -Lipp, A. G., & Roberts, G. G. (2021). **Scale‐Dependent Flow Directions of Rivers and the Importance of Subplate Support.** *Geophysical Research Letters,* 48(1), e2020GL091107, `https://doi.org/10.1029/2020GL091107 `__. +Lai, J., & Anders, A. M. (2021). **Climatic controls on mountain glacier basal thermal regimes dictate spatial patterns of glacial erosion.** *Earth Surface Dynamics*, 9(4), 845-859, [DOI](https://doi.org/10.5194/esurf-9-845-2021). -Lipp, A. G., Roberts, G. G., Whittaker, A. C., Gowing, C. J., & Fernandes, V. M. (2021). **Source region geochemistry from unmixing downstream sedimentary elemental compositions.** *Geochemistry, Geophysics, Geosystems,* 22(10), e2021GC009838, `https://doi.org/10.1029/2021GC009838 `__. +Lipp, A. G., & Roberts, G. G. (2021). **Scale‐Dependent Flow Directions of Rivers and the Importance of Subplate Support.** *Geophysical Research Letters,* 48(1), e2020GL091107, [DOI](https://doi.org/10.1029/2020GL091107). -O’Malley, C. P. B., White, N. J., Stephenson, S. N., & Roberts, G. G. (2021). **Large‐scale tectonic forcing of the African landscape.** *Journal of Geophysical Research: Earth Surface,* 126(12), e2021JF006345 https://doi.org/10.1029/2021JF006345. +Lipp, A. G., Roberts, G. G., Whittaker, A. C., Gowing, C. J., & Fernandes, V. M. (2021). **Source region geochemistry from unmixing downstream sedimentary elemental compositions.** *Geochemistry, Geophysics, Geosystems,* 22(10), e2021GC009838, [DOI](https://doi.org/10.1029/2021GC009838). -Pan, B., Cai, S., & Geng, H. (2021). **Numerical simulation of landscape evolution and mountain uplift history constrain-A case study from the youthful stage mountains around the central Hexi Corridor, NE Tibetan Plateau.** *Science China Earth Sciences,* 1-13, `https://doi.org/10.1007/s11430-020-9716-6 `__. +O’Malley, C. P. B., White, N. J., Stephenson, S. N., & Roberts, G. G. (2021). **Large‐scale tectonic forcing of the African landscape.** *Journal of Geophysical Research: Earth Surface,* 126(12), e2021JF006345 [DOI](https://doi.org/10.1029/2021JF006345). -Quichimbo, E. A., Singer, M. B., Michaelides, K., Hobley, D. E., Rosolem, R., & Cuthbert, M. O. (2021). **DRYP 1.0: a parsimonious hydrological model of DRYland Partitioning of the water balance.** *Geoscientific Model Development,* 14(11), 6893-6917, `https://doi.org/10.5194/gmd-14-6893-2021 `__. +Pan, B., Cai, S., & Geng, H. (2021). **Numerical simulation of landscape evolution and mountain uplift history constrain-A case study from the youthful stage mountains around the central Hexi Corridor, NE Tibetan Plateau.** *Science China Earth Sciences,* 1-13, [DOI](https://doi.org/10.1007/s11430-020-9716-6). -Sharma, H., Ehlers, T. A., Glotzbach, C., Schmid, M., & Tielbörger, K. (2021). **Effect of rock uplift and Milankovitch timescale variations in precipitation and vegetation cover on catchment erosion rates.** *Earth Surface Dynamics,* 9(4), 1045-1072, `https://doi.org/10.5194/esurf-9-1045-2021 `__. +Quichimbo, E. A., Singer, M. B., Michaelides, K., Hobley, D. E., Rosolem, R., & Cuthbert, M. O. (2021). **DRYP 1.0: a parsimonious hydrological model of DRYland Partitioning of the water balance.** *Geoscientific Model Development,* 14(11), 6893-6917, [DOI](https://doi.org/10.5194/gmd-14-6893-2021). -Sheehan, C. E., & Ward, D. J. (2021). **An Autogenic Cycle of Fluvial Transience in Dipping, Layered Rocks.** *Geophysical Research Letters,* 48(1), e2020GL090246, `https://doi.org/10.1029/2020GL090246 `__. +Sharma, H., Ehlers, T. A., Glotzbach, C., Schmid, M., & Tielbörger, K. (2021). **Effect of rock uplift and Milankovitch timescale variations in precipitation and vegetation cover on catchment erosion rates.** *Earth Surface Dynamics,* 9(4), 1045-1072, [DOI](https://doi.org/10.5194/esurf-9-1045-2021). -Shen, H., Lynch, B., Poulsen, C. J., & Yanites, B. J. (2021). **A modeling framework (WRF-Landlab) for simulating orogen-scale climate-erosion coupling.** *Computers & Geosciences,* 146, 104625, `https://doi.org/10.1016/j.cageo.2020.104625 `__. +Sheehan, C. E., & Ward, D. J. (2021). **An Autogenic Cycle of Fluvial Transience in Dipping, Layered Rocks.** *Geophysical Research Letters,* 48(1), e2020GL090246, [DOI](https://doi.org/10.1029/2020GL090246). -Spencer, B. M., Thigpen, J. R., Gallen, S. F., Dortch, J. M., Hodges, K. V., Law, R. D., & Mako, C. A. (2021). **An Evaluation of Erosional‐Geodynamic Thresholds for Rapid Orogenic Denudation.** *Journal of Geophysical Research: Solid Earth,* 126(12), e2021JB022353, `https://doi.org/10.1029/2021JB022353 `__. +Shen, H., Lynch, B., Poulsen, C. J., & Yanites, B. J. (2021). **A modeling framework (WRF-Landlab) for simulating orogen-scale climate-erosion coupling.** *Computers & Geosciences,* 146, 104625, [DOI](https://doi.org/10.1016/j.cageo.2020.104625). -2020 ----- +Spencer, B. M., Thigpen, J. R., Gallen, S. F., Dortch, J. M., Hodges, K. V., Law, R. D., & Mako, C. A. (2021). **An Evaluation of Erosional‐Geodynamic Thresholds for Rapid Orogenic Denudation.** *Journal of Geophysical Research: Solid Earth,* 126(12), e2021JB022353, [DOI](https://doi.org/10.1029/2021JB022353). -Anand, S. K., Hooshyar, M., & Porporato, A. (2020). **Linear layout of multiple flow-direction networks for landscape-evolution simulations.** *Environmental Modelling & Software,* 133, 104804, `https://doi.org/10.1016/j.envsoft.2020.104804 `__. +### 2020 -Barnhart, K.R., Hutton, E.W.H., Tucker, G.E., Gasparini, N.M., Istanbulluoglu, E., Hobley, D.E.J., Lyons⁠, N.J., Mouchene, M., Nudurupati, S.S., Adams, J.M., and Bandaragoda, C. (2020) **Short communication: Landlab 2.0: A software package for Earth surface dynamics.** *Earth Surface Dynamics,* 8, 379–397, `doi:10.5194/esurf-8-379-2020 `__. +Anand, S. K., Hooshyar, M., & Porporato, A. (2020). **Linear layout of multiple flow-direction networks for landscape-evolution simulations.** *Environmental Modelling & Software,* 133, 104804, [DOI](https://doi.org/10.1016/j.envsoft.2020.104804). -Barnhart, K. R., Tucker, G. E., Doty, S. G., Glade, R. C., Shobe, C. M., Rossi, M. W., & Hill, M. C. (2020). **Projections of landscape evolution on a 10,000 year timescale with assessment and partitioning of uncertainty sources.** *Journal of Geophysical Research: Earth Surface,* 125(12), e2020JF005795, `https://doi.org/10.1029/2020JF005795 `__. +Barnhart, K.R., Hutton, E.W.H., Tucker, G.E., Gasparini, N.M., Istanbulluoglu, E., Hobley, D.E.J., Lyons⁠, N.J., Mouchene, M., Nudurupati, S.S., Adams, J.M., and Bandaragoda, C. (2020) **Short communication: Landlab 2.0: A software package for Earth surface dynamics.** *Earth Surface Dynamics,* 8, 379–397, [DOI](https://doi.org/10.5194/esurf-8-379-2020). -Barnhart, K. R., Tucker, G. E., Doty, S., Shobe, C. M., Glade, R. C., Rossi, M. W., & Hill, M. C. (2020). **Inverting topography for landscape evolution model process representation: Part 1, conceptualization and sensitivity analysis.** *Journal of Geophysical Research: Earth Surface,* e2018JF004961. `https://doi.org/10.1029/2018JF004961 `__. +Barnhart, K. R., Tucker, G. E., Doty, S. G., Glade, R. C., Shobe, C. M., Rossi, M. W., & Hill, M. C. (2020). **Projections of landscape evolution on a 10,000 year timescale with assessment and partitioning of uncertainty sources.** *Journal of Geophysical Research: Earth Surface,* 125(12), e2020JF005795, [DOI](https://doi.org/10.1029/2020JF005795). -Barnhart, K. R., Tucker, G. E., Doty, S., Shobe, C. M., Glade, R. C., Rossi, M. W., & Hill, M. C. (2020). **Inverting topography for landscape evolution model process representation: Part 2, calibration and validation.** *Journal of Geophysical Research: Earth Surface,* e2018JF004963. `https://doi.org/10.1029/2018JF004963 `__. +Barnhart, K. R., Tucker, G. E., Doty, S., Shobe, C. M., Glade, R. C., Rossi, M. W., & Hill, M. C. (2020). **Inverting topography for landscape evolution model process representation: Part 1, conceptualization and sensitivity analysis.** *Journal of Geophysical Research: Earth Surface,* e2018JF004961. [DOI](https://doi.org/10.1029/2018JF004961). -Barnhart, K. R., Tucker, G. E., Doty, S., Shobe, C. M., Glade, R. C., Rossi, M. W., & Hill, M. C. (2020). **Inverting topography for landscape evolution model process representation: Part 3, Determining parameter ranges for select mature geomorphic transport laws and connecting changes in fluvial erodibility to changes in climate.** *Journal of Geophysical Research: Earth Surface,* e2019JF005287, `https://doi.org/10.1029/2019JF005287 `__. +Barnhart, K. R., Tucker, G. E., Doty, S., Shobe, C. M., Glade, R. C., Rossi, M. W., & Hill, M. C. (2020). **Inverting topography for landscape evolution model process representation: Part 2, calibration and validation.** *Journal of Geophysical Research: Earth Surface,* e2018JF004963. [DOI](https://doi.org/10.1029/2018JF004963). -Carriere, A., Le Bouteiller, C., Tucker, G.E., Klotz, S., and Naaim, M. (2020) **Impact of vegetation on erosion: Insights from the calibration and test of a landscape evolution model in alpine badland catchments.** *Earth Surface Processes and Landforms.* `https://doi.org/10.1002/esp.4741 `__. +Barnhart, K. R., Tucker, G. E., Doty, S., Shobe, C. M., Glade, R. C., Rossi, M. W., & Hill, M. C. (2020). **Inverting topography for landscape evolution model process representation: Part 3, Determining parameter ranges for select mature geomorphic transport laws and connecting changes in fluvial erodibility to changes in climate.** *Journal of Geophysical Research: Earth Surface,* e2019JF005287, [DOI](https://doi.org/10.1029/2019JF005287). -Evans, M. J., Scheele, B. C., Westgate, M. J., Yebra, M., Newport, J. S., & Manning, A. D. (2020). Beyond the pond: Terrestrial habitat use by frogs in a changing climate. Biological Conservation, 249, 108712., `https://doi.org/10.1016/j.biocon.2020.108712 `__. +Carriere, A., Le Bouteiller, C., Tucker, G.E., Klotz, S., and Naaim, M. (2020) **Impact of vegetation on erosion: Insights from the calibration and test of a landscape evolution model in alpine badland catchments.** *Earth Surface Processes and Landforms*. [DOI](https://doi.org/10.1002/esp.4741). -Lai, J., & Anders, A. M. (2020). **Tectonic controls on rates and spatial patterns of glacial erosion through geothermal heat flux.** *Earth and Planetary Science Letters,* 543, 116348, `https://doi.org/10.1016/j.epsl.2020.116348 `__. +Evans, M. J., Scheele, B. C., Westgate, M. J., Yebra, M., Newport, J. S., & Manning, A. D. (2020). Beyond the pond: Terrestrial habitat use by frogs in a changing climate. Biological Conservation, 249, 108712., [DOI](https://doi.org/10.1016/j.biocon.2020.108712). -Lipp, A. G., Roberts, G. G., Whittaker, A. C., Gowing, C. J., & Fernandes, V. M. (2020). **River sediment geochemistry as a conservative mixture of source regions: Observations and predictions from the Cairngorms, UK.** *Journal of Geophysical Research: Earth Surface,* 125(12), `https://doi.org/10.1029/2020JF005700 `__. +Lai, J., & Anders, A. M. (2020). **Tectonic controls on rates and spatial patterns of glacial erosion through geothermal heat flux.** *Earth and Planetary Science Letters,* 543, 116348, [DOI](https://doi.org/10.1016/j.epsl.2020.116348). -Litwin, D.G., Tucker, G.E., Barnhart, K.R., and Harman, C.J. (2020) **GroundwaterDupuitPercolator: A Landlab component for groundwater flow,** *Journal of Open Source Software,* 5(46), 1935, `https://doi.org/10.21105/joss.01935 `__. +Lipp, A. G., Roberts, G. G., Whittaker, A. C., Gowing, C. J., & Fernandes, V. M. (2020). **River sediment geochemistry as a conservative mixture of source regions: Observations and predictions from the Cairngorms, UK.** *Journal of Geophysical Research: Earth Surface,* 125(12), [DOI](https://doi.org/10.1029/2020JF005700). -Lyons, N.J., Albert, J.S., and Gasparini, N.M. (2020). **SpeciesEvolver: A Landlab component to evolve life in simulated landscapes.** *Journal of Open Source Software,* 5(46), 2066, `https://doi.org/10.21105/joss.02066 `__. +Litwin, D.G., Tucker, G.E., Barnhart, K.R., and Harman, C.J. (2020) **GroundwaterDupuitPercolator: A Landlab component for groundwater flow,** *Journal of Open Source Software,* 5(46), 1935, [DOI](https://doi.org/10.21105/joss.01935). -Lyons, N. J., Val, P., Albert, J. S., Willenbring, J. K., & Gasparini, N. M. (2020). **Topographic controls on divide migration, stream capture, and diversification in riverine life.** *Earth Surface Dynamics,* 8(4), 893-912, `https://doi.org/10.5194/esurf-8-893-2020 `__. +Lyons, N.J., Albert, J.S., and Gasparini, N.M. (2020). **SpeciesEvolver: A Landlab component to evolve life in simulated landscapes.** *Journal of Open Source Software,* 5(46), 2066, [DOI](https://doi.org/10.21105/joss.02066). -Pfeiffer, A.M., Barnhart, K.R., Czuba, J.A., and Hutton, E.W.H. (2020). **NetworkSedimentTransporter: A Landlab component for bed material transport through river networks.** *Journal of Open Source Software,* 5(53), 2341, `https://doi.org/10.21105/joss.02341 `__. +Lyons, N. J., Val, P., Albert, J. S., Willenbring, J. K., & Gasparini, N. M. (2020). **Topographic controls on divide migration, stream capture, and diversification in riverine life.** *Earth Surface Dynamics,* 8(4), 893-912, [DOI](https://doi.org/10.5194/esurf-8-893-2020). -Sheehan, C.E., and Ward, D.J. (2020). **Migrating Transverse Escarpments in Strike Valleys on the Colorado Plateau.** *Journal of Geophysical Research: Earth Surface,* 125(3), e2019JF005260, `https://doi.org/10.1029/2019JF005260 `__. +Pfeiffer, A.M., Barnhart, K.R., Czuba, J.A., and Hutton, E.W.H. (2020). **NetworkSedimentTransporter: A Landlab component for bed material transport through river networks.** *Journal of Open Source Software,* 5(53), 2341, [DOI](https://doi.org/10.21105/joss.02341). -Tucker, G. E., Hobley, D.E.J., McCoy, S.W., and Struble, W.T. (2020) **Modeling the shape and evolution of normal-fault facets.** *Journal of Geophysical Research: Earth Surface,* 125, `https://doi.org/10.1029/2019JF005305 `__. +Sheehan, C.E., and Ward, D.J. (2020). **Migrating Transverse Escarpments in Strike Valleys on the Colorado Plateau.** *Journal of Geophysical Research: Earth Surface,* 125(3), e2019JF005260, [DOI](https://doi.org/10.1029/2019JF005260). -Walker, S. J., Wilkinson, S. N., van Dijk, A. I., & Hairsine, P. B. (2020). **A multi-resolution method to map and identify locations of future gully and channel incision.** *Geomorphology,* 358, 107115, `https://doi.org/10.1016/j.geomorph.2020.107115 `__. +Tucker, G. E., Hobley, D.E.J., McCoy, S.W., and Struble, W.T. (2020) **Modeling the shape and evolution of normal-fault facets.** *Journal of Geophysical Research: Earth Surface,* 125, [DOI](https://doi.org/10.1029/2019JF005305). -2019 ----- +Walker, S. J., Wilkinson, S. N., van Dijk, A. I., & Hairsine, P. B. (2020). **A multi-resolution method to map and identify locations of future gully and channel incision.** *Geomorphology,* 358, 107115, [DOI](https://doi.org/10.1016/j.geomorph.2020.107115). + +### 2019 Baldazo, D., Parras, J., & Zazo, S. (2019). **Decentralized multi-agent deep reinforcement learning in swarms of drones for flood monitoring.** In *2019 27th European Signal Processing Conference (EUSIPCO)* (pp. 1-5). IEEE. -Bandaragoda, C. J., Castronova, A., Istanbulluoglu, E., Strauch, R., Nudurupati, S. S., Phuong, J., Adams, J.M., Gasparini, N.M., Barnhart, K.R., Hutton, E.W.H., Hobley, D.E.J., Lyons, N.J., Tucker, G.E., Tarboton, D.G., Idaszak, R., and Wang S. (2019). **Enabling collaborative numerical Modeling in Earth sciences using Knowledge Infrastructure.** *Environmental Modelling & Software*, `doi:10.1016/j.envsoft.2019.03.020 `__. +Bandaragoda, C. J., Castronova, A., Istanbulluoglu, E., Strauch, R., Nudurupati, S. S., Phuong, J., Adams, J.M., Gasparini, N.M., Barnhart, K.R., Hutton, E.W.H., Hobley, D.E.J., Lyons, N.J., Tucker, G.E., Tarboton, D.G., Idaszak, R., and Wang S. (2019). **Enabling collaborative numerical Modeling in Earth sciences using Knowledge Infrastructure.** *Environmental Modelling & Software*, [DOI](https://doi.org/10.1016/j.envsoft.2019.03.020). -Barnhart, K. R., Glade, R. C., Shobe, C. M., and Tucker, G. E. (2019) **Terrainbento 1.0: a Python package for multi-model analysis in long-term drainage basin evolution.** *Geosci. Model Dev.*, v. 12, p. 1267-1297, `doi:10.5194/gmd-12-1267-2019 `__. +Barnhart, K. R., Glade, R. C., Shobe, C. M., and Tucker, G. E. (2019) **Terrainbento 1.0: a Python package for multi-model analysis in long-term drainage basin evolution.** *Geosci. Model Dev.*, v. 12, p. 1267-1297, [DOI](https://doi.org/10.5194/gmd-12-1267-2019). -Barnhart, K.R., Hutton, E., and Tucker, G.E. (2019) **umami: a Python package for Earth surface dynamics objective function construction**, *Journal of Open Source Software*, 4(42), 1776, `doi:10.21105/joss.01776 `__. +Barnhart, K.R., Hutton, E., and Tucker, G.E. (2019) **umami: a Python package for Earth surface dynamics objective function construction**, *Journal of Open Source Software*, 4(42), 1776, [DOI](https://doi.org/10.21105/joss.01776). -Glade, R.C.*, Shobe, C.M.*, Anderson, R.S., and Tucker, G.E. (2019) **Canyon shape and erosion dynamics governed by channel-hillslope feedbacks.** *Geology*, `doi:10.1130/G46219.1 `__. \*Equal contributions +Glade, R.C.\*, Shobe, C.M.\*, Anderson, R.S., and Tucker, G.E. (2019) **Canyon shape and erosion dynamics governed by channel-hillslope feedbacks.** *Geology*, [DOI](https://doi.org/10.1130/G46219.1). \*Equal contributions -Phuong J., C. Bandaragoda, E. Istanbulluoglu, C. Beveridge, R. Strauch, L. Setiawan, and S. D. Mooney (2019). **Automated retrieval, preprocessing, and visualization of gridded hydrometeorology data products for spatial-temporal exploratory analysis and intercomparison.** Environmental Modeling and Software. Vol 116. p. 119-30: https://linkinghub.elsevier.com/retrieve/pii/S136481521830865X. +Phuong J., C. Bandaragoda, E. Istanbulluoglu, C. Beveridge, R. Strauch, L. Setiawan, and S. D. Mooney (2019). **Automated retrieval, preprocessing, and visualization of gridded hydrometeorology data products for spatial-temporal exploratory analysis and intercomparison.** Environmental Modeling and Software. Vol 116. p. 119-30: [DOI](https://doi.org/10.1016/j.envsoft.2019.01.007). -Reitman, N.G., Mueller, K.J., Tucker, G.E., Gold, R.D., Briggs, R.D., and Barnhart, K.R. (2019) **Landscape Evolution Models Demonstrate that Offset Channels are Incomplete Records of Strike-Slip Fault Displacement.** *Journal of Geophysical Research: Solid Earth*, 124, `doi:10.1029/2019JB018596 `__. +Reitman, N.G., Mueller, K.J., Tucker, G.E., Gold, R.D., Briggs, R.D., and Barnhart, K.R. (2019) **Landscape Evolution Models Demonstrate that Offset Channels are Incomplete Records of Strike-Slip Fault Displacement.** *Journal of Geophysical Research: Solid Earth*, 124, [DOI](https://doi.org/10.1029/2019JB018596). -Sharman, G. R., Sylvester, Z., & Covault, J. A. (2019). **Conversion of tectonic and climatic forcings into records of sediment supply and provenance.** *Scientific Reports*, 9(1), 4115, `doi:10.1038/s41598-019-39754-6 `__. +Sharman, G. R., Sylvester, Z., & Covault, J. A. (2019). **Conversion of tectonic and climatic forcings into records of sediment supply and provenance.** *Scientific Reports*, 9(1), 4115, [DOI](https://doi.org/10.1038/s41598-019-39754-6). Zebari, M., Grützner, C., Navabpour, P., & Ustaszewski, K. (2019). **Relative timing of uplift along the Zagros Mountain Front Flexure (Kurdistan Region of Iraq): Constrained by geomorphic indices and landscape evolution modeling.** *Solid Earth*, 10(3), 663-682 -`doi:10.5194/se-10-663-2019 `__. +[DOI](https://doi.org/10.5194/se-10-663-2019). -2018 ----- +### 2018 Barnhart, K. R., Hutton, E. W., Gasparini, N. M., & Tucker, G. E. (2018). **Lithology: A Landlab submodule for spatially variable rock properties.** *J. Open Source Software*, 3(30), 979, -`doi:10.21105/joss.00979 `__ +[DOI](https://doi.org/10.21105/joss.00979) Lai J., and Anders, A. (2018) **Modeled Postglacial Landscape Evolution at the Southern Margin of the Laurentide Ice Sheet: Hydrological Connection of Uplands Controls the Pace and Style of Fluvial Network Expansion.** *Journal of Geophysical Research: Earth Surface*, v. 123, no. 5, -p. 967-984, `doi:10.1029/2017JF004509 `__ +p. 967-984, [DOI](https://doi.org/10.1029/2017JF004509) Langston, A.L., and Tucker, G. E. (2018) **Developing and exploring a theory for the lateral erosion of bedrock channels for use in landscape evolution models.** *Earth Surface Dynamics*, v. 6, p. 1-27, -doi:10.5194/esurf-6-1-2018. -`abstract `__ -`paper `__ +[DOI](https://doi.org/10.5194/esurf-6-1-2018). +[abstract](https://www.earth-surf-dynam.net/6/1/2018/) +[paper](https://www.earth-surf-dynam.net/6/1/2018/esurf-6-1-2018.pdf) Pelletier, J.D., Barron-Gafford, G.A., Guttierez-Jurado, H., Hinckley, E.S., Istanbulluoglu, E., McGuire, L.A., Niu G.-Y. Poulos, M.J., Rasmussen, C., Richardson, P., Swetnam, T.L., and Tucker, G.E. (2018) **Which way do you lean? Using slope aspect variations to understand Critical Zone processes and feedbacks.** *Earth Surface Processes and -Landforms*, doi:10.1002/esp.4306. -`abstract `__ -`paper `__ +Landforms*, [DOI](https://doi.org/10.1002/esp.4306). +[abstract](https://onlinelibrary.wiley.com/doi/abs/10.1002/esp.4306) +[paper](https://onlinelibrary.wiley.com/doi/epdf/10.1002/esp.4306) Schmid, M., Ehlers, T.A., Werner, C., Hickler, T., and Fuentes-Espoz, J. P. (2018). **Effect of changing vegetation and precipitation on denudation–Part 2: Predicted landscape response to transient climate and vegetation cover over millennial to million-year timescales.** *Earth Surface Dynamics*, 6(4), 859-881, -`doi:10.5194/esurf-6-859-2018 `__. +[DOI](https://doi.org/10.5194/esurf-6-859-2018). Singer, M. B., Michaelides, K., & Hobley, D. E. J. (2018) **STORM 1.0: a simple, flexible, and parsimonious stochastic rainfall generator for simulating climate and climate change.** *Geoscientific Model Development*, 11, 3713–3726, -`https://doi.org/10.5194/gmd-11-3713-2018 `__. +[DOI](https://doi.org/10.5194/gmd-11-3713-2018). Strauch, R.E., Istanbulluoglu, E., Nudurupati, S.S., Bandaragoda, C., Gasparini, N.M., & Tucker, G.E. (2018) **A hydro-climatological approach to predicting regional landslide probability using Landlab.** *Earth -Surface Dynamics*, v. 6, p. 49-75, doi:10.5194/esurf-6-49-2018. -`abstract `__ -`paper `__ +Surface Dynamics*, v. 6, p. 49-75, [DOI](https://doi.org/10.5194/esurf-6-49-2018). +[abstract](https://www.earth-surf-dynam.net/6/49/2018/) +[paper](https://www.earth-surf-dynam.net/6/49/2018/esurf-6-49-2018.pdf) Tucker, G. E., McCoy, S.W., and Hobley, D.E.J. (2018) **A lattice grain model of hillslope evolution.** *Earth Surface Dynamics*, v. 6, -p. 563-582, doi: 10.5194/esurf-6-563-2018. -`abstract and paper `__ - +p. 563-582, [DOI](https://doi.org/10.5194/esurf-6-563-2018). +[abstract and paper](https://www.earth-surf-dynam.net/6/563/2018/) -2017 ----- +### 2017 Adams, J.M., Gasparini, N.M., Hobley, D.E.J., Tucker, G.E., Hutton, E.W.H., Nudurupati, S.S., and Istanbulluoglu, E. **The Landlab v1.0 OverlandFlow component: a Python tool for computing shallow-water flow across watersheds.** *Geoscientific Model Development*, 2017, -doi:10.5194/gmd-10-1645-2017. -`abstract `__ -`paper `__ +[DOI](https://doi.org/10.5194/gmd-10-1645-2017). +[abstract](https://www.geosci-model-dev.net/10/1645/2017/gmd-10-1645-2017.html) +[paper](https://www.geosci-model-dev.net/10/1645/2017/gmd-10-1645-2017.pdf) Gray, H.J., Shobe, C.M., Hobley, D.E.J., Tucker, G.E., Duvall, A.R., Harbert, S.A., and Owen, L.A. (2017) **Off-fault deformation rate along the southern San Andreas fault at Mecca Hills, southern California, inferred from landscape modeling of curved drainages.** *Geology*, v. -46(1), p. 59-62, doi: 10.1130/G39820.1. -`abstract and paper `__ +46(1), p. 59-62, [DOI](https://doi.org/10.1130/G39820.1). +[abstract and paper](https://pubs.geoscienceworld.org/gsa/geology/article-abstract/46/1/59/522872/Off-fault-deformation-rate-along-the-southern-San?redirectedFrom=fulltext) Hobley, D.E.J., Adams, J.M., Nudurupati, S.S., Hutton, E.W.H, Gasparini, N.M., Istanbulluoglu, E., and Tucker, G.E., **Creative computing with Landlab: an open-source toolkit for building, coupling, and exploring two-dimensional numerical models of Earth-surface dynamics.** *Earth -Surface Dynamics*, 2017, doi:10.5194/esurf-5-21-2017. -`abstract `__ -`paper `__ +Surface Dynamics*, 2017, [DOI](https://doi.org/10.5194/esurf-5-21-2017). +[abstract](https://www.earth-surf-dynam.net/5/21/2017/) +[paper](https://www.earth-surf-dynam.net/5/21/2017/esurf-5-21-2017.pdf) Shobe, C.M., Tucker, G.E., and Barnhart, K.R. **The SPACE 1.0 model: a Landlab component for 2-D calculation of sediment transport, bedrock erosion, and landscape evolution.** *Geoscientific Model Development*, -2017, doi:10.5194/gmd-10-4577-2017. -`abstract `__ -`paper `__ +2017, [DOI](https://doi.org/10.5194/gmd-10-4577-2017). +[abstract](https://www.geosci-model-dev.net/10/4577/2017/) +[paper](https://www.geosci-model-dev.net/10/4577/2017/gmd-10-4577-2017.pdf) -2016 ----- +### 2016 Tucker, G.E., Hobley, D.E.J., Hutton, E., Gasparini, N.M., Istanbulluoglu, E., Adams, J.M., and Nudurupati, S.S. **CellLab-CTS 2015: continuous-time stochastic cellular automaton** **modeling using Landlab.** *Geoscientific Model Development*, February 2016. -`abstract `__ -`paper `__ +[abstract](https://www.geosci-model-dev.net/9/823/2016/) +[paper](https://www.geosci-model-dev.net/9/823/2016/gmd-9-823-2016.pdf) Wickert, A.D. **Open-source modular solutions for flexural isostasy: gFlex v1.0.** *Geoscientific Model Development*, 9, 997-1017, -doi:10.5194/gmd-9-997-2016, 2016. -`abstract `__ -`paper `__ +[DOI](https://doi.org/10.5194/gmd-9-997-2016), 2016. +[abstract](https://www.geosci-model-dev.net/9/997/2016/) +[paper](https://www.geosci-model-dev.net/9/997/2016/gmd-9-997-2016.pdf) ------------------------------------- -Peer-reviewed conference proceedings ------------------------------------- +## Peer-reviewed conference proceedings Adams, J.M., Nudurupati, S.S., Gasparini, N.M., Hobley, D.E.J., Hutton, E., Tucker, G.E., and Istanbulluoglu, E. (2014) **Landlab: Sustainable Software Development in Practice. Proceedings of 2nd Workshop on Sustainable Software for Science: Practice and Experiences.** -`paper `__ +[paper](https://figshare.com/articles/Landlab_Sustainable_Software_Development_in_Practice/1097629) ------ -Press ------ +## Press -`Grad student helps build model to study wildfires. `__ +[Grad student helps build model to study wildfires.](https://news.tulane.edu/news/grad-student-helps-build-model-study-wildfires) Benjamin Morris, *New Wave: Tulane News*. November 11, 2016. -`article `__ +[article](https://news.tulane.edu/news/grad-student-helps-build-model-study-wildfires) ----------------------------------- -Theses, Dissertations, and Reports ----------------------------------- +## Theses, Dissertations, and Reports -2020 ----- +### 2020 Lai, J. (2020). **Constraining tectonic and climatic controls on glacial/postglacial landscape evolution using numerical modeling** (Doctoral dissertation, University of Illinois at Urbana-Champaign). -2018 ----- +### 2018 Mahmoudi, M. (2018). **Comparing model predictions of hillslope sediment size distribution with field measurements** (Doctoral dissertation, San Francisco State University). +## Presentations -------------- -Presentations -------------- - -2020 ----- - +### 2020 - -2019 ----- +### 2019 Adams, J.M., Overeem, I., Hutton, E., Kettner, A.K. and Tucker, G.E. (2019, June) Exploring Surface Processes Using the Community Surface Dynamics Modeling System Modeling Tools. Joint Federal Interagency Sedimentation and Hydrology Conference (SEDHYD), Reno, NV. @@ -359,9 +330,7 @@ Tucker, G.E., Barnhart, K.R., Doty, S.G., Glade, R.C., Hill, M.C., Rossi, M.W. a Tucker, G.E., Hobley, D.E.J., and McCoy, S.W. (2019, December) Exploring the morphologic diversity of normal-fault facets. Paper presented at American Geophysical Union fall meeting, San Francisco, CA. - -2018 ----- +### 2018 Barnhart, K.R., Tucker, G.E., Doty, S., Hill, M.C., Rossi, M.W., Shobe, C.M., and Glade, R.C. (2018, June) Uncertainty in the prediction of erosion on geologic time scales. Paper presented at International Congress on Environmental Modeling and Software, Fort Collins, CO. @@ -381,8 +350,8 @@ D.E.J., Hutton E., Istanbulluoglu E., Mouchene M., Siddhartha Nudurupati S., Tucker G.E., (2018). Recent Advances in Landlab, a Software Toolkit for Modeling Earth Surface Dynamics. Pardee Keynote Symposia, GSA National Meeting, November 4–7, 2018, Indianapolis, IN. -`abstract `__ -`poster `__ +[abstract](https://gsa.confex.com/gsa/2018AM/webprogram/Paper324626.html), +[poster](https://doi.org/10.6084/m9.figshare.27050110.v1) Mouchene, M., Tucker, G.E., Barnhart, K.R., and Gasparini, N.M. (2018, December) The Clast-Tracker: a new tool for numerical modeling of the motion of individual particles. Paper presented at American Geophysical Union fall meeting, Washington, DC. @@ -400,13 +369,12 @@ Tucker, G.E., Barnhart, K.R., Doty, S.G., Glade, R.C., Hill, M.C., Rossi, M., Sh Tucker, G.E., McCoy, S.W., and Hobley, D.E.J. (2018, December) A Stochastic Cellular Model of Hillslope Morphology and Evolution. Paper presented at American Geophysical Union fall meeting, Washington, DC. -2017 ----- +### 2017 Adams, J. (2017) Nonsteady flow routing in Landlab: implications for modeling watershed evolution, Tulane Science and Engineering Research Days, New Orleans, Louisiana, April, 2017. -` Poster tied for top graduate contribution `__ +[Poster tied for top graduate contribution](https://news.tulane.edu/news/outstanding-researchers-recognized-sse-research-day) Adams, J.M. (2017) Integrating and applying a 2-D hydrodynamic model in a landscape evolution framework. United States Naval Research @@ -425,13 +393,13 @@ Barnhart, K., Tucker, G.E., Hutton, E.W.H., Hobley D.E.J., Gasparini, N.M., Adams, J.M. (2017) Reproducible Earth-surface modeling with Landlab on HydroShare, EarthCube All-Hands Meeting 2017, Seattle, Washington, June, 2017 -`abstract `__ -:download:`poster ` +[abstract](https://www.hydroshare.org/resource/38002ee4bf594901a29055bdf20b13da), +[poster](https://doi.org/10.6084/m9.figshare.27049912.v1) Bandaragoda, C.J., Castronova, A., Phuong, J., Strauch, R., -Istanbulluoglu, E., Nudurupati*, S.S., Barnhart**, K., Gasparini, N.M., +Istanbulluoglu, E., Nudurupati\*, S.S., Barnhart\*\*, K., Gasparini, N.M., Tarboton, D., Yin, D., Wang, S., Tucker, G.E., Hutton, E.W.H., Hobley, -D.E.J., Adams, J.M. \* (2017, December) Lowering the barriers to +D.E.J., Adams, J.M. * (2017, December) Lowering the barriers to computational modeling of Earth's surface: coupling Jupyter Notebooks with Landlab, HydroShare, and CyberGIS for research and education. Poster presented at American Geophysical Union fall meeting, New @@ -449,7 +417,7 @@ Barnhart, K., Tucker, G., Hobley, D., Hutton, E. (2017) Landlab components for surface hydrology: the FlowAccumulator and the FlowDirectors, CSDMS Annual Meeting, Modeling Coupled Earth and Human Systems - The Dynamic Duo, Boulder, Colorado, May, 2017. -`abstract `__ +[abstract](https://csdms.colorado.edu/wiki/Annualmeeting:2017_CSDMS_meeting-053) Carriere, A., Le Bouteiller, C., Tucker, G., and Naaim, M. (2017, April). Modelling the impact of vegetation on marly catchments in the @@ -473,10 +441,10 @@ Glaubius J., Li, X., Maerker, M. (2017) The Agricultural Terraces Model (AgrTerrModel): Exploring Human-Environment Interactions in Terraced Landscapes, Modeling Coupled Earth and Human Systems - The Dynamic Duo, Boulder, Colorado, May, 2017. -`abstract `__ +[abstract](https://csdms.colorado.edu/wiki/Annualmeeting:2017_CSDMS_meeting-005) Hobley, D.E.J., Sinclair, H.D., Gasparini, N.M., Tucker, G.E., Cowie, -P.A., Adams\ *, J.M., Hutton, E.W.H., Istanbulluoglu, E., and +P.A., Adams*, J.M., Hutton, E.W.H., Istanbulluoglu, E., and Nudurupati*, S.S. (2017, September) How common is nonlinear control of erosion by sediment flux in natural rivers? Paper presented at British Society for Geomorphology, Hull, UK. @@ -485,7 +453,7 @@ Langston, A., Tucker, G. (2017) Using a landscape evolution model to evaluate the role of pulses of uplift on bedrock valley width and channel mobility, Modeling Coupled Earth and Human Systems - The Dynamic Duo, Boulder, Colorado, May, 2017. -`abstract `__ +[abstract](https://csdms.colorado.edu/wiki/Annualmeeting:2017_CSDMS_meeting-128) Langston, A.L., and Tucker, G.E. (2017, December) Working Towards Interpreting Strath Terraces as Records of Climate Change: Evaluating a @@ -496,20 +464,20 @@ Lyons, N., Gasparini, N. (2017) Numerical simulations of transient landscape adjustment along the Mendocino Triple Junction, CSDMS Annual Meeting, Modeling Coupled Earth and Human Systems - The Dynamic Duo, Boulder, Colorado, May, 2017. -`abstract `__ +[abstract](https://csdms.colorado.edu/wiki/Annualmeeting:2017_CSDMS_meeting-014) Nudurupati, S.S., Istanbulluoglu, E., Adams, J., Hobley, D., Gasparini, N., Tucker, G., Hutton, E., Studying the Role of Disturbances on Woody Plant Encroachment in Southwestern US using a Coupled Landlab Ecohydrology Model, Modeling Coupled Earth and Human Systems - The Dynamic Duo, Boulder, Colorado, May, 2017. -`abstract `__ +[abstract](https://csdms.colorado.edu/wiki/Annualmeeting:2017_CSDMS_meeting-019) Shobe, C.M., Tucker, G.E., Barnhart, K.R. (2017) Exploring river response to tectonic perturbations with the open source, 2-D SPACE model, GSA annual meeting, Seattle, Washington, October 2017. -`abstract `__ -`poster `__ +[abstract](https://gsa.confex.com/gsa/2017AM/webprogram/Paper296922.html), +[poster](https://figshare.com/articles/_/5547637) Tucker, G.E. (2017, July) Some community resources for modeling critical-zone dynamics. Webinar presented to Cross-CZO Modeling Series. @@ -523,69 +491,67 @@ Tucker, G., Adams, J.M., Bandaragoda, C., Barnhart, K.R., Gasparini, N.M., Hobley, D.E.J., Hutton, E., Istanbulluoglu, E., Knuth, J., Mouchene, M., Nudurupati, S.S. (2017) Landlab: Plug-and-play numerical modeling of Earth-surface dynamics, NSF SI2 PI meeting, Arlington, -Virginia, February 2017 -`poster `__ +Virginia, February 2017. +[poster](https://figshare.com/articles/Landlab_Plug-and-play_numerical_modeling_of_Earth-surface_dynamics/4621546) -Tucker, G.E., Barnhart, K.R., Glade*, R.C., Shobe, C.M., Doty, S.G., and +Tucker, G.E., Barnhart, K.R., Glade\*, R.C., Shobe, C.M., Doty, S.G., and Hill, M.C. (2017, July) Using a natural experiment in post-glacial landscape evolution as a testbed for comparing alternative geomorphic model formulations. Invited paper presented at CUAHSI HydroInformatics Conference, Tuscaloosa, AL. -2016 ----- +### 2016 Adams, J.M., Gasparini, N.M., Tucker, G.E., and Istanbulluoglu, E. (2016) Nonsteady flow routing in Landlab: implications for modeling watershed evolution. Poster presented at AGU Fall Meeting, San Francisco, California, December 2016. -`abstract `__ +[abstract](https://agu.confex.com/agu/fm16/meetingapp.cgi/Paper/135152) Gasparini, N.M., Adams, J.M., Hobley, D.E.J., Hutton, E.W.H., Nudurupati, S.S., Istanbulluoglu, E., and Tucker, G.E. (2016) Landlab: an Open-Source Python Library for Modeling Earth Surface Dynamics. Poster presented at AGU Fall Meeting, San Francisco, California, December 2016. -`abstract `__ +[abstract](https://agu.confex.com/agu/fm16/meetingapp.cgi/Paper/149398) Gelb, L., Nudurupati, S.S., Yager, E., Glenn, N.F., Pierce, J., and Flores, A.N. (2016) Assessing the sensitivity of a water-limited, mixed tree-grass-shrub ecosystem to climate change and geomorphic controls using a community modeling framework. Talk presented at AGU Fall Meeting, San Francisco, California, December 2016. -`abstract `__ +[abstract](https://agu.confex.com/agu/fm16/meetingapp.cgi/Paper/129255) Glaubius, J., and Maerker, M. (2016) Integrating Geomorphic and Social Dynamics in the Analysis of Anthropogenic Landforms: Examining Landscape Evolution of Terrain Modified by Agricultural Terracing. Poster presented at AGU Fall Meeting, San Francisco, California, December 2016. -`abstract `__ +[abstract](https://agu.confex.com/agu/fm16/meetingapp.cgi/Paper/195142) Langston, A.L., and Tucker, G.E.(2016) Developing and Evaluating a Theory for Lateral Erosion by Bedrock Channels in a Landscape Evolution Model. Poster presented at AGU Fall Meeting, San Francisco, California, December 2016. -`abstract `__ +[abstract](https://agu.confex.com/agu/fm16/meetingapp.cgi/Paper/144788) Lai, J., and Anders, A.M. (2016) Numerical modeling of the evolution of fluvial networks on glaciated landscapes. Poster presented at AGU Fall Meeting, San Francisco, California, December 2016. -`abstract `__ -:download:`poster ` -:download:`dowload poster PDF ` +[abstract](https://agu.confex.com/agu/fm16/meetingapp.cgi/Paper/168276), +[poster](https://doi.org/10.6084/m9.figshare.27049990.v1) Lynch, B., Yanites, B., Shen, H., and Poulsen, C.J. (2016) Modeling Landscape Evolution and Climate: How Erosion and Precipitation are Linked in Active Orogens (Preliminary Results). Poster presented at AGU Fall Meeting, San Francisco, California, December 2016. -`abstract `__ +[abstract](https://agu.confex.com/agu/fm16/meetingapp.cgi/Paper/126631) Tucker, G.E., Adams, J.M., Doty, S.G, Gasparini, N.M, Hill, M.C., Hobley, D.E.J., Hutton, E., Istanbulluoglu, E., and Nudurupati, S.S. (2016) Using the Landlab toolkit to evaluate and compare alternative geomorphic and hydrologic model formulations. Invited talk at AGU Fall Meeting, San Francisco, California, December 2016. -`abstract `__ +[abstract](https://agu.confex.com/agu/fm16/meetingapp.cgi/Paper/118620) Adams, J.M. (2016) Integrating a 2-D hydrodynamic model into the Landlab modeling framework. The Water Institute of the Gulf Seminar Series, @@ -595,24 +561,23 @@ Adams, J.M., Gasparini, N.M., Hobley, D., Tucker, G.E., Hutton, E.W.H., Nudurupati, S.S. and Istanbulluoglu, E. (2016) Flooding and erosion after the Buffalo Creek fire: a modeling approach using Landlab. The Geological Society of American Annual Meeting, Denver, Colorado, Sept -2016. -`abstract `__ +2016\. +[abstract](https://gsa.confex.com/gsa/2016AM/webprogram/Paper285844.html) Adams, J.M., Gasparini, N.M., Hobley, D., Tucker, G.E., Hutton, E.W.H., Istanbulluoglu, E., and Nudurupati, S.S. (2016) Integrating a 2-D hydrodynamic model into the Landlab modeling framework. Paper presented at CSDMS Annual Meeting: Capturing Climate Change, Boulder, Colorado, May 2016. -`abstract `__ +[abstract](https://csdms.colorado.edu/wiki/Presenters-0078) Nudurupati, S.S., Istanbulluoglu, E., Adams, J.M., Hobley, D., Gasparini, N.M., Tucker, G.E., and Hutton, E.W.H. (2016) Mechanisms of Shrub Encroachment explored in Southwestern United States using Landlab Ecohydrology. Poster presented at CSDMS Annual Meeting: Capturing Climate Change, Boulder, Colorado, May 2016. -`abstract `__ -:download:`poster ` -:download:`dowload poster PDF ` +[abstract](https://csdms.colorado.edu/wiki/CSDMS_2016_annual_meeting_poster_SaiSiddharthaNudurupati), +[poster](https://doi.org/10.6084/m9.figshare.27050008.v1) Nudurupati, S.S. (2016) Are All Forest Fires Evil? Lightning talk presented at the Puget Sound Programming Python (PuPPy) monthly meetup, @@ -623,75 +588,71 @@ Istanbulluoglu, E., Nudurupati, S.S., and Tucker, G.E. (2016) Landlab: a new, open-source, modular, Python-based tool for modeling Earth surface dynamics. Poster presented at EGU General Assembly Meeting, Vienna, Austria, April 2016. -`abstract `__ -:download:`poster ` -:download:`pdf download ` +[abstract](https://meetingorganizer.copernicus.org/EGU2016/EGU2016-9981.pdf), +[poster](https://doi.org/10.6084/m9.figshare.27049981.v1) Hobley, D., Gasparini, N.M., and Tucker, G.E. (2016) Tools-and-cover effects in transiently responding mountain rivers: hallmarks and consequences. Paper presented at EGU General Assembly Meeting, Vienna, Austria, April 2016. -`abstract `__ +[abstract](https://meetingorganizer.copernicus.org/EGU2016/EGU2016-9889.pdf) Gasparini, N.M., Adams, J.M., Tucker, G.E., Hobley, D., Hutton, E.W.H., Istanbulluoglu, E., and Nudurupati, S.S. (2016) Landlab: A numerical modeling framework for evolving Earth surfaces from mountains to the coast. Paper presented at the Ocean Sciences Meeting, New Orleans, LA, Feb 2016. -`abstract `__ -:download:`poster ` +[abstract](https://agu.confex.com/agu/os16/meetingapp.cgi/Paper/87020), +[poster](https://doi.org/10.6084/m9.figshare.27050023.v1) Tucker, G.E., Hobley, D.E.J., Gasparini, N.M., Adams, J.M., Nudurupati, S.S., Istanbulluoglu, E., Hutton, E.W.H., and Knuth, J.S. (2016) Landlab: A Python library for building and coupling 2D numerical models. Paper presented at the SI2 Principal Investigators Meeting, Arlington, VA, Feb 2016. -:download:`poster ` -:download:`download poster ` +[poster](https://doi.org/10.6084/m9.figshare.27049726.v1) -2015 ----- +### 2015 Adams, J.M., Gasparini, N.M., Tucker, G.E., Hobley, D., Hutton, E.W.H., Nudurupati, S.S., and Istanbulluoglu, E. (2015) Modeling overland flow-driven erosion across a watershed DEM using the Landlab modeling framework. Paper presented at American Geophysical Union fall meeting, San Francisco, CA, Dec 2015. -`abstract `__ -:download:`poster ` -`video `__ +[abstract](https://agu.confex.com/agu/fm15/meetingapp.cgi/Paper/75514), +[poster](https://doi.org/10.6084/m9.figshare.27049258.v1), +[video](https://www.youtube.com/watch?v=4Ltr6HRUrQI) Nudurupati, S.S., Istanbulluoglu, E., Adams, J.M., Hobley, D., Gasparini, N.M., Tucker, G.E., and Hutton, E.W.H. (2015) Elevation Control on Vegetation Organization in a Semiarid Ecosystem in Central New Mexico. Paper presented at American Geophysical Union fall meeting, San Francisco, CA, Dec 2015. -`abstract `__ -:download:`poster ` +[abstract](https://agu.confex.com/agu/fm15/meetingapp.cgi/Paper/80794), +[poster](https://doi.org/10.6084/m9.figshare.27049396.v1) Strauch, R., Istanbulluoglu, E., and Nudurupati, S.S. (2015) Landslide Hazard from Coupled Inherent and Dynamic Probabilities. Paper presented at American Geophysical Union fall meeting, San Francisco, CA, Dec 2015. -`abstract `__ +[abstract](https://agu.confex.com/agu/fm15/meetingapp.cgi/Paper/85607) -2014 ----- +### 2014 Adams, J.M., Rengers, F.K., Gasparini, N.M., Tucker, G.E., Nudurupati, S.S., Istanbulluoglu, E., and Hutton, E. (2014) Exploring Post-Wildfire Hydrologic Response in Central Colorado Using Field Observations and the Landlab Modeling Framework. Paper presented at American Geophysical Union Fall Meeting, San Francisco, Dec 2014. -`abstract `__ -:download:`poster ` +[abstract](https://abstractsearch.agu.org/meetings/2014/FM/EP51E-3562.html), +[poster](https://doi.org/10.6084/m9.figshare.27050089.v1) Gasparini, N.M., Hobley, D.E.J., Tucker, G.E., Istanbulluoglu, E., Adams, J.M., Nudurupati, S.S., and Hutton, E. (2014) A Comparison of the CHILD and Landlab Computational Landscape Evolution Models and Examples of Best Practices in Numerical Modeling of Surface Processes. Paper presented at American Geophysical Union Fall Meeting, San Francisco, Dec -2014. -`abstract `__ +2014\. +[abstract](https://abstractsearch.agu.org/meetings/2014/FM/EP51E-3564.html) Hobley, D.E.J., Sinclair, H., Gasparini, N.M., Tucker, G.E., Cowie, P., Adams, J.M., Hutton, E., Istanbulluoglu, E., and Nudurupati, S.S. (2014) @@ -719,18 +680,17 @@ E., Hobley, D., and Nudurupati, S.S. (2014) Modeling hydrologic and erosional responses of landscapes to fire using the Landlab modeling environment. 2014: Community Surface Dynamics Modeling System Annual Meeting, Boulder, Colorado, May 2014. -`abstract `__ -`poster `__ +[abstract](https://csdms.colorado.edu/wiki/CSDMS_2014_annual_meeting_poster_Jordan_Adams), +[poster](https://csdms.colorado.edu/wiki/File:CSDMS2014_poster_JordanAdams.pdf) -2013 ----- +### 2013 Adams, J., Gasparini, N.M., Tucker, G.E., Istanbulluoglu, E., Hutton, E., Hobley, D., and Nudurupati, S.S. (2013) Modeling wildfire and hydrologic response to global climate change using the Landlab numerical model. Paper presented at American Geophysical Union Fall Meeting, San Francisco, Dec 2013. -`abstract `__ +[abstract](https://abstractsearch.agu.org/meetings/2013/FM/GC21C-0847.html) Hobley, D.E.J., Tucker, G.E., Adams, J.M., Gasparini, N.M., Hutton, E., Istanbulluoglu, E., and Nudurupati, S.S. (2013) Modeling impact @@ -774,97 +734,78 @@ Hobley, D.E.J. (2013) A generic "gridding engine" for 2D modeling of earth-surface dynamics. Paper presented at Community Surface Dynamics Modeling System annual meeting, Boulder, Colorado, Mar 2013. +(clinics-workshops)= -.. _clinics_workshops: - ---------------------- -Clinics and Workshops ---------------------- +## Clinics and Workshops -2020 ----- +### 2020 **Exploring Surface Processes using CSDMS Modeling Tools: How to Build Coupled Models** An online short course on model coupling presented by G. Tucker, B. Campforts, E. Hutton, and M. Piper -at the 2020 GSA Annual Meeting, October 23. `Presentation and code `__ - -.. _GSA 2020: https://github.com/csdms/gsa-2020 +at the 2020 GSA Annual Meeting, October 23. [Presentation and code][gsa-2020] **University of Texas Jackson School of Geosciences Landlab Clinic 2020** A Landlab clinic presented by N. Gasparini at UT-Austin on September 10, 2020. -`Presentation and code `__ - -.. _UT 2020: https://github.com/landlab/UT_Landlab_Clinic +[Presentation and code][ut-2020] **Exploring Surface Processes using CSDMS Tools: How to Build Coupled Models** An online workshop on model coupling presented by E. Hutton, M. Piper, G. Tucker, and I. Overeem at the 2020 CSDMS Annual Meeting, May 20-21. -`Presentation and code `__ - -.. _CSDMS 2020: https://github.com/csdms/csdms-2020 +[Presentation and code][csdms-2020] **Penn State Landlab Clinic 2020** A Landlab clinic presented by N. Gasparini at Penn State on January 22, 2020. -`Presentation and code `__ - -.. _Penn 2020: https://github.com/landlab/psu-clinic-2020 +[Presentation and code][penn-2020] -2019 ----- +### 2019 **Exploring Surface Processes: How to Build Coupled Models** A hands-on workshop presented by A. Ashton, N. Gasparini, N. Lyons, I. Overeem, and M. Piper at the 2019 AGU Fall Meeting in San Francisco, CA. -`Presentation and code `__ - -.. _AGU 2019: https://github.com/csdms/agu-2019 +[Presentation and code][agu-2019] **River, Coastal and Estuarine Morphodynamics (RCEM) Symposium** A hands-on workshop presented by K. Barnhart, E. Hutton, and G. Tucker at RCEM 2019, November 16-21 in Auckland, New Zealand. -`Presentation and code `__ - -.. _RCEM 2019: https://github.com/csdms/rcem-2019 +[Presentation and code][rcem-2019] **UW Waterhackweek (Mar 2019): Landlab Modeling Framework and Use Cases** Presented by S.S. Nudurupati, A. Manaster, C. Bandaragoda, and E. Istanbulluoglu. -`View cyberseminar online `_, -`Waterhackweek 2019 Landlab materials on HydroShare `_ +[View cyberseminar online](https://www.youtube.com/watch?v=m10UA5_gsuM&feature=youtu.be), +[Waterhackweek 2019 Landlab materials on HydroShare](https://www.hydroshare.org/resource/0e005873929f41818dd1371da292ba07/) -2018 ----- +### 2018 **CSDMS Webinar (Sep 2018): Overview of the Landlab Toolkit** Presented by G. Tucker. -`View webinar online `_ +[View webinar online](https://csdms.colorado.edu/wiki/Presenters-0407) **Modeling with the Landlab toolkit** Presented by N. Gasparini at the 2018 Summer Institute on Earth-Surface Dynamics on 26 July in Minneapolis, MN. -`Presentation and code `__ +[Presentation and code](https://github.com/landlab/nced_summer_instititute_2018) **GeoHazardSilesia 2018: Building numerical models to explore geohazard hypotheses** Lyons, N.J. (2018) Short course at GeoHazardSilesia 2018, Katowice, Poland, 5–9 June, 2018. -`Course website `_ +[Course website](https://sites.google.com/view/geohazard-numerical-models) **CSDMS May 2018: Landlab with Hydroshare** Mouchene, M., Gasparini, N.M. and Adams, J.M. (2018) Landlab with Hydroshare. Clinic presented at CSDMS Annual Meeting: Geoprocesses, Geohazards, Boulder, Colorado, May 2018. -`CSDMS 2018 slides and files on Hydroshare `_ +[CSDMS 2018 slides and files on Hydroshare](https://www.hydroshare.org/resource/4c74e1630fef4f55b94c8645be63ae9d/) **CSDMS May 2018: Model sensitivity analysis and optimization with Dakota and Landlab** Barnhart, K.R. (2018) Model sensitivity analysis and optimization with Dakota and Landlab. Clinic presented at CSDMS Annual Meeting: Geoprocesses, Geohazards, Boulder, Colorado, May 2018. -`CSDMS 2018 Landlab and Dakota clinic materials on HydroShare `_ +[CSDMS 2018 Landlab and Dakota clinic materials on HydroShare](https://www.hydroshare.org/resource/ea0952c7a16b42468822a78db3de5a4b/) -2017 ----- +### 2017 **GSA Oct 2017: Landlab Earth Surface Modeling Toolkit: Building and Applying Models of Coupled Earth Surface Processes** Bandaragoda, C., Istanbulluoglu, E., Nudurupati, S. S., Manaster, A., @@ -872,7 +813,7 @@ Strauch, R., Lyons, N., and Phuong, J. (2017). Landlab Earth Surface Modeling Toolkit: Building and Applying Models of Coupled Earth Surface Processes. Short-course presented at GSA 2017, Seattle, Washington, October 2017 -`GSA 2017 Landlab short-course material on HydroShare `_ +[GSA 2017 Landlab short-course material on HydroShare](https://www.hydroshare.org/accounts/login/?next=/resource/3ab2e7d190c44a70b62f96a3c0b1b627/) **CSDMS May 2017: Modeling Earth-Surface Dynamics with Landlab 1.0** Gasparini, N.M., Adams, J.M., Nudurupati, S.S., Istanbulluoglu, E., @@ -880,45 +821,47 @@ Barnhart, K.R. and Mouchene, M. (2017) Modeling Earth-Surface Dynamics with Landlab 1.0. Clinic presented at CSDMS Annual Meeting: Modeling Coupled Earth and Human Systems - the Dynamic Duo, Boulder, Colorado, May 2017. -`CSDMS 2017 Landlab clinic materials on HydroShare `_ -`CSDMS 2017 Landlab clinic materials on GitHub `_ +[CSDMS 2017 Landlab clinic materials on HydroShare](https://www.hydroshare.org/resource/2610b5c20e9049b4b6d8c11505d931b5/) +[CSDMS 2017 Landlab clinic materials on GitHub](https://github.com/landlab/csdms_model_clinic_may_2017) **CSDMS May 2017: Model sensitivity analysis and optimization with Dakota and Landlab** Barnhart, K.R. (2017) Model sensitivity analysis and optimization with Dakota and Landlab. Clinic presented at CSDMS Annual Meeting: Modeling Coupled Earth and Human Systems - the Dynamic Duo, Boulder, Colorado, May 2017. -`CSDMS 2017 Landlab and Dakota clinic materials on HydroShare `_ +[CSDMS 2017 Landlab and Dakota clinic materials on HydroShare](https://www.hydroshare.org/resource/ea0952c7a16b42468822a78db3de5a4b/) -2016 ----- +### 2016 **CSDMS May 2016: Modeling Earth-Surface Dynamics with Landlab** -Tucker, G.E., Hobley, D., Nudurupati, S.S., Adams, J.M., Hutton, E., -Gasparini, N.M., and Istanbulluoglu, E. (2016) Modeling Earth-Surface -Dynamics with Landlab. Clinic presented at CSDMS Annual Meeting: -Capturing Climate Change, Boulder, Colorado, May 2016. -:download:`download the clinic slides ` +Tucker, Greg; Hobley, Daniel E. J.; Nudurupati, Sai Siddharta; +Adams, Jordan; Hutton, Eric; Gasparini, Nicole; et al. (2024). +Modeling earth-surface dynamics with Landlab. figshare. Presentation. +`DOI ` **CUAHSI Biennial Meeting, July 2016: Modeling landscape response using big data with Landlab** Istanbulluoglu E., Nudurupati S.S., Strauch R., and Bandaragoda C. (2016). Modeling Landscape Response using Big Data with Landlab. Workshop presented at CUAHSI Biennial Symposium, July 24-27, Shepherdstown, WV. -`CUAHSI 2016 Landlab workshop resources `_ +[CUAHSI 2016 Landlab workshop resources](https://github.com/landlab/CUAHSI_Biennial_July_2016) **U Houston, September 2016, Modeling Earth-Surface Dynamics with Landlab** -Gasparini, N.M. and Adams, J.M. (2016) Modeling Earth-Surface Dynamics -with Landlab. Clinic presented at the University of Houston, Department -of Earth and Atmospheric Sciences, Houston, Texas, September 2016. -:download:`download the clinic slides ` +Gasparini, Nicole; Adams, Jordan (2024). Modeling earth-surface dynamics with Landlab. +figshare. Presentation. `DOI ` -2015 ----- +### 2015 **CSDMS May 2015: Landlab: A Python library for 2D numerical modeling** Tucker, G.E., Hobley, D., Nudurupati, S.S., Adams, J.M., Hutton, E., Gasparini, N.M., and Istanbulluoglu, E. (2015) Landlab: A Python library for 2D numerical modeling. Clinic presented at CSDMS Annual Meeting: Models meet Data, Data meet Models, Boulder, Colorado, May 2015. -`CSDMS 2015 Landlab clinic materials on GitHub `_ +[CSDMS 2015 Landlab clinic materials on GitHub](https://github.com/landlab/csdms_meeting_may_2015) + +[agu-2019]: https://github.com/csdms/agu-2019 +[csdms-2020]: https://github.com/csdms/csdms-2020 +[gsa-2020]: https://github.com/csdms/gsa-2020 +[penn-2020]: https://github.com/landlab/psu-clinic-2020 +[rcem-2019]: https://github.com/csdms/rcem-2019 +[ut-2020]: https://github.com/landlab/UT_Landlab_Clinic diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000000..02b7e5d719 --- /dev/null +++ b/conftest.py @@ -0,0 +1,7 @@ +import numpy as np +import pytest + + +@pytest.fixture(scope="session", autouse=True) +def set_numpy_printoptions(): + np.set_printoptions(legacy="1.25") diff --git a/cython-files.txt b/cython-files.txt new file mode 100644 index 0000000000..60ade686ae --- /dev/null +++ b/cython-files.txt @@ -0,0 +1,45 @@ +src/landlab/ca/cfuncs.pyx +src/landlab/components/bedrock_landslider/cfuncs.pyx +src/landlab/components/depression_finder/cfuncs.pyx +src/landlab/components/drainage_density/cfuncs.pyx +src/landlab/components/erosion_deposition/cfuncs.pyx +src/landlab/components/flexure/_ext/flexure1d.pyx +src/landlab/components/flexure/_ext/flexure2d.pyx +src/landlab/components/flexure/_ext/flexure2d_slow.pyx +src/landlab/components/flow_accum/cfuncs.pyx +src/landlab/components/flow_director/cfuncs.pyx +src/landlab/components/flow_router/ext/single_flow/priority_routing/_test_breach_c.pyx +src/landlab/components/flow_router/ext/single_flow/priority_routing/breach.pyx +src/landlab/components/overland_flow/_neighbors_at_link.pyx +src/landlab/components/priority_flood_flow_router/cfuncs.pyx +src/landlab/components/space/ext/calc_qs.pyx +src/landlab/components/space/ext/calc_sequential_ero_depo.pyx +src/landlab/components/stream_power/cfuncs.pyx +src/landlab/components/threshold_eroder/cfuncs.pyx +src/landlab/data_record/_aggregators.pyx +src/landlab/graph/hex/ext/hex.pyx +src/landlab/graph/hex/ext/perimeternodes.pyx +src/landlab/graph/matrix/ext/at_patch.pyx +src/landlab/graph/matrix/ext/matrix.pyx +src/landlab/graph/object/ext/at_node.pyx +src/landlab/graph/object/ext/at_patch.pyx +src/landlab/graph/quantity/ext/of_element.pyx +src/landlab/graph/quantity/ext/of_link.pyx +src/landlab/graph/quantity/ext/of_patch.pyx +src/landlab/graph/sort/ext/_deprecated_sparse.pyx +src/landlab/graph/sort/ext/argsort.pyx +src/landlab/graph/sort/ext/intpair.pyx +src/landlab/graph/sort/ext/remap_element.pyx +src/landlab/graph/sort/ext/spoke_sort.pyx +src/landlab/graph/structured_quad/ext/at_cell.pyx +src/landlab/graph/structured_quad/ext/at_face.pyx +src/landlab/graph/structured_quad/ext/at_link.pyx +src/landlab/graph/structured_quad/ext/at_node.pyx +src/landlab/graph/structured_quad/ext/at_patch.pyx +src/landlab/graph/voronoi/ext/delaunay.pyx +src/landlab/graph/voronoi/ext/voronoi.pyx +src/landlab/grid/ext/raster_divergence.pyx +src/landlab/grid/ext/raster_gradient.pyx +src/landlab/layers/ext/eventlayers.pyx +src/landlab/utils/_matrix.pyx +src/landlab/utils/ext/jaggedarray.pyx diff --git a/docs/index.toml b/docs/index.toml index 72a9ca1570..a7f5ffbaf5 100644 --- a/docs/index.toml +++ b/docs/index.toml @@ -1,5 +1,3 @@ -# This file was automatically generated with: -# nox -s build-index # Generated using `landlab index components` [components] @@ -2329,6 +2327,67 @@ mapping = 'node' optional = true units = 'm/s' +[components.MassWastingRunout] +name = 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout' +unit_agnostic = false +summary = 'a cellular-automata mass wasting runout model that routes an initial mass' + +[components.MassWastingRunout.info.flow__receiver_node] +doc = 'Node array of receivers (node that receives flow from current node)' +dtype = 'int64' +intent = 'in' +mapping = 'node' +optional = false +units = '-' + +[components.MassWastingRunout.info.flow__receiver_proportions] +doc = 'Node array of proportion of flow sent to each receiver.' +dtype = 'float64' +intent = 'in' +mapping = 'node' +optional = false +units = '-' + +[components.MassWastingRunout.info.mass__wasting_id] +doc = 'interger or float id of each mass wasting area is assigned to all nodes representing the mass wasting area.' +dtype = 'int64' +intent = 'in' +mapping = 'node' +optional = false +units = '-' + +[components.MassWastingRunout.info.particle__diameter] +doc = 'representative particle diameter at each node, this might vary with underlying geology, contributing area or field observations' +dtype = 'float64' +intent = 'inout' +mapping = 'node' +optional = true +units = 'm' + +[components.MassWastingRunout.info.soil__thickness] +doc = 'soil depth to restrictive layer' +dtype = 'float64' +intent = 'inout' +mapping = 'node' +optional = false +units = 'm' + +[components.MassWastingRunout.info.topographic__elevation] +doc = 'Land surface topographic elevation' +dtype = 'float64' +intent = 'inout' +mapping = 'node' +optional = true +units = 'm' + +[components.MassWastingRunout.info.topographic__steepest_slope] +doc = 'The steepest *downhill* slope' +dtype = 'float64' +intent = 'in' +mapping = 'node' +optional = false +units = '-' + [components.NetworkSedimentTransporter] name = 'landlab.components.network_sediment_transporter.network_sediment_transporter.NetworkSedimentTransporter' unit_agnostic = false @@ -2480,7 +2539,7 @@ unit_agnostic = false summary = 'Potential Evapotranspiration Component calculates spatially distributed' [components.PotentialEvapotranspiration.info.radiation__incoming_shortwave_flux] -doc = 'total incident shortwave radiation over the time step' +doc = 'incident shortwave radiation' dtype = 'float64' intent = 'out' mapping = 'cell' @@ -2488,7 +2547,7 @@ optional = false units = 'W/m^2' [components.PotentialEvapotranspiration.info.radiation__net_flux] -doc = 'net total radiation over the time step' +doc = 'net radiation' dtype = 'float64' intent = 'out' mapping = 'cell' @@ -2496,7 +2555,7 @@ optional = false units = 'W/m^2' [components.PotentialEvapotranspiration.info.radiation__net_longwave_flux] -doc = 'net incident longwave radiation over the time step' +doc = 'net incident longwave radiation' dtype = 'float64' intent = 'out' mapping = 'cell' @@ -2504,7 +2563,7 @@ optional = false units = 'W/m^2' [components.PotentialEvapotranspiration.info.radiation__net_shortwave_flux] -doc = 'net incident shortwave radiation over the time step' +doc = 'net incident shortwave radiation' dtype = 'float64' intent = 'out' mapping = 'cell' @@ -2512,7 +2571,7 @@ optional = false units = 'W/m^2' [components.PotentialEvapotranspiration.info.radiation__ratio_to_flat_surface] -doc = 'ratio of total incident shortwave radiation on sloped surface to flat surface' +doc = 'ratio of incident shortwave radiation on sloped surface to flat surface' dtype = 'float64' intent = 'in' mapping = 'cell' @@ -2742,10 +2801,42 @@ summary = 'Extract and plot profiles set up using points within a grid.' [components.Radiation] name = 'landlab.components.radiation.radiation.Radiation' unit_agnostic = false -summary = 'Compute 1D and 2D total incident shortwave radiation.' +summary = 'Compute 1D and 2D daily incident shortwave radiation.' + +[components.Radiation.info.radiation__clearsky_flux] +doc = 'clearsky radiation' +dtype = 'float64' +intent = 'out' +mapping = 'cell' +optional = false +units = 'W/m^2' + +[components.Radiation.info.radiation__extraterrestrial_flux] +doc = 'extraterrestrial radiation' +dtype = 'float64' +intent = 'out' +mapping = 'cell' +optional = false +units = 'W/m^2' [components.Radiation.info.radiation__incoming_shortwave_flux] -doc = 'total incident shortwave radiation over the time step' +doc = 'incident shortwave radiation' +dtype = 'float64' +intent = 'out' +mapping = 'cell' +optional = false +units = 'W/m^2' + +[components.Radiation.info.radiation__net_flux] +doc = 'net radiation' +dtype = 'float64' +intent = 'out' +mapping = 'cell' +optional = false +units = 'W/m^2' + +[components.Radiation.info.radiation__net_longwave_flux] +doc = 'net incident longwave radiation' dtype = 'float64' intent = 'out' mapping = 'cell' @@ -2753,7 +2844,7 @@ optional = false units = 'W/m^2' [components.Radiation.info.radiation__net_shortwave_flux] -doc = 'net incident shortwave radiation over the time step' +doc = 'net incident shortwave radiation' dtype = 'float64' intent = 'out' mapping = 'cell' @@ -2761,7 +2852,7 @@ optional = false units = 'W/m^2' [components.Radiation.info.radiation__ratio_to_flat_surface] -doc = 'ratio of total incident shortwave radiation on sloped surface to flat surface' +doc = 'ratio of incident shortwave radiation on sloped surface to flat surface' dtype = 'float64' intent = 'out' mapping = 'cell' @@ -4291,6 +4382,7 @@ used_by = [ 'landlab.components.hand_calculator.hand_calculator.HeightAboveDrainageCalculator', 'landlab.components.lake_fill.lake_fill_barnes.LakeMapperBarnes', 'landlab.components.lateral_erosion.lateral_erosion.LateralEroder', + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', 'landlab.components.profiler.channel_profiler.ChannelProfiler', 'landlab.components.profiler.trickle_down_profiler.TrickleDownProfiler', 'landlab.components.space.space.Space', @@ -4314,7 +4406,9 @@ provided_by = [ [fields.flow__receiver_proportions] desc = 'Node array of proportion of flow sent to each receiver.' -used_by = [] +used_by = [ + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', +] provided_by = [ 'landlab.components.flow_director.flow_director_dinf.FlowDirectorDINF', 'landlab.components.flow_director.flow_director_mfd.FlowDirectorMFD', @@ -4546,6 +4640,13 @@ provided_by = [ 'landlab.components.flexure.flexure_1d.Flexure1D', ] +[fields.mass__wasting_id] +desc = 'interger or float id of each mass wasting area is assigned to all nodes representing the mass wasting area.' +used_by = [ + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', +] +provided_by = [] + [fields.mean_water__depth] desc = 'Tidal mean water depth' used_by = [] @@ -4553,6 +4654,15 @@ provided_by = [ 'landlab.components.tidal_flow.tidal_flow_calculator.TidalFlowCalculator', ] +[fields.particle__diameter] +desc = 'representative particle diameter at each node, this might vary with underlying geology, contributing area or field observations' +used_by = [ + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', +] +provided_by = [ + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', +] + [fields.plant__age] desc = 'Age of plant' used_by = [] @@ -4567,8 +4677,22 @@ provided_by = [ 'landlab.components.plant_competition_ca.plant_competition_ca.VegCA', ] +[fields.radiation__clearsky_flux] +desc = 'clearsky radiation' +used_by = [] +provided_by = [ + 'landlab.components.radiation.radiation.Radiation', +] + +[fields.radiation__extraterrestrial_flux] +desc = 'extraterrestrial radiation' +used_by = [] +provided_by = [ + 'landlab.components.radiation.radiation.Radiation', +] + [fields.radiation__incoming_shortwave_flux] -desc = 'total incident shortwave radiation over the time step' +desc = 'incident shortwave radiation' used_by = [] provided_by = [ 'landlab.components.pet.potential_evapotranspiration_field.PotentialEvapotranspiration', @@ -4576,21 +4700,23 @@ provided_by = [ ] [fields.radiation__net_flux] -desc = 'net total radiation over the time step' +desc = 'net radiation' used_by = [] provided_by = [ 'landlab.components.pet.potential_evapotranspiration_field.PotentialEvapotranspiration', + 'landlab.components.radiation.radiation.Radiation', ] [fields.radiation__net_longwave_flux] -desc = 'net incident longwave radiation over the time step' +desc = 'net incident longwave radiation' used_by = [] provided_by = [ 'landlab.components.pet.potential_evapotranspiration_field.PotentialEvapotranspiration', + 'landlab.components.radiation.radiation.Radiation', ] [fields.radiation__net_shortwave_flux] -desc = 'net incident shortwave radiation over the time step' +desc = 'net incident shortwave radiation' used_by = [] provided_by = [ 'landlab.components.pet.potential_evapotranspiration_field.PotentialEvapotranspiration', @@ -4598,7 +4724,7 @@ provided_by = [ ] [fields.radiation__ratio_to_flat_surface] -desc = 'ratio of total incident shortwave radiation on sloped surface to flat surface' +desc = 'ratio of incident shortwave radiation on sloped surface to flat surface' used_by = [ 'landlab.components.pet.potential_evapotranspiration_field.PotentialEvapotranspiration', ] @@ -4864,8 +4990,11 @@ provided_by = [] desc = 'soil depth to restrictive layer' used_by = [ 'landlab.components.landslides.landslide_probability.LandslideProbability', + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', +] +provided_by = [ + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', ] -provided_by = [] [fields.soil__transmissivity] desc = 'mode rate of water transmitted through a unit width of saturated soil - either provided or calculated with Ksat and soil depth' @@ -5129,6 +5258,7 @@ used_by = [ 'landlab.components.lake_fill.lake_fill_barnes.LakeMapperBarnes', 'landlab.components.lateral_erosion.lateral_erosion.LateralEroder', 'landlab.components.marine_sediment_transport.simple_submarine_diffuser.SimpleSubmarineDiffuser', + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', 'landlab.components.nonlinear_diffusion.Perron_nl_diffuse.PerronNLDiffuse', 'landlab.components.normal_fault.normal_fault.NormalFault', 'landlab.components.overland_flow.generate_overland_flow_Bates.OverlandFlowBates', @@ -5175,6 +5305,7 @@ provided_by = [ 'landlab.components.lake_fill.lake_fill_barnes.LakeMapperBarnes', 'landlab.components.lateral_erosion.lateral_erosion.LateralEroder', 'landlab.components.marine_sediment_transport.simple_submarine_diffuser.SimpleSubmarineDiffuser', + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', 'landlab.components.network_sediment_transporter.network_sediment_transporter.NetworkSedimentTransporter', 'landlab.components.nonlinear_diffusion.Perron_nl_diffuse.PerronNLDiffuse', 'landlab.components.normal_fault.normal_fault.NormalFault', @@ -5233,6 +5364,7 @@ used_by = [ 'landlab.components.gravel_bedrock_eroder.gravel_bedrock_eroder.GravelBedrockEroder', 'landlab.components.gravel_river_transporter.gravel_river_transporter.GravelRiverTransporter', 'landlab.components.lateral_erosion.lateral_erosion.LateralEroder', + 'landlab.components.mass_wasting_runout.mass_wasting_runout.MassWastingRunout', 'landlab.components.space.space.Space', 'landlab.components.space.space_large_scale_eroder.SpaceLargeScaleEroder', 'landlab.components.steepness_index.channel_steepness.SteepnessFinder', @@ -6229,6 +6361,304 @@ uncategorized = [ 'landlab.grid.hex.HexModelGrid.y_of_corner', ] +[grids.IcosphereGlobalGrid] +boundary-condition = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_adjacent_nodes_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_faces', + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.closed_boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.core_cells', + 'landlab.grid.icosphere.IcosphereGlobalGrid.core_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fixed_gradient_boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fixed_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fixed_value_boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_at_core_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_has_boundary_neighbor', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_is_boundary', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_active_faces', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_active_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_core_cells', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_core_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_fixed_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_patches_present_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_patches_present_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.open_boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.set_nodata_nodes_to_closed', + 'landlab.grid.icosphere.IcosphereGlobalGrid.set_nodata_nodes_to_fixed_gradient', + 'landlab.grid.icosphere.IcosphereGlobalGrid.status_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.status_at_node', +] +connectivity = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_adjacent_nodes_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_link_dirs_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.cell_area_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.downwind_links_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_at_node_is_downwind', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_at_node_is_upwind', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_at_core_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_has_boundary_neighbor', + 'landlab.grid.icosphere.IcosphereGlobalGrid.upwind_links_at_node', +] +deprecated = [ + +] +field-add = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.add_empty', + 'landlab.grid.icosphere.IcosphereGlobalGrid.add_field', + 'landlab.grid.icosphere.IcosphereGlobalGrid.add_full', + 'landlab.grid.icosphere.IcosphereGlobalGrid.add_ones', + 'landlab.grid.icosphere.IcosphereGlobalGrid.add_zeros', + 'landlab.grid.icosphere.IcosphereGlobalGrid.delete_field', + 'landlab.grid.icosphere.IcosphereGlobalGrid.empty', + 'landlab.grid.icosphere.IcosphereGlobalGrid.new_field_location', + 'landlab.grid.icosphere.IcosphereGlobalGrid.ones', + 'landlab.grid.icosphere.IcosphereGlobalGrid.zeros', +] +field-io = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_corner', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_face', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.field_values', + 'landlab.grid.icosphere.IcosphereGlobalGrid.return_array_or_field_values', +] +gradient = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_diff_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_flux_div_at_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_flux_div_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_grad_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_grad_at_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_net_flux_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_slope_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_slope_at_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_unit_normal_at_patch', +] +info-cell = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.cell_area_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.core_cells', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_node_to_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_at_core_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_core_cells', +] +info-corner = [ + +] +info-face = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_faces', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_active_faces', +] +info-field = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.field_units', + 'landlab.grid.icosphere.IcosphereGlobalGrid.has_field', + 'landlab.grid.icosphere.IcosphereGlobalGrid.has_group', + 'landlab.grid.icosphere.IcosphereGlobalGrid.keys', + 'landlab.grid.icosphere.IcosphereGlobalGrid.size', +] +info-grid = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.axis_name', + 'landlab.grid.icosphere.IcosphereGlobalGrid.axis_units', + 'landlab.grid.icosphere.IcosphereGlobalGrid.ndim', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_axis_coordinates', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_elements', + 'landlab.grid.icosphere.IcosphereGlobalGrid.size', +] +info-link = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_link_dirs_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.angle_of_link_about_head', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_diff_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_grad_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.downwind_links_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fixed_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_at_node_is_downwind', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_at_node_is_upwind', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_downwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_downwind_node_link_mean_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_head_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_tail_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_vector_sum_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_node_links_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_mean_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_node_links_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_upwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_upwind_node_link_mean_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_downwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_max_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_min_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_upwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_active_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_fixed_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_patches_present_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.patches_present_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.resolve_values_on_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.status_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.upwind_links_at_node', +] +info-node = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_adjacent_nodes_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.active_link_dirs_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.all_node_azimuths_map', + 'landlab.grid.icosphere.IcosphereGlobalGrid.all_node_distances_map', + 'landlab.grid.icosphere.IcosphereGlobalGrid.boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_aspect_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_distances_of_nodes_to_point', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_flux_div_at_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_flux_div_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_hillshade_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_net_flux_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_slope_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.cell_area_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.closed_boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.core_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.downwind_links_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fixed_gradient_boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fixed_value_boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_at_node_is_downwind', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_at_node_is_upwind', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_downwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_downwind_node_link_mean_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_head_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_tail_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_node_links_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_mean_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_mean_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_node_links_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_node_to_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_upwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_upwind_node_link_mean_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_downwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_max_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_min_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_upwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_at_core_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_axis_coordinates', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_has_boundary_neighbor', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_is_boundary', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_core_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_patches_present_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.open_boundary_nodes', + 'landlab.grid.icosphere.IcosphereGlobalGrid.patches_present_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.set_nodata_nodes_to_closed', + 'landlab.grid.icosphere.IcosphereGlobalGrid.set_nodata_nodes_to_fixed_gradient', + 'landlab.grid.icosphere.IcosphereGlobalGrid.status_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.unit_vector_sum_xcomponent_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.unit_vector_sum_ycomponent_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.upwind_links_at_node', +] +info-patch = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_grad_at_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_slope_at_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_unit_normal_at_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_vector_sum_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_mean_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_patches_present_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.number_of_patches_present_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.patches_present_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.patches_present_at_node', +] +map = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_downwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_downwind_node_link_mean_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_head_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_tail_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_vector_sum_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_node_links_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_max_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_mean_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_mean_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_link_nodes_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_node_links_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_min_of_patch_nodes_to_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_node_to_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_upwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_upwind_node_link_mean_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_downwind_node_link_max_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_max_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_min_node_to_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_value_at_upwind_node_link_max_to_node', +] +quantity = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.all_node_azimuths_map', + 'landlab.grid.icosphere.IcosphereGlobalGrid.all_node_distances_map', + 'landlab.grid.icosphere.IcosphereGlobalGrid.angle_of_link_about_head', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_distances_of_nodes_to_point', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_axis_coordinates', + 'landlab.grid.icosphere.IcosphereGlobalGrid.unit_vector_sum_xcomponent_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.unit_vector_sum_ycomponent_at_node', +] +subset = [ + +] +surface = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_aspect_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_hillshade_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.calc_slope_at_node', +] +uncategorized = [ + 'landlab.grid.icosphere.IcosphereGlobalGrid.BAD_INDEX', + 'landlab.grid.icosphere.IcosphereGlobalGrid.BC_LINK_IS_ACTIVE', + 'landlab.grid.icosphere.IcosphereGlobalGrid.BC_LINK_IS_FIXED', + 'landlab.grid.icosphere.IcosphereGlobalGrid.BC_LINK_IS_INACTIVE', + 'landlab.grid.icosphere.IcosphereGlobalGrid.BC_NODE_IS_CLOSED', + 'landlab.grid.icosphere.IcosphereGlobalGrid.BC_NODE_IS_CORE', + 'landlab.grid.icosphere.IcosphereGlobalGrid.BC_NODE_IS_FIXED_GRADIENT', + 'landlab.grid.icosphere.IcosphereGlobalGrid.BC_NODE_IS_FIXED_VALUE', + 'landlab.grid.icosphere.IcosphereGlobalGrid.BC_NODE_IS_LOOPED', + 'landlab.grid.icosphere.IcosphereGlobalGrid.VALID_LOCATIONS', + 'landlab.grid.icosphere.IcosphereGlobalGrid.area_of_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.as_dataarray', + 'landlab.grid.icosphere.IcosphereGlobalGrid.as_dataset', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_corner', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_face', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_grid', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_layer', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.at_patch', + 'landlab.grid.icosphere.IcosphereGlobalGrid.cell_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.corners_at_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.default_group', + 'landlab.grid.icosphere.IcosphereGlobalGrid.event_layers', + 'landlab.grid.icosphere.IcosphereGlobalGrid.face_at_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.faces_at_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fields', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fixed_gradient_boundary_node_anchor_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.fixed_gradient_boundary_node_fixed_link', + 'landlab.grid.icosphere.IcosphereGlobalGrid.from_dict', + 'landlab.grid.icosphere.IcosphereGlobalGrid.from_file', + 'landlab.grid.icosphere.IcosphereGlobalGrid.groups', + 'landlab.grid.icosphere.IcosphereGlobalGrid.imshow', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_at_face', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_status_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_with_angle', + 'landlab.grid.icosphere.IcosphereGlobalGrid.link_with_node_status', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_link_vector_components_to_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_node_to_link_lax_wendroff', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_node_to_link_linear_upwind', + 'landlab.grid.icosphere.IcosphereGlobalGrid.map_vectors_to_links', + 'landlab.grid.icosphere.IcosphereGlobalGrid.material_layers', + 'landlab.grid.icosphere.IcosphereGlobalGrid.node_at_cell', + 'landlab.grid.icosphere.IcosphereGlobalGrid.patches_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.phi_of_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.r_of_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.reset_status_at_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.theta_of_node', + 'landlab.grid.icosphere.IcosphereGlobalGrid.xy_of_reference', +] + [grids.ModelGrid] boundary-condition = [ 'landlab.grid.base.ModelGrid.active_adjacent_nodes_at_node', @@ -6516,6 +6946,196 @@ uncategorized = [ 'landlab.grid.base.ModelGrid.xy_of_reference', ] +[grids.NetworkModelGrid] +boundary-condition = [ + 'landlab.grid.network.NetworkModelGrid.active_links', + 'landlab.grid.network.NetworkModelGrid.perimeter_nodes', + 'landlab.grid.network.NetworkModelGrid.status_at_link', + 'landlab.grid.network.NetworkModelGrid.status_at_node', +] +connectivity = [ + +] +deprecated = [ + +] +field-add = [ + 'landlab.grid.network.NetworkModelGrid.add_empty', + 'landlab.grid.network.NetworkModelGrid.add_field', + 'landlab.grid.network.NetworkModelGrid.add_full', + 'landlab.grid.network.NetworkModelGrid.add_ones', + 'landlab.grid.network.NetworkModelGrid.add_zeros', + 'landlab.grid.network.NetworkModelGrid.delete_field', + 'landlab.grid.network.NetworkModelGrid.empty', + 'landlab.grid.network.NetworkModelGrid.new_field_location', + 'landlab.grid.network.NetworkModelGrid.ones', + 'landlab.grid.network.NetworkModelGrid.zeros', +] +field-io = [ + 'landlab.grid.network.NetworkModelGrid.at_cell', + 'landlab.grid.network.NetworkModelGrid.at_corner', + 'landlab.grid.network.NetworkModelGrid.at_face', + 'landlab.grid.network.NetworkModelGrid.at_link', + 'landlab.grid.network.NetworkModelGrid.at_node', + 'landlab.grid.network.NetworkModelGrid.at_patch', + 'landlab.grid.network.NetworkModelGrid.field_values', + 'landlab.grid.network.NetworkModelGrid.return_array_or_field_values', +] +gradient = [ + 'landlab.grid.network.NetworkModelGrid.calc_grad_at_link', +] +info-cell = [ + +] +info-corner = [ + +] +info-face = [ + +] +info-field = [ + 'landlab.grid.network.NetworkModelGrid.field_units', + 'landlab.grid.network.NetworkModelGrid.has_field', + 'landlab.grid.network.NetworkModelGrid.has_group', + 'landlab.grid.network.NetworkModelGrid.keys', + 'landlab.grid.network.NetworkModelGrid.size', +] +info-grid = [ + 'landlab.grid.network.NetworkModelGrid.axis_name', + 'landlab.grid.network.NetworkModelGrid.axis_units', + 'landlab.grid.network.NetworkModelGrid.size', +] +info-link = [ + 'landlab.grid.network.NetworkModelGrid.angle_of_link', + 'landlab.grid.network.NetworkModelGrid.calc_grad_at_link', + 'landlab.grid.network.NetworkModelGrid.length_of_link', + 'landlab.grid.network.NetworkModelGrid.links_at_node', + 'landlab.grid.network.NetworkModelGrid.map_downwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_downwind_node_link_mean_to_node', + 'landlab.grid.network.NetworkModelGrid.map_link_head_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_link_tail_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_max_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_max_of_node_links_to_node', + 'landlab.grid.network.NetworkModelGrid.map_mean_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_min_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_min_of_node_links_to_node', + 'landlab.grid.network.NetworkModelGrid.map_upwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_upwind_node_link_mean_to_node', + 'landlab.grid.network.NetworkModelGrid.map_value_at_downwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_value_at_max_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_value_at_min_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_value_at_upwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.midpoint_of_link', + 'landlab.grid.network.NetworkModelGrid.status_at_link', + 'landlab.grid.network.NetworkModelGrid.x_of_link', + 'landlab.grid.network.NetworkModelGrid.y_of_link', +] +info-node = [ + 'landlab.grid.network.NetworkModelGrid.active_links', + 'landlab.grid.network.NetworkModelGrid.adjacent_nodes_at_node', + 'landlab.grid.network.NetworkModelGrid.map_downwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_downwind_node_link_mean_to_node', + 'landlab.grid.network.NetworkModelGrid.map_link_head_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_link_tail_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_max_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_max_of_node_links_to_node', + 'landlab.grid.network.NetworkModelGrid.map_mean_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_min_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_min_of_node_links_to_node', + 'landlab.grid.network.NetworkModelGrid.map_upwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_upwind_node_link_mean_to_node', + 'landlab.grid.network.NetworkModelGrid.map_value_at_downwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_value_at_max_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_value_at_min_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_value_at_upwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.node_at_link_head', + 'landlab.grid.network.NetworkModelGrid.node_at_link_tail', + 'landlab.grid.network.NetworkModelGrid.nodes', + 'landlab.grid.network.NetworkModelGrid.nodes_at_link', + 'landlab.grid.network.NetworkModelGrid.number_of_nodes', + 'landlab.grid.network.NetworkModelGrid.perimeter_nodes', + 'landlab.grid.network.NetworkModelGrid.status_at_node', + 'landlab.grid.network.NetworkModelGrid.x_of_node', + 'landlab.grid.network.NetworkModelGrid.xy_of_node', + 'landlab.grid.network.NetworkModelGrid.y_of_node', +] +info-patch = [ + +] +map = [ + 'landlab.grid.network.NetworkModelGrid.map_downwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_downwind_node_link_mean_to_node', + 'landlab.grid.network.NetworkModelGrid.map_link_head_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_link_tail_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_max_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_max_of_node_links_to_node', + 'landlab.grid.network.NetworkModelGrid.map_mean_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_min_of_link_nodes_to_link', + 'landlab.grid.network.NetworkModelGrid.map_min_of_node_links_to_node', + 'landlab.grid.network.NetworkModelGrid.map_upwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_upwind_node_link_mean_to_node', + 'landlab.grid.network.NetworkModelGrid.map_value_at_downwind_node_link_max_to_node', + 'landlab.grid.network.NetworkModelGrid.map_value_at_max_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_value_at_min_node_to_link', + 'landlab.grid.network.NetworkModelGrid.map_value_at_upwind_node_link_max_to_node', +] +quantity = [ + 'landlab.grid.network.NetworkModelGrid.x_of_link', + 'landlab.grid.network.NetworkModelGrid.y_of_link', +] +subset = [ + 'landlab.grid.network.NetworkModelGrid.active_links', + 'landlab.grid.network.NetworkModelGrid.perimeter_nodes', +] +surface = [ + +] +uncategorized = [ + 'landlab.grid.network.NetworkModelGrid.BAD_INDEX', + 'landlab.grid.network.NetworkModelGrid.BC_LINK_IS_ACTIVE', + 'landlab.grid.network.NetworkModelGrid.BC_LINK_IS_FIXED', + 'landlab.grid.network.NetworkModelGrid.BC_LINK_IS_INACTIVE', + 'landlab.grid.network.NetworkModelGrid.BC_NODE_IS_CLOSED', + 'landlab.grid.network.NetworkModelGrid.BC_NODE_IS_CORE', + 'landlab.grid.network.NetworkModelGrid.BC_NODE_IS_FIXED_GRADIENT', + 'landlab.grid.network.NetworkModelGrid.BC_NODE_IS_FIXED_VALUE', + 'landlab.grid.network.NetworkModelGrid.BC_NODE_IS_LOOPED', + 'landlab.grid.network.NetworkModelGrid.VALID_LOCATIONS', + 'landlab.grid.network.NetworkModelGrid.adjacent_links_at_link', + 'landlab.grid.network.NetworkModelGrid.at_grid', + 'landlab.grid.network.NetworkModelGrid.at_link', + 'landlab.grid.network.NetworkModelGrid.at_node', + 'landlab.grid.network.NetworkModelGrid.default_group', + 'landlab.grid.network.NetworkModelGrid.ds', + 'landlab.grid.network.NetworkModelGrid.freeze', + 'landlab.grid.network.NetworkModelGrid.from_dict', + 'landlab.grid.network.NetworkModelGrid.from_file', + 'landlab.grid.network.NetworkModelGrid.from_netcdf', + 'landlab.grid.network.NetworkModelGrid.frozen', + 'landlab.grid.network.NetworkModelGrid.groups', + 'landlab.grid.network.NetworkModelGrid.link_dirs_at_node', + 'landlab.grid.network.NetworkModelGrid.load', + 'landlab.grid.network.NetworkModelGrid.map_link_vector_components_to_node', + 'landlab.grid.network.NetworkModelGrid.map_node_to_link_lax_wendroff', + 'landlab.grid.network.NetworkModelGrid.map_node_to_link_linear_upwind', + 'landlab.grid.network.NetworkModelGrid.map_vectors_to_links', + 'landlab.grid.network.NetworkModelGrid.ndim', + 'landlab.grid.network.NetworkModelGrid.node_x', + 'landlab.grid.network.NetworkModelGrid.node_y', + 'landlab.grid.network.NetworkModelGrid.number_of_links', + 'landlab.grid.network.NetworkModelGrid.reset_status_at_node', + 'landlab.grid.network.NetworkModelGrid.sort', + 'landlab.grid.network.NetworkModelGrid.thaw', + 'landlab.grid.network.NetworkModelGrid.thawed', + 'landlab.grid.network.NetworkModelGrid.to_dict', + 'landlab.grid.network.NetworkModelGrid.to_json', + 'landlab.grid.network.NetworkModelGrid.to_netcdf', + 'landlab.grid.network.NetworkModelGrid.unit_vector_at_link', + 'landlab.grid.network.NetworkModelGrid.unit_vector_at_node', + 'landlab.grid.network.NetworkModelGrid.xy_of_link', + 'landlab.grid.network.NetworkModelGrid.xy_of_reference', +] + [grids.RadialModelGrid] boundary-condition = [ 'landlab.grid.radial.RadialModelGrid.active_adjacent_nodes_at_node', @@ -7351,6 +7971,7 @@ uncategorized = [ 'landlab.grid.raster.RasterModelGrid.at_node', 'landlab.grid.raster.RasterModelGrid.at_patch', 'landlab.grid.raster.RasterModelGrid.boundary_corners', + 'landlab.grid.raster.RasterModelGrid.calc_net_face_flux_at_cell', 'landlab.grid.raster.RasterModelGrid.cell_at_node', 'landlab.grid.raster.RasterModelGrid.cells_at_corner', 'landlab.grid.raster.RasterModelGrid.cells_at_face', diff --git a/docs/requirements.in b/docs/requirements.in index 28c76ea171..47fa7f647d 100644 --- a/docs/requirements.in +++ b/docs/requirements.in @@ -1,4 +1,9 @@ furo +ipython +myst-parser +nbsphinx +numpy +pandoc sphinx-copybutton sphinx-inline-tabs sphinx-jinja diff --git a/docs/source/_templates/module.rst_t b/docs/source/_templates/module.rst_t new file mode 100644 index 0000000000..3878eba033 --- /dev/null +++ b/docs/source/_templates/module.rst_t @@ -0,0 +1,8 @@ +{%- if show_headings %} +{{- basename | e | heading }} + +{% endif -%} +.. automodule:: {{ qualname }} +{%- for option in automodule_options %} + :{{ option }}: +{%- endfor %} diff --git a/docs/source/_templates/package.rst_t b/docs/source/_templates/package.rst_t new file mode 100644 index 0000000000..648f436986 --- /dev/null +++ b/docs/source/_templates/package.rst_t @@ -0,0 +1,57 @@ +{%- macro automodule(modname, options) -%} +.. automodule:: {{ modname }} +{%- for option in options %} + :{{ option }}: +{%- endfor %} +{%- endmacro %} + +{%- macro toctree(docnames) -%} +.. toctree:: + :maxdepth: {{ maxdepth }} +{% for docname in docnames %} + {{ docname.split('.')[-1] }} <{{ docname }}> +{%- endfor %} +{%- endmacro %} + +{%- if is_namespace %} +{{- [pkgname, "namespace"] | join(" ") | e | heading }} +{% else %} +{{- pkgname | e | heading }} +{% endif %} + +{%- if is_namespace %} +.. py:module:: {{ pkgname }} +{% endif %} + +{%- if modulefirst and not is_namespace %} +{{ automodule(pkgname, automodule_options) }} +{% endif %} + +{%- if subpackages %} +Subpackages +----------- + +{{ toctree(subpackages) }} +{% endif %} + +{%- if submodules %} +Submodules +---------- +{% if separatemodules %} +{{ toctree(submodules) }} +{% else %} +{%- for submodule in submodules %} +{% if show_headings %} +{{- [submodule, "module"] | join(" ") | e | heading(2) }} +{% endif %} +{{ automodule(submodule, automodule_options) }} +{% endfor %} +{%- endif %} +{%- endif %} + +{%- if not modulefirst and not is_namespace %} +Module contents +--------------- + +{{ automodule(pkgname, automodule_options) }} +{% endif %} diff --git a/docs/source/about/authors.md b/docs/source/about/authors.md new file mode 100644 index 0000000000..ce8754bd8f --- /dev/null +++ b/docs/source/about/authors.md @@ -0,0 +1,2 @@ +```{include} ../../../AUTHORS.md +``` diff --git a/docs/source/about/changes.md b/docs/source/about/changes.md new file mode 100644 index 0000000000..94099702ea --- /dev/null +++ b/docs/source/about/changes.md @@ -0,0 +1,2 @@ +```{include} ../../../CHANGES.md +``` diff --git a/docs/source/about/citing.md b/docs/source/about/citing.md new file mode 100644 index 0000000000..41d86f975a --- /dev/null +++ b/docs/source/about/citing.md @@ -0,0 +1,111 @@ +(citing)= + +# Citing Landlab + +If you use any portion of *Landlab*, please cite the following papers: + +::::{tab-set} +:::{tab-item} APA + +Hobley, D. E. J., Adams, +J. M., Nudurupati, S. S., Hutton, E. W. H., Gasparini, N. M., Istanbulluoglu, +E. and Tucker, G. E., 2017, Creative computing with Landlab: an open-source +toolkit for building, coupling, and exploring two-dimensional numerical models +of Earth-surface dynamics, Earth Surface Dynamics, 5(1), p 21-46, +[doi:10.5194/esurf-5-21-2017](https://www.earth-surf-dynam.net/5/21/2017/). + +Barnhart, K. R., +Hutton, E. W. H., Tucker, G. E., Gasparini, N. M., Istanbulluoglu, E., +Hobley, D. E. J., Lyons, N. J., Mouchene, M., Nudurupati, S. S., Adams, J. M., +and Bandaragoda, C., 2020, Short communication: Landlab v2.0: A software package for +Earth surface dynamics, Earth Surf. Dynam., 8(2), p 379-397, +[doi:10.5194/esurf-8-379-2020](https://doi.org/10.5194/esurf-8-379-2020). + +Hutton, E., Barnhart, K., Hobley, D., Tucker, G., Nudurupati, S., Adams, +J., Gasparini, N., Shobe, C., Strauch, R., Knuth, J., Mouchene, M., Lyons, +N., Litwin, D., Glade, R., Giuseppecipolla95, Manaster, A., Abby, L., Thyng, K., +& Rengers, F. (2020). landlab [Computer software], +[doi:10.5281/zenodo.595872](https://doi.org/10.5281/zenodo.595872). +::: + +:::{tab-item} BibTeX +```bibtex +@article{hobley2017creative, + title={ + Creative computing with Landlab: an open-source toolkit for building, + coupling, and exploring two-dimensional numerical models of + Earth-surface dynamics + }, + author={ + Hobley, Daniel EJ and Adams, Jordan M and Nudurupati, Sai Siddhartha and + Hutton, Eric WH and Gasparini, Nicole M and Istanbulluoglu, Erkan and + Tucker, Gregory E + }, + journal={Earth Surface Dynamics}, + volume={5}, + number={1}, + pages={21--46}, + year={2017}, + publisher={Copernicus GmbH}, + url={https://esurf.copernicus.org/articles/5/21/2017/}, + doi={10.5194/esurf-5-21-2017} +} + +@article{barnhart2020landlab, + title={Landlab v2. 0: a software package for Earth surface dynamics}, + author={ + Barnhart, Katherine R and Hutton, Eric WH and Tucker, Gregory E and + Gasparini, Nicole M and Istanbulluoglu, Erkan and Hobley, Daniel EJ and + Lyons, Nathan J and Mouchene, Margaux and Nudurupati, Sai Siddhartha and + Adams, Jordan M and others + }, + journal={Earth Surface Dynamics}, + volume={8}, + number={2}, + pages={379--397}, + year={2020}, + publisher={Copernicus GmbH}, + url={https://esurf.copernicus.org/articles/8/379/2020/}, + doi={10.5194/esurf-8-379-2020} +} + +@software{Hutton_landlab_2020, + author={ + Hutton, Eric and Barnhart, Katy and Hobley, Dan and Tucker, Greg + and Nudurupati, Sai and Adams, Jordan and Gasparini, Nicole + and Shobe, Charlie and Strauch, Ronda and Knuth, Jenny + and Mouchene, Margaux and Lyons, Nathan and Litwin, David + and Glade, Rachel and {Giuseppecipolla95} and Manaster, Amanda + and Abby, Langston and Thyng, Kristen and Rengers, Francis + }, + doi={10.5281/zenodo.595872}, + license={MIT}, + month={4}, + title={{landlab}}, + url={https://github.com/landlab/landlab}, + year={2020} +} +::: +:::: + +## Citing Landlab Components + +If you are working with Landlab components and utilities, many of them have +their own publication. Please cite it to acknowledge the component authors. + +Citation information for each component can be found as follows: + +- Where relevant, software citation and general references, are listed in the + Component API documentation under the References section. +- Software citations are included in component metadata. We have created a + tool called the "Citation Registry" that creates a .bib file for software + citations used in an application. See example usage below. + +### Landlab Citation Registry + +```{eval-rst} +.. automodule:: landlab._registry + :members: + :undoc-members: + :show-inheritance: +``` diff --git a/docs/source/about/contact_us.md b/docs/source/about/contact_us.md new file mode 100644 index 0000000000..a8269b5896 --- /dev/null +++ b/docs/source/about/contact_us.md @@ -0,0 +1,8 @@ +(contact)= + +# Contact + +```{include} ../../../README.md +:start-after: "" +:end-before: "" +``` diff --git a/docs/source/about/funding.md b/docs/source/about/funding.md new file mode 100644 index 0000000000..cad851eb93 --- /dev/null +++ b/docs/source/about/funding.md @@ -0,0 +1,2 @@ +```{include} ../../../FUNDING.md +``` diff --git a/docs/source/about/license.md b/docs/source/about/license.md new file mode 100644 index 0000000000..71d20fc6ed --- /dev/null +++ b/docs/source/about/license.md @@ -0,0 +1,2 @@ +```{include} ../../../LICENSE.md +``` diff --git a/docs/source/about/usedby.md b/docs/source/about/usedby.md new file mode 100644 index 0000000000..32ae2dcd20 --- /dev/null +++ b/docs/source/about/usedby.md @@ -0,0 +1,10 @@ +(papers)= + +:::{note} +If you are using *Landlab* but don't see a reference to your work +in our list, please let us know either through an issue or as a +pull request (with your reference added to our `USEDBY.md` file). +::: + +```{include} ../../../USEDBY.md +``` diff --git a/docs/source/authors.rst b/docs/source/authors.rst deleted file mode 100644 index 7739272f9d..0000000000 --- a/docs/source/authors.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../AUTHORS.rst diff --git a/docs/source/changes.rst b/docs/source/changes.rst deleted file mode 100644 index d76c92b6f8..0000000000 --- a/docs/source/changes.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../CHANGES.rst diff --git a/docs/source/citation_registry.rst b/docs/source/citation_registry.rst deleted file mode 100644 index 7bfe8fb368..0000000000 --- a/docs/source/citation_registry.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. _cite_as: - -:orphan: - -Landlab Citation Registry -------------------------- - -.. automodule:: landlab._registry - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/citing.rst b/docs/source/citing.rst deleted file mode 100644 index 2e6a09a4d5..0000000000 --- a/docs/source/citing.rst +++ /dev/null @@ -1,97 +0,0 @@ -Citing Landlab -============== - -.. start-citing-landlab - -If you use any portion of Landlab, please cite the following papers: - -.. tab:: APA - - `Hobley, D. E. J. `__, Adams, - J. M., Nudurupati, S. S., Hutton, E. W. H., Gasparini, N. M., Istanbulluoglu, - E. and Tucker, G. E., 2017, Creative computing with Landlab: an open-source - toolkit for building, coupling, and exploring two-dimensional numerical models - of Earth-surface dynamics, Earth Surface Dynamics, 5(1), p 21-46, - 10.5194/esurf-5-21-2017. - - `Barnhart, K. R. `__, - Hutton, E. W. H., Tucker, G. E., Gasparini, N. M., Istanbulluoglu, E., - Hobley, D. E. J., Lyons, N. J., Mouchene, M., Nudurupati, S. S., Adams, J. M., - and Bandaragoda, C., 2020, Short communication: Landlab v2.0: A software package for - Earth surface dynamics, Earth Surf. Dynam., 8(2), p 379-397, - doi:10.5194/esurf-8-379-2020. - - Hutton, E., Barnhart, K., Hobley, D., Tucker, G., Nudurupati, S., Adams, J., Gasparini, N., Shobe, C., Strauch, R., Knuth, J., Mouchene, M., Lyons, N., Litwin, D., Glade, R., Giuseppecipolla95, Manaster, A., Abby, L., Thyng, K., & Rengers, F. (2020). landlab [Computer software]. https://doi.org/10.5281/zenodo.595872 - -.. tab:: BibTeX - - :: - - @article{hobley2017creative, - title={ - Creative computing with Landlab: an open-source toolkit for building, - coupling, and exploring two-dimensional numerical models of - Earth-surface dynamics - }, - author={ - Hobley, Daniel EJ and Adams, Jordan M and Nudurupati, Sai Siddhartha and - Hutton, Eric WH and Gasparini, Nicole M and Istanbulluoglu, Erkan and - Tucker, Gregory E - }, - journal={Earth Surface Dynamics}, - volume={5}, - number={1}, - pages={21--46}, - year={2017}, - publisher={Copernicus GmbH}, - url={https://esurf.copernicus.org/articles/5/21/2017/}, - doi={10.5194/esurf-5-21-2017} - } - - @article{barnhart2020landlab, - title={Landlab v2. 0: a software package for Earth surface dynamics}, - author={ - Barnhart, Katherine R and Hutton, Eric WH and Tucker, Gregory E and - Gasparini, Nicole M and Istanbulluoglu, Erkan and Hobley, Daniel EJ and - Lyons, Nathan J and Mouchene, Margaux and Nudurupati, Sai Siddhartha and - Adams, Jordan M and others - }, - journal={Earth Surface Dynamics}, - volume={8}, - number={2}, - pages={379--397}, - year={2020}, - publisher={Copernicus GmbH} - url = {https://esurf.copernicus.org/articles/8/379/2020/}, - doi = {10.5194/esurf-8-379-2020} - } - - @software{Hutton_landlab_2020, - author = {Hutton, Eric and Barnhart, Katy and Hobley, Dan and Tucker, Greg and Nudurupati, Sai and Adams, Jordan and Gasparini, Nicole and Shobe, Charlie and Strauch, Ronda and Knuth, Jenny and Mouchene, Margaux and Lyons, Nathan and Litwin, David and Glade, Rachel and {Giuseppecipolla95} and Manaster, Amanda and Abby, Langston and Thyng, Kristen and Rengers, Francis}, - doi = {10.5281/zenodo.595872}, - license = {MIT}, - month = {4}, - title = {{landlab}}, - url = {https://github.com/landlab/landlab}, - year = {2020} - } - -.. end-citing-landlab - -Citing Landlab Components -------------------------- - -.. start-citing-components - -If you are working with Landlab components and utilities, many of them have -their own publication. Please cite it to acknowledge the component authors. - -Citation information for each component can be found as follows: - -- Where relevant, software citation and general references, are listed in the - Component API documentation under the References section. -- Software citations are included in component metadata. We have created a - tool called the "Citation Registry" which creates a .bib file for software - citations used in an application. See example usage :ref:`here `. - -.. end-citing-components diff --git a/docs/source/conf.py b/docs/source/conf.py index d785fcdda7..f05b4a93ca 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,41 +1,35 @@ -# -# landlab documentation build configuration file, created by -# sphinx-quickstart on Tue Apr 23 17:33:31 2013. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - import os import pathlib +import re import sys from datetime import date +import packaging import tomli -import landlab -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), -# os.pardir))) -sys.path.insert(0, os.path.abspath("../..")) -docs_dir = os.path.dirname(__file__) +def get_version_from_file(path): + with open(path) as fp: + match = re.search(r'__version__\s*=\s*[\'"]([^\'"]+)[\'"]', fp.read()) + if match: + version = match.group(1) + else: + raise ValueError(f"version string not found ({path})") + return packaging.version.Version(version) -# -- General configuration ----------------------------------------------------- +src_dir = os.path.abspath( + os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, "src") +) +sys.path.insert(0, src_dir) +docs_dir = pathlib.Path(__file__).parent +version_file = os.path.join(src_dir, "landlab", "_version.py") -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' +# -- General configuration ----------------------------------------------------- -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ + "myst_parser", + "nbsphinx", "sphinx.ext.autodoc", "sphinx.ext.intersphinx", "sphinx.ext.viewcode", @@ -72,25 +66,16 @@ ] linkcheck_retries = 5 -# The master toctree document. master_doc = "index" -# General information about the project. project = "landlab" copyright = str(date.today().year) + ", The Landlab Team" -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = landlab.__version__ -# The full version, including alpha/beta/rc tags. -release = landlab.__version__ +v = get_version_from_file(version_file) +version = f"{v.major}.{v.minor}" +release = v.public -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = None +language = "en" # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: @@ -100,7 +85,7 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ["_build"] +exclude_patterns = ["_build", "**/*.so", "**/*.pyd", "**/*.pyx", "**/*.c", "**/*.cpp"] # The reST default role (used for this markup: `text`) to use for all documents. # default_role = None @@ -110,7 +95,6 @@ # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -# add_module_names = True add_module_names = False # If true, sectionauthor and moduleauthor directives will be shown in the @@ -122,16 +106,11 @@ pygments_dark_style = "monokai" # A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] +modindex_common_prefix = ["landlab."] # If true, keep warnings as "system message" paragraphs in the built documents. # keep_warnings = False -# selects what content will be inserted into the main body of an autoclass -# directive: 'class'(default), 'both', or 'init' -autoclass_content = "both" - - # The default highlight language highlight_language = "none" @@ -148,7 +127,7 @@ # further. For a list of options available for each theme, see the # documentation. html_theme_options = { - "announcement": "Landlab 2.7 released!", + "announcement": "Landlab 2.9 released!", "source_repository": "https://github.com/landlab/landlab/", "source_branch": "master", "source_directory": "docs/source", @@ -158,9 +137,22 @@ "name": "power", "url": "https://csdms.colorado.edu", "html": """ - - Powered by CSDMS - """, # noqa: B950 + + + + Powered by CSDMS + """, "class": "", }, ], @@ -176,10 +168,6 @@ # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = "images/landlab_logo.jpg" - # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. @@ -237,144 +225,11 @@ htmlhelp_basename = "landlabdoc" -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. - # 'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ("index", "landlab.tex", "landlab Documentation", "Author", "manual"), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [("index", "landlab", "landlab Documentation", ["Author"], 1)] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ( - "index", - "landlab", - "landlab Documentation", - "Author", - "landlab", - "One line description of project.", - "Miscellaneous", - ), -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - - -# -- Options for Epub output --------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = "landlab" -epub_author = "Author" -epub_publisher = "Author" -epub_copyright = "2013, Author" - -# The language of the text. It defaults to the language option -# or en if the language is not set. -# epub_language = '' - -# The scheme of the identifier. Typical schemes are ISBN or URL. -# epub_scheme = '' - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -# epub_identifier = '' - -# A unique identification for the text. -# epub_uid = '' - -# A tuple containing the cover image and cover page html template filenames. -# epub_cover = () - -# A sequence of (type, uri, title) tuples for the guide element of content.opf. -# epub_guide = () - -# HTML files that should be inserted before the pages created by sphinx. -# The format is a list of tuples containing the path and title. -# epub_pre_files = [] - -# HTML files shat should be inserted after the pages created by sphinx. -# The format is a list of tuples containing the path and title. -# epub_post_files = [] - -# A list of files that should not be packed into the epub file. -# epub_exclude_files = [] - -# The depth of the table of contents in toc.ncx. -# epub_tocdepth = 3 - -# Allow duplicate toc entries. -# epub_tocdup = True - -# Fix unsupported image types using the PIL. -# epub_fix_images = False - -# Scale large images. -# epub_max_image_width = 0 - -# If 'no', URL addresses will not be shown. -# epub_show_urls = 'inline' - -# If false, no index is generated. -# epub_use_index = True - todo_include_todos = True # latex_elements = dict(preamble='\\usepackage{amsmath}') +# -- Options for napoleon extension -------------------------------------------- + napoleon_numpy_docstring = True napoleon_google_docstring = False napoleon_include_init_with_doc = True @@ -382,7 +237,8 @@ # -- Options for towncrier_draft extension -------------------------------------------- -towncrier_draft_autoversion_mode = "draft" # or: 'sphinx-release', 'sphinx-version' +# or: 'sphinx-release', 'sphinx-version' +towncrier_draft_autoversion_mode = "sphinx-release" towncrier_draft_include_empty = True towncrier_draft_working_directory = pathlib.Path(docs_dir).parent.parent @@ -394,6 +250,7 @@ "numpy": ("https://numpy.org/doc/stable/", None), "scipy": ("https://docs.scipy.org/doc/scipy/", None), "xarray": ("https://docs.xarray.dev/en/stable/", None), + "matplotlib": ("https://matplotlib.org/stable/", None), } with open("../index.toml", "rb") as fp: @@ -402,4 +259,75 @@ jinja_contexts = {"llcats": cats} -autodoc_mock_imports = ["richdem"] +# -- Options for autodoc + +# selects what content will be inserted into the main body of an autoclass +# directive: 'class'(default), 'both', or 'init' +autoclass_content = "both" +autodoc_typehints = "description" +autodoc_class_signature = "separated" + +with open(os.path.join(src_dir, "../cython-files.txt")) as fp: + cython_files = {fname.strip() for fname in fp.readlines()} + +autodoc_mock_imports = [ + "richdem", + "bmipy", + "importlib-resources", + "matplotlib", + "netcdf4", + "pandas", + "pyshp", + "pyyaml", + "rich-click", + "scipy", + "statsmodels", + "xarray", + "shapefile", + "mpl_toolkits", + "rich_click", + "pylab", +] + [path[4:-4].replace("/", ".") for path in cython_files] + +autodoc_default_options = { + "maxdepth": 2, + "members": True, + "undoc-members": True, + "show-inheritance": True, + "inherited-members": "int", + "ignore-module-all": True, # Ignore __all__ directives in modules +} + +nbsphinx_execute = "never" +nbsphinx_thumbnails = ( + {} + if os.getenv("GITHUB_ACTIONS") + else { + "teaching/**/*": "_static/favicon.ico", + "teaching/*": "_static/favicon.ico", + "tutorials/**/*": "_static/favicon.ico", + "tutorials/*": "_static/favicon.ico", + } +) + +# This is processed by Jinja2 and inserted before each notebook +nbsphinx_prolog = """ +{% set docname = 'notebooks/' + env.doc2path(env.docname, base=None) %} + +.. note:: + + This page was generated from a jupyter notebook_. + +.. _notebook: https://github.com/landlab/landlab/blob/{{ env.config.release|e }}/{{ docname|e }} +""" + +nbsphinx_epilog = """ +---- + +Generated by nbsphinx_ from a Jupyter_ notebook. + +.. _nbsphinx: https://nbsphinx.readthedocs.io/ +.. _Jupyter: https://jupyter.org/ +""" + +myst_enable_extensions = ["colon_fence", "deflist"] diff --git a/docs/source/contact_us.rst b/docs/source/contact_us.rst deleted file mode 100644 index ac41de38cb..0000000000 --- a/docs/source/contact_us.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _contact: - -Contact -======= - -.. include:: ../../README.rst - :start-after: .. start-contact - :end-before: .. end-contact diff --git a/docs/source/development/contribution/desired_contributions.rst b/docs/source/development/contribution/desired_contributions.md similarity index 52% rename from docs/source/development/contribution/desired_contributions.rst rename to docs/source/development/contribution/desired_contributions.md index c0ef9d2008..868b79f66f 100644 --- a/docs/source/development/contribution/desired_contributions.rst +++ b/docs/source/development/contribution/desired_contributions.md @@ -1,8 +1,6 @@ -.. _desired_contributions: +(desired-contributions)= -================================ -Desired Contributions to Landlab -================================ +# Desired Contributions to Landlab When fully active, this page will list desired contributions to Landlab. It will also include a link to issues the "good_first_issue" tag diff --git a/docs/source/development/contribution/develop_a_component.rst b/docs/source/development/contribution/develop_a_component.md similarity index 67% rename from docs/source/development/contribution/develop_a_component.rst rename to docs/source/development/contribution/develop_a_component.md index 16145d8729..d5c9f52f59 100644 --- a/docs/source/development/contribution/develop_a_component.rst +++ b/docs/source/development/contribution/develop_a_component.md @@ -1,8 +1,6 @@ -.. _landlab_component_dev_page: +(landlab-component-dev-page)= -===================================== -Develop your own component or utility -===================================== +# Develop your own component or utility Landlab grows and improves thanks to user contributions. We encourage you to develop your own component or utility! @@ -16,17 +14,17 @@ the steps are the same for developing a utility. Unlike a component, a utility can just be a function. But like a component, we expect contributed utilities to follow the landlab standard practices outlined in our documentation. -Once you have installed Landlab (:ref:`developer install `) -and :ref:`created your own branch `, you can start +Once you have installed Landlab ({ref}`developer install `) +and {ref}`created your own branch `, you can start writing a Python script for your component. -See `this tutorial `_ +See [this tutorial](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/making_components/making_components.ipynb) for instructions on the structure and content of your component code. See also -`this example pull request `_, which -shows you the common set of files (such as ``__init__.py`` and documentation +[this example pull request](https://github.com/landlab/landlab/pull/678), which +shows you the common set of files (such as `__init__.py` and documentation files) that get added or modified when a component is added to Landlab. -See the :ref:`Standard Naming conventions ` for good practice +See the {ref}`Standard Naming conventions ` for good practice on parameters and variables naming. The following pages describe the software development practices that Landlab @@ -34,71 +32,72 @@ strives to follow. Our goal is to make the capabilities of Landlab well-documented to support new users while not enforcing substantial burdens on community contributors. If you have any questions about the process after you have finished reading the documentation, consider making an -`Issue `_ to ask the +[Issue](https://github.com/landlab/landlab/issues/) to ask the development team for help. - We recommend that you review the Landlab development practices: -.. toctree:: - :maxdepth: 2 +```{toctree} +:maxdepth: 2 + +../practices/index +``` - ../practices/index +## Files structure -Files structure ---------------- For your new component, you should create a folder in -``landlab/landlab/components`` caled ```` that contains: +`landlab/landlab/components` called `` that contains: - Your Python script `my_component_name.py` -- `_init_.py` which is structured as - .. code-block:: python +- `_init_.py` which is structured as - from .my_component_name import MyComponent + ```python + from .my_component_name import MyComponent - __all__ = [ - "MyComponent", - ] + __all__ = [ + "MyComponent", + ] + ``` Where - - `'.my_component_name'` is the name of the python script. - - `'MyComponent'` is as defined in the _name header of your python script + > - `'.my_component_name'` is the name of the python script. + > - `'MyComponent'` is as defined in the \_name header of your python script - See `this tutorial `_ + See [this tutorial](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/making_components/making_components.ipynb) on making a component for additional document requirements. In addition there are a number of recommendations and requirements for - Landlab components :ref:`summarized here `. + Landlab components {ref}`summarized here `. -- a folder in the ``landlab/tests/components/`` directory containing +- a folder in the `landlab/tests/components/` directory containing unit tests. The unit tests are run every time changes are pushed to the Landlab repository. They should go through every line of your code (e.g. test every possible scenario in if/else loops, exceptions, etc.). See - `the tutorial on making a component `_ + [the tutorial on making a component](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/making_components/making_components.ipynb) for instructions about making docstring tests and the next section for more information about making the unit tests. -- a document in ``docs/source/reference/components`` called ``my_component_name.rst``. +- a document in `docs/source/reference/components` called `my_component_name.rst`. Look at other documents in that folder to get a sense of the typical format. This document is what will put your component's documentation on the ReadTheDocs page. See more below. -Once everything is working, you can :ref:`create a pull request ` +Once everything is working, you can {ref}`create a pull request ` to have your branch merged into the master so that your component can be included in the Landlab library and used by others. -This will trigger :ref:`continuous integration testing ` of your branch +This will trigger {ref}`continuous integration testing ` of your branch (doc tests, unit tests, and lint) to ensure its compatibility on all supported environments. You can find the results of these tests on the GitHub page of your pull request. If the tests fail, edit your files and commit your changes to re-run the tests (you don't need to make another pull request). -Getting your component into the documentation ---------------------------------------------- +## Getting your component into the documentation + Landlab uses the third party Sphinx code documentation tool to automatically -build the :ref:`Reference section ` that list our user-facing components. +build the {ref}`Reference section ` that list our user-facing components. This means your new component won't appear on the webpages unless you also make some changes to files you'll find in `landlab/docs/source`. @@ -121,23 +120,23 @@ where the path specification now points at the new `.rst` file you made, i.e., Note your component won't appear on the user-facing part of the website until it's included in a Landlab release. -Your component is accepted to Landlab. What's next? ---------------------------------------------------- +## Your component is accepted to Landlab. What's next? + Congrats on all your hard work! Once you know your component has been accepted and is included in a Landlab release, please -`add it to the CSDMS Model Repository `_. +[add it to the CSDMS Model Repository](https://csdms.colorado.edu/wiki/Contribute_model). You can link directly to the source code on Github. Just fill out the questionnaire. Have you written up some tutorials or Jupyter notebooks to help teach new users about your component? Consider submitting a tutorial along with your component. If you've presented a poster or submitted a paper about your Landlab component, -advertise your work on the :ref:`Landlab Papers and Presentations ` +advertise your work on the {ref}`Landlab Papers and Presentations ` page. Make your request to a member of the Landlab development team via a GitHub Issue. If you'd like, also attach an abstract or poster PDF. -I'm still confused ------------------- +## I'm still confused + The Landlab development team will be happy to hear from you. -`Create an issue `_ and we'll try to +[Create an issue](https://github.com/landlab/landlab/issues) and we'll try to resolve your problem. diff --git a/docs/source/development/contribution/index.rst b/docs/source/development/contribution/index.md similarity index 59% rename from docs/source/development/contribution/index.rst rename to docs/source/development/contribution/index.md index 7b0ab906f7..15ed591f2e 100644 --- a/docs/source/development/contribution/index.rst +++ b/docs/source/development/contribution/index.md @@ -1,34 +1,33 @@ -.. _dev_contributing: +(dev-contributing)= -=========================================== -Guidelines for Contributing Code to Landlab -=========================================== +# Guidelines for Contributing Code to Landlab -Please review the :ref:`development practices `. +Please review the {ref}`development practices `. -.. toctree:: - :maxdepth: 2 +```{toctree} +:maxdepth: 2 - develop_a_component - recommendations - ongoing_development - desired_contributions +develop_a_component +recommendations +ongoing_development +desired_contributions +``` Contributions that change high level Landlab organization should update -:ref:`this page ` in the documentation. +{ref}`this page ` in the documentation. -Publication of Landlab Contributions ------------------------------------- +## Publication of Landlab Contributions A number of researchers have used the Journal of Open Source Software (JOSS) and Geoscientific Model Development as a journal outlet to publish their contribution to Landlab. There are a few aspects of the submission workflow for JOSS that are non-standard and are described below. -.. toctree:: - :maxdepth: 2 +```{toctree} +:maxdepth: 2 - joss_workflow +joss_workflow +``` In addition, the JOSS editorial board and the Landlab core development team are presently (Jan 2019) working on defining some guidelines regarding what @@ -37,10 +36,9 @@ summarized here when finalized. If you have any questions regarding whether your potential JOSS submission is appropriate, the best thing to do is to make a pre-submission inquiry with JOSS. -News Entries ------------- +## News Entries -The ``CHANGES.rst`` file is managed using `towncrier`_ and all non trivial changes +The `CHANGES.rst` file is managed using [towncrier] and all non trivial changes must be accompanied by a news entry. To add an entry to the news file, first you need to have created an issue @@ -49,18 +47,17 @@ such, but it is preferred to have a dedicated issue (for example, in case the PR ends up rejected due to code quality reasons). Once you have an issue or pull request, you take the number and you create a -file inside of the ``news/`` directory, named after that issue number with a -"type" of ``component``, ``notebook``, ``feature``, ``bugfix``, ``docs``, or ``misc`` +file inside of the `news/` directory, named after that issue number with a +"type" of `component`, `notebook`, `feature`, `bugfix`, `docs`, or `misc` associated with it. -If your issue or PR number is ``1234`` and this change is fixing a bug, -then you would create a file ``news/1234.bugfix.rst``. PRs can span multiple +If your issue or PR number is `1234` and this change is fixing a bug, +then you would create a file `news/1234.bugfix.rst`. PRs can span multiple categories by creating multiple files (for instance, if you added a new component and an associated notebook that demonstrates how to use it, you would create -``news/NNNN.component.rst`` and ``news/NNNN.notebook.rst``). +`news/NNNN.component.rst` and `news/NNNN.notebook.rst`). If a PR touches multiple issues/PRs, you may create a file for each of them with the exact same contents and Towncrier will deduplicate them. - -.. _`towncrier`: https://pypi.org/project/towncrier/ +[towncrier]: https://pypi.org/project/towncrier/ diff --git a/docs/source/development/contribution/joss_workflow.rst b/docs/source/development/contribution/joss_workflow.md similarity index 56% rename from docs/source/development/contribution/joss_workflow.rst rename to docs/source/development/contribution/joss_workflow.md index 7a31181cae..22d71a98e3 100644 --- a/docs/source/development/contribution/joss_workflow.rst +++ b/docs/source/development/contribution/joss_workflow.md @@ -1,15 +1,11 @@ -.. _joss_workflow: +(joss-workflow)= -=============================================================================== -Workflow to submit your Landlab contribution to Journal of Open Source Software -=============================================================================== +# Workflow to submit your Landlab contribution to Journal of Open Source Software -The `Journal of Open Source Software (JOSS) `_ is a +The [Journal of Open Source Software (JOSS)](https://joss.theoj.org) is a venue for publications on open source software. If you are considering preparing a contribution to Landlab for a JOSS publication, please make sure to -review the JOSS `submission requirements -`_ - +review the JOSS [submission requirements](https://joss.readthedocs.io/en/latest/submitting.html#submission-requirements) Parts of Landlab have already been published by JOSS, and multiple parts of Landlab may be under consideration at JOSS at the same time. Under these @@ -19,33 +15,40 @@ For this reason, the workflow below has been developed for those who choose to submit their Landlab contribution (e.g., a Landlab component, utility) to this journal. - - Create a pull request to merge the contribution into Landlab. See - :ref:`Develop your own component or utility `. + {ref}`Develop your own component or utility `. + - Following the above merge, create a new branch for the JOSS review process. - Name the paper ``paper.md``, which follows JOSS requirements, and place this - file in a new folder, ``/landlab/joss//`` with your other + Name the paper `paper.md`, which follows JOSS requirements, and place this + file in a new folder, `/landlab/joss//` with your other JOSS submission materials (e.g., bib, figures if any). + - Submit to JOSS. The submitting author must comment on the pre-review issue that the paper is on a branch, and they should build the branch with this command - .. code-block:: bash - - $ @whedon prepare pdf from branch my-custom-branch-name + ```bash + $ @whedon prepare pdf from branch my-custom-branch-name + ``` - Once the JOSS review is complete and if the paper is accepted: -- Create a pull request to merge the JOSS review branch into the ``master`` + +- Create a pull request to merge the JOSS review branch into the `master` branch. -- Merge ``master`` into ``release``, and update version number. See - :ref:`Create a Landlab release `. + +- Merge `master` into `release`, and update version number. See + {ref}`Create a Landlab release `. + - Ensure that the release is correctly created and distributed. + - Update the JOSS review pull request with the correct archive DOI and version number. + - JOSS publishes the paper. + - Once publication is complete, make another pull request to move and rename - the ``paper.md`` to ``landlab/joss/published//.md``. - The paper can no longer be named ``paper.md`` because JOSS expects paper in + the `paper.md` to `landlab/joss/published//.md`. + The paper can no longer be named `paper.md` because JOSS expects paper in review to have this name, and to avoid conflicts with other Landlab paper contributions in review. Note that the paper folder should be moved to - within the ``published`` directory. + within the `published` directory. diff --git a/docs/source/development/contribution/ongoing_development.md b/docs/source/development/contribution/ongoing_development.md new file mode 100644 index 0000000000..7856052243 --- /dev/null +++ b/docs/source/development/contribution/ongoing_development.md @@ -0,0 +1,5 @@ +(ongoing-development)= + +# Ongoing Development in Landlab + +When fully active, this page will list known ongoing development in Landlab. diff --git a/docs/source/development/contribution/ongoing_development.rst b/docs/source/development/contribution/ongoing_development.rst deleted file mode 100644 index bf7d56d7dc..0000000000 --- a/docs/source/development/contribution/ongoing_development.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _ongoing_development: - -============================== -Ongoing Development in Landlab -============================== - -When fully active, this page will list known ongoing development in Landlab. diff --git a/docs/source/development/contribution/recommendations.md b/docs/source/development/contribution/recommendations.md new file mode 100644 index 0000000000..2cd0d96313 --- /dev/null +++ b/docs/source/development/contribution/recommendations.md @@ -0,0 +1,28 @@ +(dev-component-rules)= + +# Recommendations and Rules for User-Contributed Components + +First, thank you for considering contributing a component! The following are +some rules and recommendations. + +## Rules + +- `super` is called in the `__init__` method +- All public attributes are properties +- A component uses all required inputs fields and creates all required output fields. +- Components have complete metadata in `_info`. +- The component's `__init__` method takes a Landlab model grid as the first argument. +- The component has a main method that takes either `dt` or nothing. The name is descriptive but does not need to be standardized. + : - Solution is that using setters and getters or making a grid scalar. + - Some common name patterns include `update()`, `run_one_step()`, or `calculate_name_of_thing()`. +- A component raises a `ValueError` if unused keyword arguments are provided. +- A component raises a `ValueError` if a grid type the component does not support is passed. +- Component fields use consistent definition and dimensions (not necessarily units). + +## Recommendations + +- A component has a `run_one_step` method as its main method. +- Arguments and keyword arguments start with lower case letters. +- Keyword arguments have reasonable default values (and the grid is the only argument to `__init__`. +- Can return or not return information. Some recommendations, Nothing, grid, or a ... or a calculated value. +- If possible, we recommend that components are unit agnostic. diff --git a/docs/source/development/contribution/recommendations.rst b/docs/source/development/contribution/recommendations.rst deleted file mode 100644 index bc8cec721c..0000000000 --- a/docs/source/development/contribution/recommendations.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. _dev_component_rules: - -========================================================= -Recommendations and Rules for User-Contributed Components -========================================================= - -Reference the component tutorial - -Also the best practices tutorial. - -First, thank you for considering contributing a component! The following are -some rules and recommendations. - -Rules ------ -- ``super`` is called in the init -- All public attributes are properties -- A component uses all required inputs fields and creates all required output fields. -- Components have complete metadata in ``_info``. -- The component's ``__init__`` method takes a Landlab model grid as the first argument. -- The component has a main method that takes either ``dt`` or nothing. The name is descriptive but does not need to be standardized. - * Solution is that using setters and getters or making a grid scalar. - * Some common name patterns include `update()`, `run_one_step()`, or `calculate_name_of_thing()`. -- A component raises a ``ValueError`` if unused keyword arguments are provided. -- A component raises a ``ValueError`` if a grid type the component does not support is passed. -- Component fields use consistent definition and dimensions (not necessarily units). - -Recommendations ---------------- - -- A component has a ``run_one_step`` method as its main method. -- Arguments and keyword arguments start with lower case letters. -- Keyword arguments have reasonable default values (and the grid is the only argument to ``__init__``. -- Can return or not return information. Some recommendations, Nothing, grid, or a ... or a calculated value. -- If possible, we recommend that components are unit agnostic. diff --git a/docs/source/development/index.md b/docs/source/development/index.md new file mode 100644 index 0000000000..bce19109f9 --- /dev/null +++ b/docs/source/development/index.md @@ -0,0 +1,45 @@ +(development)= + +# Developer Guide + +If you're intending to make changes to the Landlab code base, or want to +develop your own components, this set of pages will provide information you +need. + +## Key Development Recommendations + +The most important things to remember are to: + +- Start by creating a fork of Landlab's repository; +- Make changes to the source code on a development branch, not the default + `master` branch; and +- Keep your fork's `master` and development branches up to date with changes + in the main Landlab repository. + +## Supported Python Versions + +Python 3.10, 3.11, and 3.12 + +If you need to introduce a new dependency, that dependency must be compatible +with Python 3.10+ and be available on Linux, Mac, and Windows. + +```{toctree} +:hidden: true +:maxdepth: 2 + +contribution/index +practices/index +package_organization +``` + +## Quick Links For Package Maintenance + +There are a few pages that are particularly important for the maintenance of +the package. These are: + +- {ref}`directory organization ` +- {ref}`dependency organization `, and +- {ref}`release workflow ` + +If package maintainers change any of these, the prior pages likely need +updating. diff --git a/docs/source/development/index.rst b/docs/source/development/index.rst deleted file mode 100644 index f2df9558a0..0000000000 --- a/docs/source/development/index.rst +++ /dev/null @@ -1,48 +0,0 @@ -.. _development: - -=============== -Developer Guide -=============== - -If you're intending to make changes to the Landlab code base, or want to -develop your own components, this set of pages will provide information you -need. - -Key Development Recommendations -------------------------------- - -The most important things to remember are to: - -* Start by creating a fork of Landlab's repository; -* Make changes to the source code on a development branch, not the default - `master` branch; and -* Keep your fork's `master` and development branches up to date with changes - in the main Landlab repository. - -Supported Python Versions -------------------------- -Python 3.10, 3.11, and 3.12 - -If you need to introduce a new dependency, that dependency must be compatible -with Python 3.10+ and be available on Linux, Mac, and Windows. - -.. toctree:: - :maxdepth: 2 - :hidden: - - contribution/index - practices/index - package_organization - -Quick Links For Package Maintenance ------------------------------------ - -There are a few pages that are particularly important for the maintenance of -the package. These are: - -* :ref:`directory organization ` -* :ref:`dependency organization `, and -* :ref:`release workflow ` - -If package maintainers change any of these, the prior pages likely need -updating. diff --git a/docs/source/development/package_organization.md b/docs/source/development/package_organization.md new file mode 100644 index 0000000000..59de612287 --- /dev/null +++ b/docs/source/development/package_organization.md @@ -0,0 +1,94 @@ +(organization)= + +# Package Organization + +Below is a tree view description of the key files and directories of the +Landlab package. Note that not all files are shown and that top level files +have been reorganized out of alphabetical order for clarity. Directories are +shown down to two levels. + +``` +landlab +| +| ## Top Level Files ## +| +| # Package Description +| +├── README.rst +├── CHANGELOG.md +├── CONTRIBUTING.md +├── LICENSE.txt +├── MANIFEST.in +| +| # Dependency Requirements +| +├── requirements.txt +├── requirements-dev.txt +├── requirements-notebooks.txt +├── requirements-testing.txt +| +| # Compilation +| +├── setup.cfg +├── setup.py +├── Makefile +| +| # Environment Specifications +| +├── environment-dev.yml # Developer conda environment +├── environment.yml # User/Notebook conda environment +├── readthedocs.yml # Documentation buidling conda environment +| +| # Continuous Integration +| +├── appveyor.yml # Specification for Appveyor Continuous Integration +├── conftest.py +| +| +| ## Directories ## +| +├── docs # The documentation +│   ├── scipy-sphinx-theme +│   └── source +| +├── joss # Files associated with JOSS publications +| +├── landlab # The core Landlab package +│   ├── bmi +│   ├── ca +│   ├── cmd +│   ├── components +│   ├── core +│   ├── data_record +│   ├── field +│   ├── framework +│   ├── graph +│   ├── grid +│   ├── io +│   ├── layers +│   ├── plot +│   ├── testing +│   ├── utils +│   └── values +| +├── notebooks # Jupyter notebooks +│   ├── teaching +│   └── tutorials +| +├── scripts +| +└── tests # The unit tests, structured to mirror landlab/landab +| ├── ca +| ├── components +| ├── core +| ├── data_record +| ├── field +| ├── graph +| ├── grid +| ├── io +| ├── layers +| ├── plot +| ├── utils +| └── values +├── END +``` diff --git a/docs/source/development/package_organization.rst b/docs/source/development/package_organization.rst deleted file mode 100644 index 75c5508653..0000000000 --- a/docs/source/development/package_organization.rst +++ /dev/null @@ -1,95 +0,0 @@ -.. _organization: - -Package Organization --------------------- - -Below is a tree view description of the key files and directories of the -Landlab package. Note that not all files are shown and that top level files -have been reorganized out of alphabetical order for clarity. Directories are -shown down to two levels. - -:: - - landlab - | - | ## Top Level Files ## - | - | # Package Description - | - ├── README.rst - ├── CHANGELOG.md - ├── CONTRIBUTING.md - ├── LICENSE.txt - ├── MANIFEST.in - | - | # Dependency Requirements - | - ├── requirements.txt - ├── requirements-dev.txt - ├── requirements-notebooks.txt - ├── requirements-testing.txt - | - | # Compilation - | - ├── setup.cfg - ├── setup.py - ├── Makefile - | - | # Environment Specifications - | - ├── environment-dev.yml # Developer conda environment - ├── environment.yml # User/Notebook conda environment - ├── readthedocs.yml # Documentation buidling conda environment - | - | # Continuous Integration - | - ├── appveyor.yml # Specification for Appveyor Continuous Integration - ├── conftest.py - | - | - | ## Directories ## - | - ├── docs # The documentation - │   ├── scipy-sphinx-theme - │   └── source - | - ├── joss # Files associated with JOSS publications - | - ├── landlab # The core Landlab package - │   ├── bmi - │   ├── ca - │   ├── cmd - │   ├── components - │   ├── core - │   ├── data_record - │   ├── field - │   ├── framework - │   ├── graph - │   ├── grid - │   ├── io - │   ├── layers - │   ├── plot - │   ├── testing - │   ├── utils - │   └── values - | - ├── notebooks # Jupyter notebooks - │   ├── teaching - │   └── tutorials - | - ├── scripts - | - └── tests # The unit tests, structured to mirror landlab/landab - | ├── ca - | ├── components - | ├── core - | ├── data_record - | ├── field - | ├── graph - | ├── grid - | ├── io - | ├── layers - | ├── plot - | ├── utils - | └── values - ├── END diff --git a/docs/source/development/practices/continuous_integration.rst b/docs/source/development/practices/continuous_integration.md similarity index 79% rename from docs/source/development/practices/continuous_integration.rst rename to docs/source/development/practices/continuous_integration.md index 591be5c2dd..3682731a9c 100644 --- a/docs/source/development/practices/continuous_integration.rst +++ b/docs/source/development/practices/continuous_integration.md @@ -1,22 +1,20 @@ -.. _dev_ci: +(dev-ci)= -================================ -Continuous Integration Practices -================================ +# Continuous Integration Practices Before merging any changes into the Landlab trunk, *all* unit tests (including doctests) should be passing. In addition, any new features added to Landlab should have an associated set of unit tests to verify that the new features are working properly. -Landlab uses `Travis `_ for continuous integration -testing on OSX and Linux. The `landlab page on Travis `_ +Landlab uses [Travis](https://travis-ci.org) for continuous integration +testing on OSX and Linux. The [landlab page on Travis](https://travis-ci.org/landlab/landlab) shows the latest testing results. A new set of tests are executed whenever any changes are pushed to the Landlab repository and with every pull request. We currently run test suites for Python versions 3.6 and 3.7 (soon to include 3.8). Continuous integration for Windows is done on -`Appveyor `_ and also tests for the same +[Appveyor](https://ci.appveyor.com) and also tests for the same Python versions as OSX and Linux. Once you send a pull request from GitHub, you will be taken to the Landlab @@ -30,9 +28,9 @@ will be added to the current pull request and the tests automatically rerun. You can also run unit tests locally in the top `landlab` directory and typing -.. code-block:: bash - - $ pytest +```bash +$ pytest +``` Note that this will test whatever version of landlab you have installed, which may or may not be the one you are working on in your current working diff --git a/docs/source/development/practices/dependencies.rst b/docs/source/development/practices/dependencies.md similarity index 50% rename from docs/source/development/practices/dependencies.rst rename to docs/source/development/practices/dependencies.md index 7537dcf0ac..65696b02c2 100644 --- a/docs/source/development/practices/dependencies.rst +++ b/docs/source/development/practices/dependencies.md @@ -1,34 +1,32 @@ -.. _dependencies: +(dependencies)= -================================== -How Landlab Specifies Dependencies -================================== +# How Landlab Specifies Dependencies The Landlab package dependencies are found in the top-level directory file -``requirements.txt``. +`requirements.txt`. -The ``setup.py`` file looks to this file and reads it when compiling the +The `setup.py` file looks to this file and reads it when compiling the package. In this way, we only state the dependencies in one location. In addition to the core set of dependencies, development with Landlab, and common use of Landlab (e.g., running the notebooks) may have additional dependencies. These dependencies are described in the following files: -- ``requirements-notebooks.txt`` indicates dependencies for running the notebooks. -- ``requirements-testing.txt`` indicates dependencies for running tests. -- ``requirements-dev.txt`` indicates dependencies for development (less building the documentation). +- `requirements-notebooks.txt` indicates dependencies for running the notebooks. +- `requirements-testing.txt` indicates dependencies for running tests. +- `requirements-dev.txt` indicates dependencies for development (less building the documentation). We provide two convenience environment files that address the two most common use cases. -- ``environment.yml`` specifies an environment which installs a Landlab binary +- `environment.yml` specifies an environment which installs a Landlab binary and all of the notebook dependencies. -- ``environment-dev.yml`` specifies an environment with all development +- `environment-dev.yml` specifies an environment with all development dependencies. If a developer wants to build the documentation locally there are some -additional dependencies. We do not include these in ``requirements-dev.txt`` +additional dependencies. We do not include these in `requirements-dev.txt` because it is uncommon for developers to need to build the docs locally. An environment specifying documentation-building requirements can be found at -``landlab/docs/environment.yml``. +`landlab/docs/environment.yml`. diff --git a/docs/source/development/practices/dev_guide_releases.rst b/docs/source/development/practices/dev_guide_releases.md similarity index 51% rename from docs/source/development/practices/dev_guide_releases.rst rename to docs/source/development/practices/dev_guide_releases.md index a9b0d638b2..a866a2b326 100644 --- a/docs/source/development/practices/dev_guide_releases.rst +++ b/docs/source/development/practices/dev_guide_releases.md @@ -1,11 +1,8 @@ -.. _dev_releases: +(dev-releases)= -=============================== -How to create a Landlab release -=============================== +# How to create a Landlab release -The Release Checklist ---------------------- +## The Release Checklist 1. Go to GitHub and use it to create a pull request that brings the changes associated with `landlab/landlab/master` into @@ -15,62 +12,57 @@ The Release Checklist request into `landlab/landlab/release`. 3. Next, decide what new version number is appropriate - based on `Semantic Versioning `_. + based on [Semantic Versioning](https://semver.org/). This can either be done locally or on the GitHub website. Here are instructions to do this locally: In the `landlab/landlab` repository, checkout the `release` branch and tag it. - .. code-block:: bash - - $ git tag vX.X.X + ```bash + $ git tag vX.X.X + ``` Then, push your tag on `landlab/landlab/release` to the remote. - .. code-block:: bash - - $ git push --tags + ```bash + $ git push --tags + ``` 4. This will trigger both standard Landlab CI and a deploy stage that uploads wheels to PyPI. A new PR will be autogenerated in the landlab-feedstock on conda-forge. - * Assuming its tests pass, merge the PR autogenerated in the landlab-feedstock. - - * Verify the builds on PyPI and on conda-forge. + - Assuming its tests pass, merge the PR autogenerated in the landlab-feedstock. + - Verify the builds on PyPI and on conda-forge. 5. Now tag the current version of `master` with a "-dev" and push the tag. - .. code-block:: bash + ```bash + $ git tag vX.X.X-dev + $ git push --tags + ``` - $ git tag vX.X.X-dev - $ git push --tags - -Notes ------ +## Notes 1. Although you can create such a tag on any branch, releases should **only** - come from the ``release`` branch. Make sure that when you create a tag - you are doing so on ``release`` (and all your changes are committed). - -2. Landlab follows `Semantic Versioning `_ + come from the `release` branch. Make sure that when you create a tag + you are doing so on `release` (and all your changes are committed). +2. Landlab follows [Semantic Versioning](https://semver.org/) rules for version assignment and formatting. Please stick to them. +## Helpful links -Helpful links -------------- - -1. `Using conda `_: What +1. [Using conda](https://docs.conda.io/en/latest/): What `conda` is and how to use it. -2. `git tags `_: What git +2. [git tags](https://git-scm.com/book/en/v2/Git-Basics-Tagging): What git tags are and how to create them. -3. `The git tag command `_: A description +3. [The git tag command](https://git-scm.com/docs/git-tag): A description of all of the options for the `git tag` command (including `git tag --delete`). -4. `landlab on Travis `_: The latest +4. [landlab on Travis](https://travis-ci.org/landlab/landlab): The latest Travis builds of landlab. -5. `landlab on Anaconda `_: The +5. [landlab on Anaconda](https://anaconda.org/landlab/landlab): The conda packages for landlab releases. -6. `Semantic Versioning `_: Rules for assigning and +6. [Semantic Versioning](https://semver.org/): Rules for assigning and formatting versions. diff --git a/docs/source/development/practices/develop_with_git.rst b/docs/source/development/practices/develop_with_git.md similarity index 83% rename from docs/source/development/practices/develop_with_git.rst rename to docs/source/development/practices/develop_with_git.md index d59e0ab53e..e383f0f1e4 100644 --- a/docs/source/development/practices/develop_with_git.rst +++ b/docs/source/development/practices/develop_with_git.md @@ -1,8 +1,6 @@ -.. _landlab_develop_with_git: +(landlab-develop-with-git)= -================ -Develop with Git -================ +# Develop with Git *This information is intended to help users who have downloaded the Landlab source code from Github, and intend to develop new components for @@ -29,7 +27,7 @@ unhelpful or redundant, you can easily roll them back - either by individually reverting each committed change, or by deleting the whole branch. -`This `_ is a nice, simple +[This](http://rogerdudler.github.io/git-guide/) is a nice, simple guide to the git command line tools. All this functionality is also available through the Github app. @@ -38,26 +36,24 @@ Desktop". This provides all the functionality described below in a form that avoids the command line, if that sounds like something you'd prefer.* -Branching with git ------------------- +## Branching with git -Making a new branch -``````````````````` +### Making a new branch Before making any changes to your code, you should create a new branch. Update your mirror with any upstream changes you don't have: -.. code-block:: bash - - $ git fetch upstream +```bash +$ git fetch upstream +``` If using git at the command line, make the new branch like this: -.. code-block:: bash - - $ git branch name-of-branch upstream/master - $ git checkout name-of-branch +```bash +$ git branch name-of-branch upstream/master +$ git checkout name-of-branch +``` From the Github app, you can do the same thing with the "branching" button in the top line. A nice feature of the app is it shows you @@ -75,23 +71,22 @@ You can create branches from branches! If changes appear in the master and you want to also have them in your active branch, you can update your active branch from the master with -.. code-block:: bash - - $ git pull +```bash +$ git pull +``` or with the "Update from master" button in the app. -Pushing changes from your local machine to your fork on Github -`````````````````````````````````````````````````````````````` +### Pushing changes from your local machine to your fork on Github If you want to keep a copy of the files you have modified or created on your branches on your public GitHub page for Landlab (you probably do as this will serve as a file backup) you need to tell git to push changes to your github repo. This is done with the following command: -.. code-block:: bash - - $ git push --set-upstream origin name-of-branch +```bash +$ git push --set-upstream origin name-of-branch +``` In the app, the same functionality is achieved by first "publishing" your branch (creating it on your page within the github.com central @@ -102,15 +97,14 @@ On your Landlab GitHub page you will now be able to toggle between your various branches to see the code you have committed. The app also lets you see the structure of your branches on your local machine. -Committing changes and merging branches back in -``````````````````````````````````````````````` +### Committing changes and merging branches back in Changes you make to your code are "saved" in git when you commit them to your branch. Save your files, then at the command line -.. code-block:: bash - - $ git commit -m "Text describing the changes" +```bash +$ git commit -m "Text describing the changes" +``` Again, the app provides the same functionality, but with the added bonus that it shows you what the changes you've made since your last commit @@ -124,7 +118,7 @@ review what the code was like at any time in the past! Note that files that you do not explicitly ask git to track (either by clicking the checkbox next to the file in the GUI or by using -``git add``) are not tracked — and thus not sent to the github.com +`git add`) are not tracked — and thus not sent to the github.com central servers when you push changes. Once you're happy with your branch, and the code is fully functional @@ -136,10 +130,10 @@ master). Once you've done that pull, in git at the command line, make the master your active branch again then *merge* the branch: -.. code-block:: bash - - $ git checkout master - $ git merge my-branch-name +```bash +$ git checkout master +$ git merge my-branch-name +``` In the app, create the merge by making a "pull request" using the button in the top right. The process is fairly self explanatory, and provides a @@ -148,8 +142,7 @@ merge, click through the hyperlink and merge it into the master on the website using the prominent green button. On your local machine, sync your master branch to pick up the changes locally. -Pulling changes from your fork to the Landlab master fork ---------------------------------------------------------- +## Pulling changes from your fork to the Landlab master fork Once you've completed whatever modifications you were working on with Landlab, we'd like to incorporate your changes back into the main code @@ -177,44 +170,40 @@ If you're confused by this process, just create the request, and one of us will see it and come to help you. You can create comments on your request from the website at any time after you've made it. +## Troubleshooting -Troubleshooting ---------------- - -What do I do if my pull request cannot be automatically merged? -``````````````````````````````````````````````````````````````` +### What do I do if my pull request cannot be automatically merged? Get the latest upstream/master and go to the `master` branch. Remember, *do not develop here*. Always develop in a feature branch. Merge the lastest upstream master with your master -.. code-block:: bash - - $ git fetch upstream - $ git checkout master - $ git merge upstream/master +```bash +$ git fetch upstream +$ git checkout master +$ git merge upstream/master +``` Go to the branch on which you are developing and merge the lastest upstream master with your branch -.. code-block:: bash - - $ git checkout - $ git merge upstream/master +```bash +$ git checkout +$ git merge upstream/master +``` Fix the conflicts. Do this by hand or with a merge editor. This is where you decide how to integrate the conflicting changes. Since only you know what and why you made the changes you did, this can only be done by you -.. code-block:: bash - - - $ git mergetool +```bash +$ git mergetool +``` After everything has been fixed, commit the changes and push the changes to the repository. The pull request will automatically be updated -.. code-block:: bash - - $ git commit - $ git push +```bash +$ git commit +$ git push +``` diff --git a/docs/source/development/practices/index.md b/docs/source/development/practices/index.md new file mode 100644 index 0000000000..c7e64e0d6e --- /dev/null +++ b/docs/source/development/practices/index.md @@ -0,0 +1,14 @@ +(development-practices)= + +# Software Development Practices + +```{toctree} +:maxdepth: 2 + +develop_with_git +continuous_integration +style_conventions +writing_tests +dev_guide_releases +dependencies +``` diff --git a/docs/source/development/practices/index.rst b/docs/source/development/practices/index.rst deleted file mode 100644 index edb81e54c2..0000000000 --- a/docs/source/development/practices/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. _development_practices: - -============================== -Software Development Practices -============================== - -.. toctree:: - :maxdepth: 2 - - develop_with_git - continuous_integration - style_conventions - writing_tests - dev_guide_releases - dependencies diff --git a/docs/source/development/practices/style_conventions.md b/docs/source/development/practices/style_conventions.md new file mode 100644 index 0000000000..62d277c697 --- /dev/null +++ b/docs/source/development/practices/style_conventions.md @@ -0,0 +1,62 @@ +(style-enforcement)= + +# Style Guidelines and Enforcement + +## General Coding Style + +- Please stick to the coding style described by + [PEP8](https://www.python.org/dev/peps/pep-0008/). PEP8 is one of + the standard worldwide stylistic conventions for coding in Python. +- Class and function docstrings should follow the [numpydoc + conventions](https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard). +- Further, Landlab-specific advice for developing your own components + can be found in the {ref}`component development guide `. + +Many modern text editors, e.g., [Atom](https://atom.io), provide interactive tools to +examine your code as you edit it and highlight where it diverges from +standards. + +## Style enforcement + +All tools used for development are specified in our `environment-dev.yml` file. +If you followed the +{ref}`developer installation instructions ` you have +everything you need in the `landlab_dev` conda environment. + +Currently we check for all the [flake8 +violations](https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes) +and [pycodestyle +violations](http://flake8.pycqa.org/en/latest/user/error-codes.html) +except for (as defined in our `setup.cfg`) + +- E203: whitespace before +- E501: line too long (n > 88 characters) +- W503: line break before binary operator + +To format files to meet these standards, we recommend using +[isort](https://pypi.org/project/isort/) + +[black](https://github.com/psf/black). + +You can run + +```bash +$ make pretty +``` + +from the main landlab directory in a terminal to run both +[isort](https://pypi.org/project/isort/) and +[black](https://github.com/psf/black) on your code. + +To check if your files meet the standards that are enforced under +continuous integration, we use +[flake8](http://flake8.pycqa.org/en/latest/). You can run + +```bash +make lint +``` + +from the top level directory or + +```bash +flake8 +``` diff --git a/docs/source/development/practices/style_conventions.rst b/docs/source/development/practices/style_conventions.rst deleted file mode 100644 index 77f8bfbb1a..0000000000 --- a/docs/source/development/practices/style_conventions.rst +++ /dev/null @@ -1,69 +0,0 @@ -.. _style_enforcement: - -================================ -Style Guidelines and Enforcement -================================ - -General Coding Style --------------------- - -- Please stick to the coding style described by - `PEP8 `_. PEP8 is one of - the standard worldwide stylistic conventions for coding in Python. - -- Class and function docstrings should follow the `numpydoc - conventions `_. - -- Further, Landlab-specific advice for developing your own components - can be found in the :ref:`component development guide `. - -Many modern text editors, e.g., `Atom `_, provide interactive tools to -examine your code as you edit it and highlight where it diverges from -standards. - - -Style enforcement ------------------ - -All tools used for development are specified in our `environment-dev.yml` file. -If you followed the -:ref:`developer installation instructions ` you have -everything you need in the `landlab_dev` conda environment. - -Currently we check for all the `flake8 -violations `_ -and `pycodestyle -violations `_ -except for (as defined in our ``setup.cfg``) - -* E203: whitespace before -* E501: line too long (n > 88 characters) -* W503: line break before binary operator - -To format files to meet these standards, we recommend using -`isort `_ + -`black `_. - -You can run - -.. code-block:: bash - - $ make pretty - -from the main landlab directory in a terminal to run both -`isort `_ and -`black `_ on your code. - -To check if your files meet the standards that are enforced under -continuous integration, we use -`flake8 `_. You can run - -.. code-block:: bash - - make lint - -from the top level directory or - -.. code-block:: bash - - flake8 diff --git a/docs/source/development/practices/writing_tests.rst b/docs/source/development/practices/writing_tests.md similarity index 51% rename from docs/source/development/practices/writing_tests.rst rename to docs/source/development/practices/writing_tests.md index 6d6585e335..4e98a17c9c 100644 --- a/docs/source/development/practices/writing_tests.rst +++ b/docs/source/development/practices/writing_tests.md @@ -1,31 +1,29 @@ -.. _writing_tests: +(writing-tests)= -================================================================ -Writing docstring and unit tests for your component (or utility) -================================================================ +# Writing docstring and unit tests for your component (or utility) All contributed code should be well tested. This should be done through both -doctests and standard unit tests using `pytest `_. +doctests and standard unit tests using [pytest](https://docs.pytest.org/en/latest/). All public functions, classes, methods, etc. must have a docstring that follows -the `numpydoc `_ +the [numpydoc](https://numpydoc.readthedocs.io/en/latest/format.html) conventions. Docstring tests should be short, easy-to-read tests that are instructive to a user. These tests are included as examples in the Landlab -:ref:`Reference Manual `. +{ref}`Reference Manual `. -Every ``.py`` file must contain a module-level docstring at the top of the file +Every `.py` file must contain a module-level docstring at the top of the file that describes what the purpose of the file is. Unit tests should be more extensive than doctests and give your new code thorough testing. Ideally your tests will cover what happens within every -``if``, ``elif``, or ``else``, and every ``try`` or ``except`` block. These +`if`, `elif`, or `else`, and every `try` or `except` block. These test will also verify that if a bad parameter value is passed, that the correct type of error is raised. Additionally, unless there is a specific reason your component or utility can only work with one Landlab grid type, the tests should verify that it can work -with multiple model grid types (verifying that the model works with both ` -`HexModelGrid`` and ``RasterModelGrid`` is a good place to start). +with multiple model grid types (verifying that the model works with both \` +`` HexModelGrid` `` and `RasterModelGrid` is a good place to start). Your unit tests should verify that the component or utility you are creating does exactly what it is expected to do. This means you will probably want to @@ -35,32 +33,32 @@ answer exactly. It is very important to not just test that the code reproduces the first answer you get. Instead you should construct the test so that you **know** what the right answer is. -The `numpy testing `_ +The [numpy testing](https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.testing.html) functions are useful for making comparison between actual and expected results (e.g. to assert that one array is equal to another array). The -`pytest testing tools `_ are +[pytest testing tools](https://docs.pytest.org/en/latest/assert.html) are useful for things like asserting that providing a particular set of values to a function or component will raise a specific type of error. -Unit tests must be discoverable by `pytest `_. -This means that the unit tests should be in folders within the ``test`` -directory, in ``.py`` files that start with the name `test` -and within functions with names that begin with the word ``test``. +Unit tests must be discoverable by [pytest](https://docs.pytest.org/en/latest/). +This means that the unit tests should be in folders within the `test` +directory, in `.py` files that start with the name `test` +and within functions with names that begin with the word `test`. Thus, a file to provide the unit tests for your component would be called -``test_my_component_name.py`` file, located in the directory -``tests\components\my_component_name\``. The inside of it might look like: +`test_my_component_name.py` file, located in the directory +`tests\components\my_component_name\`. The inside of it might look like: -.. code-block:: python +```python +# test_my_component_name.py +# numpy.testing and pytest are two modules commonly used +# for testing whether your code behaves as expected. +# import what you need from landlab - # test_my_component_name.py - # numpy.testing and pytest are two modules commonly used - # for testing whether your code behaves as expected. - # import what you need from landlab +def test_something_about_my_component(): + """Make a one-line docstring that describes your unit test.""" + # do things to set up for your test like make a model grid. - def test_something_about_my_component(): - """Make a one-line docstring that describes your unit test.""" - # do things to set up for your test like make a model grid. - - # make your test and assert that you get the right answer + # make your test and assert that you get the right answer +``` diff --git a/docs/source/funding.rst b/docs/source/funding.rst deleted file mode 100644 index 881b1ff2d1..0000000000 --- a/docs/source/funding.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../FUNDING.rst diff --git a/docs/source/generated/.gitignore b/docs/source/generated/.gitignore new file mode 100644 index 0000000000..72e8ffc0db --- /dev/null +++ b/docs/source/generated/.gitignore @@ -0,0 +1 @@ +* diff --git a/docs/source/getting_started/10min.rst b/docs/source/getting_started/10min.rst deleted file mode 100644 index 5245a02941..0000000000 --- a/docs/source/getting_started/10min.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. _10min: - -********************* -10 minutes to Landlab -********************* - -For a quick introduction to Landlab, check out `this tutorial on Binder -`_ -showing its major features in the context of a 2D model for fault-scarp -degradation. - -If you have access to `EarthscapeHub`_ through class or CSDMS membership, -you can run this tutorial on the `lab`_ and `jupyter`_ instances -(login required for each) using the *CSDMS* kernel. - -.. _EarthscapeHub: https://csdms.colorado.edu/wiki/JupyterHub -.. _lab: https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Ftutorials%2Ffault_scarp%2Flandlab-fault-scarp.ipynb%3Fautodecode&branch=master -.. _jupyter: https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Ftutorials%2Ffault_scarp%2Flandlab-fault-scarp.ipynb%3Fautodecode&branch=master diff --git a/docs/source/getting_started/index.md b/docs/source/getting_started/index.md new file mode 100644 index 0000000000..fa325fc884 --- /dev/null +++ b/docs/source/getting_started/index.md @@ -0,0 +1,28 @@ +(getting_started)= + +# Getting Started + +If you have access to [EarthscapeHub][earthscape-hub] through class or CSDMS membership, +you can run this tutorial on the [lab][lab-hub] and [jupyter][jupyter-hub] +instances (login required for each) using the *CSDMS* kernel. + +(10min)= + +## 10 minutes to Landlab + +For a quick introduction to Landlab, please see the [fault scarp +tutorial][tutorial-fault-scarp] showing its major features in the +context of a 2D model for fault-scarp degradation. + +(teach_yourself)= + +## Self-study course for learning to use Landlab in your research + +This course is entirely hosted in our Jupyter notebook tutorials. Here is a +link to the [syllabus][tutorial-start]. + +[earthscape-hub]: https://csdms.colorado.edu/wiki/JupyterHub +[jupyter-hub]: https://jupyter.openearthscape.org/ +[lab-hub]: https://lab.openearthscape.org/ +[tutorial-fault-scarp]: /tutorials/fault_scarp/landlab-fault-scarp.ipynb +[tutorial-start]: /tutorials/index diff --git a/docs/source/getting_started/index.rst b/docs/source/getting_started/index.rst deleted file mode 100644 index ad91dfa916..0000000000 --- a/docs/source/getting_started/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. _getting_started: - -=============== -Getting Started -=============== - -.. toctree:: - :maxdepth: 3 - - 10min - teach_yourself_landlab diff --git a/docs/source/getting_started/teach_yourself_landlab.rst b/docs/source/getting_started/teach_yourself_landlab.rst deleted file mode 100644 index 200f6341c4..0000000000 --- a/docs/source/getting_started/teach_yourself_landlab.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _teach_yourself: - -Self-study course for learning to use Landlab in your research -============================================================== - -This course is entirely hosted in our Jupyter notebook tutorials. Here is a -link to the `syllabus `_ -on Binder. - -If you have access to `EarthscapeHub`_ through class or CSDMS membership, -you can access this course through the `lab`_ and `jupyter`_ instances -(login required for each) using the *CSDMS* kernel. - -.. _EarthscapeHub: https://csdms.colorado.edu/wiki/JupyterHub -.. _lab: https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Ftutorials%2Fsyllabus.ipynb%3Fautodecode&branch=master -.. _jupyter: https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Ftutorials%2Fsyllabus.ipynb%3Fautodecode&branch=master diff --git a/docs/source/index.md b/docs/source/index.md new file mode 100644 index 0000000000..e3d57819c0 --- /dev/null +++ b/docs/source/index.md @@ -0,0 +1,70 @@ +(landlab)= + +# Landlab: A modular Earth Surface Dynamics modeling library + +```{include} ../../README.md +:start-after: "" +:end-before: "" +``` + +## Projects that use Landlab + +For a list of people that are using *Landlab*, please have a look at our +{ref}`Papers and Presentations ` section. + +## Citing Landlab + +If you use any portion of Landlab, please cite our {ref}`Citing Landlab ` +page. + +## Tutorials + +An overview of {ref}`tutorial content `. + +Gallery of tutorial {ref}`notebooks `. + +```{toctree} +:caption: Getting Started +:hidden: true +:maxdepth: 1 + +installation +Getting started +user_guide/index +Tutorials +Teaching with Landlab +``` + +```{toctree} +:caption: Contributing +:hidden: true +:maxdepth: 1 + +install/index +development/index +API Reference +``` + +```{toctree} +:caption: About +:hidden: true +:maxdepth: 1 + +about/changes +about/contact_us +about/citing +about/funding +Contributors +License +Used by +``` + +```{toctree} +:caption: Project Links +:hidden: true +:maxdepth: 1 + +GitHub +PyPI +Conda-Forge +``` diff --git a/docs/source/index.rst b/docs/source/index.rst deleted file mode 100644 index e0d6aa6649..0000000000 --- a/docs/source/index.rst +++ /dev/null @@ -1,70 +0,0 @@ -.. _landlab: - -.. module:: landlab - -========================================================== -Landlab: A modular Earth Surface Dynamics modeling library -========================================================== - -.. include:: ../../README.rst - :start-after: .. start-intro - :end-before: .. end-intro - -.. toctree:: - :caption: Getting Started - :maxdepth: 1 - :hidden: - - installation - Tutorial notebooks - user_guide/index - -.. toctree:: - :caption: Contributing - :maxdepth: 1 - :hidden: - - install/index - development/index - API Reference - -.. toctree:: - :caption: Useful Links - :maxdepth: 1 - :hidden: - - changes - contact_us - citing - funding - Contributors - License - Used by - -.. - .. toctree:: - :caption: Documentation Outline - :maxdepth: 2 - - install/index - getting_started/index - user_guide/index - reference/index - development/index - -.. - The most current source code is always available from our `git - repository `_. - -.. - If you are interested in the state of current development, we compile - :ref:`ongoing development `. If you are interested in - contributing but don't know how to get started (THANK YOU!), - we compile :ref:`desired contributions ` and have a - :ref:`page all about development `. - -.. - Many Jupyter notebooks exist describing use of Landlab. Find an overview - :ref:`here `. A subset of these notebooks are designed specifically - for the classroom. Information about them and how to set them up for classroom - use is described :ref:`on this page `. diff --git a/docs/source/install/developer_install.md b/docs/source/install/developer_install.md new file mode 100644 index 0000000000..72cc6b8d7a --- /dev/null +++ b/docs/source/install/developer_install.md @@ -0,0 +1,137 @@ +(install)= + +# Developer Install + +:::{important} +The following commands will install *landlab* into your current environment. Although +not necessary, we **highly recommend** you install landlab into its own +{ref}`virtual environment `. +::: + +If you will be modifying code or contributing new code to *landlab*, you will first +need to get *landlab*'s source code and then install *landlab* from that code. + +## Source Install + +*Landlab* is actively being developed on GitHub, where the code is freely available. +If you would like to modify or contribute code, you can either clone our +repository + +````{tab} ssh +```bash +git clone git@github.com:landlab/landlab.git +``` +```` + +````{tab} https +```bash +git clone https://github.com/landlab/landlab.git +``` +```` + +or download a [zip file](https://github.com/landlab/landlab/archive/refs/heads/master.zip): + +```bash +curl -OL https://github.com/landlab/landlab/archive/refs/heads/master.zip +``` + +Once you have a copy of the source code, you can install it into your current +Python environment by first installing *Landlab* dependencies and then building +and installing *Landlab*. + +### Install dependencies + +*Landlab*'s dependencies are listed in *requirements.in*. + +````{tab} mamba +```bash +cd landlab +mamba install --file=requirements.in -c nodefaults -c conda-forge --override-channels +``` +```` + +````{tab} conda +cd landlab +conda install --file=requirements.in -c nodefaults -c conda-forge --override-channels +``` +```` + +````{tab} pip +cd landlab +pip install -r requirements.in +``` +```` + +### Build and install *Landlab* + +*Landlab*'s build process includes compiling Python extensions, which requires +you to have a C++ compiler installed. *Linux* will usually already have one, +on *Mac* you can use *XCode*, and on *Windows* you will need to install *MSVC*. +For help on installing *MSVC*, you may want to refer to the *conda-forge* page +on [compiling code on Windows](https://conda-forge.org/docs/maintainer/knowledge_base.html#notes-on-native-code) +or the [Python wiki page for Windows compilers](https://wiki.python.org/moin/WindowsCompilers). + +If you are using *conda*/*mamba*, set up your compilers to build libraries +compatible with other installed packages, + +````{tab} mamba +```bash +mamba install compilers -c nodefaults -c conda-forge --override-channels +``` +```` + +````{tab} conda +```bash +conda install compilers -c nodefaults -c conda-forge --override-channels +``` +```` + +With compilers set up and dependencies installed, build and install *Landlab*, + +```bash +pip install -e . +``` + +## Developer Tools + +Once you start developing with *Landlab*, we recommend that you use [nox] to +automate common tasks such as, for example, running the tests, building the docs, and +finding lint. + +```bash +pip install nox +``` + +The following list shows how to use [nox] for some of the more common tasks: + +- Run the tests: + + ```bash + nox -s test + ``` + +- Run the tests on the notebooks: + + ```bash + nox -s test-notebooks + ``` + +- Build the docs: + + ```bash + nox -s build-docs + ``` + +- Run the linters: + + ```bash + nox -s lint + ``` + +- To get a complete list of the available targets: + + ```bash + nox -l + ``` + +[nox]: https://nox.thea.codes/en/stable/ diff --git a/docs/source/install/developer_install.rst b/docs/source/install/developer_install.rst deleted file mode 100644 index 09c6dc9dfe..0000000000 --- a/docs/source/install/developer_install.rst +++ /dev/null @@ -1,151 +0,0 @@ -.. _install: - -================= -Developer Install -================= - -.. important:: - - The following commands will install *landlab* into your current environment. Although - not necessary, we **highly recommend** you install landlab into its own - :ref:`virtual environment `. - - -If you will be modifying code or contributing new code to *landlab*, you will first -need to get *landlab*'s source code and then install *landlab* from that code. - -Source Install --------------- - -.. start-install-source - -*Landlab* is actively being developed on GitHub, where the code is freely available. -If you would like to modify or contribute code, you can either clone our -repository - -.. tab:: ssh - - .. code-block:: bash - - git clone git@github.com:landlab/landlab.git - -.. tab:: https - - .. code-block:: bash - - git clone https://github.com/landlab/landlab.git - -or download a `zip file `_: - -.. code-block:: bash - - curl -OL https://github.com/landlab/landlab/archive/refs/heads/master.zip - -Once you have a copy of the source code, you can install it into your current -Python environment by first installing *Landlab* dependencies and then building -and installing *Landlab*. - - -Install dependencies -```````````````````` - -*Landlab*'s dependencies are listed in *requirements.in*. - -.. tab:: mamba - - .. code-block:: bash - - cd landlab - mamba install --file=requirements.in -c nodefaults -c conda-forge --override-channels - -.. tab:: conda - - .. code-block:: bash - - cd landlab - conda install --file=requirements.in -c nodefaults -c conda-forge --override-channels - -.. tab:: pip - - .. code-block:: bash - - cd landlab - pip install -r requirements.in - - -Build and install *Landlab* -``````````````````````````` -*Landlab*'s build process includes compiling Python extensions, which requires -you to have a C++ compiler installed. *Linux* will usually already have one, -on *Mac* you can use *XCode*, and on *Windows* you will need to install *MSVC*. -For help on installing *MSVC*, you may want to refer to the *conda-forge* page -on `compiling code on Windows `__ -or the `Python wiki page for Windows compilers `__. - - -If you are using *conda*/*mamba*, set up your compilers to build libraries -compatible with other installed packages, - -.. tab:: mamba - - .. code-block:: bash - - mamba install compilers -c nodefaults -c conda-forge --override-channels - -.. tab:: conda - - .. code-block:: bash - - conda install compilers -c nodefaults -c conda-forge --override-channels - - -With compilers set up and dependencies installed, build and install *Landlab*, - -.. code-block:: bash - - pip install -e . - - - -.. end-install-source - -Developer Tools ---------------- - -Once you start developing with *Landlab*, we recommend that you use `nox`_ to -automate common tasks such as, for example, running the tests, building the docs, and -finding lint. - -.. _nox: https://nox.thea.codes/en/stable/ - -.. code-block:: bash - - pip install nox - -The following list shows how to use `nox`_ for some of the more common tasks: - -* Run the tests: - - .. code-block:: bash - - nox -s test -* Run the tests on the notebooks: - - .. code-block:: bash - - nox -s test-notebooks -* Build the docs: - - .. code-block:: bash - - nox -s build-docs -* Run the linters: - - .. code-block:: bash - - nox -s lint -* To get a complete list of the available targets: - - .. code-block:: bash - - nox -l diff --git a/docs/source/install/environments.rst b/docs/source/install/environments.md similarity index 57% rename from docs/source/install/environments.rst rename to docs/source/install/environments.md index 6dd63ae47f..240cdf60b0 100644 --- a/docs/source/install/environments.rst +++ b/docs/source/install/environments.md @@ -1,8 +1,6 @@ -.. _virtual_environments: +(virtual-environments)= -==================== -Virtual Environments -==================== +# Virtual Environments A virtual environment is a self-contained directory tree that contains a Python installation for a particular version of Python along with additional packages. It solves the problem of one application's @@ -13,31 +11,31 @@ Two popular tools used for creating virtual environments are the built-in *venv* you can use either *conda*/*mamba* or *pip* to install additional packages, while *venv*-created environments should stick with *pip*. -.. tab:: mamba - - .. code-block:: bash - - conda install mamba -c conda-forge - mamba create -n landlab - mamba activate landlab - -.. tab:: conda - - .. code-block:: bash - - conda create -n landlab - conda activate landlab - -.. tab:: venv - - .. code-block:: bash - - python -m venv .venv - source .venv/bin/activate +````{tab} mamba +```bash +conda install mamba -c conda-forge +mamba create -n landlab +mamba activate landlab +``` +```` + +````{tab} conda +```bash +conda create -n landlab +conda activate landlab +``` +```` + +````{tab} venv +```bash +python -m venv .venv +source .venv/bin/activate +``` +```` Note that you will need to activate this environment every time you want to use it in a new shell. Helpful links on managing virtual environments: -* `conda environments `_. -* `venv environments `_. +- [conda environments](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-with-commands). +- [venv environments](https://docs.python.org/3/tutorial/venv.html). diff --git a/docs/source/install/index.md b/docs/source/install/index.md new file mode 100644 index 0000000000..6877c90446 --- /dev/null +++ b/docs/source/install/index.md @@ -0,0 +1,19 @@ +```{include} developer_install.md +:start-after: "(install)=" +``` + +% If you would like the very latest development version of *landlab* or want to modify +% or contribute code to the *landlab* project, you will need to do a +% :ref:`developer installation ` of *landlab* from source. +% +% If you are only wanting to *use* *landlab*, please see the installation instructions +% in the :ref:`getting started ` section. + +```{toctree} +:caption: Installing +:hidden: true +:maxdepth: 2 + +environments +update_uninstall +``` diff --git a/docs/source/install/index.rst b/docs/source/install/index.rst deleted file mode 100644 index a9cb69c845..0000000000 --- a/docs/source/install/index.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. include:: developer_install.rst - :start-after: .. _install: - -.. - If you would like the very latest development version of *landlab* or want to modify - or contribute code to the *landlab* project, you will need to do a - :ref:`developer installation ` of *landlab* from source. - - If you are only wanting to *use* *landlab*, please see the installation instructions - in the :ref:`getting started ` section. - -.. toctree:: - :caption: Installing - :maxdepth: 2 - :hidden: - - environments - update_uninstall diff --git a/docs/source/install/update_uninstall.md b/docs/source/install/update_uninstall.md new file mode 100644 index 0000000000..ac2dde5961 --- /dev/null +++ b/docs/source/install/update_uninstall.md @@ -0,0 +1,30 @@ +# Updating and uninstalling + +You can update an existing *landlab* installation to a newer version +(if available) by running the following, + +````{tab} conda +```bash +$ conda update landlab +``` +```` + +````{tab} pip +```bash +$ pip -U install landlab +``` +```` + +To uninstall *landlab*, + +````{tab} conda +```bash +$ conda uninstall landlab +``` +```` + +````{tab} pip +```bash +$ pip uninstall landlab +``` +```` diff --git a/docs/source/install/update_uninstall.rst b/docs/source/install/update_uninstall.rst deleted file mode 100644 index 2b9421d35a..0000000000 --- a/docs/source/install/update_uninstall.rst +++ /dev/null @@ -1,32 +0,0 @@ -Updating and uninstalling -------------------------- - -You can update an existing *landlab* installation to a newer version -(if available) by running the following, - -.. tab:: conda - - .. code-block:: bash - - $ conda update landlab - -.. tab:: pip - - .. code-block:: bash - - $ pip -U install landlab - - -To uninstall *landlab*, - -.. tab:: conda - - .. code-block:: bash - - $ conda uninstall landlab - -.. tab:: pip - - .. code-block:: bash - - $ pip uninstall landlab diff --git a/docs/source/installation.md b/docs/source/installation.md new file mode 100644 index 0000000000..cf46df8019 --- /dev/null +++ b/docs/source/installation.md @@ -0,0 +1,39 @@ +(basic-install)= + +# Install + +:::{important} +The following commands will install *landlab* into your current environment. Although +not necessary, we **highly recommend** you install landlab into its own +{ref}`virtual environment `. +::: + +In order to use *landlab* you will first need Python. While not +necessary, we recommend using the +[Anaconda Python distribution](https://www.anaconda.com/distribution/) +as it provides a large number of third-party packages useful for +scientific computing. + +To install *Landlab*, simply run the following in your terminal of choice: + +````{tab} mamba +```bash +mamba install landlab -c nodefaults -c conda-forge --override-channels +``` +```` + +````{tab} conda +```bash +conda install landlab -c nodefaults -c conda-forge --override-channels +``` +```` + +````{tab} pip +```bash +pip install landlab +``` +```` + +If you would like the very latest development version of *landlab* or want to modify +or contribute code to the *landlab* project, you will need to do a +{ref}`developer installation ` of *landlab* from source. diff --git a/docs/source/installation.rst b/docs/source/installation.rst deleted file mode 100644 index b7872a748a..0000000000 --- a/docs/source/installation.rst +++ /dev/null @@ -1,45 +0,0 @@ -.. _basic_install: - -======= -Install -======= - -.. important:: - - The following commands will install *landlab* into your current environment. Although - not necessary, we **highly recommend** you install landlab into its own - :ref:`virtual environment `. - -.. start-install-release - -In order to use *landlab* you will first need Python. While not -necessary, we recommend using the -`Anaconda Python distribution `_ -as it provides a large number of third-party packages useful for -scientific computing. - -To install *Landlab*, simply run the following in your terminal of choice: - -.. tab:: mamba - - .. code-block:: bash - - mamba install landlab -c nodefaults -c conda-forge --override-channels - -.. tab:: conda - - .. code-block:: bash - - conda install landlab -c nodefaults -c conda-forge --override-channels - -.. tab:: pip - - .. code-block:: bash - - pip install landlab - -.. end-install-release - -If you would like the very latest development version of *landlab* or want to modify -or contribute code to the *landlab* project, you will need to do a -:ref:`developer installation ` of *landlab* from source. diff --git a/docs/source/license.rst b/docs/source/license.rst deleted file mode 100644 index 2f7644abf0..0000000000 --- a/docs/source/license.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../LICENSE.rst diff --git a/docs/source/reference/bmi/index.rst b/docs/source/reference/bmi/index.rst deleted file mode 100644 index daf9d0c597..0000000000 --- a/docs/source/reference/bmi/index.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. _api.bmi: - -===================== -Basic Model Interface -===================== - -landlab.bmi.bmi\_bridge module ------------------------------- - -.. automodule:: landlab.bmi.bmi_bridge - :members: - :undoc-members: - :show-inheritance: - -landlab.bmi.components module ------------------------------ - -.. automodule:: landlab.bmi.components - :members: - :undoc-members: - :show-inheritance: - -landlab.bmi.standard\_names module ----------------------------------- - -.. automodule:: landlab.bmi.standard_names - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.bmi - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/ca/boundaries.rst b/docs/source/reference/ca/boundaries.rst deleted file mode 100644 index 80eed5ba39..0000000000 --- a/docs/source/reference/ca/boundaries.rst +++ /dev/null @@ -1,22 +0,0 @@ -landlab.ca.boundaries package -============================= - -Submodules ----------- - -landlab.ca.boundaries.hex\_lattice\_tectonicizer module -------------------------------------------------------- - -.. automodule:: landlab.ca.boundaries.hex_lattice_tectonicizer - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.ca.boundaries - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/ca/index.rst b/docs/source/reference/ca/index.rst deleted file mode 100644 index c813825ae8..0000000000 --- a/docs/source/reference/ca/index.rst +++ /dev/null @@ -1,75 +0,0 @@ -.. _api.ca: - -********************** -Cellular Automata (CA) -********************** - -landlab.ca package -================== - -Subpackages ------------ - -.. toctree:: - - boundaries - -Submodules ----------- - -landlab.ca.celllab\_cts module ------------------------------- - -.. automodule:: landlab.ca.celllab_cts - :members: - :undoc-members: - :show-inheritance: - -landlab.ca.cfuncs module ------------------------- - -.. automodule:: landlab.ca.cfuncs - :members: - :undoc-members: - :show-inheritance: - -landlab.ca.hex\_cts module --------------------------- - -.. automodule:: landlab.ca.hex_cts - :members: - :undoc-members: - :show-inheritance: - -landlab.ca.oriented\_hex\_cts module ------------------------------------- - -.. automodule:: landlab.ca.oriented_hex_cts - :members: - :undoc-members: - :show-inheritance: - -landlab.ca.oriented\_raster\_cts module ---------------------------------------- - -.. automodule:: landlab.ca.oriented_raster_cts - :members: - :undoc-members: - :show-inheritance: - -landlab.ca.raster\_cts module ------------------------------ - -.. automodule:: landlab.ca.raster_cts - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.ca - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/cmd/index.rst b/docs/source/reference/cmd/index.rst deleted file mode 100644 index 51378ec511..0000000000 --- a/docs/source/reference/cmd/index.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. _api.cmd: - -***************** -Command Interface -***************** - -Submodules -========== - -landlab.cmd.landlab module --------------------------- - -.. automodule:: landlab.cmd.landlab - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.cmd - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/advection.rst b/docs/source/reference/components/advection.rst deleted file mode 100644 index 8a087ed52e..0000000000 --- a/docs/source/reference/components/advection.rst +++ /dev/null @@ -1,7 +0,0 @@ -AdvectionSolverTVD: Model horizontal advection of a given quantity using a Total Variation Diminishing (TVD) solution method ------------------------------------------------------------------------------------------------------------------------------ - -.. automodule:: landlab.components.advection.advection_solver_tvd - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/area_slope_transporter.rst b/docs/source/reference/components/area_slope_transporter.rst deleted file mode 100644 index a1b3f51861..0000000000 --- a/docs/source/reference/components/area_slope_transporter.rst +++ /dev/null @@ -1,7 +0,0 @@ -AreaSlopeTransporter: transport-limited model of transport, erosion, and deposition in a gridded river network --------------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.area_slope_transporter.area_slope_transporter - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/bedrock_landslider.rst b/docs/source/reference/components/bedrock_landslider.rst deleted file mode 100644 index 3aa7b12c6c..0000000000 --- a/docs/source/reference/components/bedrock_landslider.rst +++ /dev/null @@ -1,7 +0,0 @@ -BedrockLandslider: Location and magnitude of episodic bedrock landsliding -------------------------------------------------------------------------- - -.. automodule:: landlab.components.bedrock_landslider.bedrock_landslider - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/carbonate.rst b/docs/source/reference/components/carbonate.rst deleted file mode 100644 index 2ff53e5c28..0000000000 --- a/docs/source/reference/components/carbonate.rst +++ /dev/null @@ -1,7 +0,0 @@ -CarbonateProducer: Grow carbonate strata using growth function of Bosscher and Schlager (1992) ----------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.carbonate.carbonate_producer - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/channel_profiler.rst b/docs/source/reference/components/channel_profiler.rst deleted file mode 100644 index 33a1bb8acb..0000000000 --- a/docs/source/reference/components/channel_profiler.rst +++ /dev/null @@ -1,7 +0,0 @@ -ChannelProfiler: Create and plot channel profiles -------------------------------------------------- - -.. automodule:: landlab.components.profiler.channel_profiler - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/chi_index.rst b/docs/source/reference/components/chi_index.rst deleted file mode 100644 index 8958de00fe..0000000000 --- a/docs/source/reference/components/chi_index.rst +++ /dev/null @@ -1,7 +0,0 @@ -ChiFinder: Perform chi-index analysis for gridded topography ------------------------------------------------------------- - -.. automodule:: landlab.components.chi_index - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/concentration_tracker.rst b/docs/source/reference/components/concentration_tracker.rst deleted file mode 100644 index 0df16f288b..0000000000 --- a/docs/source/reference/components/concentration_tracker.rst +++ /dev/null @@ -1,10 +0,0 @@ -Concentration Tracker -===================== - -ConcentrationTrackerForDiffusion: Track mass concentration of sediment properties based on flux from DepthDependentDiffuser or DepthDependentTaylorDiffuser ------------------------------------------------------------------------------------------------------------------------------------------------------------ - -.. automodule:: landlab.components.concentration_tracker.concentration_tracker_for_diffusion - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/depth_dependent_diffusion.rst b/docs/source/reference/components/depth_dependent_diffusion.rst deleted file mode 100644 index ac8226207c..0000000000 --- a/docs/source/reference/components/depth_dependent_diffusion.rst +++ /dev/null @@ -1,7 +0,0 @@ -DepthDependentDiffuser: depth dependent diffusion after Johnstone and Hilley (2014) ------------------------------------------------------------------------------------ - -.. automodule:: landlab.components.depth_dependent_diffusion - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/depth_dependent_taylor_soil_creep.rst b/docs/source/reference/components/depth_dependent_taylor_soil_creep.rst deleted file mode 100644 index fa40a34a59..0000000000 --- a/docs/source/reference/components/depth_dependent_taylor_soil_creep.rst +++ /dev/null @@ -1,7 +0,0 @@ -DepthDependentTaylorDiffuser: Model depth dependent non-linear soil creep after Ganti et al. (2012) and Johnstone and Hilley (2014) -=================================================================================================================================== - - .. automodule:: landlab.components.depth_dependent_taylor_soil_creep - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/detachment_ltd_erosion.rst b/docs/source/reference/components/detachment_ltd_erosion.rst deleted file mode 100644 index 73835b34b1..0000000000 --- a/docs/source/reference/components/detachment_ltd_erosion.rst +++ /dev/null @@ -1,7 +0,0 @@ -DetachmentLtdErosion: Solve stream power equations, but without stability checks -================================================================================ - -.. automodule:: landlab.components.detachment_ltd_erosion.generate_detachment_ltd_erosion - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/diffusion.rst b/docs/source/reference/components/diffusion.rst deleted file mode 100644 index c05523eca7..0000000000 --- a/docs/source/reference/components/diffusion.rst +++ /dev/null @@ -1,7 +0,0 @@ -LinearDiffuser: Model soil creep using "linear diffusion" transport law (no depth dependence) ---------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.diffusion - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/dimensionless_discharge.rst b/docs/source/reference/components/dimensionless_discharge.rst deleted file mode 100644 index 985821323e..0000000000 --- a/docs/source/reference/components/dimensionless_discharge.rst +++ /dev/null @@ -1,7 +0,0 @@ -DimensionlessDischarge: Testing thresholds of debris flows in stream segments following Tang et al. ---------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.dimensionless_discharge - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/drainage_density.rst b/docs/source/reference/components/drainage_density.rst deleted file mode 100644 index ccd85f2a63..0000000000 --- a/docs/source/reference/components/drainage_density.rst +++ /dev/null @@ -1,7 +0,0 @@ -DrainageDensity: Calculate drainage density from topography ------------------------------------------------------------ - -.. automodule:: landlab.components.drainage_density - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/dupuit_theory.rst b/docs/source/reference/components/dupuit_theory.rst deleted file mode 100644 index 6b3b82518b..0000000000 --- a/docs/source/reference/components/dupuit_theory.rst +++ /dev/null @@ -1,164 +0,0 @@ -.. _dupuit_theory: - -:orphan: - -======================================================== -Theory and Implementation of GroundwaterDupuitPercolator -======================================================== - -Governing Equations -=================== - -Variably-saturated groundwater flow is often assumed to be governed by -the Richards equation, which describes how water content and/or total -energy potential evolve in an idealized porous medium due to fluxes of -water driven by gradients in total potential, :math:`h = z + p/ \gamma`, -where :math:`z` is the elevation head, :math:`p` is the gage pressure, -and :math:`\gamma` is the specific weight of water. - -.. math:: \frac{\partial \theta}{\partial t} = \frac{\partial}{\partial x} \bigg( k \frac{\partial h}{\partial x} \bigg) + \frac{\partial}{\partial y} \bigg( k \frac{\partial h}{\partial y} \bigg) + \frac{\partial}{\partial z} \bigg( k \frac{\partial h}{\partial z} \bigg) - -Here :math:`\theta` is the volumetric water content of the aquifer and -:math:`k` is the hydraulic conductivity, which may be a function of -:math:`\theta`. Here we use the widely applied Dupuit-Forcheimer -approximation, which is valid when the aquifer is laterally extensive in -comparison to its thickness, and the capillary fringe above the water -table is relatively thin. If this is the case, the component of the -hydraulic gradient normal to the aquifer base can be neglected, and the -water table can be treated as a free surface. Consequently, the total -head is equal to the water table elevation, :math:`h=z`. With these -assumptions, an adjusted governing equation can be written for the time -evolution of the water table elevation: - -.. math:: n \frac{\partial h}{\partial t} = \frac{\partial}{\partial x} \bigg( k_{sat} h \frac{\partial h}{\partial x} \bigg) + \frac{\partial}{\partial y} \bigg( k_{sat} h \frac{\partial h}{\partial y} \bigg) - -where :math:`n` is the drainable porosity, and :math:`k_{sat}` is the -saturated hydraulic conductivity. - -.. figure:: images/water_table_schematic.png - :alt: Aquifer schematic. - :align: center - :scale: 50% - - Aquifer schematic showing vertical aquifer thickness :math:`h`, bed-normal - aquifer thickness :math:`\eta`, and water table elevation :math:`z`. - - -When the aquifer base is sloping, the governing equations must be adjusted. -Childs (1971) provides the governing equation for the groundwater specific discharge as: - -.. math:: q_{x'} = - k_{sat} \eta \frac{\partial z}{\partial x'} - -where :math:`x'` is the coordinate parallel to the impermeable base, and :math:`\eta` -is the aquifer thickness perpendicular to the impermeable base ([2]_). -The `GroundwaterDupuitPercolator` treats two additional fluxes that affect -aquifer storage: groundwater return flow to the surface :math:`q_s`, and -recharge from precipitation :math:`f`. Implementations of the Dupuit-Forcheimer -model often encounter numerical instabilities as the water table intersects the -land surface. To alleviate this problem, we use the regularization approach -introduced by Marcais et al. (2017), which smooths the transition between -surface and subsurface flow ([1]_). The complete governing equations in the -base-parallel reference frame :math:`(x',y')` are: - -.. math:: - - \begin{aligned} - n \frac{\partial \eta}{\partial t} &= f \cos(\alpha) - q_s \cos(\alpha) - \nabla' \cdot q \\ - q &= -k_{sat} \eta \big( \nabla' z ) \\ - q_s &= \mathcal{G}_r \bigg( \frac{\eta}{d'} \bigg) \mathcal{R} \big(-\nabla' \cdot q + f \cos(\alpha) \big) \\\end{aligned} - -where :math:`\alpha` is the slope angle of aquifer base, and :math:`d'` is the -permeable thickness normal to the aquifer base. The gradient operator -:math:`\nabla'` and divergence operator :math:`\nabla' \cdot` are calculated -with respect to the base-parallel coordinate system. Note that the surface runoff -is the sum of both groundwater return flow and precipitation on saturated area. - -The expression for :math:`q_s` utilizes two regularization functions :math:`\mathcal{G}_r` and :math:`\mathcal{R}`: - -.. math:: \mathcal{G}_r(r,u) = \exp \bigg( - \frac{1-u}{r} \bigg) - -.. math:: \mathcal{R}(u) = u \mathcal{H}(u) - -where :math:`r` is a user-specified regularization factor and -:math:`\mathcal{H}(u)` is the Heaviside step function: - -.. math:: - - \mathcal{H}(u) = \left\{ - \begin{array}{ll} - 0 & u<0 \\[8pt] - 1 & u \geq 0 - \end{array} - \right. - -.. figure:: images/GDP_regularization.png - :alt: Regularization functions - :align: center - :scale: 40% - - Regularization functions - -To recast the problem in terms of the horizontal coordinate system used by Landlab, -we make the substitutions :math:`\eta = h \cos(\alpha)`, :math:`x = x' \cos(\alpha)`, -and :math:`y = y' \cos(\alpha)`. In the horizontal coordinate system :math:`(x,y)`, the -governing equations are: - -.. math:: - - \begin{aligned} - n \frac{\partial h}{\partial t} &= f - q_s - \nabla \cdot q \\ - q &= -k_{sat} \cos^2(\alpha) h \big( \nabla z ) \\ - q_s &= \mathcal{G}_r \bigg( \frac{h}{d} \bigg) \mathcal{R} \big(f - \nabla \cdot q \big) \\\end{aligned} - -where :math:`d` is the vertical regolith thickness, and the gradient operator -:math:`\nabla` and divergence operator :math:`\nabla \cdot` are calculated with -respect to the horizontal coordinate system :math:`(x,y)`. - -Numerical Implementation -======================== - -We use an explicit, forward-in-time finite-volume method to solve the -governing equations. In this method, gradients are calculated at links -(between volume centers), and flux divergences are calculated at nodes -(at volume centers). The governing equation with timestep -:math:`\Delta t` is: - -.. math:: n \bigg( \frac{h^{t+\Delta t} - h^t}{\Delta t} \bigg) = f^t - q_s^t - \nabla \cdot q^t - -Below is a description of the components needed to calculate the right -side of this equation. To calculate the groundwater flux :math:`q`, the -gradients of aquifer base elevation :math:`b` and water table elevation -:math:`z` must be determined. The slope angle of the aquifer base is -calculated from the aquifer base elevation :math:`b`: - -.. math:: - - \begin{aligned} - \alpha_{ij} =& \arctan \big( (\nabla b)_{ij} \big) \\ - \big( \nabla b \big)_{ij} =& \frac{b_{i} - b_{j}}{L_{ij}}\end{aligned} - -where the subscripts :math:`i` and :math:`j` indicate the nodes at the -head and tail of the link respectively, and :math:`L_{ij}` is the length -of the link. The gradient :math:`\nabla z` is calculated on link :math:`ij` as: - -.. math:: \big( \nabla z \big)_{ij} = \frac{z_{i} - z_{j}}{L_{ij}} - -Flux divergence is calculated by summing the fluxes into an out of the -links that connect to a node. The divergence of the groundwater flux is: - -.. math:: \big( \nabla \cdot q \big)_i = \frac{1}{A_i} \sum_{j \in S} \delta_{ij} q_{ij} \lambda_{ij} - -where :math:`A_i` is the area of node :math:`i`, :math:`S` is the set of -nodes that have links that connect to node :math:`i`, and -:math:`\delta_{ij}` is a function that is equal to +1 if the link points -away from the node (the tail of the link is at node :math:`i`), and -equal to -1 if the link points toward the node (the head of the link is -at node :math:`i`). The groundwater flux on the link is :math:`q_{ij}` -and the width of the face through which :math:`q_{ij}` passes is -:math:`\lambda_{ij}`. - -References: - -.. [1] Marçais, J., de Dreuzy, J. R. & Erhel, J. Dynamic coupling of subsurface and seepage flows solved within a regularized partition formulation. - Advances in Water Resources 109, 94–105 (2017). -.. [2] Childs, E. C. Drainage of Groundwater Resting on a Sloping Bed. Water Resources Research 7, 1256–1263 (1971). diff --git a/docs/source/reference/components/erosion_deposition.rst b/docs/source/reference/components/erosion_deposition.rst deleted file mode 100644 index 8f16ef59de..0000000000 --- a/docs/source/reference/components/erosion_deposition.rst +++ /dev/null @@ -1,7 +0,0 @@ -ErosionDeposition: Fluvial erosion in the style of Davy and Lague (2009) ------------------------------------------------------------------------- - -.. automodule:: landlab.components.erosion_deposition - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/fire_generator.rst b/docs/source/reference/components/fire_generator.rst deleted file mode 100644 index 38c935522d..0000000000 --- a/docs/source/reference/components/fire_generator.rst +++ /dev/null @@ -1,7 +0,0 @@ -FireGenerator: Generate random sequence of fire events ------------------------------------------------------- - -.. automodule:: landlab.components.fire_generator - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/flexure.rst b/docs/source/reference/components/flexure.rst deleted file mode 100644 index 4dba33bdae..0000000000 --- a/docs/source/reference/components/flexure.rst +++ /dev/null @@ -1,15 +0,0 @@ -Flexure: Calculate elastic lithosphere flexure under given loads (assumes uniform flexural rigidity) ----------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.flexure - :members: - :undoc-members: - :show-inheritance: - -Functions used to calculate lithospheric deflection ---------------------------------------------------- - -.. automodule:: landlab.components.flexure.funcs - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/flow_accum.rst b/docs/source/reference/components/flow_accum.rst deleted file mode 100644 index 857516d68a..0000000000 --- a/docs/source/reference/components/flow_accum.rst +++ /dev/null @@ -1,35 +0,0 @@ -FlowAccumulator: Component to do FlowAccumulation with the FlowDirectors ------------------------------------------------------------------------- - -.. automodule:: landlab.components.flow_accum.flow_accumulator - :members: - :undoc-members: - :show-inheritance: - - -LossyFlowAccumulator: Component to accumulate flow with the FlowDirectors, while water is lost or gained downstream -------------------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.flow_accum.lossy_flow_accumulator - :members: - :undoc-members: - :show-inheritance: - -Functions to support flow accumulation --------------------------------------- - -Route-to-one methods -++++++++++++++++++++ - -.. automodule:: landlab.components.flow_accum.flow_accum_bw - :members: - :undoc-members: - :show-inheritance: - -Route-to-multiple methods -+++++++++++++++++++++++++ - -.. automodule:: landlab.components.flow_accum.flow_accum_to_n - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/flow_director.rst b/docs/source/reference/components/flow_director.rst deleted file mode 100644 index 3350aa6c95..0000000000 --- a/docs/source/reference/components/flow_director.rst +++ /dev/null @@ -1,34 +0,0 @@ -The Landlab FlowDirectors: Components for Flow Direction -======================================================== - -FlowDirectorSteepest --------------------- - -.. automodule:: landlab.components.flow_director.flow_director_steepest - :members: - :undoc-members: - :show-inheritance: - -FlowDirectorD8 --------------- - -.. automodule:: landlab.components.flow_director.flow_director_d8 - :members: - :undoc-members: - :show-inheritance: - -FlowDirectorMFD ---------------- - -.. automodule:: landlab.components.flow_director.flow_director_mfd - :members: - :undoc-members: - :show-inheritance: - -FlowDirectorDinf ----------------- - -.. automodule:: landlab.components.flow_director.flow_director_dinf - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/flow_routing.rst b/docs/source/reference/components/flow_routing.rst deleted file mode 100644 index db40d458dc..0000000000 --- a/docs/source/reference/components/flow_routing.rst +++ /dev/null @@ -1,7 +0,0 @@ -DepressionFinderAndRouter: Handle depressions in terrain by calculating extent and drainage of "lakes" ------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.depression_finder - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/fracture_grid.rst b/docs/source/reference/components/fracture_grid.rst deleted file mode 100644 index de9ac4c646..0000000000 --- a/docs/source/reference/components/fracture_grid.rst +++ /dev/null @@ -1,7 +0,0 @@ -FractureGridGenerator: Generate random fracture patterns on a regular raster grid ---------------------------------------------------------------------------------- - -.. automodule:: landlab.components.fracture_grid - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/gflex.rst b/docs/source/reference/components/gflex.rst deleted file mode 100644 index 606a8160a9..0000000000 --- a/docs/source/reference/components/gflex.rst +++ /dev/null @@ -1,7 +0,0 @@ -gFlex: Compute elastic lithosphere flexure with variable rigidity ------------------------------------------------------------------ - -.. automodule:: landlab.components.gflex.flexure - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/gravel_bedrock_eroder.rst b/docs/source/reference/components/gravel_bedrock_eroder.rst deleted file mode 100644 index 36e9826b0f..0000000000 --- a/docs/source/reference/components/gravel_bedrock_eroder.rst +++ /dev/null @@ -1,7 +0,0 @@ -GravelBedrockEroder: rock incision, bed-load transport, and downstream abrasion in a river network --------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.gravel_bedrock_eroder.gravel_bedrock_eroder - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/gravel_river_transporter.rst b/docs/source/reference/components/gravel_river_transporter.rst deleted file mode 100644 index ebeafa2853..0000000000 --- a/docs/source/reference/components/gravel_river_transporter.rst +++ /dev/null @@ -1,7 +0,0 @@ -GravelRiverTransporter: bed-load transport and downstream abrasion in a network of gravel rivers ------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.gravel_river_transporter.gravel_river_transporter - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/greenampt.rst b/docs/source/reference/components/greenampt.rst deleted file mode 100644 index 1642ed9616..0000000000 --- a/docs/source/reference/components/greenampt.rst +++ /dev/null @@ -1,7 +0,0 @@ -SoilInfiltrationGreenAmpt: Model infiltration of surface water according to the Green-Ampt equation ---------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.soil_moisture.infiltrate_soil_green_ampt - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/groundwater.rst b/docs/source/reference/components/groundwater.rst deleted file mode 100644 index a495e2de85..0000000000 --- a/docs/source/reference/components/groundwater.rst +++ /dev/null @@ -1,7 +0,0 @@ -GroundwaterDupuitPercolator: model flow in a shallow unconfined aquifer using the Dupuit-Forcheimer approximation ------------------------------------------------------------------------------------------------------------------ - -.. automodule:: landlab.components.groundwater.dupuit_percolator - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/hack_calculator.rst b/docs/source/reference/components/hack_calculator.rst deleted file mode 100644 index 79985a7a74..0000000000 --- a/docs/source/reference/components/hack_calculator.rst +++ /dev/null @@ -1,7 +0,0 @@ -HackCalculator: Calculate Hack's law coefficients -------------------------------------------------- - -.. automodule:: landlab.components.hack_calculator.hack_calculator - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/hand_calculator.rst b/docs/source/reference/components/hand_calculator.rst deleted file mode 100644 index 4f1c58ce3b..0000000000 --- a/docs/source/reference/components/hand_calculator.rst +++ /dev/null @@ -1,7 +0,0 @@ -HeightAboveDrainageCalculator: Calculate height above nearest drainage ----------------------------------------------------------------------- - -.. automodule:: landlab.components.hand_calculator.hand_calculator - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/lake_fill.rst b/docs/source/reference/components/lake_fill.rst deleted file mode 100644 index 02dbda09e0..0000000000 --- a/docs/source/reference/components/lake_fill.rst +++ /dev/null @@ -1,7 +0,0 @@ -LakeMapperBarnes: Component to temporarily fill depressions and reroute flow across them -======================================================================================== - -.. automodule:: landlab.components.lake_fill - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/landslides.rst b/docs/source/reference/components/landslides.rst deleted file mode 100644 index 43cbd0dc11..0000000000 --- a/docs/source/reference/components/landslides.rst +++ /dev/null @@ -1,7 +0,0 @@ -Landslides: Compute probability of failure for shallow landslides ------------------------------------------------------------------ - -.. automodule:: landlab.components.landslides.landslide_probability - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/lateral_erosion.rst b/docs/source/reference/components/lateral_erosion.rst deleted file mode 100644 index 9ac1386f5a..0000000000 --- a/docs/source/reference/components/lateral_erosion.rst +++ /dev/null @@ -1,30 +0,0 @@ -landlab.components.lateral\_erosion package -=========================================== - -Submodules ----------- - -landlab.components.lateral\_erosion.lateral\_erosion module ------------------------------------------------------------ - -.. automodule:: landlab.components.lateral_erosion.lateral_erosion - :members: - :undoc-members: - :show-inheritance: - -landlab.components.lateral\_erosion.node\_finder module -------------------------------------------------------- - -.. automodule:: landlab.components.lateral_erosion.node_finder - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.components.lateral_erosion - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/litholayers.rst b/docs/source/reference/components/litholayers.rst deleted file mode 100644 index 5df999e3a3..0000000000 --- a/docs/source/reference/components/litholayers.rst +++ /dev/null @@ -1,7 +0,0 @@ -LithoLayers: Create a layered lithology ---------------------------------------- - -.. automodule:: landlab.components.lithology.litholayers - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/lithology.rst b/docs/source/reference/components/lithology.rst deleted file mode 100644 index 963fa7d997..0000000000 --- a/docs/source/reference/components/lithology.rst +++ /dev/null @@ -1,7 +0,0 @@ -Lithology: Create a 3D representation of variable lithology ------------------------------------------------------------ - -.. automodule:: landlab.components.lithology.lithology - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/marine_sediment_transport.rst b/docs/source/reference/components/marine_sediment_transport.rst deleted file mode 100644 index 515272b91a..0000000000 --- a/docs/source/reference/components/marine_sediment_transport.rst +++ /dev/null @@ -1,7 +0,0 @@ -SimpleSubmarineDiffuser: Calculate underwater sediment transport using water-depth-dependent diffusion ------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.marine_sediment_transport.simple_submarine_diffuser - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/network_sediment_transporter.rst b/docs/source/reference/components/network_sediment_transporter.rst deleted file mode 100644 index bf732e66e5..0000000000 --- a/docs/source/reference/components/network_sediment_transporter.rst +++ /dev/null @@ -1,7 +0,0 @@ -NetworkSedimentTransporter: Lagrangian sediment transport in a river network ----------------------------------------------------------------------------- - -.. automodule:: landlab.components.network_sediment_transporter - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/nonlinear_diffusion.rst b/docs/source/reference/components/nonlinear_diffusion.rst deleted file mode 100644 index ee1496d530..0000000000 --- a/docs/source/reference/components/nonlinear_diffusion.rst +++ /dev/null @@ -1,7 +0,0 @@ -PerronNLDiffuse: Model soil creep using implicit solution to nonlinear diffusion law ------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.nonlinear_diffusion - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/normal_fault.rst b/docs/source/reference/components/normal_fault.rst deleted file mode 100644 index ed74d1a13a..0000000000 --- a/docs/source/reference/components/normal_fault.rst +++ /dev/null @@ -1,7 +0,0 @@ -NormalFault: Vertical uplift of grid nodes based on a user-specified uplift time series ---------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.normal_fault.normal_fault - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/overland_flow.rst b/docs/source/reference/components/overland_flow.rst deleted file mode 100644 index e36c7fcec2..0000000000 --- a/docs/source/reference/components/overland_flow.rst +++ /dev/null @@ -1,47 +0,0 @@ -OverlandFlow: Model shallow water flow over topography using the numerical approximation of de Almeida ------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.overland_flow.generate_overland_flow_deAlmeida - :members: - :undoc-members: - :show-inheritance: - -OverlandFlowBates: Model shallow water flow over topography using the numerical approximation of Bates ------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.overland_flow.generate_overland_flow_Bates - :members: - :undoc-members: - :show-inheritance: - -KinematicWaveRengers --------------------- - -.. automodule:: landlab.components.overland_flow.kinematic_wave_rengers - :members: - :undoc-members: - :show-inheritance: - -KinwaveImplicitOverlandFlow ---------------------------- - -.. automodule:: landlab.components.overland_flow.generate_overland_flow_implicit_kinwave - :members: - :undoc-members: - :show-inheritance: - -KinwaveOverlandFlowModel ------------------------- - -.. automodule:: landlab.components.overland_flow.generate_overland_flow_kinwave - :members: - :undoc-members: - :show-inheritance: - -LinearDiffusionOverlandFlowRouter ---------------------------------- - -.. automodule:: landlab.components.overland_flow.linear_diffusion_overland_flow_router - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/pet.rst b/docs/source/reference/components/pet.rst deleted file mode 100644 index dca41379d1..0000000000 --- a/docs/source/reference/components/pet.rst +++ /dev/null @@ -1,7 +0,0 @@ -PotentialEvapotranspiration: Compute potential evapotranspiration ------------------------------------------------------------------ - -.. automodule:: landlab.components.pet.potential_evapotranspiration_field - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/plant_competition_ca.rst b/docs/source/reference/components/plant_competition_ca.rst deleted file mode 100644 index de04adfb18..0000000000 --- a/docs/source/reference/components/plant_competition_ca.rst +++ /dev/null @@ -1,7 +0,0 @@ -VegCA: Simulate plant competition with cellular automaton model for grass, shrubs, and trees --------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.plant_competition_ca.plant_competition_ca - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/potentiality_flowrouting.rst b/docs/source/reference/components/potentiality_flowrouting.rst deleted file mode 100644 index 7e85f2ab36..0000000000 --- a/docs/source/reference/components/potentiality_flowrouting.rst +++ /dev/null @@ -1,7 +0,0 @@ -PotentialityFlowRouter: Find flow directions and accumulation using potential-field theory ------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.potentiality_flowrouting - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/priority_flood_flow_router.rst b/docs/source/reference/components/priority_flood_flow_router.rst deleted file mode 100644 index cc9d6cf7b1..0000000000 --- a/docs/source/reference/components/priority_flood_flow_router.rst +++ /dev/null @@ -1,8 +0,0 @@ -PriorityFloodFlowRouter: Accumulate flow and calculate drainage area using RICHDEM ----------------------------------------------------------------------------------- - - -.. automodule:: landlab.components.priority_flood_flow_router.priority_flood_flow_router - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/profile.rst b/docs/source/reference/components/profile.rst deleted file mode 100644 index 6f90e51b16..0000000000 --- a/docs/source/reference/components/profile.rst +++ /dev/null @@ -1,7 +0,0 @@ -Profiler: Create and plot profiles ----------------------------------- - -.. automodule:: landlab.components.profiler.profiler - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/radiation.rst b/docs/source/reference/components/radiation.rst deleted file mode 100644 index 7804386a69..0000000000 --- a/docs/source/reference/components/radiation.rst +++ /dev/null @@ -1,7 +0,0 @@ -Radiation: Calculate solar radiation on topography given latitude, date, and time ---------------------------------------------------------------------------------- - -.. automodule:: landlab.components.radiation.radiation - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/sink_fill.rst b/docs/source/reference/components/sink_fill.rst deleted file mode 100644 index 7399e59049..0000000000 --- a/docs/source/reference/components/sink_fill.rst +++ /dev/null @@ -1,12 +0,0 @@ -SinkFiller: Permanently fill pits in a topography -================================================= - -.. automodule:: landlab.components.sink_fill.sink_fill_barnes - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: landlab.components.sink_fill.fill_sinks - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/soil_moisture.rst b/docs/source/reference/components/soil_moisture.rst deleted file mode 100644 index 46e4bb71e2..0000000000 --- a/docs/source/reference/components/soil_moisture.rst +++ /dev/null @@ -1,7 +0,0 @@ -SoilMoisture: Compute the decay of soil moisture saturation at storm-interstorm time period -------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.soil_moisture.soil_moisture_dynamics - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/space.rst b/docs/source/reference/components/space.rst deleted file mode 100644 index 707f335c5b..0000000000 --- a/docs/source/reference/components/space.rst +++ /dev/null @@ -1,20 +0,0 @@ -Stream Power with Alluvium Conservation and Entrainment -======================================================= - - -Space: Stream Power with Alluvium Conservation and Entrainment --------------------------------------------------------------- - -.. automodule:: landlab.components.space.space - :members: - :undoc-members: - :show-inheritance: - - -SpaceLargeScaleEroder: SPACE large-scale eroder ------------------------------------------------ - -.. automodule:: landlab.components.space.space_large_scale_eroder - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/spatial_precip.rst b/docs/source/reference/components/spatial_precip.rst deleted file mode 100644 index 404416a935..0000000000 --- a/docs/source/reference/components/spatial_precip.rst +++ /dev/null @@ -1,7 +0,0 @@ -SpatialPrecipitationDistribution: Generate random sequence of spatially-resolved precipitation events ------------------------------------------------------------------------------------------------------ - -.. automodule:: landlab.components.spatial_precip - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/species_evolution.rst b/docs/source/reference/components/species_evolution.rst deleted file mode 100644 index 05ffe89bed..0000000000 --- a/docs/source/reference/components/species_evolution.rst +++ /dev/null @@ -1,26 +0,0 @@ -Species Evolution -================= - -SpeciesEvolver: Component to evolve life in a landscape -------------------------------------------------------- - -.. automodule:: landlab.components.species_evolution.species_evolver - :members: - :undoc-members: - :show-inheritance: - -ZoneController: Control zones and populates them with taxa ----------------------------------------------------------- - -.. automodule:: landlab.components.species_evolution.zone_controller - :members: - :undoc-members: - :show-inheritance: - -ZoneTaxon: A zone-based taxon ------------------------------ - -.. automodule:: landlab.components.species_evolution.zone_taxon - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/steepness_index.rst b/docs/source/reference/components/steepness_index.rst deleted file mode 100644 index a87b483aef..0000000000 --- a/docs/source/reference/components/steepness_index.rst +++ /dev/null @@ -1,7 +0,0 @@ -SteepnessFinder: Calcuate steepness and concavity indices from gridded topography ---------------------------------------------------------------------------------- - -.. automodule:: landlab.components.steepness_index - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/stream_power.rst b/docs/source/reference/components/stream_power.rst deleted file mode 100644 index 6870d31576..0000000000 --- a/docs/source/reference/components/stream_power.rst +++ /dev/null @@ -1,31 +0,0 @@ -FastscapeEroder: Compute fluvial erosion using stream power theory ("fastscape" algorithm) ------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.stream_power.fastscape_stream_power - :members: - :undoc-members: - :show-inheritance: - -StreamPower: Compute fluvial erosion using stream power theory (also uses "fastscape" algorithm but provides slightly different formulation and options) --------------------------------------------------------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.stream_power.stream_power - :members: - :undoc-members: - :show-inheritance: - -SedDepEroder: Compute fluvial erosion using using "tools and cover" theory --------------------------------------------------------------------------- - -.. automodule:: landlab.components.stream_power.sed_flux_dep_incision - :members: - :undoc-members: - :show-inheritance: - -StreamPowerSmoothThresholdEroder: Compute fluvial erosion using stream power theory with a numerically smoothed threshold -------------------------------------------------------------------------------------------------------------------------- - - .. automodule:: landlab.components.stream_power.stream_power_smooth_threshold - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/taylor_nonlinear_hillslope_flux.rst b/docs/source/reference/components/taylor_nonlinear_hillslope_flux.rst deleted file mode 100644 index db77dec014..0000000000 --- a/docs/source/reference/components/taylor_nonlinear_hillslope_flux.rst +++ /dev/null @@ -1,7 +0,0 @@ -TaylorNonLinearDiffuser: Model non-linear soil creep after Ganti et al. (2013) ------------------------------------------------------------------------------- - -.. automodule:: landlab.components.taylor_nonlinear_hillslope_flux - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/tectonics.rst b/docs/source/reference/components/tectonics.rst deleted file mode 100644 index 52c7af2347..0000000000 --- a/docs/source/reference/components/tectonics.rst +++ /dev/null @@ -1,7 +0,0 @@ -ListricKinematicExtender: Simulate Extensional Tectonic Motion on a Listric Fault Plane ---------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.tectonics.listric_kinematic_extender - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/threshold_eroder.rst b/docs/source/reference/components/threshold_eroder.rst deleted file mode 100644 index 4d7f3d43fe..0000000000 --- a/docs/source/reference/components/threshold_eroder.rst +++ /dev/null @@ -1,7 +0,0 @@ -ThresholdEroder: Threshold eroder that cuts off slopes at a given threshold slope (Sc) and assumes material to dissolve away ------------------------------------------------------------------------------------------------------------------------------ - -.. automodule:: landlab.components.threshold_eroder.threshold_eroder - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/tidal_flow.rst b/docs/source/reference/components/tidal_flow.rst deleted file mode 100644 index ede72c35ac..0000000000 --- a/docs/source/reference/components/tidal_flow.rst +++ /dev/null @@ -1,7 +0,0 @@ -TidalFlowCalculator: Calculate cycle-averaged tidal flow velocity using method of Mariotti (2018) -------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.tidal_flow.tidal_flow_calculator - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/transport_length_diffusion.rst b/docs/source/reference/components/transport_length_diffusion.rst deleted file mode 100644 index f6f40bfcc7..0000000000 --- a/docs/source/reference/components/transport_length_diffusion.rst +++ /dev/null @@ -1,7 +0,0 @@ -TransportLengthHillslopeDiffuser: Hillslope diffusion component in the style of Carretier et al. (2016), and Davy and Lague (2009) ----------------------------------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.transport_length_diffusion - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/trickle_down_profiler.rst b/docs/source/reference/components/trickle_down_profiler.rst deleted file mode 100644 index 99aee340a8..0000000000 --- a/docs/source/reference/components/trickle_down_profiler.rst +++ /dev/null @@ -1,7 +0,0 @@ -TrickleDownProfiler: Create and plot trickle down profiles ----------------------------------------------------------- - -.. automodule:: landlab.components.profiler.trickle_down_profiler - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/uniform_precip.rst b/docs/source/reference/components/uniform_precip.rst deleted file mode 100644 index d0c5a794a5..0000000000 --- a/docs/source/reference/components/uniform_precip.rst +++ /dev/null @@ -1,7 +0,0 @@ -PrecipitationDistribution: Generate random sequence of precipitation events ---------------------------------------------------------------------------- - -.. automodule:: landlab.components.uniform_precip - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/vegetation_dynamics.rst b/docs/source/reference/components/vegetation_dynamics.rst deleted file mode 100644 index bafb717ebb..0000000000 --- a/docs/source/reference/components/vegetation_dynamics.rst +++ /dev/null @@ -1,7 +0,0 @@ -Vegetation: Model plant dynamics using multiple representative plant species ----------------------------------------------------------------------------- - -.. automodule:: landlab.components.vegetation_dynamics.vegetation_dynamics - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/components/weathering.rst b/docs/source/reference/components/weathering.rst deleted file mode 100644 index 5b4b961403..0000000000 --- a/docs/source/reference/components/weathering.rst +++ /dev/null @@ -1,15 +0,0 @@ -ExponentialWeatherer: exponential soil production function in the style of Ahnert (1976) ----------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.weathering.exponential_weathering - :members: - :undoc-members: - :show-inheritance: - -ExponentialWeathererIntegrated: exponential soil production function in the style of Ahnert (1976) integrated in dt -------------------------------------------------------------------------------------------------------------------- - -.. automodule:: landlab.components.weathering.exponential_weathering_integrated - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/core/index.rst b/docs/source/reference/core/index.rst deleted file mode 100644 index d77eb7de05..0000000000 --- a/docs/source/reference/core/index.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. _api.core: - -==================== -Core Landlab Classes -==================== - -landlab.core.messages module ----------------------------- - -.. automodule:: landlab.core.messages - :members: - :undoc-members: - :show-inheritance: - -landlab.core.model\_component module ------------------------------------- - -.. automodule:: landlab.core.model_component - :members: - :undoc-members: - :show-inheritance: - -landlab.core.model\_parameter\_loader module --------------------------------------------- - -.. automodule:: landlab.core.model_parameter_loader - :members: - :undoc-members: - :show-inheritance: - -landlab.core.utils module -------------------------- - -.. automodule:: landlab.core.utils - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.core - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/datarecord/index.rst b/docs/source/reference/datarecord/index.rst deleted file mode 100644 index a8ab6d0e5b..0000000000 --- a/docs/source/reference/datarecord/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _api.data_record: - -=========== -Data Record -=========== - -.. automodule:: landlab.data_record.data_record - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/field/index.rst b/docs/source/reference/field/index.rst deleted file mode 100644 index a02c334655..0000000000 --- a/docs/source/reference/field/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _api.field: - -============== -Landlab Fields -============== - -Submodules ----------- - -landlab.field.graph\_field module ---------------------------------- - -.. automodule:: landlab.field.graph_field - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/framework/index.rst b/docs/source/reference/framework/index.rst deleted file mode 100644 index 4563c925ef..0000000000 --- a/docs/source/reference/framework/index.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. _api.framework: - -================= -Landlab Framework -================= - -Submodules ----------- - -landlab.framework.component module ----------------------------------- - -.. automodule:: landlab.framework.component - :members: - :undoc-members: - :show-inheritance: - -landlab.framework.decorators module ------------------------------------ - -.. automodule:: landlab.framework.decorators - :members: - :undoc-members: - :show-inheritance: - -landlab.framework.interfaces module ------------------------------------ - -.. automodule:: landlab.framework.interfaces - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.framework - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/dual_icosphere.rst b/docs/source/reference/graph/dual_icosphere.rst deleted file mode 100644 index bd40fe8918..0000000000 --- a/docs/source/reference/graph/dual_icosphere.rst +++ /dev/null @@ -1,36 +0,0 @@ -landlab.graph.quasi_spherical package -===================================== - -Subpackages ------------ - -.. toctree:: - - - -Submodules ----------- - -landlab.graph.quasi_spherical.dual_icosphere module ---------------------------------------------------- - -.. automodule:: landlab.graph.quasi_spherical.dual_icosphere - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.quasi_spherical.refinable_icosahedron module ----------------------------------------------------------- - -.. automodule:: landlab.graph.quasi_spherical.refinable_icosahedron - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: landlab.graph.quasi_spherical - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/framed_voronoi.rst b/docs/source/reference/graph/framed_voronoi.rst deleted file mode 100644 index 795c2d1894..0000000000 --- a/docs/source/reference/graph/framed_voronoi.rst +++ /dev/null @@ -1,36 +0,0 @@ -landlab.graph.framed_voronoi package -==================================== - -Subpackages ------------ - -.. toctree:: - - - -Submodules ----------- - -landlab.graph.framed_voronoi.dual_framed_voronoi module -------------------------------------------------------- - -.. automodule:: landlab.graph.framed_voronoi.dual_framed_voronoi - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.framed_voronoi.framed_voronoi module --------------------------------------------------- - -.. automodule:: landlab.graph.framed_voronoi.framed_voronoi - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: landlab.graph.framed_voronoi - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/hex.rst b/docs/source/reference/graph/hex.rst deleted file mode 100644 index 4ee8585a15..0000000000 --- a/docs/source/reference/graph/hex.rst +++ /dev/null @@ -1,37 +0,0 @@ -landlab.graph.hex package -========================= - -Subpackages ------------ - -.. toctree:: - - hex_ext - -Submodules ----------- - -landlab.graph.hex.dual_hex module ---------------------------------- - -.. automodule:: landlab.graph.hex.dual_hex - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.hex.hex module ----------------------------- - -.. automodule:: landlab.graph.hex.hex - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.hex - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/hex_ext.rst b/docs/source/reference/graph/hex_ext.rst deleted file mode 100644 index 5ac891e353..0000000000 --- a/docs/source/reference/graph/hex_ext.rst +++ /dev/null @@ -1,22 +0,0 @@ -landlab.graph.hex.ext package -============================= - -Submodules ----------- - -landlab.graph.hex.ext.hex module --------------------------------- - -.. automodule:: landlab.graph.hex.ext.hex - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.hex.ext - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/index.rst b/docs/source/reference/graph/index.rst deleted file mode 100644 index 04d2e7e241..0000000000 --- a/docs/source/reference/graph/index.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. _api.graph: - -============= -Landlab Graph -============= - -.. toctree:: - :maxdepth: 2 - - - hex - matrix - object - quantity - radial - sort - structured_quad - voronoi - framed_voronoi - dual_icosphere - - -Extensions ----------- - -.. toctree:: - :maxdepth: 2 - - hex_ext - matrix_ext - object_ext - quantity_ext - sort_ext - structured_quad_ext - voronoi_ext diff --git a/docs/source/reference/graph/matrix.rst b/docs/source/reference/graph/matrix.rst deleted file mode 100644 index c364bc2406..0000000000 --- a/docs/source/reference/graph/matrix.rst +++ /dev/null @@ -1,37 +0,0 @@ -landlab.graph.matrix package -============================ - -Subpackages ------------ - -.. toctree:: - - matrix_ext - -Submodules ----------- - -landlab.graph.matrix.at_node module ------------------------------------ - -.. automodule:: landlab.graph.matrix.at_node - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.matrix.at_patch module ------------------------------------- - -.. automodule:: landlab.graph.matrix.at_patch - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.matrix - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/matrix_ext.rst b/docs/source/reference/graph/matrix_ext.rst deleted file mode 100644 index bc59a0279c..0000000000 --- a/docs/source/reference/graph/matrix_ext.rst +++ /dev/null @@ -1,30 +0,0 @@ -landlab.graph.matrix.ext package -================================ - -Submodules ----------- - -landlab.graph.matrix.ext.at_patch module ----------------------------------------- - -.. automodule:: landlab.graph.matrix.ext.at_patch - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.matrix.ext.matrix module --------------------------------------- - -.. automodule:: landlab.graph.matrix.ext.matrix - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.matrix.ext - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/object.rst b/docs/source/reference/graph/object.rst deleted file mode 100644 index c556458883..0000000000 --- a/docs/source/reference/graph/object.rst +++ /dev/null @@ -1,37 +0,0 @@ -landlab.graph.object package -============================ - -Subpackages ------------ - -.. toctree:: - - object_ext - -Submodules ----------- - -landlab.graph.object.at_node module ------------------------------------ - -.. automodule:: landlab.graph.object.at_node - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.object.at_patch module ------------------------------------- - -.. automodule:: landlab.graph.object.at_patch - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.object - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/object_ext.rst b/docs/source/reference/graph/object_ext.rst deleted file mode 100644 index 97eec22552..0000000000 --- a/docs/source/reference/graph/object_ext.rst +++ /dev/null @@ -1,30 +0,0 @@ -landlab.graph.object.ext package -================================ - -Submodules ----------- - -landlab.graph.object.ext.at_node module ---------------------------------------- - -.. automodule:: landlab.graph.object.ext.at_node - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.object.ext.at_patch module ----------------------------------------- - -.. automodule:: landlab.graph.object.ext.at_patch - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.object.ext - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/quantity.rst b/docs/source/reference/graph/quantity.rst deleted file mode 100644 index c68dc769e8..0000000000 --- a/docs/source/reference/graph/quantity.rst +++ /dev/null @@ -1,37 +0,0 @@ -landlab.graph.quantity package -============================== - -Subpackages ------------ - -.. toctree:: - - quantity_ext - -Submodules ----------- - -landlab.graph.quantity.of_link module -------------------------------------- - -.. automodule:: landlab.graph.quantity.of_link - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.quantity.of_patch module --------------------------------------- - -.. automodule:: landlab.graph.quantity.of_patch - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.quantity - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/quantity_ext.rst b/docs/source/reference/graph/quantity_ext.rst deleted file mode 100644 index 4148e7223e..0000000000 --- a/docs/source/reference/graph/quantity_ext.rst +++ /dev/null @@ -1,30 +0,0 @@ -landlab.graph.quantity.ext package -================================== - -Submodules ----------- - -landlab.graph.quantity.ext.of_link module ------------------------------------------ - -.. automodule:: landlab.graph.quantity.ext.of_link - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.quantity.ext.of_patch module ------------------------------------------- - -.. automodule:: landlab.graph.quantity.ext.of_patch - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.quantity.ext - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/radial.rst b/docs/source/reference/graph/radial.rst deleted file mode 100644 index 7f579b8213..0000000000 --- a/docs/source/reference/graph/radial.rst +++ /dev/null @@ -1,30 +0,0 @@ -landlab.graph.radial package -============================ - -Submodules ----------- - -landlab.graph.radial.dual_radial module ---------------------------------------- - -.. automodule:: landlab.graph.radial.dual_radial - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.radial.radial module ----------------------------------- - -.. automodule:: landlab.graph.radial.radial - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.radial - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/sort.rst b/docs/source/reference/graph/sort.rst deleted file mode 100644 index 683879ff5f..0000000000 --- a/docs/source/reference/graph/sort.rst +++ /dev/null @@ -1,29 +0,0 @@ -landlab.graph.sort package -========================== - -Subpackages ------------ - -.. toctree:: - - sort_ext - -Submodules ----------- - -landlab.graph.sort.sort module ------------------------------- - -.. automodule:: landlab.graph.sort.sort - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.sort - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/sort_ext.rst b/docs/source/reference/graph/sort_ext.rst deleted file mode 100644 index f92f67f454..0000000000 --- a/docs/source/reference/graph/sort_ext.rst +++ /dev/null @@ -1,38 +0,0 @@ -landlab.graph.sort.ext package -============================== - -Submodules ----------- - -landlab.graph.sort.ext.argsort module -------------------------------------- - -.. automodule:: landlab.graph.sort.ext.argsort - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.sort.ext.remap_element module -------------------------------------------- - -.. automodule:: landlab.graph.sort.ext.remap_element - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.sort.ext.spoke_sort module ----------------------------------------- - -.. automodule:: landlab.graph.sort.ext.spoke_sort - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.sort.ext - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/structured_quad.rst b/docs/source/reference/graph/structured_quad.rst deleted file mode 100644 index da9975cee0..0000000000 --- a/docs/source/reference/graph/structured_quad.rst +++ /dev/null @@ -1,37 +0,0 @@ -landlab.graph.structured_quad package -===================================== - -Subpackages ------------ - -.. toctree:: - - structured_quad_ext - -Submodules ----------- - -landlab.graph.structured_quad.dual_structured_quad module ---------------------------------------------------------- - -.. automodule:: landlab.graph.structured_quad.dual_structured_quad - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.structured_quad.structured_quad module ----------------------------------------------------- - -.. automodule:: landlab.graph.structured_quad.structured_quad - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.structured_quad - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/structured_quad_ext.rst b/docs/source/reference/graph/structured_quad_ext.rst deleted file mode 100644 index af701cea25..0000000000 --- a/docs/source/reference/graph/structured_quad_ext.rst +++ /dev/null @@ -1,54 +0,0 @@ -landlab.graph.structured_quad.ext package -========================================= - -Submodules ----------- - -landlab.graph.structured_quad.ext.at_cell module ------------------------------------------------- - -.. automodule:: landlab.graph.structured_quad.ext.at_cell - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.structured_quad.ext.at_face module ------------------------------------------------- - -.. automodule:: landlab.graph.structured_quad.ext.at_face - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.structured_quad.ext.at_link module ------------------------------------------------- - -.. automodule:: landlab.graph.structured_quad.ext.at_link - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.structured_quad.ext.at_node module ------------------------------------------------- - -.. automodule:: landlab.graph.structured_quad.ext.at_node - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.structured_quad.ext.at_patch module -------------------------------------------------- - -.. automodule:: landlab.graph.structured_quad.ext.at_patch - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.structured_quad.ext - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/voronoi.rst b/docs/source/reference/graph/voronoi.rst deleted file mode 100644 index 5981596e61..0000000000 --- a/docs/source/reference/graph/voronoi.rst +++ /dev/null @@ -1,36 +0,0 @@ -landlab.graph.voronoi package -============================= - -Subpackages ------------ - -.. toctree:: - - voronoi_ext - -Submodules ----------- - -landlab.graph.voronoi.dual_voronoi module ------------------------------------------ - -.. automodule:: landlab.graph.voronoi.dual_voronoi - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.voronoi.voronoi module ------------------------------------- - -.. automodule:: landlab.graph.voronoi.voronoi - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: landlab.graph.voronoi - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/graph/voronoi_ext.rst b/docs/source/reference/graph/voronoi_ext.rst deleted file mode 100644 index 457c5a4660..0000000000 --- a/docs/source/reference/graph/voronoi_ext.rst +++ /dev/null @@ -1,30 +0,0 @@ -landlab.graph.voronoi.ext package -================================= - -Submodules ----------- - -landlab.graph.voronoi.ext.delaunay module ------------------------------------------ - -.. automodule:: landlab.graph.voronoi.ext.delaunay - :members: - :undoc-members: - :show-inheritance: - -landlab.graph.voronoi.ext.voronoi module ----------------------------------------- - -.. automodule:: landlab.graph.voronoi.ext.voronoi - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.graph.voronoi.ext - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/base.rst b/docs/source/reference/grid/base.rst deleted file mode 100644 index 6bec320f99..0000000000 --- a/docs/source/reference/grid/base.rst +++ /dev/null @@ -1,8 +0,0 @@ -API for landlab.grid.base -------------------------- - -.. automodule:: landlab.grid.base - :members: - :undoc-members: - :inherited-members: - :show-inheritance: diff --git a/docs/source/reference/grid/create.rst b/docs/source/reference/grid/create.rst deleted file mode 100644 index 04cc7f87a5..0000000000 --- a/docs/source/reference/grid/create.rst +++ /dev/null @@ -1,7 +0,0 @@ -Grid creation from a formatted input file ------------------------------------------ - -.. automodule:: landlab.grid.create - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/decorators.rst b/docs/source/reference/grid/decorators.rst deleted file mode 100644 index 7743e0c906..0000000000 --- a/docs/source/reference/grid/decorators.rst +++ /dev/null @@ -1,7 +0,0 @@ -Function/method decorators --------------------------- - -.. automodule:: landlab.grid.decorators - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/diagonals.rst b/docs/source/reference/grid/diagonals.rst deleted file mode 100644 index f9fd736cc0..0000000000 --- a/docs/source/reference/grid/diagonals.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.grid.diagonals module ------------------------------ - -.. automodule:: landlab.grid.diagonals - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/divergence.rst b/docs/source/reference/grid/divergence.rst deleted file mode 100644 index bd36ac9ff5..0000000000 --- a/docs/source/reference/grid/divergence.rst +++ /dev/null @@ -1,7 +0,0 @@ -Divergence calculation functions --------------------------------- - -.. automodule:: landlab.grid.divergence - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/framed_voronoi.rst b/docs/source/reference/grid/framed_voronoi.rst deleted file mode 100644 index 357ba11ecb..0000000000 --- a/docs/source/reference/grid/framed_voronoi.rst +++ /dev/null @@ -1,7 +0,0 @@ -API for landlab.grid.framed_voronoi ------------------------------------ - -.. automodule:: landlab.grid.framed_voronoi - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/gradients.rst b/docs/source/reference/grid/gradients.rst deleted file mode 100644 index 67bdfe1e6a..0000000000 --- a/docs/source/reference/grid/gradients.rst +++ /dev/null @@ -1,7 +0,0 @@ -Gradient calculators --------------------- - -.. automodule:: landlab.grid.gradients - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/grid_funcs.rst b/docs/source/reference/grid/grid_funcs.rst deleted file mode 100644 index 424f23dbdd..0000000000 --- a/docs/source/reference/grid/grid_funcs.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.grid.grid\_funcs module -------------------------------- - -.. automodule:: landlab.grid.grid_funcs - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/hex.rst b/docs/source/reference/grid/hex.rst deleted file mode 100644 index d2fea90c21..0000000000 --- a/docs/source/reference/grid/hex.rst +++ /dev/null @@ -1,8 +0,0 @@ -API for landlab.grid.hex ------------------------- - -.. automodule:: landlab.grid.hex - :members: - :undoc-members: - :show-inheritance: - :inherited-members: diff --git a/docs/source/reference/grid/icosphere.rst b/docs/source/reference/grid/icosphere.rst deleted file mode 100644 index bdb62e403f..0000000000 --- a/docs/source/reference/grid/icosphere.rst +++ /dev/null @@ -1,8 +0,0 @@ -API for landlab.grid.icosphere ------------------------------- - -.. automodule:: landlab.grid.icosphere - :members: - :undoc-members: - :show-inheritance: - :inherited-members: diff --git a/docs/source/reference/grid/index.rst b/docs/source/reference/grid/index.rst deleted file mode 100644 index 3669bc1868..0000000000 --- a/docs/source/reference/grid/index.rst +++ /dev/null @@ -1,71 +0,0 @@ -.. _api.grid: - -============= -Landlab Grids -============= - -Grid types ----------- - -Landlab presently supports seven types of grids. The base class is ``ModelGrid`` -with subclasses ``RasterModelGrid``, ``VoronoiDelaunayGrid``, and ``IcosphereGlobalGrid``. -``VoronoiDelaunayGrid`` has three further specialized subclasses: ``FramedVoronoiGrid``, -``HexModelGrid`` and ``RadialModelGrid``. A final class is ``NetworkModelGrid``. - -The following is an introduction to their properties and methods: - -.. toctree:: - :maxdepth: 1 - - raster - voronoi - framed_voronoi - hex - radial - network - icosphere - - -Additional Methods and Properties ---------------------------------- - -.. toctree:: - :maxdepth: 1 - - base - create - decorators - diagonals - divergence - gradients - grid_funcs - link_status - mappers - nodestatus - raster_aspect - raster_funcs - raster_gradients - raster_mappers - raster_set_status - warnings - -API for each grid type ----------------------- -.. toctree:: - :maxdepth: 1 - - base - raster - voronoi - framed_voronoi - hex - radial - network - icosphere - -Additional Grid Base Classes ----------------------------- - -.. toctree:: - - unstructured diff --git a/docs/source/reference/grid/link_status.rst b/docs/source/reference/grid/link_status.rst deleted file mode 100644 index 346301038e..0000000000 --- a/docs/source/reference/grid/link_status.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.grid.linkstatus module ------------------------------- - -.. automodule:: landlab.grid.linkstatus - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/mappers.rst b/docs/source/reference/grid/mappers.rst deleted file mode 100644 index feaa4c9375..0000000000 --- a/docs/source/reference/grid/mappers.rst +++ /dev/null @@ -1,7 +0,0 @@ -Mapping data between different grid elements --------------------------------------------- - -.. automodule:: landlab.grid.mappers - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/network.rst b/docs/source/reference/grid/network.rst deleted file mode 100644 index 967c078f8f..0000000000 --- a/docs/source/reference/grid/network.rst +++ /dev/null @@ -1,8 +0,0 @@ -API for landlab.grid.network ----------------------------- - -.. automodule:: landlab.grid.network - :members: - :undoc-members: - :show-inheritance: - :inherited-members: diff --git a/docs/source/reference/grid/nodestatus.rst b/docs/source/reference/grid/nodestatus.rst deleted file mode 100644 index 437702a986..0000000000 --- a/docs/source/reference/grid/nodestatus.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.grid.nodestatus module ------------------------------- - -.. automodule:: landlab.grid.nodestatus - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/radial.rst b/docs/source/reference/grid/radial.rst deleted file mode 100644 index 3df2470659..0000000000 --- a/docs/source/reference/grid/radial.rst +++ /dev/null @@ -1,8 +0,0 @@ -API for landlab.grid.radial ---------------------------- - -.. automodule:: landlab.grid.radial - :members: - :undoc-members: - :show-inheritance: - :inherited-members: diff --git a/docs/source/reference/grid/raster.rst b/docs/source/reference/grid/raster.rst deleted file mode 100644 index 5079c84d76..0000000000 --- a/docs/source/reference/grid/raster.rst +++ /dev/null @@ -1,8 +0,0 @@ -API for landlab.grid.raster ---------------------------- - -.. automodule:: landlab.grid.raster - :members: - :undoc-members: - :show-inheritance: - :inherited-members: diff --git a/docs/source/reference/grid/raster_aspect.rst b/docs/source/reference/grid/raster_aspect.rst deleted file mode 100644 index f4ad8f2053..0000000000 --- a/docs/source/reference/grid/raster_aspect.rst +++ /dev/null @@ -1,7 +0,0 @@ -Slope-aspect calculation functions ----------------------------------- - -.. automodule:: landlab.grid.raster_aspect - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/raster_funcs.rst b/docs/source/reference/grid/raster_funcs.rst deleted file mode 100644 index cb56a3a5ac..0000000000 --- a/docs/source/reference/grid/raster_funcs.rst +++ /dev/null @@ -1,7 +0,0 @@ -Miscellaneous raster-grid functions ------------------------------------ - - .. automodule:: landlab.grid.raster_funcs - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/raster_gradients.rst b/docs/source/reference/grid/raster_gradients.rst deleted file mode 100644 index d5a40e5f99..0000000000 --- a/docs/source/reference/grid/raster_gradients.rst +++ /dev/null @@ -1,7 +0,0 @@ -Gradient calculation functions ----------------------------------- - -.. automodule:: landlab.grid.raster_gradients - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/raster_mappers.rst b/docs/source/reference/grid/raster_mappers.rst deleted file mode 100644 index 10aba9f04c..0000000000 --- a/docs/source/reference/grid/raster_mappers.rst +++ /dev/null @@ -1,7 +0,0 @@ -Mapping data between different grid elements --------------------------------------------- - -.. automodule:: landlab.grid.raster_mappers - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/raster_set_status.rst b/docs/source/reference/grid/raster_set_status.rst deleted file mode 100644 index afb61b4e5b..0000000000 --- a/docs/source/reference/grid/raster_set_status.rst +++ /dev/null @@ -1,7 +0,0 @@ -Boundary handling for grid edges ----------------------------------- - -.. automodule:: landlab.grid.raster_set_status - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/text_for_framed_voronoi.py.txt b/docs/source/reference/grid/text_for_framed_voronoi.py.txt deleted file mode 100644 index 3d0b88bec4..0000000000 --- a/docs/source/reference/grid/text_for_framed_voronoi.py.txt +++ /dev/null @@ -1,223 +0,0 @@ -.. - NOTE: The files `landlab.grid.[base|raster|voronoi|radial|hex].rst` are all - *AUTOGENERATED* from the files `text_for_XXXX.py.txt`! All changes to the - rst files will be PERMANENTLY LOST whenever the documentation is updated. - Make changes directly to the txt files instead. - -.. _FramedVoronoi: - -=================== -FramedVoronoiGrid -=================== - -General class methods and attributes of the `landlab.grid.framed_voronoi` module --------------------------------------------------------------------------------- - -Landlab's partly unstructured, irregular grids are implemented by the class -`FramedVoronoiGrid`, which inherits from `ModelGrid`. These grids differ -from fully unstructured grids, which are implemented by the class -`VoronoiDelaunayGrid`. They are constructed from an initial structured and -regular grid. Then, the coordinates of the cores are randomly displaced. -Displacement is limited to a threshold so that core nodes have a minimal -distance, which is necessary to run incision and diffusion processes. -The perimeter nodes are fixed, and this way are determined in an exhaustive -way (which is not currently possible with the `VoronoiDelaunayGrid`. -This text lists grid methods available for the class: - -Getting Information about a Grid --------------------------------- -The following attributes, properties, and methods provide data about the grid, -its geometry, and the connectivity among the various elements. Each grid -element has an ID number, which is also its position in an array that -contains information about that type of element. For example, the *x* -coordinate of node 5 would be found at `grid.node_x[5]`. - -The naming of grid-element arrays is *attribute*`_at_`*element*, where -*attribute* is the name of the data in question, and *element* is the element -to which the attribute applies. For example, the property `node_at_cell` -contains the ID of the node associated with each cell. For example, -`node_at_cell[3]` contains the *node ID* of the node associated with cell 3. -The *attribute* is singular if there is only one value per element; for -example, there is only one node associated with each cell. It is plural when -there are multiple values per element; for example, the `faces_at_cell` array -contains multiple faces for each cell. Exceptions to these general rules are -functions that return indices of a subset of all elements of a particular type. -For example, you can obtain an array with IDs of only the core nodes using -`core_nodes`, while `active_links` provides an array of IDs of active links -(only). Finally, attributes that represent a measurement of something, such as -the length of a link or the surface area of a cell, are described using `_of_`, -as in the example `area_of_cell`. - -Information about the grid as a whole -+++++++++++++++++++++++++++++++++++++ - -LLCATKEY: GINF -Information about nodes -+++++++++++++++++++++++ - -LLCATKEY: NINF -Information about links -+++++++++++++++++++++++ - -LLCATKEY: LINF -Information about cells -+++++++++++++++++++++++ - -LLCATKEY: CINF -Information about faces -+++++++++++++++++++++++ - -LLCATKEY: FINF -Information about patches -+++++++++++++++++++++++++ - -LLCATKEY: PINF -Information about corners -+++++++++++++++++++++++++ - -LLCATKEY: CNINF - -Data Fields in ModelGrid ------------------------- -:class:`~.ModelGrid` inherits from the :class:`~.GraphFields` class. This -provides `~.ModelGrid`, and its subclasses, with the ability to, optionally, -store data values that are associated with the different types grid elements -(nodes, cells, etc.). In particular, as part of ``ModelGrid.__init__()``, -data field *groups* are added to the `ModelGrid` that provide containers to -put data fields into. There is one group for each of the eight grid elements -(node, cell, link, face, core_node, core_cell, active_link, and active_face). - -To access these groups, use the same methods as accessing groups with -`~.GraphFields`. ``ModelGrid.__init__()`` adds the following attributes to -itself that provide access to the values groups: - -.. autosummary:: - :nosignatures: - - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.at_node - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.at_cell - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.at_link - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.at_face - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.at_patch - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.at_corner - -Each of these attributes returns a ``dict``-like object whose keys are value -names as strings and values are numpy arrays that gives quantities at -grid elements. - - -Create Field Arrays -+++++++++++++++++++ -:class:`~.ModelGrid` inherits several useful methods for creating new data -fields and adding new data fields to a ModelGrid instance. Methods to add or -create a new data array follow the ``numpy`` syntax for creating arrays. The -folowing methods create and, optionally, initialize new arrays. These arrays -are of the correct size but a new field will not be added to the field: - -.. autosummary:: - :nosignatures: - - ~landlab.field.graph_field.GraphFields.empty - ~landlab.field.graph_field.GraphFields.ones - ~landlab.field.graph_field.GraphFields.zeros - -Add Fields to a ModelGrid -+++++++++++++++++++++++++ -Unlike with the equivalent numpy functions, these do not take a size argument -as the size of the returned arrays is determined from the size of the -ModelGrid. However, the keyword arguments are the same as those of the numpy -equivalents. - -The following methods will create a new array and add a reference to that -array to the ModelGrid: - -.. autosummary:: - :nosignatures: - - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.add_empty - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.add_field - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.add_ones - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.add_zeros - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.delete_field - -These methods operate in the same way as the previous set except that, in -addition to creating a new array, the newly-created array is added to the -ModelGrid. The calling signature is the same but with the addition of an -argument that gives the name of the new field as a string. The additional -method, :meth:`~.GraphFields.add_field`, adds a previously allocation -array to the ModelGrid. If the array is of the incorrect size it will raise -``ValueError``. - -Query Fields -++++++++++++ -Use the following methods/attributes get information about the stored data -fields: - -.. autosummary:: - :nosignatures: - - ~landlab.field.graph_field.GraphFields.size - ~landlab.field.graph_field.GraphFields.keys - ~landlab.field.graph_field.GraphFields.has_group - ~landlab.field.graph_field.GraphFields.has_field - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.field_units - ~landlab.grid.framed_voronoi.FramedVoronoiGrid.field_values - ~landlab.field.graph_field.GraphFields.groups - -i.e., call, e.g. mg.has_field('node', 'my_field_name') - -Gradients, fluxes, and divergences on the grid ----------------------------------------------- - -Landlab is designed to easily calculate gradients in quantities across the -grid, and to construct fluxes and flux divergences from them. Because these -calculations tend to be a little more involved than property lookups, the -methods tend to start with `calc_`. - -LLCATKEY: GRAD -Mappers -------- - -These methods allow mapping of values defined on one grid element type onto a -second, e.g., mapping upwind node values onto links, or mean link values onto -nodes. - -LLCATKEY: MAP -Boundary condition control --------------------------- - -These are the primary properties for getting and setting the grid boundary -conditions. Changes made to :meth:`~.ModelGrid.status_at_node` and -:meth:`~.ModelGrid.status_at_node` will automatically update the conditions -defined at other grid elements automatically. - -LLCATKEY: BC -Identifying node subsets ------------------------- - -These methods are useful in identifying subsets of nodes, e.g., closest node -to a point; nodes at edges. - -LLCATKEY: SUBSET -Surface analysis ----------------- - -These methods permit the kinds of surface analysis that you might expect to -find in GIS software. - -LLCATKEY: SURF -Notes ------ -It is important that when creating a new grid class that inherits from -``ModelGrid``, to call ``ModelGrid.__init__()`` in the new grid's -``__init__()``. For example, the new class's __init__ should contain the -following code, - -.. code-block:: python - - class NewGrid(ModelGrid): - def __init__(self, *args, **kwds): - ModelGrid.__init__(self, **kwds) - # Code that initializes the NewGrid - -Without this, the new grid class will not have the ``at_*`` attributes. diff --git a/docs/source/reference/grid/unstructured.rst b/docs/source/reference/grid/unstructured.rst deleted file mode 100644 index 2757fb4cd8..0000000000 --- a/docs/source/reference/grid/unstructured.rst +++ /dev/null @@ -1,54 +0,0 @@ -landlab.grid.unstructured package -================================= - -Submodules ----------- - -landlab.grid.unstructured.base module -------------------------------------- - -.. automodule:: landlab.grid.unstructured.base - :members: - :undoc-members: - :show-inheritance: - -landlab.grid.unstructured.cells module --------------------------------------- - -.. automodule:: landlab.grid.unstructured.cells - :members: - :undoc-members: - :show-inheritance: - -landlab.grid.unstructured.links module --------------------------------------- - -.. automodule:: landlab.grid.unstructured.links - :members: - :undoc-members: - :show-inheritance: - -landlab.grid.unstructured.nodes module --------------------------------------- - -.. automodule:: landlab.grid.unstructured.nodes - :members: - :undoc-members: - :show-inheritance: - -landlab.grid.unstructured.status module ---------------------------------------- - -.. automodule:: landlab.grid.unstructured.status - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.grid.unstructured - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/grid/voronoi.rst b/docs/source/reference/grid/voronoi.rst deleted file mode 100644 index 1c3f4398ee..0000000000 --- a/docs/source/reference/grid/voronoi.rst +++ /dev/null @@ -1,8 +0,0 @@ -API for landlab.grid.voronoi ----------------------------- - -.. automodule:: landlab.grid.voronoi - :members: - :undoc-members: - :show-inheritance: - :inherited-members: diff --git a/docs/source/reference/grid/warnings.rst b/docs/source/reference/grid/warnings.rst deleted file mode 100644 index 09b326328f..0000000000 --- a/docs/source/reference/grid/warnings.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.grid.warnings module ----------------------------- - -.. automodule:: landlab.grid.warnings - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/images/Radiation.png b/docs/source/reference/images/Radiation.png deleted file mode 100644 index a0bc89803d..0000000000 Binary files a/docs/source/reference/images/Radiation.png and /dev/null differ diff --git a/docs/source/reference/images/RadiationFactor.png b/docs/source/reference/images/RadiationFactor.png deleted file mode 100644 index a71c6cde7e..0000000000 Binary files a/docs/source/reference/images/RadiationFactor.png and /dev/null differ diff --git a/docs/source/reference/images/basic_diffusion_example.png b/docs/source/reference/images/basic_diffusion_example.png deleted file mode 100644 index 8884e094e9..0000000000 Binary files a/docs/source/reference/images/basic_diffusion_example.png and /dev/null differ diff --git a/docs/source/reference/images/broken_coupled_Q.png b/docs/source/reference/images/broken_coupled_Q.png deleted file mode 100644 index 2dbb514110..0000000000 Binary files a/docs/source/reference/images/broken_coupled_Q.png and /dev/null differ diff --git a/docs/source/reference/images/coseismic_scarp.png b/docs/source/reference/images/coseismic_scarp.png deleted file mode 100644 index c91df0516c..0000000000 Binary files a/docs/source/reference/images/coseismic_scarp.png and /dev/null differ diff --git a/docs/source/reference/images/degraded_scarp.png b/docs/source/reference/images/degraded_scarp.png deleted file mode 100644 index a1c2d803f5..0000000000 Binary files a/docs/source/reference/images/degraded_scarp.png and /dev/null differ diff --git a/docs/source/reference/images/diffusion_raster_with_analytical.png b/docs/source/reference/images/diffusion_raster_with_analytical.png deleted file mode 100644 index fa7d0c9a38..0000000000 Binary files a/docs/source/reference/images/diffusion_raster_with_analytical.png and /dev/null differ diff --git a/docs/source/reference/images/example_raster_grid.png b/docs/source/reference/images/example_raster_grid.png deleted file mode 100644 index a8a882b83e..0000000000 Binary files a/docs/source/reference/images/example_raster_grid.png and /dev/null differ diff --git a/docs/source/reference/images/example_raster_grid_with_closed_boundaries.png b/docs/source/reference/images/example_raster_grid_with_closed_boundaries.png deleted file mode 100644 index 6d280f6b00..0000000000 Binary files a/docs/source/reference/images/example_raster_grid_with_closed_boundaries.png and /dev/null differ diff --git a/docs/source/reference/images/favicon.ico b/docs/source/reference/images/favicon.ico deleted file mode 100644 index 83866742a4..0000000000 Binary files a/docs/source/reference/images/favicon.ico and /dev/null differ diff --git a/docs/source/reference/images/grid_schematic.png b/docs/source/reference/images/grid_schematic.png deleted file mode 100644 index 36c47eee84..0000000000 Binary files a/docs/source/reference/images/grid_schematic.png and /dev/null differ diff --git a/docs/source/reference/images/grid_schematic2.png b/docs/source/reference/images/grid_schematic2.png deleted file mode 100644 index 9df738174f..0000000000 Binary files a/docs/source/reference/images/grid_schematic2.png and /dev/null differ diff --git a/docs/source/reference/images/grid_schematic_ab.png b/docs/source/reference/images/grid_schematic_ab.png deleted file mode 100644 index 77178a7a74..0000000000 Binary files a/docs/source/reference/images/grid_schematic_ab.png and /dev/null differ diff --git a/docs/source/reference/images/half_fork_dem.png b/docs/source/reference/images/half_fork_dem.png deleted file mode 100644 index d0f75e1b53..0000000000 Binary files a/docs/source/reference/images/half_fork_dem.png and /dev/null differ diff --git a/docs/source/reference/images/inundation.png b/docs/source/reference/images/inundation.png deleted file mode 100644 index c0b6642984..0000000000 Binary files a/docs/source/reference/images/inundation.png and /dev/null differ diff --git a/docs/source/reference/images/landlab_logo.jpg b/docs/source/reference/images/landlab_logo.jpg deleted file mode 100644 index e87ee20ab9..0000000000 Binary files a/docs/source/reference/images/landlab_logo.jpg and /dev/null differ diff --git a/docs/source/reference/images/nonlinear_coupled_Q.png b/docs/source/reference/images/nonlinear_coupled_Q.png deleted file mode 100644 index 93ba4c7cab..0000000000 Binary files a/docs/source/reference/images/nonlinear_coupled_Q.png and /dev/null differ diff --git a/docs/source/reference/images/nonlinear_coupled_SA.png b/docs/source/reference/images/nonlinear_coupled_SA.png deleted file mode 100644 index e5c9dfe503..0000000000 Binary files a/docs/source/reference/images/nonlinear_coupled_SA.png and /dev/null differ diff --git a/docs/source/reference/images/nonlinear_coupled_topo.png b/docs/source/reference/images/nonlinear_coupled_topo.png deleted file mode 100644 index 664b695077..0000000000 Binary files a/docs/source/reference/images/nonlinear_coupled_topo.png and /dev/null differ diff --git a/docs/source/reference/images/overland_flow_dem.png b/docs/source/reference/images/overland_flow_dem.png deleted file mode 100644 index 38fa59b223..0000000000 Binary files a/docs/source/reference/images/overland_flow_dem.png and /dev/null differ diff --git a/docs/source/reference/images/radial_example.png b/docs/source/reference/images/radial_example.png deleted file mode 100644 index 77a8eb91bc..0000000000 Binary files a/docs/source/reference/images/radial_example.png and /dev/null differ diff --git a/docs/source/reference/images/scarp_in_paraview.png b/docs/source/reference/images/scarp_in_paraview.png deleted file mode 100644 index 5164f7d7bb..0000000000 Binary files a/docs/source/reference/images/scarp_in_paraview.png and /dev/null differ diff --git a/docs/source/reference/index.rst b/docs/source/reference/index.rst deleted file mode 100644 index 14d2a0c051..0000000000 --- a/docs/source/reference/index.rst +++ /dev/null @@ -1,47 +0,0 @@ -.. _api: - -============= -API reference -============= - -This page gives an overview of all public Landlab objects, functions and -methods. - -.. toctree:: - :maxdepth: 2 - - bmi/index - ca/index - cmd/index - components/index - core/index - datarecord/index - field/index - framework/index - graph/index - grid/index - io/index - layers/index - plot/index - utils/index - values/index - -Full Index ----------- - -.. toctree:: - :maxdepth: 2 - - modules - -References ----------- - -* :ref:`modindex` -* :ref:`search` - - -.. Search the Index -.. ================== - -.. * :ref:`genindex` diff --git a/docs/source/reference/io/esri_ascii.rst b/docs/source/reference/io/esri_ascii.rst deleted file mode 100644 index db4c312793..0000000000 --- a/docs/source/reference/io/esri_ascii.rst +++ /dev/null @@ -1,7 +0,0 @@ -Input and output of Landlab raster-grid data in ESRI Ascii Raster format ------------------------------------------------------------------------- - -.. automodule:: landlab.io.esri_ascii - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/io/index.rst b/docs/source/reference/io/index.rst deleted file mode 100644 index bab60c5f7c..0000000000 --- a/docs/source/reference/io/index.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. _api.io: - -================= -Input/Output (IO) -================= - -This section documents various methods you can use to bring in data and write -output to a file. - -.. toctree:: - :maxdepth: 2 - - esri_ascii - native_landlab - netcdf - shapefile - obj - legacy_vtk - -Module contents ---------------- - -.. automodule:: landlab.io - :members: - :undoc-members: - :show-inheritance: - :noindex: diff --git a/docs/source/reference/io/legacy_vtk.rst b/docs/source/reference/io/legacy_vtk.rst deleted file mode 100644 index 66f5773262..0000000000 --- a/docs/source/reference/io/legacy_vtk.rst +++ /dev/null @@ -1,7 +0,0 @@ -Output of Landlab grid and field data in Legacy VTK format ----------------------------------------------------------- - -.. automodule:: landlab.io.legacy_vtk - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/io/native_landlab.rst b/docs/source/reference/io/native_landlab.rst deleted file mode 100644 index f9fc3527cc..0000000000 --- a/docs/source/reference/io/native_landlab.rst +++ /dev/null @@ -1,7 +0,0 @@ -Input and output in native landlab format ------------------------------------------ - -.. automodule:: landlab.io.native_landlab - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/io/netcdf.rst b/docs/source/reference/io/netcdf.rst deleted file mode 100644 index 091ebc5ff7..0000000000 --- a/docs/source/reference/io/netcdf.rst +++ /dev/null @@ -1,27 +0,0 @@ -Read and Write netCDF Files -=========================== - - -Reading -------- - -.. automodule:: landlab.io.netcdf.read - :members: - :undoc-members: - :show-inheritance: - -Writing -------- - -.. automodule:: landlab.io.netcdf.write - :members: - :undoc-members: - :show-inheritance: - - -Error Handling --------------- -.. automodule:: landlab.io.netcdf.errors - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/io/obj.rst b/docs/source/reference/io/obj.rst deleted file mode 100644 index e0b216fd7f..0000000000 --- a/docs/source/reference/io/obj.rst +++ /dev/null @@ -1,7 +0,0 @@ -Output of Landlab raster- and hex-grid data in Wavefront OBJ format -------------------------------------------------------------------- - -.. automodule:: landlab.io.obj - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/io/shapefile.rst b/docs/source/reference/io/shapefile.rst deleted file mode 100644 index bf55a37542..0000000000 --- a/docs/source/reference/io/shapefile.rst +++ /dev/null @@ -1,11 +0,0 @@ -Shapefiles -========== - - -Reading -------- - -.. automodule:: landlab.io.shapefile.read_shapefile - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/layers/eventlayers.rst b/docs/source/reference/layers/eventlayers.rst deleted file mode 100644 index 36e0bd598e..0000000000 --- a/docs/source/reference/layers/eventlayers.rst +++ /dev/null @@ -1,7 +0,0 @@ -EventLayers: Add event layers to a landlab grid ------------------------------------------------ - -.. automodule:: landlab.layers.eventlayers - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/layers/materiallayers.rst b/docs/source/reference/layers/materiallayers.rst deleted file mode 100644 index 4887aa5d1a..0000000000 --- a/docs/source/reference/layers/materiallayers.rst +++ /dev/null @@ -1,8 +0,0 @@ -MaterialLayers: Add material layers to a landlab grid ------------------------------------------------------ - -.. automodule:: landlab.layers.materiallayers - :members: - :undoc-members: - :inherited-members: - :show-inheritance: diff --git a/docs/source/reference/modules.rst b/docs/source/reference/modules.rst deleted file mode 100644 index 77a18d8ac6..0000000000 --- a/docs/source/reference/modules.rst +++ /dev/null @@ -1,8 +0,0 @@ -======= -landlab -======= - -.. automodule:: landlab - :members: - :undoc-members: - :noindex: diff --git a/docs/source/reference/plot/index.rst b/docs/source/reference/plot/index.rst deleted file mode 100644 index 2995f75123..0000000000 --- a/docs/source/reference/plot/index.rst +++ /dev/null @@ -1,76 +0,0 @@ -.. _api.plot: - -========================== -Plotting and Visualization -========================== - -Submodules ----------- - -Submodules ----------- - -landlab.plot.colors module --------------------------- - -.. automodule:: landlab.plot.colors - :members: - :undoc-members: - :show-inheritance: - -landlab.plot.drainage\_plot module ----------------------------------- - -.. automodule:: landlab.plot.drainage_plot - :members: - :undoc-members: - :show-inheritance: - -landlab.plot.event\_handler module ----------------------------------- - -.. automodule:: landlab.plot.event_handler - :members: - :undoc-members: - :show-inheritance: - -landlab.plot.graph module -------------------------- - -.. automodule:: landlab.plot.graph - :members: - :undoc-members: - :show-inheritance: - -landlab.plot.imshow module --------------------------- - -.. automodule:: landlab.plot.imshow - :members: - :undoc-members: - :show-inheritance: - -landlab.plot.network_sediment_transporter module ------------------------------------------------- - -.. automodule:: landlab.plot.network_sediment_transporter - :members: - :undoc-members: - :show-inheritance: - -landlab.plot.video\_out module ------------------------------- - -.. automodule:: landlab.plot.video_out - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: landlab.plot - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/add_halo.rst b/docs/source/reference/utils/add_halo.rst deleted file mode 100644 index 795a6a4e43..0000000000 --- a/docs/source/reference/utils/add_halo.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.add_halo module -============================= - -.. automodule:: landlab.utils.add_halo - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/count_repeats.rst b/docs/source/reference/utils/count_repeats.rst deleted file mode 100644 index 533cd22e33..0000000000 --- a/docs/source/reference/utils/count_repeats.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.count_repeats module -================================== - -.. automodule:: landlab.utils.count_repeats - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/decorators.rst b/docs/source/reference/utils/decorators.rst deleted file mode 100644 index 928aea6088..0000000000 --- a/docs/source/reference/utils/decorators.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.decorators module -=============================== - -.. automodule:: landlab.utils.decorators - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/depth_dependent_roughness.rst b/docs/source/reference/utils/depth_dependent_roughness.rst deleted file mode 100644 index 015a8cab40..0000000000 --- a/docs/source/reference/utils/depth_dependent_roughness.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.depth_dependent_roughness module -============================================== - -.. automodule:: landlab.utils.depth_dependent_roughness - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/distance_to_divide.rst b/docs/source/reference/utils/distance_to_divide.rst deleted file mode 100644 index 33c016b568..0000000000 --- a/docs/source/reference/utils/distance_to_divide.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.distance_to_divide module -======================================= - -.. automodule:: landlab.utils.distance_to_divide - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/fault_facet_finder.rst b/docs/source/reference/utils/fault_facet_finder.rst deleted file mode 100644 index 0202be91ee..0000000000 --- a/docs/source/reference/utils/fault_facet_finder.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.fault_facet_finder module -======================================= - -.. automodule:: landlab.utils.fault_facet_finder - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/flow__distance.rst b/docs/source/reference/utils/flow__distance.rst deleted file mode 100644 index 22a89d8d1d..0000000000 --- a/docs/source/reference/utils/flow__distance.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.flow__distance module -=================================== - -.. automodule:: landlab.utils.flow__distance - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/index.rst b/docs/source/reference/utils/index.rst deleted file mode 100644 index 0b9f1984b5..0000000000 --- a/docs/source/reference/utils/index.rst +++ /dev/null @@ -1,40 +0,0 @@ -.. _api.utils: - -======================== -Utilities and Decorators -======================== - -.. toctree:: - :maxdepth: 2 - - add_halo - count_repeats - decorators - depth_dependent_roughness - distance_to_divide - fault_facet_finder - flow__distance - jaggedarray - jaggedarray_ma - return_array - structured_grid - source_tracking_algorithm - stable_priority_queue - watershed - window_statistic - -Additional utilities are located within the `core` submodule: - -.. toctree:: - :maxdepth: 2 - - ../core/index - -Module contents ---------------- - -.. automodule:: landlab.utils - :members: - :undoc-members: - :show-inheritance: - :noindex: diff --git a/docs/source/reference/utils/jaggedarray.rst b/docs/source/reference/utils/jaggedarray.rst deleted file mode 100644 index 24e3d5b889..0000000000 --- a/docs/source/reference/utils/jaggedarray.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.jaggedarray module -================================ - -.. automodule:: landlab.utils.jaggedarray - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/jaggedarray_ma.rst b/docs/source/reference/utils/jaggedarray_ma.rst deleted file mode 100644 index 9abd5b53c0..0000000000 --- a/docs/source/reference/utils/jaggedarray_ma.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.jaggedarray_ma module -=================================== - -.. automodule:: landlab.utils.jaggedarray_ma - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/return_array.rst b/docs/source/reference/utils/return_array.rst deleted file mode 100644 index cfd06aba39..0000000000 --- a/docs/source/reference/utils/return_array.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.return_array module -================================= - -.. automodule:: landlab.utils.return_array - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/source_tracking_algorithm.rst b/docs/source/reference/utils/source_tracking_algorithm.rst deleted file mode 100644 index 3b8cb129ed..0000000000 --- a/docs/source/reference/utils/source_tracking_algorithm.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.source_tracking_algorithm module -============================================== - -.. automodule:: landlab.utils.source_tracking_algorithm - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/stable_priority_queue.rst b/docs/source/reference/utils/stable_priority_queue.rst deleted file mode 100644 index 398b0b6585..0000000000 --- a/docs/source/reference/utils/stable_priority_queue.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.stable_priority_queue module -========================================== - -.. automodule:: landlab.utils.stable_priority_queue - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/structured_grid.rst b/docs/source/reference/utils/structured_grid.rst deleted file mode 100644 index f657febf33..0000000000 --- a/docs/source/reference/utils/structured_grid.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.structured_grid module -==================================== - -.. automodule:: landlab.utils.structured_grid - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/watershed.rst b/docs/source/reference/utils/watershed.rst deleted file mode 100644 index 3745ab5c38..0000000000 --- a/docs/source/reference/utils/watershed.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.watershed module -============================== - -.. automodule:: landlab.utils.watershed - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/utils/window_statistic.rst b/docs/source/reference/utils/window_statistic.rst deleted file mode 100644 index ec67497ad9..0000000000 --- a/docs/source/reference/utils/window_statistic.rst +++ /dev/null @@ -1,7 +0,0 @@ -landlab.utils.window_statistic module -===================================== - -.. automodule:: landlab.utils.window_statistic - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/reference/values/synthetic.rst b/docs/source/reference/values/synthetic.rst deleted file mode 100644 index 0166ef1416..0000000000 --- a/docs/source/reference/values/synthetic.rst +++ /dev/null @@ -1,7 +0,0 @@ -Synthetic field values ----------------------- - -.. automodule:: landlab.values.synthetic - :members: - :undoc-members: - :show-inheritance: diff --git a/notebooks/teaching/geomorphology_exercises/channels_streampower_notebooks/stream_power_channels_class_notebook.ipynb b/docs/source/teaching/geomorphology_exercises/channels_streampower_notebooks/stream_power_channels_class_notebook.ipynb similarity index 99% rename from notebooks/teaching/geomorphology_exercises/channels_streampower_notebooks/stream_power_channels_class_notebook.ipynb rename to docs/source/teaching/geomorphology_exercises/channels_streampower_notebooks/stream_power_channels_class_notebook.ipynb index 870a878ea2..3d9d4b7e07 100644 --- a/notebooks/teaching/geomorphology_exercises/channels_streampower_notebooks/stream_power_channels_class_notebook.ipynb +++ b/docs/source/teaching/geomorphology_exercises/channels_streampower_notebooks/stream_power_channels_class_notebook.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -32,9 +25,8 @@ "\n", "This notebook illustrates the evolution of detachment-limited channels in an actively uplifting landscape. The landscape evolves according to the equation:\n", "\n", - "\\begin{equation}\n", - " \\frac{d z}{d t} = -K_\\text{sp} A^{m_{sp}} S^{n_{sp}} + U\n", - "\\end{equation}\n", + "$$\\frac{d z}{d t} = -K_\\text{sp} A^{m_{sp}} S^{n_{sp}} + U$$\n", + "\n", "Here, $K_{sp}$ is the erodibility coefficient on fluvial incision, which is thought to be positively correlated with climate wetness, or storminess (this is hard to quantify) and to be negatively correlated with rock strength (again, rock strength is hard to quantify). $m_{sp}$ and $n_{sp}$ are positive exponents, usually thought to have a ratio, $m_{sp}/n_{sp} \\approx 0.5$. $A$ is drainage area and $S$ is the slope of steepest descent ($-\\frac{dz}{dx}$) where $x$ is horizontal distance (positive in the downslope direction) and $z$ is elevation. (If slope is negative there is no fluvial erosion.) $U$ is an externally-applied rock uplift field.\n", "\n", "The fluvial erosion term is also known as the stream power equation. Before using this notebook you should be familiar with this equation from class lectures and reading. \n", @@ -852,7 +844,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/teaching/geomorphology_exercises/drainage_density_notebooks/drainage_density_class_notebook.ipynb b/docs/source/teaching/geomorphology_exercises/drainage_density_notebooks/drainage_density_class_notebook.ipynb similarity index 97% rename from notebooks/teaching/geomorphology_exercises/drainage_density_notebooks/drainage_density_class_notebook.ipynb rename to docs/source/teaching/geomorphology_exercises/drainage_density_notebooks/drainage_density_class_notebook.ipynb index bfeb95c911..81bc9080ff 100644 --- a/notebooks/teaching/geomorphology_exercises/drainage_density_notebooks/drainage_density_class_notebook.ipynb +++ b/docs/source/teaching/geomorphology_exercises/drainage_density_notebooks/drainage_density_class_notebook.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -32,9 +25,8 @@ "\n", "This notebook illustrates a landscape evolution model in which the landscape evolves according to the equation:\n", "\n", - "\\begin{equation}\n", - " \\frac{\\partial z}{\\partial t} = -K_\\text{sp} A^{m_{sp}} S^{n_{sp}} + K_\\text{hs} \\frac{\\partial^2 z}{\\partial x^2} + U\n", - "\\end{equation}\n", + "$$\\frac{\\partial z}{\\partial t} = -K_\\text{sp} A^{m_{sp}} S^{n_{sp}} + K_\\text{hs} \\frac{\\partial^2 z}{\\partial x^2} + U$$\n", + "\n", "Here, $K$ are coefficients on the fluvial ($sp$) and hillslope ($hs$) parts of the equation, and $m_{sp}$ and $n_{sp}$ are positive exponents, usually thought to have a ratio, $m_{sp}/n_{sp} \\approx 0.5$. $A$ is drainage area and $S$ is the slope of steepest descent ($-\\frac{dz}{dx}$) where $x$ is horizontal distance (positive in the downslope direction) and $z$ is elevation. (If slope is negative there is no fluvial erosion.) $U$ is an externally-applied uplift field.\n", "\n", "The first term on the right hand side of the equation is the fluvial erosion term, which is also known as the stream power equation. The second term on the right hand side of the equation is elevation changes via linear diffusion, and linear diffusion is one way in which to describe hillslope sediment transport.\n", @@ -345,9 +337,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/teaching/geomorphology_exercises/hillslope_notebooks/hillslope_diffusion_class_notebook.ipynb b/docs/source/teaching/geomorphology_exercises/hillslope_notebooks/hillslope_diffusion_class_notebook.ipynb similarity index 98% rename from notebooks/teaching/geomorphology_exercises/hillslope_notebooks/hillslope_diffusion_class_notebook.ipynb rename to docs/source/teaching/geomorphology_exercises/hillslope_notebooks/hillslope_diffusion_class_notebook.ipynb index dfb6713a15..21a0a2d494 100644 --- a/notebooks/teaching/geomorphology_exercises/hillslope_notebooks/hillslope_diffusion_class_notebook.ipynb +++ b/docs/source/teaching/geomorphology_exercises/hillslope_notebooks/hillslope_diffusion_class_notebook.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/docs/source/teaching/geomorphology_exercises/hillslope_notebooks/nc_image_with_transect.png b/docs/source/teaching/geomorphology_exercises/hillslope_notebooks/nc_image_with_transect.png new file mode 100644 index 0000000000..cf7f5b1955 Binary files /dev/null and b/docs/source/teaching/geomorphology_exercises/hillslope_notebooks/nc_image_with_transect.png differ diff --git a/notebooks/teaching/geomorphology_exercises/hillslope_notebooks/north_carolina_piedmont_hillslope_class_notebook.ipynb b/docs/source/teaching/geomorphology_exercises/hillslope_notebooks/north_carolina_piedmont_hillslope_class_notebook.ipynb similarity index 98% rename from notebooks/teaching/geomorphology_exercises/hillslope_notebooks/north_carolina_piedmont_hillslope_class_notebook.ipynb rename to docs/source/teaching/geomorphology_exercises/hillslope_notebooks/north_carolina_piedmont_hillslope_class_notebook.ipynb index 40c2be5e7e..084130a9af 100644 --- a/notebooks/teaching/geomorphology_exercises/hillslope_notebooks/north_carolina_piedmont_hillslope_class_notebook.ipynb +++ b/docs/source/teaching/geomorphology_exercises/hillslope_notebooks/north_carolina_piedmont_hillslope_class_notebook.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -42,9 +35,11 @@ "**Application of linear diffusion transport law:**\n", "\n", "The tranport law applied here is of the form:\n", + "\n", "\\begin{equation}\n", "q_s = -D \\nabla z\n", "\\end{equation}\n", + "\n", "where ${q}_s$ is the transport rate with dimensions of L$^2$T$^{-1}$; $D$ is a transport coefficient with dimensions of L$^2$T$^{-1}$; and $z$ is elevation. $\\nabla z$ is the gradient in the landscape, or change in elevation with change in distance. Landscape slope is $-\\nabla z$ (assuming distance increases downhill), hence the negative in the above equation. \n", " \n", "Changes in elevation, or erosion, are calculated from conservation of mass:\n", @@ -541,9 +536,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/docs/source/user_guide/teaching_tutorials.rst b/docs/source/teaching/index.md similarity index 60% rename from docs/source/user_guide/teaching_tutorials.rst rename to docs/source/teaching/index.md index 9529694d00..028a577ab4 100644 --- a/docs/source/user_guide/teaching_tutorials.rst +++ b/docs/source/teaching/index.md @@ -1,10 +1,11 @@ -.. _teaching_tutorials: +(teaching_tutorials)= -Teaching Tutorials -================== +[jupyter-summary]: https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html +[github-issues]: https://github.com/landlab/landlab/issues -Landlab teaching tools ----------------------- +# Teaching + +## Landlab teaching tools This page describes the Jupyter Notebooks that implement Landlab for use in teaching undergraduate and graduate courses. Jupyter Notebooks combine formatted @@ -22,24 +23,20 @@ The notebooks are primarily designed for use as homework assignments or laboratory assignments. However, they can be used to illustrate concepts on-the-fly in the classroom. -The easiest way to see what is in the notebooks is through the -`Binder welcome page for the teaching notebooks `_. This also allows you to run the notebooks online. -The tutorials can also be run online on -:ref:`EarthscapeHub `. - -The notebooks can also be run locally by `installing Landlab `_ on your computer. +```{note} +For an introduction to using Jupyter Notebooks locally, see this +[webpage][jupyter-summary]. -For an introduction to using Jupyter Notebooks locally, see this `webpage `_. -[Quick Summary: The way to launch a Jupyter notebook is to enter -'jupyter notebook' from a command line prompt. Jupyter notebooks can also be -launched from within Anaconda.] +*TLDR*: The way to launch a Jupyter notebook is to enter ``jupyter notebook`` +from a command line prompt. Jupyter notebooks can also be launched from within +Anaconda. +``` -More information ----------------- +## More information If you have suggestions on improving these notebooks and developing new ones, or are having trouble running them, please leave us a question in our -`GitHub Issues page `_. Please make +[GitHub Issues page][github-issues]. Please make sure you include that you are working with a Landlab Teaching Notebook and include the name of the notebook and as much information as possible. If you are getting an error, please taking a screenshot and upload it. @@ -47,3 +44,13 @@ are getting an error, please taking a screenshot and upload it. The development of these Notebooks has been made possible by the Landlab project funded by the National Science Foundation (OAC 1450338 to N. Gasparini, OAC 1450409 to G. Tucker, OAC 1450412 to E. Istanbulluoglu). + + +```{toctree} +:caption: Gallery +:hidden: +:glob: + +Getting started +Gallery +``` diff --git a/notebooks/teaching/landlab_logo_picture.jpg b/docs/source/teaching/landlab_logo_picture.jpg similarity index 100% rename from notebooks/teaching/landlab_logo_picture.jpg rename to docs/source/teaching/landlab_logo_picture.jpg diff --git a/notebooks/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/Long_TestBasin.asc b/docs/source/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/Long_TestBasin.asc similarity index 100% rename from notebooks/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/Long_TestBasin.asc rename to docs/source/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/Long_TestBasin.asc diff --git a/notebooks/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/Square_TestBasin.asc b/docs/source/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/Square_TestBasin.asc similarity index 100% rename from notebooks/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/Square_TestBasin.asc rename to docs/source/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/Square_TestBasin.asc diff --git a/notebooks/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/hydrograph_class_notebook.ipynb b/docs/source/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/hydrograph_class_notebook.ipynb similarity index 98% rename from notebooks/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/hydrograph_class_notebook.ipynb rename to docs/source/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/hydrograph_class_notebook.ipynb index 971f11bd7c..aed37ff167 100755 --- a/notebooks/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/hydrograph_class_notebook.ipynb +++ b/docs/source/teaching/surface_water_hydrology_exercises/overland_flow_notebooks/hydrograph_class_notebook.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/teaching/welcome_teaching.ipynb b/docs/source/teaching/welcome_teaching.ipynb similarity index 89% rename from notebooks/teaching/welcome_teaching.ipynb rename to docs/source/teaching/welcome_teaching.ipynb index bf2d462be7..98c7bbe92a 100644 --- a/notebooks/teaching/welcome_teaching.ipynb +++ b/docs/source/teaching/welcome_teaching.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/advection/overview_of_advection_solver.ipynb b/docs/source/tutorials/advection/overview_of_advection_solver.ipynb similarity index 99% rename from notebooks/tutorials/advection/overview_of_advection_solver.ipynb rename to docs/source/tutorials/advection/overview_of_advection_solver.ipynb index 10c9b25a9d..583e0b38a5 100644 --- a/notebooks/tutorials/advection/overview_of_advection_solver.ipynb +++ b/docs/source/tutorials/advection/overview_of_advection_solver.ipynb @@ -4,15 +4,6 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# TVD advection solver and related functions\n", "\n", @@ -32,7 +23,7 @@ }, { "cell_type": "markdown", - "id": "2", + "id": "1", "metadata": {}, "source": [ "## Theory\n", @@ -127,7 +118,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "2", "metadata": {}, "source": [ "## Numerical implementation on a Landlab grid\n", @@ -210,7 +201,7 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ "## Examples\n", @@ -223,7 +214,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -237,7 +228,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -251,7 +242,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -288,7 +279,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -304,7 +295,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "8", "metadata": {}, "source": [ "Now we'll try reversing the direction and running it for some more time (that's why we set `advection_direction_is_steady=False` above):" @@ -313,7 +304,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -331,7 +322,7 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "10", "metadata": {}, "source": [ "...and presto, we're back in the middle again (albeit with some numerical diffusion)." @@ -339,7 +330,7 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ "#### Raster grid, rotated coordinates\n", @@ -350,7 +341,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -381,7 +372,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -397,7 +388,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "14", "metadata": {}, "source": [ "#### Hex grid in horizontal orientation\n", @@ -408,7 +399,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -441,7 +432,7 @@ { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -457,7 +448,7 @@ }, { "cell_type": "markdown", - "id": "18", + "id": "17", "metadata": {}, "source": [ "### Advection of a Gaussian \"bump\" in 2d\n", @@ -468,7 +459,7 @@ { "cell_type": "code", "execution_count": null, - "id": "19", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -482,7 +473,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -500,7 +491,7 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "20", "metadata": {}, "source": [ "#### Raster grid with advection to the east\n", @@ -511,7 +502,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -529,7 +520,7 @@ { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -560,7 +551,7 @@ { "cell_type": "code", "execution_count": null, - "id": "24", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -572,7 +563,7 @@ }, { "cell_type": "markdown", - "id": "25", + "id": "24", "metadata": {}, "source": [ "Test that we can run it back in the " @@ -580,7 +571,7 @@ }, { "cell_type": "markdown", - "id": "26", + "id": "25", "metadata": {}, "source": [ "#### Raster grid with advection to the north\n", @@ -591,7 +582,7 @@ { "cell_type": "code", "execution_count": null, - "id": "27", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -609,7 +600,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -621,7 +612,7 @@ }, { "cell_type": "markdown", - "id": "29", + "id": "28", "metadata": {}, "source": [ "#### Raster grid with advection to the southwest" @@ -630,7 +621,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -647,7 +638,7 @@ { "cell_type": "code", "execution_count": null, - "id": "31", + "id": "30", "metadata": {}, "outputs": [], "source": [ @@ -659,7 +650,7 @@ }, { "cell_type": "markdown", - "id": "32", + "id": "31", "metadata": {}, "source": [ "#### Raster grid with a non-uniform advection field\n", @@ -670,7 +661,7 @@ { "cell_type": "code", "execution_count": null, - "id": "33", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -689,7 +680,7 @@ { "cell_type": "code", "execution_count": null, - "id": "34", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -701,7 +692,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "34", "metadata": {}, "source": [ "##### Case of divergent velocity\n", @@ -712,7 +703,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -727,7 +718,7 @@ { "cell_type": "code", "execution_count": null, - "id": "37", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -738,7 +729,7 @@ }, { "cell_type": "markdown", - "id": "38", + "id": "37", "metadata": {}, "source": [ "#### Hex grid with tests of advection in several different directions\n", @@ -748,7 +739,7 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "38", "metadata": {}, "source": [ "##### Case of right-ward motion" @@ -757,7 +748,7 @@ { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -794,7 +785,7 @@ { "cell_type": "code", "execution_count": null, - "id": "41", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -806,7 +797,7 @@ }, { "cell_type": "markdown", - "id": "42", + "id": "41", "metadata": {}, "source": [ "##### Case of upward (northward) motion\n", @@ -817,7 +808,7 @@ { "cell_type": "code", "execution_count": null, - "id": "43", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -836,7 +827,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -848,7 +839,7 @@ }, { "cell_type": "markdown", - "id": "45", + "id": "44", "metadata": {}, "source": [ "#### Case of leftward (westward) motion" @@ -857,7 +848,7 @@ { "cell_type": "code", "execution_count": null, - "id": "46", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -873,7 +864,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -885,7 +876,7 @@ }, { "cell_type": "markdown", - "id": "48", + "id": "47", "metadata": {}, "source": [ "#### Case of downward (southward) motion" @@ -894,7 +885,7 @@ { "cell_type": "code", "execution_count": null, - "id": "49", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -910,7 +901,7 @@ { "cell_type": "code", "execution_count": null, - "id": "50", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -922,7 +913,7 @@ }, { "cell_type": "markdown", - "id": "51", + "id": "50", "metadata": {}, "source": [ "#### Case of nne motion" @@ -931,7 +922,7 @@ { "cell_type": "code", "execution_count": null, - "id": "52", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -948,7 +939,7 @@ { "cell_type": "code", "execution_count": null, - "id": "53", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -960,7 +951,7 @@ }, { "cell_type": "markdown", - "id": "54", + "id": "53", "metadata": {}, "source": [ "#### Case of nnw motion" @@ -969,7 +960,7 @@ { "cell_type": "code", "execution_count": null, - "id": "55", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -986,7 +977,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -998,7 +989,7 @@ }, { "cell_type": "markdown", - "id": "57", + "id": "56", "metadata": {}, "source": [ "#### Case of ssw motion" @@ -1007,7 +998,7 @@ { "cell_type": "code", "execution_count": null, - "id": "58", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -1024,7 +1015,7 @@ { "cell_type": "code", "execution_count": null, - "id": "59", + "id": "58", "metadata": {}, "outputs": [], "source": [ @@ -1036,7 +1027,7 @@ }, { "cell_type": "markdown", - "id": "60", + "id": "59", "metadata": {}, "source": [ "#### Case of sse motion" @@ -1045,7 +1036,7 @@ { "cell_type": "code", "execution_count": null, - "id": "61", + "id": "60", "metadata": {}, "outputs": [], "source": [ @@ -1062,7 +1053,7 @@ { "cell_type": "code", "execution_count": null, - "id": "62", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -1074,7 +1065,7 @@ }, { "cell_type": "markdown", - "id": "63", + "id": "62", "metadata": {}, "source": [ "#### Case with vertically oriented grid, rightward (eastward) motion" @@ -1083,7 +1074,7 @@ { "cell_type": "code", "execution_count": null, - "id": "64", + "id": "63", "metadata": {}, "outputs": [], "source": [ @@ -1124,7 +1115,7 @@ { "cell_type": "code", "execution_count": null, - "id": "65", + "id": "64", "metadata": {}, "outputs": [], "source": [ @@ -1136,7 +1127,7 @@ }, { "cell_type": "markdown", - "id": "66", + "id": "65", "metadata": {}, "source": [ "## Tiny unit tests\n", @@ -1147,7 +1138,7 @@ { "cell_type": "code", "execution_count": null, - "id": "67", + "id": "66", "metadata": {}, "outputs": [], "source": [ @@ -1169,7 +1160,7 @@ { "cell_type": "code", "execution_count": null, - "id": "68", + "id": "67", "metadata": {}, "outputs": [], "source": [ @@ -1193,7 +1184,7 @@ { "cell_type": "code", "execution_count": null, - "id": "69", + "id": "68", "metadata": {}, "outputs": [], "source": [ @@ -1224,7 +1215,7 @@ }, { "cell_type": "markdown", - "id": "70", + "id": "69", "metadata": {}, "source": [ "## Summary\n", @@ -1234,7 +1225,7 @@ }, { "cell_type": "markdown", - "id": "71", + "id": "70", "metadata": {}, "source": [ "## References and further reading\n", diff --git a/notebooks/tutorials/agent_based_modeling/README.md b/docs/source/tutorials/agent_based_modeling/README.md similarity index 100% rename from notebooks/tutorials/agent_based_modeling/README.md rename to docs/source/tutorials/agent_based_modeling/README.md diff --git a/notebooks/tutorials/agent_based_modeling/groundwater/landlab_mesa_groundwater_pumping.ipynb b/docs/source/tutorials/agent_based_modeling/groundwater/landlab_mesa_groundwater_pumping.ipynb similarity index 86% rename from notebooks/tutorials/agent_based_modeling/groundwater/landlab_mesa_groundwater_pumping.ipynb rename to docs/source/tutorials/agent_based_modeling/groundwater/landlab_mesa_groundwater_pumping.ipynb index f38a1c75d5..5025bcb64f 100644 --- a/notebooks/tutorials/agent_based_modeling/groundwater/landlab_mesa_groundwater_pumping.ipynb +++ b/docs/source/tutorials/agent_based_modeling/groundwater/landlab_mesa_groundwater_pumping.ipynb @@ -36,9 +36,9 @@ "metadata": {}, "outputs": [], "source": [ - "import matplotlib.pyplot as plt\n", + "from tqdm.notebook import trange\n", "\n", - "from landlab import RasterModelGrid, imshow_grid\n", + "from landlab import RasterModelGrid\n", "from landlab.components import GroundwaterDupuitPercolator" ] }, @@ -88,19 +88,16 @@ "\n", "# Field for the elevation of the top of an impermeable geologic unit that forms\n", "# the base of the aquifer (meters)\n", - "base = grid.add_zeros(\"aquifer_base__elevation\", at=\"node\")\n", - "base[:] = elev - base_depth\n", + "grid.at_node[\"aquifer_base__elevation\"] = elev - base_depth\n", "\n", "# Field for the elevation of the water table (meters)\n", - "wt = grid.add_zeros(\"water_table__elevation\", at=\"node\")\n", - "wt[:] = elev - initial_water_table_depth\n", + "grid.at_node[\"water_table__elevation\"] = elev - initial_water_table_depth\n", "\n", "# Field for the groundwater recharge rate (meters per second)\n", - "recharge = grid.add_zeros(\"recharge__rate\", at=\"node\")\n", - "recharge[:] = background_recharge\n", - "recharge[well_locations] -= pumping_rate / (\n", - " dx * dx\n", - ") # pumping rate, in terms of recharge" + "recharge = grid.add_full(\"recharge__rate\", background_recharge, at=\"node\")\n", + "\n", + "# pumping rate, in terms of recharge\n", + "recharge[well_locations] -= pumping_rate / (dx * dx)" ] }, { @@ -169,7 +166,8 @@ "metadata": {}, "outputs": [], "source": [ - "run_for_one_year(gdp, dt)" + "for _ in trange(365):\n", + " run_for_one_day(gdp, dt)" ] }, { @@ -178,7 +176,7 @@ "metadata": {}, "outputs": [], "source": [ - "imshow_grid(grid, wt, colorbar_label=\"Water table elevation (m)\")" + "grid.imshow(\"water_table__elevation\", colorbar_label=\"Water table elevation (m)\")" ] }, { @@ -326,14 +324,20 @@ "metadata": {}, "outputs": [], "source": [ + "import random\n", + "\n", + "\n", "class FarmerModel(Model):\n", " \"\"\"A model with several agents on a grid.\"\"\"\n", "\n", - " def __init__(self, N, width, height, well_depth, depth_to_water_table):\n", + " def __init__(self, N, width, height, well_depth, depth_to_water_table, seed=None):\n", + " super().__init__()\n", + "\n", " self.num_agents = N\n", " self.grid = MultiGrid(width, height, True)\n", " self.depth_to_water_table = depth_to_water_table\n", " self.schedule = RandomActivation(self)\n", + " self.random = random.Random(seed)\n", "\n", " # Create agents\n", " for i in range(self.num_agents):\n", @@ -374,7 +378,7 @@ "n = 0.2 # porosity, (-)\n", "dt = 3600.0 # time-step duration, s\n", "num_agents = 12 # number of farmer agents\n", - "run_duration_yrs = 15 # run duration in years" + "run_duration_yrs = 5 # run duration in years" ] }, { @@ -387,20 +391,13 @@ "\n", "elev = grid.add_zeros(\"topographic__elevation\", at=\"node\")\n", "\n", - "base = grid.add_zeros(\"aquifer_base__elevation\", at=\"node\")\n", - "base[:] = elev - base_depth\n", - "\n", - "wt = grid.add_zeros(\"water_table__elevation\", at=\"node\")\n", - "wt[:] = elev - initial_water_table_depth\n", + "grid.at_node[\"aquifer_base__elevation\"] = elev - base_depth\n", + "grid.at_node[\"water_table__elevation\"] = elev - initial_water_table_depth\n", + "grid.add_full(\"water_table__depth_below_ground\", initial_water_table_depth, at=\"node\")\n", + "recharge = grid.add_full(\"recharge__rate\", background_recharge, at=\"node\")\n", "\n", - "depth_to_wt = grid.add_zeros(\"water_table__depth_below_ground\", at=\"node\")\n", - "depth_to_wt[:] = elev - wt\n", - "\n", - "recharge = grid.add_zeros(\"recharge__rate\", at=\"node\")\n", - "recharge[:] = background_recharge\n", - "recharge[well_locations] -= pumping_rate / (\n", - " dx * dx\n", - ") # pumping rate, in terms of recharge" + "# pumping rate, in terms of recharge\n", + "recharge[well_locations] -= pumping_rate / (dx * dx)" ] }, { @@ -431,10 +428,14 @@ "metadata": {}, "outputs": [], "source": [ - "nc = grid.number_of_node_columns\n", - "nr = grid.number_of_node_rows\n", "farmer_model = FarmerModel(\n", - " num_agents, nc, nr, well_depth, depth_to_wt.reshape((nr, nc))\n", + " num_agents,\n", + " grid.number_of_node_columns,\n", + " grid.number_of_node_rows,\n", + " well_depth,\n", + " # depth_to_wt.reshape(grid.shape),\n", + " grid.at_node[\"water_table__depth_below_ground\"].reshape(grid.shape),\n", + " seed=1945,\n", ")" ] }, @@ -455,8 +456,8 @@ "\n", "\n", "def get_well_count(model):\n", - " well_count = np.zeros((nr, nc), dtype=int)\n", - " pumping_well_count = np.zeros((nr, nc), dtype=int)\n", + " well_count = np.zeros(grid.shape, dtype=int)\n", + " pumping_well_count = np.zeros(grid.shape, dtype=int)\n", " for cell in model.grid.coord_iter():\n", " cell_content, (x, y) = cell\n", " well_count[x][y] = len(cell_content)\n", @@ -467,7 +468,7 @@ "\n", "\n", "well_count, p_well_count = get_well_count(farmer_model)\n", - "imshow_grid(grid, well_count.flatten())" + "grid.imshow(well_count)" ] }, { @@ -484,7 +485,7 @@ "outputs": [], "source": [ "recharge[:] = -(pumping_rate / (dx * dx)) * p_well_count.flatten()\n", - "imshow_grid(grid, -recharge * 3600 * 24, colorbar_label=\"Pumping rate (m/day)\")" + "grid.imshow(-recharge * 3600 * 24, colorbar_label=\"Pumping rate (m/day)\")" ] }, { @@ -500,12 +501,16 @@ "metadata": {}, "outputs": [], "source": [ - "for i in range(run_duration_yrs):\n", + "depth_to_wt = grid.at_node[\"water_table__depth_below_ground\"]\n", + "\n", + "for i in trange(run_duration_yrs):\n", " # Run the groundwater simulator for one year\n", " run_for_one_year(gdp, dt)\n", "\n", " # Update the depth to water table\n", - " depth_to_wt[:] = elev - wt\n", + " depth_to_wt[:] = (\n", + " grid.at_node[\"topographic__elevation\"] - grid.at_node[\"water_table__elevation\"]\n", + " )\n", "\n", " # Run the farmer model\n", " farmer_model.step()\n", @@ -523,8 +528,7 @@ " print(f\"Total recharge: {np.sum(recharge)}\")\n", " print(\"\")\n", "\n", - " plt.figure()\n", - " imshow_grid(grid, wt)" + " grid.imshow(\"water_table__elevation\")" ] }, { @@ -533,7 +537,7 @@ "metadata": {}, "outputs": [], "source": [ - "imshow_grid(grid, wt)" + "grid.imshow(\"water_table__elevation\")" ] }, { @@ -543,9 +547,12 @@ "outputs": [], "source": [ "# Display the area of water table that lies below the well depth\n", - "depth_to_wt[:] = elev - wt\n", - "too_deep = depth_to_wt > well_depth\n", - "imshow_grid(grid, too_deep)" + "too_deep = (\n", + " grid.at_node[\"topographic__elevation\"] - grid.at_node[\"water_table__elevation\"]\n", + " > well_depth\n", + ")\n", + "\n", + "grid.imshow(too_deep)" ] }, { @@ -558,7 +565,9 @@ ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", @@ -575,7 +584,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/agent_based_modeling/wolf_sheep/wolf_sheep_with_soil_creep.ipynb b/docs/source/tutorials/agent_based_modeling/wolf_sheep/wolf_sheep_with_soil_creep.ipynb similarity index 99% rename from notebooks/tutorials/agent_based_modeling/wolf_sheep/wolf_sheep_with_soil_creep.ipynb rename to docs/source/tutorials/agent_based_modeling/wolf_sheep/wolf_sheep_with_soil_creep.ipynb index 73bed38350..653427a80e 100644 --- a/notebooks/tutorials/agent_based_modeling/wolf_sheep/wolf_sheep_with_soil_creep.ipynb +++ b/docs/source/tutorials/agent_based_modeling/wolf_sheep/wolf_sheep_with_soil_creep.ipynb @@ -870,13 +870,6 @@ "source": [ "Here soil erosion at the top of the slope inhibits grass cover, while soil accumulation at the base of the slope allows grass to continue to grow." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/boundary_conds/set_BCs_from_xy.ipynb b/docs/source/tutorials/boundary_conditions/set_BCs_from_xy.ipynb similarity index 79% rename from notebooks/tutorials/boundary_conds/set_BCs_from_xy.ipynb rename to docs/source/tutorials/boundary_conditions/set_BCs_from_xy.ipynb index 52fbd8290f..e1bf2f1c98 100644 --- a/notebooks/tutorials/boundary_conds/set_BCs_from_xy.ipynb +++ b/docs/source/tutorials/boundary_conditions/set_BCs_from_xy.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setting Boundary Conditions: interior rectangle\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "This tutorial illustrates how to modify the boundary conditions of an interior rectangle in the grid if you know the x and y coordinates of the rectangle." ] }, @@ -117,13 +106,6 @@ "source": [ "mg.imshow(z, at=\"node\")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { @@ -142,9 +124,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/boundary_conds/set_BCs_on_raster_perimeter.ipynb b/docs/source/tutorials/boundary_conditions/set_BCs_on_raster_perimeter.ipynb similarity index 90% rename from notebooks/tutorials/boundary_conds/set_BCs_on_raster_perimeter.ipynb rename to docs/source/tutorials/boundary_conditions/set_BCs_on_raster_perimeter.ipynb index 44e3a44a16..708a7c6295 100644 --- a/notebooks/tutorials/boundary_conds/set_BCs_on_raster_perimeter.ipynb +++ b/docs/source/tutorials/boundary_conditions/set_BCs_on_raster_perimeter.ipynb @@ -1,23 +1,12 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setting Boundary Conditions on the Perimeter of a Raster.\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", - "### This tutorial illustrates how to modify the boundary conditions along the perimeter of a rectangular raster." + "## This tutorial illustrates how to modify the boundary conditions along the perimeter of a rectangular raster." ] }, { @@ -229,13 +218,6 @@ "# there are no closed boundaries so we didn't need the color_for_closed option,\n", "# but no problem if you accidentally include it!" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { @@ -254,9 +236,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/boundary_conds/set_BCs_on_voronoi.ipynb b/docs/source/tutorials/boundary_conditions/set_BCs_on_voronoi.ipynb similarity index 88% rename from notebooks/tutorials/boundary_conds/set_BCs_on_voronoi.ipynb rename to docs/source/tutorials/boundary_conditions/set_BCs_on_voronoi.ipynb index 5d216dd0fb..19677f8687 100644 --- a/notebooks/tutorials/boundary_conds/set_BCs_on_voronoi.ipynb +++ b/docs/source/tutorials/boundary_conditions/set_BCs_on_voronoi.ipynb @@ -1,23 +1,12 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setting Boundary Conditions on a Voronoi.\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", - "### This tutorial illustrates how to modify the boundary conditions on a voronoi grid." + "## This tutorial illustrates how to modify the boundary conditions on a voronoi grid." ] }, { @@ -183,13 +172,6 @@ ")\n", "vg2.status_at_node" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { @@ -208,9 +190,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/boundary_conds/set_watershed_BCs_raster.ipynb b/docs/source/tutorials/boundary_conditions/set_watershed_BCs_raster.ipynb similarity index 94% rename from notebooks/tutorials/boundary_conds/set_watershed_BCs_raster.ipynb rename to docs/source/tutorials/boundary_conditions/set_watershed_BCs_raster.ipynb index 91665bc3f4..d53fcf44cb 100644 --- a/notebooks/tutorials/boundary_conds/set_watershed_BCs_raster.ipynb +++ b/docs/source/tutorials/boundary_conditions/set_watershed_BCs_raster.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -24,7 +17,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### The first example uses set_watershed_boundary_condition, which finds the outlet for the user.\n", + "## The first example uses set_watershed_boundary_condition, which finds the outlet for the user.\n", "- First import what we need." ] }, @@ -100,7 +93,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### The second example uses set_watershed_boundary_condition_outlet_coords \n", + "## The second example uses set_watershed_boundary_condition_outlet_coords \n", "- In this case the user knows the coordinates of the outlet node.\n", "- First instantiate a new grid, with new data values." ] @@ -157,7 +150,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### The third example uses set_watershed_boundary_condition_outlet_id \n", + "## The third example uses set_watershed_boundary_condition_outlet_id \n", "- In this case the user knows the node id value of the outlet node.\n", "- First instantiate a new grid, with new data values." ] @@ -211,7 +204,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### The final example uses set_watershed_boundary_condition on a watershed that was exported from Arc.\n", + "## The final example uses set_watershed_boundary_condition on a watershed that was exported from Arc.\n", "\n", "- First import ``esri_ascii.lazy_load`` and then import the DEM data.\n", "- The ``add_halo`` function add a ring of no-data values around the data.\n", @@ -322,7 +315,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/boundary_conds/west_bijou_gully.asc b/docs/source/tutorials/boundary_conditions/west_bijou_gully.asc similarity index 100% rename from notebooks/tutorials/boundary_conds/west_bijou_gully.asc rename to docs/source/tutorials/boundary_conditions/west_bijou_gully.asc diff --git a/notebooks/tutorials/carbonates/carbonate_producer.ipynb b/docs/source/tutorials/carbonates/carbonate_producer.ipynb similarity index 94% rename from notebooks/tutorials/carbonates/carbonate_producer.ipynb rename to docs/source/tutorials/carbonates/carbonate_producer.ipynb index e6b46af077..d11aed0d63 100644 --- a/notebooks/tutorials/carbonates/carbonate_producer.ipynb +++ b/docs/source/tutorials/carbonates/carbonate_producer.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# The Carbonate Producer component" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -363,13 +347,6 @@ "\n", "Galewsky, J. (1998). The dynamics of foreland basin carbonate platforms: tectonic and eustatic controls. Basin Research, 10(4), 409-416." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/component_tutorial/component_tutorial.ipynb b/docs/source/tutorials/component_tutorial/component_tutorial.ipynb similarity index 80% rename from notebooks/tutorials/component_tutorial/component_tutorial.ipynb rename to docs/source/tutorials/component_tutorial/component_tutorial.ipynb index ea45ee5813..d06931bf72 100644 --- a/notebooks/tutorials/component_tutorial/component_tutorial.ipynb +++ b/docs/source/tutorials/component_tutorial/component_tutorial.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# Getting to know the Landlab component library" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -31,7 +15,7 @@ "\n", "We are going to create three models: firstly, a single-component driver implementing just linear diffusion; then a three-component driver implementing linear diffusion, flow routing, and stream power incision; and finally a similar model, but implementing a storm-interstorm sequence.\n", "\n", - "# The basics: one component\n", + "## The basics: one component\n", "\n", "Let's begin with the one-component diffusion model.\n", "\n", @@ -46,12 +30,12 @@ "source": [ "import matplotlib as mpl\n", "import matplotlib.cm as cm\n", + "import matplotlib.pyplot as plt\n", "import numpy as np\n", - "from matplotlib.pyplot import figure, plot, title, xlabel, ylabel\n", + "from tqdm.notebook import trange\n", "\n", "from landlab import RasterModelGrid\n", - "from landlab.components import LinearDiffuser\n", - "from landlab.plot import imshow_grid" + "from landlab.components import LinearDiffuser" ] }, { @@ -179,12 +163,9 @@ "nt = int(total_t // dt)\n", "# ^note if we didn't know a priori that there are a round number of steps dt in the\n", "# total time, we'd have to take care to account for the \"extra\" time (see example below)\n", - "for i in range(nt):\n", + "for i in trange(nt):\n", " lin_diffuse.run_one_step(dt)\n", - " z[mg.core_nodes] += uplift_rate * dt # add the uplift\n", - " # add some output to let us see we aren't hanging:\n", - " if i % 50 == 0:\n", - " print(i * dt)" + " z[mg.core_nodes] += uplift_rate * dt # add the uplift" ] }, { @@ -211,14 +192,7 @@ "metadata": {}, "outputs": [], "source": [ - "# the following line makes figures show up correctly in this document (only needed for Jupyter notebook)\n", - "%matplotlib inline\n", - "\n", - "# Create a figure and plot the elevations\n", - "figure(1)\n", - "im = imshow_grid(\n", - " mg, \"topographic__elevation\", grid_units=[\"m\", \"m\"], var_name=\"Elevation (m)\"\n", - ")" + "mg.imshow(\"topographic__elevation\", grid_units=[\"m\", \"m\"], var_name=\"Elevation (m)\")" ] }, { @@ -227,14 +201,13 @@ "metadata": {}, "outputs": [], "source": [ - "figure(2)\n", "elev_rast = mg.node_vector_to_raster(z)\n", "ycoord_rast = mg.node_vector_to_raster(mg.node_y)\n", "ncols = mg.number_of_node_columns\n", - "im = plot(ycoord_rast[:, int(ncols // 2)], elev_rast[:, int(ncols // 2)])\n", - "xlabel(\"horizontal distance (m)\")\n", - "ylabel(\"vertical distance (m)\")\n", - "title(\"topographic__elevation cross section\")" + "plt.plot(ycoord_rast[:, int(ncols // 2)], elev_rast[:, int(ncols // 2)])\n", + "plt.xlabel(\"horizontal distance (m)\")\n", + "plt.ylabel(\"vertical distance (m)\")\n", + "plt.title(\"topographic__elevation cross section\")" ] }, { @@ -251,11 +224,11 @@ "outputs": [], "source": [ "z[:] = 0.0 # reset the elevations to zero\n", - "k_diff = mg.zeros(\"node\", dtype=float)\n", + "k_diff = mg.zeros(at=\"node\", dtype=float)\n", "k_diff.fill(1.0)\n", "k_diff *= (mg.node_x.max() - 0.9 * mg.x_of_node) / mg.x_of_node.max()\n", "k_field = mg.add_field(\"linear_diffusivity\", k_diff, at=\"node\", clobber=True)\n", - "imshow_grid(mg, k_diff, var_name=\"k_diff\", cmap=\"winter\") # check it looks good" + "mg.imshow(k_diff, var_name=\"k_diff\", cmap=\"winter\") # check it looks good" ] }, { @@ -288,15 +261,12 @@ "metadata": {}, "outputs": [], "source": [ - "for i in range(nt):\n", + "for i in trange(nt):\n", " lin_diffuse.run_one_step(dt)\n", " z[mg.core_nodes] += uplift_rate * dt # add the uplift\n", - " # add some output to let us see we aren't hanging:\n", - " if i % 50 == 0:\n", - " print(i * dt)\n", - "figure(3)\n", - "im = imshow_grid(\n", - " mg, \"topographic__elevation\", grid_units=[\"m\", \"m\"], var_name=\"Elevation (m)\"\n", + "\n", + "im = mg.imshow(\n", + " \"topographic__elevation\", grid_units=[\"m\", \"m\"], var_name=\"Elevation (m)\"\n", ")" ] }, @@ -304,7 +274,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Running two or more components\n", + "## Running two or more components\n", "\n", "Now we're going to take a similar approach but this time combine the outputs of three distinct Landlab components: the diffuser, the monodirectional flow router, and the stream power incisor. For clarity, we're going to repeat the whole process from the start.\n", "\n", @@ -422,7 +392,8 @@ "A note on the `FlowAccumulator`. This component provides a variety of options for the flow direction method used (e.g., D4/SteepestDescent, D8, MFD etc.). By default it uses D4 flow routing and does not deal with depression finding and routing.\n", "\n", "In order to use the `DepressionFinderAndRouter` inside the `FlowAccumulator` specify `depression_finder = 'DepressionFinderAndRouter'`.\n", - "## If you are using the FlowAccumulator in additional projects or using this notebook as a starting place for additional work, work through the three tutorials on the `FlowDirectors` and the `FlowAccumulator` first. \n", + "\n", + "**If you are using the FlowAccumulator in additional projects or using this notebook as a starting place for additional work, work through the three tutorials on the `FlowDirectors` and the `FlowAccumulator` first.**\n", "\n", "And now we run! We're going to run once with the diffusion and once without." ] @@ -433,15 +404,15 @@ "metadata": {}, "outputs": [], "source": [ - "for i in range(nt):\n", + "for i in trange(nt):\n", " # lin_diffuse.run_one_step(dt) no diffusion this time\n", - " fr.run_one_step() # run_one_step isn't time sensitive, so it doesn't take dt as input\n", + "\n", + " # run_one_step isn't time sensitive, so it doesn't take dt as input\n", + " fr.run_one_step()\n", " sp.run_one_step(dt)\n", - " mg.at_node[\"topographic__elevation\"][\n", - " mg.core_nodes\n", - " ] += uplift_per_step # add the uplift\n", - " if i % 20 == 0:\n", - " print(\"Completed loop %d\" % i)" + "\n", + " # add the uplift\n", + " mg.at_node[\"topographic__elevation\"][mg.core_nodes] += uplift_per_step" ] }, { @@ -457,10 +428,7 @@ "metadata": {}, "outputs": [], "source": [ - "figure(\"topo without diffusion\")\n", - "imshow_grid(\n", - " mg, \"topographic__elevation\", grid_units=[\"km\", \"km\"], var_name=\"Elevation (km)\"\n", - ")" + "mg.imshow(\"topographic__elevation\", grid_units=[\"km\", \"km\"], var_name=\"Elevation (km)\")" ] }, { @@ -477,15 +445,14 @@ "outputs": [], "source": [ "z[:] = initial_roughness\n", - "for i in range(nt):\n", + "for i in trange(nt):\n", " lin_diffuse.run_one_step(dt) # no diffusion this time\n", - " fr.run_one_step() # run_one_step isn't time sensitive, so it doesn't take dt as input\n", + "\n", + " # run_one_step isn't time sensitive, so it doesn't take dt as input\n", + " fr.run_one_step()\n", " sp.run_one_step(dt)\n", - " mg.at_node[\"topographic__elevation\"][\n", - " mg.core_nodes\n", - " ] += uplift_per_step # add the uplift\n", - " if i % 20 == 0:\n", - " print(\"Completed loop %d\" % i)" + " # add the uplift\n", + " mg.at_node[\"topographic__elevation\"][mg.core_nodes] += uplift_per_step" ] }, { @@ -494,10 +461,7 @@ "metadata": {}, "outputs": [], "source": [ - "figure(\"topo with diffusion\")\n", - "imshow_grid(\n", - " mg, \"topographic__elevation\", grid_units=[\"km\", \"km\"], var_name=\"Elevation (km)\"\n", - ")" + "mg.imshow(\"topographic__elevation\", grid_units=[\"km\", \"km\"], var_name=\"Elevation (km)\")" ] }, { @@ -583,34 +547,34 @@ "metadata": {}, "outputs": [], "source": [ - "out_interval = 20.0\n", - "last_trunc = total_t # we use this to trigger taking an output plot\n", - "for (\n", - " interval_duration,\n", - " rainfall_rate,\n", - ") in precip.yield_storm_interstorm_duration_intensity():\n", + "out_interval = 100\n", + "# last_trunc = total_t # we use this to trigger taking an output plot\n", + "\n", + "storms = list(precip.yield_storm_interstorm_duration_intensity())\n", + "elapsed_time = 0.0\n", + "\n", + "for storm in trange(len(storms)):\n", + " interval_duration, rainfall_rate = storms[storm]\n", + "\n", + " # note diffusion also only happens when it's raining...\n", " if rainfall_rate > 0.0:\n", - " # note diffusion also only happens when it's raining...\n", " fr.run_one_step()\n", " sp.run_one_step(interval_duration)\n", " lin_diffuse.run_one_step(interval_duration)\n", + "\n", " z[mg.core_nodes] += uplift_rate * interval_duration\n", - " this_trunc = precip.elapsed_time // out_interval\n", - " if this_trunc != last_trunc: # time to plot a new profile!\n", - " print(\"made it to time %d\" % (out_interval * this_trunc))\n", - " last_trunc = this_trunc\n", - " figure(\"long_profiles\")\n", - " # get and plot the longest profile\n", + "\n", + " elapsed_time += interval_duration\n", + "\n", + " if storm % out_interval == 0:\n", " cp = ChannelProfiler(mg)\n", " cp.run_one_step()\n", - " cp.plot_profiles(color=map_color.to_rgba(precip.elapsed_time))\n", - "\n", - " # no need to track elapsed time, as the generator will stop automatically\n", - "# make the figure look nicer:\n", - "figure(\"long_profiles\")\n", - "xlabel(\"Distance upstream (km)\")\n", - "ylabel(\"Elevation (km)\")\n", - "title(\"Long profiles evolving through time\")\n", + " cp.plot_profiles(color=map_color.to_rgba(elapsed_time))\n", + "\n", + "\n", + "plt.xlabel(\"Distance upstream (km)\")\n", + "plt.ylabel(\"Elevation (km)\")\n", + "plt.title(\"Long profiles evolving through time\")\n", "mpl.pyplot.colorbar(map_color, ax=mpl.pyplot.gca())" ] }, @@ -627,10 +591,7 @@ "metadata": {}, "outputs": [], "source": [ - "figure(\"topo with diffusion and storms\")\n", - "imshow_grid(\n", - " mg, \"topographic__elevation\", grid_units=[\"km\", \"km\"], var_name=\"Elevation (km)\"\n", - ")" + "mg.imshow(\"topographic__elevation\", grid_units=[\"km\", \"km\"], var_name=\"Elevation (km)\")" ] }, { @@ -668,31 +629,18 @@ "metadata": {}, "outputs": [], "source": [ - "figure(\"final slope-area plot\")\n", "loglog(mg.at_node[\"drainage_area\"], mg.at_node[\"topographic__steepest_slope\"], \".\")\n", - "xlabel(\"Drainage area (km**2)\")\n", - "ylabel(\"Local slope\")\n", - "title(\"Slope-Area plot for whole landscape\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That's a nice set of figures, eh? You can easily spend more time with pylab prettifying them if you want." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" + "plt.xlabel(\"Drainage area (km**2)\")\n", + "plt.ylabel(\"Local slope\")\n", + "plt.title(\"Slope-Area plot for whole landscape\")" ] } ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", @@ -709,9 +657,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/component_tutorial/coupled_params.txt b/docs/source/tutorials/component_tutorial/coupled_params.txt similarity index 100% rename from notebooks/tutorials/component_tutorial/coupled_params.txt rename to docs/source/tutorials/component_tutorial/coupled_params.txt diff --git a/notebooks/tutorials/component_tutorial/coupled_params_storms.txt b/docs/source/tutorials/component_tutorial/coupled_params_storms.txt similarity index 100% rename from notebooks/tutorials/component_tutorial/coupled_params_storms.txt rename to docs/source/tutorials/component_tutorial/coupled_params_storms.txt diff --git a/notebooks/tutorials/data_record/DataRecord_tutorial.ipynb b/docs/source/tutorials/data_record/DataRecord_tutorial.ipynb similarity index 96% rename from notebooks/tutorials/data_record/DataRecord_tutorial.ipynb rename to docs/source/tutorials/data_record/DataRecord_tutorial.ipynb index 97fb993b72..1cda3bfa55 100644 --- a/notebooks/tutorials/data_record/DataRecord_tutorial.ipynb +++ b/docs/source/tutorials/data_record/DataRecord_tutorial.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# DataRecord Tutorial" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -30,7 +14,7 @@ "This tutorial illustrates how to record variables of a Landlab model using DataRecord.\n", "\n", "## What is DataRecord?\n", - "DataRecord is a data structure that can hold data variables relating to a Landlab model or to items living on the [Landlab grid](../grid_object_demo/grid_object_demo.ipynb).\n", + "DataRecord is a data structure that can hold data variables relating to a Landlab model or to items living on the [Landlab grid](../grids/grid_object_demo.ipynb).\n", "\n", "DataRecord is built on [xarray](http://xarray.pydata.org/en/stable/index.html)'s Dataset structure: a multi-dimensional, in memory, array database. Dataset implements the mapping interface with keys given by variable names and values given by DataArray objects for each variable name. DataRecord inherits all the methods and attributes from xarray.Dataset.\n", "\n", @@ -662,7 +646,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# More on DataRecord\n", + "## More on DataRecord\n", "\n", "DataRecord is the data structure on which the following Landlab components are based:\n", "- ClastTracker (coming soon)\n", @@ -672,7 +656,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -686,9 +670,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/DEM_10m.asc b/docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/DEM_10m.asc similarity index 100% rename from notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/DEM_10m.asc rename to docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/DEM_10m.asc diff --git a/notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/Inputs_Vegetation_CA_DEM.txt b/docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/Inputs_Vegetation_CA_DEM.txt similarity index 100% rename from notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/Inputs_Vegetation_CA_DEM.txt rename to docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/Inputs_Vegetation_CA_DEM.txt diff --git a/notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/cellular_automaton_vegetation_DEM.ipynb b/docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/cellular_automaton_vegetation_DEM.ipynb similarity index 95% rename from notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/cellular_automaton_vegetation_DEM.ipynb rename to docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/cellular_automaton_vegetation_DEM.ipynb index c03ba0fc00..b782042e38 100644 --- a/notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/cellular_automaton_vegetation_DEM.ipynb +++ b/docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_DEM/cellular_automaton_vegetation_DEM.ipynb @@ -1,28 +1,12 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "WARNING: This tutorial has not been updated to work with Landlab 2.0 and is thus not tested to verify that it will run. \n", "\n", - "### Tutorial For Cellular Automaton Vegetation Model Coupled With Ecohydrologic Model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/v2_dev/user_guide/tutorials.html\n", - "
" + "# Tutorial For Cellular Automaton Vegetation Model Coupled With Ecohydrologic Model" ] }, { @@ -68,7 +52,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Let's walk through the code:" + "## Let's walk through the code:" ] }, { @@ -471,13 +455,6 @@ "source": [ "If you want to explore this model further, open 'Inputs_Vegetation_CA.txt' and change the input parameters (e.g., initial PFT distribution percentages, storm characteristics, etc..)." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { @@ -496,9 +473,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/Inputs_Vegetation_CA_flat.txt b/docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/Inputs_Vegetation_CA_flat.txt similarity index 100% rename from notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/Inputs_Vegetation_CA_flat.txt rename to docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/Inputs_Vegetation_CA_flat.txt diff --git a/notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/cellular_automaton_vegetation_flat_domain.ipynb b/docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/cellular_automaton_vegetation_flat_domain.ipynb similarity index 95% rename from notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/cellular_automaton_vegetation_flat_domain.ipynb rename to docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/cellular_automaton_vegetation_flat_domain.ipynb index 1289bf379f..41eafe5124 100644 --- a/notebooks/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/cellular_automaton_vegetation_flat_domain.ipynb +++ b/docs/source/tutorials/ecohydrology/cellular_automaton_vegetation_flat_surface/cellular_automaton_vegetation_flat_domain.ipynb @@ -1,28 +1,12 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "WARNING: This tutorial has not been updated to work with Landlab 2.0 and is thus not tested to verify that it will run. \n", "\n", - "### Tutorial For Cellular Automaton Vegetation Model Coupled With Ecohydrologic Model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/v2_dev/user_guide/tutorials.html\n", - "
" + "# Tutorial For Cellular Automaton Vegetation Model Coupled With Ecohydrologic Model" ] }, { @@ -68,7 +52,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Let us walk through the code:" + "## Let us walk through the code:" ] }, { @@ -444,13 +428,6 @@ "source": [ "If you want to explore this model further, open 'Inputs_Vegetation_CA.txt' and change the input parameters (e.g., initial PFT distribution percentages, storm characteristics, etc..)." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { @@ -469,9 +446,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/fault_scarp/landlab-fault-scarp.ipynb b/docs/source/tutorials/fault_scarp/landlab-fault-scarp.ipynb similarity index 97% rename from notebooks/tutorials/fault_scarp/landlab-fault-scarp.ipynb rename to docs/source/tutorials/fault_scarp/landlab-fault-scarp.ipynb index 32c6f6001d..8ca2da006b 100644 --- a/notebooks/tutorials/fault_scarp/landlab-fault-scarp.ipynb +++ b/docs/source/tutorials/fault_scarp/landlab-fault-scarp.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# Introduction to Landlab: Creating a simple 2D scarp diffusion model" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -668,15 +652,6 @@ " ld.run_one_step(dt)\n", "imshow_grid(mg, \"topographic__elevation\")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Congratulations on making it to the end of this tutorial!\n", - "\n", - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/fields/working_with_fields.ipynb b/docs/source/tutorials/fields/working_with_fields.ipynb similarity index 92% rename from notebooks/tutorials/fields/working_with_fields.ipynb rename to docs/source/tutorials/fields/working_with_fields.ipynb index 9958d4d33c..2fbd24ed43 100644 --- a/notebooks/tutorials/fields/working_with_fields.ipynb +++ b/docs/source/tutorials/fields/working_with_fields.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# Understanding and working with Landlab data fields" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -285,13 +269,6 @@ "z = mg.add_ones(\"field__number_3\", at=\"node\", units=\"km\", clobber=True)\n", "mg.at_node.units[\"field__number_3\"]" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/flexure/flexure_1d.ipynb b/docs/source/tutorials/flexure/flexure_1d.ipynb similarity index 93% rename from notebooks/tutorials/flexure/flexure_1d.ipynb rename to docs/source/tutorials/flexure/flexure_1d.ipynb index 3f115e45d7..e62e32474d 100644 --- a/notebooks/tutorials/flexure/flexure_1d.ipynb +++ b/docs/source/tutorials/flexure/flexure_1d.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using the Landlab 1D flexure component\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "In this example we will:\n", "* create a Landlab component that solves the (1D) flexure equation\n", "* apply a point load\n", @@ -326,13 +315,6 @@ "source": [ "Exercise: try maintaining the same loading distribution but double the effective elastic thickness." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/flexure/lots_of_loads.ipynb b/docs/source/tutorials/flexure/lots_of_loads.ipynb similarity index 92% rename from notebooks/tutorials/flexure/lots_of_loads.ipynb rename to docs/source/tutorials/flexure/lots_of_loads.ipynb index 1f4cd32b0a..08dd77665b 100644 --- a/notebooks/tutorials/flexure/lots_of_loads.ipynb +++ b/docs/source/tutorials/flexure/lots_of_loads.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using the Landlab flexure component\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "In this example we will:\n", "* create a Landlab component that solves the two-dimensional elastic flexure equation\n", "* apply randomly distributed point loads\n", @@ -258,7 +247,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Plot the output" + "## Plot the output" ] }, { @@ -339,18 +328,13 @@ " cmap=\"nipy_spectral\",\n", ")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", @@ -367,9 +351,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/flow_direction_and_accumulation/PriorityFlood_LandscapeEvolutionModel.ipynb b/docs/source/tutorials/flow_direction_and_accumulation/PriorityFlood_LandscapeEvolutionModel.ipynb similarity index 94% rename from notebooks/tutorials/flow_direction_and_accumulation/PriorityFlood_LandscapeEvolutionModel.ipynb rename to docs/source/tutorials/flow_direction_and_accumulation/PriorityFlood_LandscapeEvolutionModel.ipynb index 33bd454129..8b549c0d7f 100644 --- a/notebooks/tutorials/flow_direction_and_accumulation/PriorityFlood_LandscapeEvolutionModel.ipynb +++ b/docs/source/tutorials/flow_direction_and_accumulation/PriorityFlood_LandscapeEvolutionModel.ipynb @@ -4,14 +4,6 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# Landscape evolution model with Priority flood and Space_v2\n", "
\n", @@ -22,7 +14,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2", + "id": "1", "metadata": {}, "outputs": [], "source": [ @@ -36,7 +28,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "2", "metadata": {}, "source": [ "Create raster grid" @@ -45,7 +37,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -76,7 +68,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -93,7 +85,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "5", "metadata": {}, "outputs": [], "source": [ diff --git a/notebooks/tutorials/flow_direction_and_accumulation/PriorityFlood_realDEMs.ipynb b/docs/source/tutorials/flow_direction_and_accumulation/PriorityFlood_realDEMs.ipynb similarity index 98% rename from notebooks/tutorials/flow_direction_and_accumulation/PriorityFlood_realDEMs.ipynb rename to docs/source/tutorials/flow_direction_and_accumulation/PriorityFlood_realDEMs.ipynb index ae734bdf87..eb9e167a6f 100644 --- a/notebooks/tutorials/flow_direction_and_accumulation/PriorityFlood_realDEMs.ipynb +++ b/docs/source/tutorials/flow_direction_and_accumulation/PriorityFlood_realDEMs.ipynb @@ -4,14 +4,6 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# Introduction to priority flood component\n", "
\n", @@ -22,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "2", + "id": "1", "metadata": {}, "source": [ "First we will import all the modules we need. " @@ -31,7 +23,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -48,7 +40,7 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ "Create a function to download and save SRTM images using [BMI_topography](https://bmi-topography.readthedocs.io/en/latest/). " @@ -57,7 +49,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -82,7 +74,7 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ "Make function to plot DEMs and drainage accumulation with shaded relief. " @@ -91,7 +83,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -223,7 +215,7 @@ }, { "cell_type": "markdown", - "id": "8", + "id": "7", "metadata": {}, "source": [ "## Compare default Landlab flow accumulator with priority flood flow accumulator \n", @@ -232,7 +224,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "8", "metadata": {}, "source": [ "### Default flow director/accumulator " @@ -241,7 +233,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -261,7 +253,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -286,7 +278,7 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ "### Priority flood flow director/accumulator \n", @@ -296,7 +288,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -323,7 +315,7 @@ }, { "cell_type": "markdown", - "id": "14", + "id": "13", "metadata": {}, "source": [ "### Priority flood flow director/accumulator \n", @@ -333,7 +325,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "14", "metadata": {}, "outputs": [], "source": [ diff --git a/notebooks/tutorials/flow_direction_and_accumulation/compare_FlowDirectors.ipynb b/docs/source/tutorials/flow_direction_and_accumulation/compare_FlowDirectors.ipynb similarity index 98% rename from notebooks/tutorials/flow_direction_and_accumulation/compare_FlowDirectors.ipynb rename to docs/source/tutorials/flow_direction_and_accumulation/compare_FlowDirectors.ipynb index 91df1d070b..82faa6f666 100644 --- a/notebooks/tutorials/flow_direction_and_accumulation/compare_FlowDirectors.ipynb +++ b/docs/source/tutorials/flow_direction_and_accumulation/compare_FlowDirectors.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -134,7 +127,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Comparing the different methods for each grid\n", + "## Comparing the different methods for each grid\n", "\n", "We can illustrate the receiver node **FlowDirectionSteepest** has assigned to each donor node using a plotting function in Landlab called ```drainage_plot```. We will see many of these plots in this tutorial so let's take a moment to walk through the plot and what it contains. \n", "\n", @@ -668,8 +661,7 @@ "source": [ "Finally, **FlowDirectorDINF** gives yet another pattern for the accumulation of drainage area.\n", "\n", - "\n", - "# Conclusion\n", + "## Conclusion\n", "\n", "This tutorial compared the different methods in more detail and over surfaces that are more complicated than a simple sloping ramp. It also described how these different **FlowDirector** methods change the patterns of accumulated drainage area. \n", "\n", @@ -696,9 +688,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_38.99937507614868_-106.65062492385132_41.300624923851316_-104.34937507614868.asc b/docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_38.99937507614868_-106.65062492385132_41.300624923851316_-104.34937507614868.asc similarity index 100% rename from notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_38.99937507614868_-106.65062492385132_41.300624923851316_-104.34937507614868.asc rename to docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_38.99937507614868_-106.65062492385132_41.300624923851316_-104.34937507614868.asc diff --git a/notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.31910858403617_-106.33089141596383_40.980891415963825_-104.66910858403617.asc b/docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.31910858403617_-106.33089141596383_40.980891415963825_-104.66910858403617.asc similarity index 100% rename from notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.31910858403617_-106.33089141596383_40.980891415963825_-104.66910858403617.asc rename to docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.31910858403617_-106.33089141596383_40.980891415963825_-104.66910858403617.asc diff --git a/notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.54921620884121_-106.1007837911588_40.75078379115879_-104.8992162088412.asc b/docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.54921620884121_-106.1007837911588_40.75078379115879_-104.8992162088412.asc similarity index 100% rename from notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.54921620884121_-106.1007837911588_40.75078379115879_-104.8992162088412.asc rename to docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.54921620884121_-106.1007837911588_40.75078379115879_-104.8992162088412.asc diff --git a/notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.71482136966171_-105.9351786303383_40.585178630338284_-105.0648213696617.asc b/docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.71482136966171_-105.9351786303383_40.585178630338284_-105.0648213696617.asc similarity index 100% rename from notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.71482136966171_-105.9351786303383_40.585178630338284_-105.0648213696617.asc rename to docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.71482136966171_-105.9351786303383_40.585178630338284_-105.0648213696617.asc diff --git a/notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.83400503127928_-105.81599496872073_40.465994968720715_-105.18400503127927.asc b/docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.83400503127928_-105.81599496872073_40.465994968720715_-105.18400503127927.asc similarity index 100% rename from notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.83400503127928_-105.81599496872073_40.465994968720715_-105.18400503127927.asc rename to docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.83400503127928_-105.81599496872073_40.465994968720715_-105.18400503127927.asc diff --git a/notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.91977980500126_-105.73022019499874_40.380220194998735_-105.26977980500126.asc b/docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.91977980500126_-105.73022019499874_40.380220194998735_-105.26977980500126.asc similarity index 100% rename from notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.91977980500126_-105.73022019499874_40.380220194998735_-105.26977980500126.asc rename to docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.91977980500126_-105.73022019499874_40.380220194998735_-105.26977980500126.asc diff --git a/notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.98151068075389_-105.66848931924612_40.318489319246105_-105.33151068075388.asc b/docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.98151068075389_-105.66848931924612_40.318489319246105_-105.33151068075388.asc similarity index 100% rename from notebooks/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.98151068075389_-105.66848931924612_40.318489319246105_-105.33151068075388.asc rename to docs/source/tutorials/flow_direction_and_accumulation/data/SRTMGL3_39.98151068075389_-105.66848931924612_40.318489319246105_-105.33151068075388.asc diff --git a/notebooks/tutorials/flow_direction_and_accumulation/the_FlowAccumulator.ipynb b/docs/source/tutorials/flow_direction_and_accumulation/the_FlowAccumulator.ipynb similarity index 98% rename from notebooks/tutorials/flow_direction_and_accumulation/the_FlowAccumulator.ipynb rename to docs/source/tutorials/flow_direction_and_accumulation/the_FlowAccumulator.ipynb index 8de80ae6b4..feffea6eed 100644 --- a/notebooks/tutorials/flow_direction_and_accumulation/the_FlowAccumulator.ipynb +++ b/docs/source/tutorials/flow_direction_and_accumulation/the_FlowAccumulator.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -503,14 +496,13 @@ "source": [ "As you can see the flow is now routed out of the hole and down to a boundary. \n", "\n", - "# Conclusion\n", + "## Conclusion\n", "\n", "This tutorial went over how to run the **FlowAccumulator**. To learn more, consider one of two additional tutorials about directing and accumulating flow in Landlab:\n", "\n", "1. **Introduction to FlowDirector**: A tutorial that goes over the different **FlowDirectors** present in Landlab and how to create and run a **FlowDirector**.\n", "\n", - "2. **Comparison of FlowDirectors**: A tutorial that constrasts the different methods in more detail and over surfaces that are more complicated than a simple sloping ramp. \n", - "\n" + "2. **Comparison of FlowDirectors**: A tutorial that constrasts the different methods in more detail and over surfaces that are more complicated than a simple sloping ramp. " ] } ], @@ -530,9 +522,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/flow_direction_and_accumulation/the_FlowDirectors.ipynb b/docs/source/tutorials/flow_direction_and_accumulation/the_FlowDirectors.ipynb similarity index 97% rename from notebooks/tutorials/flow_direction_and_accumulation/the_FlowDirectors.ipynb rename to docs/source/tutorials/flow_direction_and_accumulation/the_FlowDirectors.ipynb index 2134b45127..2929a16071 100644 --- a/notebooks/tutorials/flow_direction_and_accumulation/the_FlowDirectors.ipynb +++ b/docs/source/tutorials/flow_direction_and_accumulation/the_FlowDirectors.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -103,7 +96,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Initalizing and running a FlowDirector\n", + "## Initalizing and running a FlowDirector\n", "\n", "To instantiate a flow director, you must pass it the minimum of a model grid that has a field called ```'topographic__elevation'```. Alternatively, you can pass it the name of another field name at node, or an array with length number of nodes. \n", "\n" @@ -177,7 +170,7 @@ "source": [ "Reassuringly we can see that the flow is being sent from high elevations at the top of the grid to low elevations at the bottom of the grid. We can also see that all of the arrows are yellow, and thus all of the flow is traveling on these links. \n", "\n", - "# Brief Comparison between FlowDirector methods\n", + "## Brief Comparison between FlowDirector methods\n", "\n", "Now let's see how the other **FlowDirectors** direct the flow on this simple grid. We don't need to specify the surface so long as it is the field ```'topographic__elevation'```." ] @@ -321,7 +314,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# FlowDirectors on irregular grids \n", + "## FlowDirectors on irregular grids \n", "\n", "**FlowDirectorSteepest** and **FlowDirectorMFD** work on raster, hex, and irregular grids. **FlowDirectorD8** and **FlowDirectorDINF** don't work on hex or irregular grids because the directing and partitioning algorithm that underlies each of them is specific to raster grids. \n", "\n", @@ -386,7 +379,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Conclusion\n", + "## Conclusion\n", "\n", "This tutorial went over the different **FlowDirectors** present in Landlab and how to create and run a **FlowDirector**. Next consider reviewing two additional tutorials about directing and accumulating flow in Landlab:\n", "\n", @@ -412,9 +405,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/flow_direction_and_accumulation/the_Flow_Director_Accumulator_PriorityFlood.ipynb b/docs/source/tutorials/flow_direction_and_accumulation/the_Flow_Director_Accumulator_PriorityFlood.ipynb similarity index 98% rename from notebooks/tutorials/flow_direction_and_accumulation/the_Flow_Director_Accumulator_PriorityFlood.ipynb rename to docs/source/tutorials/flow_direction_and_accumulation/the_Flow_Director_Accumulator_PriorityFlood.ipynb index e731e8b16c..11f3edbcab 100644 --- a/notebooks/tutorials/flow_direction_and_accumulation/the_Flow_Director_Accumulator_PriorityFlood.ipynb +++ b/docs/source/tutorials/flow_direction_and_accumulation/the_Flow_Director_Accumulator_PriorityFlood.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/fracture_grid/using_fracture_grid.ipynb b/docs/source/tutorials/fracture_grid/using_fracture_grid.ipynb similarity index 95% rename from notebooks/tutorials/fracture_grid/using_fracture_grid.ipynb rename to docs/source/tutorials/fracture_grid/using_fracture_grid.ipynb index 702ea08297..30cdc24954 100644 --- a/notebooks/tutorials/fracture_grid/using_fracture_grid.ipynb +++ b/docs/source/tutorials/fracture_grid/using_fracture_grid.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/gradient_and_divergence/gradient_and_divergence.ipynb b/docs/source/tutorials/gradient_and_divergence/gradient_and_divergence.ipynb similarity index 97% rename from notebooks/tutorials/gradient_and_divergence/gradient_and_divergence.ipynb rename to docs/source/tutorials/gradient_and_divergence/gradient_and_divergence.ipynb index 52a550a61a..ad079e16be 100644 --- a/notebooks/tutorials/gradient_and_divergence/gradient_and_divergence.ipynb +++ b/docs/source/tutorials/gradient_and_divergence/gradient_and_divergence.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using Landlab's gradient and flux divergence functions\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html)\n", - "
\n", - "\n", "Models of geophysical flow phenomena very commonly include gradient terms and flux divergence terms in their governing equations. Consider the example of conductive heat diffusion in two dimensions. The *flux* of heat, $\\mathbf{q}$, at a point (in energy per time per area) depends on the *gradient* in temperature:\n", "\n", "$\\mathbf{q} = -k\\nabla T$\n", @@ -613,13 +602,6 @@ "- See entries for these two functions in Landlab's *Reference Manual and API Documentation*\n", "\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/grids/diverse_grid_classes.ipynb b/docs/source/tutorials/grids/diverse_grid_classes.ipynb similarity index 97% rename from notebooks/tutorials/grids/diverse_grid_classes.ipynb rename to docs/source/tutorials/grids/diverse_grid_classes.ipynb index 3a9236d4b0..87c6c28a99 100644 --- a/notebooks/tutorials/grids/diverse_grid_classes.ipynb +++ b/docs/source/tutorials/grids/diverse_grid_classes.ipynb @@ -3,14 +3,6 @@ { "cell_type": "markdown", "id": "0", - "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", "metadata": { "tags": [] }, @@ -22,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "2", + "id": "1", "metadata": { "tags": [] }, @@ -42,12 +34,13 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "2", "metadata": { "tags": [] }, "source": [ - "## 1. Introduction\n", + "## Introduction\n", + "\n", "Modeling can be used to test the impact of a process on an object and its properties through time and space. For instance, we can model the impact of mass wasting (the process) on the earth surface (the object) and its topographic elevation (the property). To do this, we need to represent the ***surface*** and its elevation. We could represent this property by a continuous 2-D function, such as a sinusoidal or a polynomial envelope. This is not always simple and practicable (see [Gerya, 2010, p. 37](https://doi.org/10.1017/9781316534243)). Some processes are simulated by partial differential equations. These equations can't always be solved analytically. That roughly means that they can't be easily solved the way x^2 = y + 3 * 3 can be solved (x being the property value before the impact of the process, y the value after the impact of the process). We usually solve these equations numerically. This requires ***discretizing*** the values of the surface properties.\n", "\n", "To discretize property values, we represent the surface in a ***grid*** of small ***cells*** (also called a mesh) and affect to each cell a value for the property. The value is considered as an average over the cell. This representation is called ***tessellation***. It is also called tiling if the cells are regular. A tessellated space only contain cells that don't overlap with each other, and that don't have a gap between each other.\n", @@ -57,12 +50,13 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": { "tags": [] }, "source": [ - "## 2. NetworkModelGrid\n", + "## NetworkModelGrid\n", + "\n", "Board games (review in [Depaulis, 2020](https://doi.org/10.2478/bgs-2020-0007)) are probably the oldest activity consisting in representing surfaces and properties. These games consist in moving pieces from a position to another on a surface, either to win a race or to win a war. The set of positions is limited, and the moves follow a set of rules: pieces can't go where they want and the way they want. Then the simplest way to represent the surface and its rule is using a network grid. Positions are represented by points, also called nodes, and the possible paths are represented by links. The ancient board of the alquerque game, the ancestor of checkers, is an illustration of this class of grids. \n", "\n", "In Landlab, this class is implemented by the ***NetworkModelGrid***. A regular grid instance of this class is shown **Fig. 2**. Note that the implementation of the NetworkGrid allows irregular networks, where links are of variable lengths and directions. The NetworkModelGrid class is adapted for surfaces subject to fluxes of particles or agents which are constrained by the river or the road network (See [the network_sediment_transporter notebook](../network_sediment_transporter/network_sediment_transporter.ipynb)).
" @@ -71,7 +65,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": { "tags": [] }, @@ -130,10 +124,10 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ - "## 3. RasterModelGrid\n", + "## RasterModelGrid\n", "\n", "Board games can be more complex than checkers. For instance, chess splits pieces in a diverse family. Their members don't follow the same rules to move, and these rules depend on the color property value of their initial position. The network grid has an inconvenient for this use, because visibility of the property values can be hindered by the pieces. Players rather use a grid of squares. Square and rectangular grids are implemented by the ***RasterModelGrid*** (**Fig. 3**). Note that NetworkModelGrid and RasterModelGrid can be combined (see the [run_network_generator_OpenTopoDEM notebook](../network_sediment_transporter/run_network_generator_OpenTopoDEM.ipynb)).\n", "\n", @@ -145,7 +139,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -188,10 +182,10 @@ }, { "cell_type": "markdown", - "id": "8", + "id": "7", "metadata": {}, "source": [ - "## 4. HexModelGrid\n", + "## HexModelGrid\n", "\n", "The most promissing type of regular grid is hexagonal like an Agon board game. It is implemented by the ***HexModelGrid*** (**Fig. 3**). This type of grid presents some advantages for modeling ([Birch et al., 2007](https://doi.org/10.1016/j.ecolmodel.2007.03.041) and [H3 by Uber](https://h3geo.org/). All links are orthogonal, which is favorable to study connections, least expensive paths, and fluxes. Hexagons have properties close to circles (tesselation can't use circles because of the gaps or overlapping between cells). They are adapted to modeling on large areas of a planet, because they better fit curved surfaces. They also have a small perimeter/area ratio, which reduces the edge effects of the grid. And natural patterns are usually more curvilinear than rectilinear. Hexagons help to visually spot these patterns without rectilinear modeling artefacts.\n", "\n", @@ -203,7 +197,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -312,17 +306,18 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "9", "metadata": {}, "source": [ - "## 5. RadialModelGrid\n", + "## RadialModelGrid\n", + "\n", "While HexModelGrid helps to improve modeling of natural objects, it's still not the panacea to investigate circular objects. Radial grids can be used to model the uplift and erosion of a volcano. It also can be used to model a cross-section of a cooling planetesimal. Radial grids can be structured as a series of rings of quadrilaterals, surrounding a circular set of triangles, with a size of cells varying with the distance from the center. In Landlab, radial grids are implemented by the ***RadialModelGrid*** (**Fig. 5.**) , which consists of rings of hexagonal cells, with a central heptagon cell. Cell areas are similar but their shapes differ according to their position." ] }, { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -389,10 +384,11 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ - "## 6. VoronoiDelaunayGrid\n", + "## VoronoiDelaunayGrid\n", + "\n", "Irregular grids (**Fig. 6-7**) can be advantageous to model earth surface processes [Braun & Sambridge, 1997](https://doi.org/10.1046/j.1365-2117.1997.00030.x). But they are still not commonly adopted. These grids are constructed from nodes that are not regularly organized on the surface. Their position can be random or link to a point of interest, for instance weather stations. Then, we construct Voronoi cells for the set of nodes. The Voronoi construction aims to make each node the closest node for all the points within its cell. Then, the links between the nodes are constructed following a Delaunay triangulation. This triangulation optimizes the construction so that no link cross another link and makes a network of triangles which edges are the links.\n", "\n", "The landscapes generated using irregular grids appear more natural because of the absence of regularity. The drainage network forms without favoring specific directions, even when close to the grid boundaries, and has roughly similar patterns and properties whatever the resolution. Irregular grids can also tackle geomorphological objects with complex geometries.\n", @@ -403,7 +399,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -482,17 +478,18 @@ }, { "cell_type": "markdown", - "id": "14", + "id": "13", "metadata": {}, "source": [ - "## 7. FramedVoronoiGrid\n", + "## FramedVoronoiGrid\n", + "\n", "The FramedVoronoiGrid (**Fig. 7**) is an elaborated version of the VoronoiDelaunayGrid. The user input parameters to automatically calculate the positions of the nodes. The boundary nodes are automatically fixed, in a not random way. The core nodes are first positioned in a regular, rectangular pattern, and then moved by a random distance in such a way that a minimal distance between nodes is respected. This minimal distance is convenient when we have to run diffusion or river incision processes on the grid, which can become unstable for two small distances between nodes (depending on the timestep of the run)." ] }, { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "14", "metadata": { "tags": [] }, @@ -570,10 +567,11 @@ }, { "cell_type": "markdown", - "id": "16", + "id": "15", "metadata": {}, "source": [ - "## 8. IcosphereGlobalGrid\n", + "## IcosphereGlobalGrid\n", + "\n", "The earth is a planet, and planets are round. For global models of surface or near-surface processes, it is helpful to have grid types that represent the surface of a spherical or near-spherical body such as our own planet. IcosphereGlobalGrid (**Fig. 8**) is a grid type that represents a planetary surface as an *icosphere*, also known as a *geodesic polyhedron*. An icosphere is a convex polyhedron composed of triangular faces, and it has the characteristic of having a dual geometry consisting of Goldberg Polyhedra (mostly hexagons, rather like a soccer ball). A useful property of an icosphere is the ability to subdivide it to any arbirary level of resolution by subdividing each triangle into four smaller triangles. Landlab's IcosphereGlobalGrid includes both elements of the dual geometry: an icosphere composed of triangular *patches* with *nodes* as vertices and *links* as edges, and a Goldberg Polyhedron composed of pentagonal and hexagonal *cells* with *corners* as vertices and *faces* as the edges of the pentagons and hexagons. The icosphere allows a relatively even distribution of points across the surface, as compared with a latitude-longitude grid, in which points bunch together around the poles.\n", "\n", "Unlike the various 2D grid types, the nodes and corners in an IcosphereGlobalGrid has a $z$ coordinate in addition to their $x$ and $y$ coordinates. The grid also provides the corresponding spherical coordinates $r$, $\\phi$, and $\\theta$ ($r$ being radial distance from the center of the sphere, $\\phi$ the longitude, and $\\theta$ the latitude angle measured from zero at the \"south\" pole (so the equator lies at $\\theta = \\pi/2$ and the north pole lies at $\\theta = \\pi$).\n", @@ -586,7 +584,7 @@ { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -670,7 +668,7 @@ }, { "cell_type": "markdown", - "id": "18", + "id": "17", "metadata": {}, "source": [ "Author: Sebastien Lenard
\n", @@ -696,7 +694,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/grids/global_elevation_etopo_ico_level5.txt b/docs/source/tutorials/grids/global_elevation_etopo_ico_level5.txt similarity index 100% rename from notebooks/tutorials/grids/global_elevation_etopo_ico_level5.txt rename to docs/source/tutorials/grids/global_elevation_etopo_ico_level5.txt diff --git a/notebooks/tutorials/grids/grid_object_demo.ipynb b/docs/source/tutorials/grids/grid_object_demo.ipynb similarity index 96% rename from notebooks/tutorials/grids/grid_object_demo.ipynb rename to docs/source/tutorials/grids/grid_object_demo.ipynb index 6a359013a8..d21d1cf763 100644 --- a/notebooks/tutorials/grids/grid_object_demo.ipynb +++ b/docs/source/tutorials/grids/grid_object_demo.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# What happens when you create a grid object?" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -445,13 +429,6 @@ "\n", "Note as well that Landlab offers the one-line grid method `calc_flux_div_at_node()` to perform this same operation. For more on this, see the **gradient_and_divergence** tutorial." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/grids/how_to_create_and_viz_icosphere_grid.ipynb b/docs/source/tutorials/grids/how_to_create_and_viz_icosphere_grid.ipynb similarity index 100% rename from notebooks/tutorials/grids/how_to_create_and_viz_icosphere_grid.ipynb rename to docs/source/tutorials/grids/how_to_create_and_viz_icosphere_grid.ipynb diff --git a/notebooks/tutorials/grids/icosphere_example_models.ipynb b/docs/source/tutorials/grids/icosphere_example_models.ipynb similarity index 100% rename from notebooks/tutorials/grids/icosphere_example_models.ipynb rename to docs/source/tutorials/grids/icosphere_example_models.ipynb diff --git a/notebooks/tutorials/grids/media/Grids1.png b/docs/source/tutorials/grids/media/Grids1.png similarity index 100% rename from notebooks/tutorials/grids/media/Grids1.png rename to docs/source/tutorials/grids/media/Grids1.png diff --git a/notebooks/tutorials/groundwater/groundwater_flow.ipynb b/docs/source/tutorials/groundwater/groundwater_flow.ipynb similarity index 93% rename from notebooks/tutorials/groundwater/groundwater_flow.ipynb rename to docs/source/tutorials/groundwater/groundwater_flow.ipynb index 9c7e5071c0..cb4f13792e 100644 --- a/notebooks/tutorials/groundwater/groundwater_flow.ipynb +++ b/docs/source/tutorials/groundwater/groundwater_flow.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Modeling groundwater flow in a conceptual catchment\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "This tutorial demonstrates how the GroundwaterDupuitPercolator can be used to model groundwater flow and seepage (groundwater return flow). It is recommended to read the documentation for the component before starting this tutorial to be familiar with the mechanics of the model.\n", "\n", "In this tutorial you will:\n", @@ -27,13 +16,6 @@ "* Learn how to set fixed gradient boundaries and set values for the hydraulic gradient" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Import libraries" - ] - }, { "cell_type": "code", "execution_count": null, @@ -67,13 +49,13 @@ "grid = RasterModelGrid((51, 51), xy_spacing=10.0, bc=boundaries)\n", "grid.status_at_node[1] = grid.BC_NODE_IS_FIXED_VALUE\n", "\n", - "elev = grid.add_zeros(\"node\", \"topographic__elevation\")\n", + "elev = grid.add_zeros(\"topographic__elevation\", at=\"node\")\n", "elev[:] = (0.001 * grid.x_of_node**2 + 0.001 * grid.y_of_node**2) + 2\n", "\n", - "base = grid.add_zeros(\"node\", \"aquifer_base__elevation\")\n", + "base = grid.add_zeros(\"aquifer_base__elevation\", at=\"node\")\n", "base[:] = elev - 2\n", "\n", - "wt = grid.add_zeros(\"node\", \"water_table__elevation\")\n", + "wt = grid.add_zeros(\"water_table__elevation\", at=\"node\")\n", "wt[:] = elev" ] }, @@ -261,13 +243,13 @@ " grid = RasterModelGrid((51, 51), xy_spacing=10.0, bc=boundaries)\n", " grid.status_at_node[1] = grid.BC_NODE_IS_FIXED_VALUE\n", "\n", - " elev = grid.add_zeros(\"node\", \"topographic__elevation\")\n", + " elev = grid.add_zeros(\"topographic__elevation\", at=\"node\")\n", " elev[:] = (0.001 * grid.x_of_node**2 + 0.001 * grid.y_of_node**2) + 2\n", "\n", - " base = grid.add_zeros(\"node\", \"aquifer_base__elevation\")\n", + " base = grid.add_zeros(\"aquifer_base__elevation\", at=\"node\")\n", " base[:] = elev - 2\n", "\n", - " wt = grid.add_zeros(\"node\", \"water_table__elevation\")\n", + " wt = grid.add_zeros(\"water_table__elevation\", at=\"node\")\n", " wt[:] = wt0.copy()\n", "\n", " gdp = GroundwaterDupuitPercolator(\n", @@ -394,13 +376,13 @@ " grid = RasterModelGrid((51, 51), xy_spacing=10.0, bc=boundaries)\n", " grid.status_at_node[1] = grid.BC_NODE_IS_FIXED_VALUE\n", "\n", - " elev = grid.add_zeros(\"node\", \"topographic__elevation\")\n", + " elev = grid.add_zeros(\"topographic__elevation\", at=\"node\")\n", " elev[:] = (0.001 * grid.x_of_node**2 + 0.001 * grid.y_of_node**2) + 2\n", "\n", - " base = grid.add_zeros(\"node\", \"aquifer_base__elevation\")\n", + " base = grid.add_zeros(\"aquifer_base__elevation\", at=\"node\")\n", " base[:] = elev - 2\n", "\n", - " wt = grid.add_zeros(\"node\", \"water_table__elevation\")\n", + " wt = grid.add_zeros(\"water_table__elevation\", at=\"node\")\n", " wt[:] = wt0.copy()\n", "\n", " gdp = GroundwaterDupuitPercolator(\n", @@ -665,11 +647,11 @@ " bottom=grid.BC_NODE_IS_FIXED_GRADIENT,\n", ")\n", "\n", - "elev = grid.add_zeros(\"node\", \"topographic__elevation\")\n", + "elev = grid.add_zeros(\"topographic__elevation\", at=\"node\")\n", "elev[:] = (0.001 * (grid.x_of_node - 100) ** 2 + 0.0002 * grid.y_of_node**2) + 10\n", - "base = grid.add_zeros(\"node\", \"aquifer_base__elevation\")\n", + "base = grid.add_zeros(\"aquifer_base__elevation\", at=\"node\")\n", "base[:] = elev - 2\n", - "wt = grid.add_zeros(\"node\", \"water_table__elevation\")\n", + "wt = grid.add_zeros(\"water_table__elevation\", at=\"node\")\n", "wt[:] = elev\n", "\n", "gdp = GroundwaterDupuitPercolator(grid)" @@ -703,21 +685,16 @@ "source": [ "For more information on setting boundary conditions, please see the `boundary_conds` folder within `landlab/notebooks/tutorials`. " ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -731,9 +708,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/hillslope_geomorphology/depth_dependent_taylor_diffuser/depth_dependent_taylor_diffuser.ipynb b/docs/source/tutorials/hillslope_geomorphology/depth_dependent_taylor_diffuser/depth_dependent_taylor_diffuser.ipynb similarity index 94% rename from notebooks/tutorials/hillslope_geomorphology/depth_dependent_taylor_diffuser/depth_dependent_taylor_diffuser.ipynb rename to docs/source/tutorials/hillslope_geomorphology/depth_dependent_taylor_diffuser/depth_dependent_taylor_diffuser.ipynb index 3138ad9f50..023e8f8535 100644 --- a/notebooks/tutorials/hillslope_geomorphology/depth_dependent_taylor_diffuser/depth_dependent_taylor_diffuser.ipynb +++ b/docs/source/tutorials/hillslope_geomorphology/depth_dependent_taylor_diffuser/depth_dependent_taylor_diffuser.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# Component Overview: `DepthDependentTaylorDiffuser`" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -77,6 +61,7 @@ "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", + "from tqdm.notebook import trange\n", "\n", "from landlab import RasterModelGrid\n", "from landlab.components import DepthDependentTaylorDiffuser" @@ -157,7 +142,7 @@ "outputs": [], "source": [ "# run the model in a time loop with uplift applied\n", - "for i in range(num_steps):\n", + "for _ in trange(num_steps):\n", " elev[grid.core_nodes] += U * dt\n", " rock[grid.core_nodes] += U * dt\n", " ddtd.run_one_step(dt)" @@ -245,7 +230,7 @@ "outputs": [], "source": [ "# run the model in a time loop with uplift applied\n", - "for i in range(num_steps):\n", + "for _ in trange(num_steps):\n", " elev[grid.core_nodes] += U * dt\n", " rock[grid.core_nodes] += U * dt\n", " soil_production_rate[grid.core_nodes] = P0 * np.exp(-soil[grid.core_nodes] / Hstar)\n", @@ -326,7 +311,7 @@ "outputs": [], "source": [ "# run the model in a time loop with uplift applied\n", - "for i in range(num_steps):\n", + "for _ in trange(num_steps):\n", " elev[grid.core_nodes] += U * dt\n", " rock[grid.core_nodes] += U * dt\n", " ddtd.run_one_step(dt)" @@ -425,7 +410,7 @@ "outputs": [], "source": [ "# run the model in a time loop with uplift applied\n", - "for i in range(num_steps):\n", + "for _ in trange(num_steps):\n", " elev[grid.core_nodes] += U * dt\n", " rock[grid.core_nodes] += U * dt\n", " soil_production_rate[grid.core_nodes] = P0 * np.exp(-soil[grid.core_nodes] / Hstar)\n", @@ -438,9 +423,7 @@ "metadata": {}, "outputs": [], "source": [ - "from landlab import imshow_grid\n", - "\n", - "imshow_grid(grid, elev)" + "grid.imshow(elev)" ] }, { @@ -457,24 +440,17 @@ "\n", "Roering, J. J., Kirchner, J. W., & Dietrich, W. E. (1999). Evidence for nonlinear, diffusive sediment transport on hillslopes and implications for landscape morphology. Water Resources Research, 35(3), 853-870.\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Congratulations on making it to the end of this tutorial!\n", - "\n", - "### Click here for more Landlab tutorials" - ] } ], "metadata": { "anaconda-cloud": {}, "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -488,9 +464,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/hillslope_geomorphology/taylor_diffuser/taylor_diffuser.ipynb b/docs/source/tutorials/hillslope_geomorphology/taylor_diffuser/taylor_diffuser.ipynb similarity index 93% rename from notebooks/tutorials/hillslope_geomorphology/taylor_diffuser/taylor_diffuser.ipynb rename to docs/source/tutorials/hillslope_geomorphology/taylor_diffuser/taylor_diffuser.ipynb index 87d93da8c9..dea7dc2c4a 100644 --- a/notebooks/tutorials/hillslope_geomorphology/taylor_diffuser/taylor_diffuser.ipynb +++ b/docs/source/tutorials/hillslope_geomorphology/taylor_diffuser/taylor_diffuser.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# Component Overview: `TaylorNonLinearDiffuser`" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -280,15 +264,6 @@ "\n", "Roering, J. J., Kirchner, J. W., & Dietrich, W. E. (1999). Evidence for nonlinear, diffusive sediment transport on hillslopes and implications for landscape morphology. Water Resources Research, 35(3), 853-870.\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Congratulations on making it to the end of this tutorial!\n", - "\n", - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/hillslope_geomorphology/transport-length_hillslope_diffuser/TLHDiff_tutorial.ipynb b/docs/source/tutorials/hillslope_geomorphology/transport-length_hillslope_diffuser/TLHDiff_tutorial.ipynb similarity index 92% rename from notebooks/tutorials/hillslope_geomorphology/transport-length_hillslope_diffuser/TLHDiff_tutorial.ipynb rename to docs/source/tutorials/hillslope_geomorphology/transport-length_hillslope_diffuser/TLHDiff_tutorial.ipynb index 7a278f1998..c8425df371 100644 --- a/notebooks/tutorials/hillslope_geomorphology/transport-length_hillslope_diffuser/TLHDiff_tutorial.ipynb +++ b/docs/source/tutorials/hillslope_geomorphology/transport-length_hillslope_diffuser/TLHDiff_tutorial.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# The transport-length hillslope diffuser" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -38,13 +22,13 @@ "The elevation $z$ of a point of the landscape (such as a grid node) changes according to:\n", "\n", "\\begin{equation}\n", - " \\frac{\\partial z}{\\partial t} = -\\epsilon + D + U \\tag{1}\\label{eq:1},\n", + "\\frac{\\partial z}{\\partial t} = -\\epsilon + D + U \\tag{1}\\label{eq:1},\n", "\\end{equation}\n", "\n", "\n", "and we define:\n", "\\begin{equation}\n", - " D = \\frac{q_s}{L} \\tag{2}\\label{eq:2},\n", + "D = \\frac{q_s}{L} \\tag{2}\\label{eq:2},\n", "\\end{equation}\n", "\n", "\n", @@ -53,13 +37,13 @@ "We specify the erosion rate $\\epsilon$ and the transport length $L$:\n", "\n", "\\begin{equation}\n", - " \\epsilon = \\kappa S \\tag{3}\\label{eq:3}\n", + "\\epsilon = \\kappa S \\tag{3}\\label{eq:3}\n", "\\end{equation}\n", "\n", "\n", "\n", "\\begin{equation}\n", - " L = \\frac{dx}{1-({S}/{S_c})^2} \\tag{4}\\label{eq:4}\n", + "L = \\frac{dx}{1-({S}/{S_c})^2} \\tag{4}\\label{eq:4}\n", "\\end{equation}\n", "\n", "where $\\kappa$ [*L/T*] is an erodibility coefficient, $S$ is the local slope [*L/L*] and $S_c$ is the critical slope [*L/L*]. \n", @@ -79,17 +63,17 @@ "source": [ "## Contrast with the non-linear diffusion model\n", "\n", - "Previous models typically use a \"non-linear\" diffusion model proposed by different authors (e.g. Andrews and Hanks, 1985; Hanks, 1999; Roering et al., 1999) and supported by $^{10}$Be-derived erosion rates (e.g. Binnie et al., 2007) or experiments (Roering et al., 2001). It is usually presented in the followin form:\n", + "Previous models typically use a \"non-linear\" diffusion model proposed by different authors (e.g. Andrews and Hanks, 1985; Hanks, 1999; Roering et al., 1999) and supported by $^{10}$Be-derived erosion rates (e.g. Binnie et al., 2007) or experiments (Roering et al., 2001). It is usually presented in the following form:\n", "\n", - "$ $\n", "\n", "\\begin{equation} \n", - " \\frac{\\partial z}{\\partial t} = \\frac{\\partial q_s}{\\partial x} \\tag{5}\\label{eq:5}\n", + "\\frac{\\partial z}{\\partial t} = \\frac{\\partial q_s}{\\partial x} \\tag{5}\\label{eq:5}\n", "\\end{equation}\n", "\n", - "$ $\n", + "\n", + "\n", "\\begin{equation}\n", - " q_s = \\frac{\\kappa' S}{1-({S}/{S_c})^2} \\tag{6}\\label{eq:6}\n", + "q_s = \\frac{\\kappa' S}{1-({S}/{S_c})^2} \\tag{6}\\label{eq:6}\n", "\\end{equation}\n", "\n", "where $\\kappa'$ [*L$^2$/T*] is a diffusion coefficient.\n", @@ -412,7 +396,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -426,9 +410,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.1" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/source/tutorials/index.md b/docs/source/tutorials/index.md new file mode 100644 index 0000000000..63af827676 --- /dev/null +++ b/docs/source/tutorials/index.md @@ -0,0 +1,124 @@ +(tutorials)= + +# The Landlab tutorials + +Two papers have been written describing Landlab, both are open access: +* [Creative computing with Landlab: an open-source toolkit for building, + coupling, and exploring two-dimensional numerical models of Earth-surface + dynamics][esurf-2017] +* [Short communication: Landlab v2.0: a software package for Earth + surface dynamics][esurf-2020] + +[esurf-2017]: https://esurf.copernicus.org/articles/5/21/2017/ +[esurf-2020]: https://esurf.copernicus.org/articles/8/379/2020/ +[reference-guide]: /user_guide/reference/index +[tutorial-bc-perimeter]: boundary_conditions/set_BCs_on_raster_perimeter.ipynb +[tutorial-bc-voronoi]: boundary_conditions/set_BCs_on_voronoi.ipynb +[tutorial-bc-watersheds]: boundary_conditions/set_watershed_BCs_raster.ipynb +[tutorial-bc-xy]: boundary_conditions/set_BCs_from_xy.ipynb +[tutorial-components]: component_tutorial/component_tutorial.ipynb +[tutorial-div-grad]: gradient_and_divergence/gradient_and_divergence.ipynb +[tutorial-fault-scarp]: fault_scarp/landlab-fault-scarp.ipynb +[tutorial-fields]: fields/working_with_fields.ipynb +[tutorial-grid-objects]: grids/grid_object_demo.ipynb +[tutorial-mappers]: mappers/mappers.ipynb +[tutorial-plotting]: plotting/landlab-plotting.ipynb +[tutorial-reading-dem]: reading_dem_into_landlab/reading_dem_into_landlab.ipynb +[user-guide]: /user_guide/index +[user-guide-components]: /user_guide/components +[user-guide-grids]: /user_guide/reference/grid + + +```{note} +We highly recommend reading both before starting on the steps below. +``` + +## 1. Format and Outline + +You will alternate between reading documentation on the [User Guide][user-guide] +finding information in the [Reference Manual][reference-guide], and working +through the tutorials. + +The tutorials are presented as Jupyter notebooks, which contain a mixture of text, +images, and code blocks. When you look at the tutorials, don't just read them. Start +by clearing the results by selecting ``Kernel`` → ``Restart & Clear Output``, then go +ahead and try running each code block as you come to it. + +### 1.1 A motivating example + +- [Notebook: Introduction to Landlab: example model of fault-scarp + degradation][tutorial-fault-scarp] + +### 1.2 Using the Documentation + +The Landlab Reference Manual contains documentation for most functions in the +Landlab package. It is the comprehensive counterpart to the anecdotal tutorials. + +- Spend some time clicking around in the [User Guide][user-guide] and +[Reference Manual][reference-guide] to get a sense for what is there. Tip: to +find a particular command, click on Index and use your browser's search function +to search for a command by name or keyword. For example, look at the +{class}`~.LinearDiffuser`, which you just used in the prior tutorial. + +### 1.3 Introduction to the Landlab Grid and Fields + +First, lets look at the [User Guide page on Landlab grids][user-guide-grids]. + +- [Notebook: Introduction to the model grid object][tutorial-grid-objects] + Grid topology; how landlab represents data; connectivity of grid elements. +- [Notebook: Introduction to Landlab data fields][tutorial-fields] +How Landlab stores spatial data on the grid; a little on naming conventions. + +Extra credit: Go back to the [Hobley et al. 2017 publication][esurf-2017] +and identify the ordering conventions of nodes, links, and other grid elements. + +### 1.4 Working with Digital Elevtion Models (DEMs) + +- [Notebook: Reading DEMs into Landlab][tutorial-reading-dem] Getting an ARC + ESRI ASCII into Landlab; getting the boundary conditions set right. + +### 1.5 Plotting + +- [Notebook: Introduction to plotting output with Landlab][tutorial-plotting] + The basics of plotting with Landlab; combining matplotlib and out plots; the + {func}`~.imshow_grid` function. + +### 1.6 Boundary conditions + +- Setting boundary conditions on Landlab grids (several tutorials): How Landlab + conceptualises boundary conditions; various ways to interact and work with them. + - [Notebook: Raster perimeter][tutorial-bc-perimeter] + - [Notebook: Based on X-Y values][tutorial-bc-xy] + - [Notebook: Watersheds][tutorial-bc-watersheds] + - [Notebook: Voronoi][tutorial-bc-voronoi] + +### 1.7 Introduction to Components + +- Read the [Task: Component page in the User Guide][user-guide-components] +- [Notebook: Introduction to using the Landlab component library][tutorial-components] + The basics of working with and coupling components, using {class}`~.LinearDiffuser`, + {class}`~.FastscapeEroder`, and {class}`~.PrecipitationDistribution`. + +### 1.8 Advanced Grid and Fields: Gradients, Flux-Divergence, Mapping + +In addition to having lots of important information about adjacency of nodes, links, +and other grid elements, the Landlab Grid object has a number of built-in functions +for calculating quantities like gradients and flux-divergence, and for mapping +quantities from nodes to links and so forth. Work through these tutorials to get a +sense of this functionality: + +- [Notebook: Using the gradient and flux-divergence functions][tutorial-div-grad] + Landlab as solving environment for staggered grid finite difference differential + approximations; functions available to help you do this. +- [Notebook: Mapping values from nodes to links][tutorial-mappers] Options + for getting data on links to nodes, nodes to links, etc.; min, max, and mean; + upwinding and downwinding schemes; one-to-one, one-to-many, and many-to-one mappings. + + +```{toctree} +:caption: Gallery +:hidden: +:glob: + +Gallery +``` diff --git a/notebooks/tutorials/landscape_evolution/area_slope_transporter/einstein-brown.ipynb b/docs/source/tutorials/landscape_evolution/area_slope_transporter/einstein-brown.ipynb similarity index 100% rename from notebooks/tutorials/landscape_evolution/area_slope_transporter/einstein-brown.ipynb rename to docs/source/tutorials/landscape_evolution/area_slope_transporter/einstein-brown.ipynb diff --git a/notebooks/tutorials/landscape_evolution/area_slope_transporter/transport-limited-LEM-example.ipynb b/docs/source/tutorials/landscape_evolution/area_slope_transporter/transport-limited-LEM-example.ipynb similarity index 100% rename from notebooks/tutorials/landscape_evolution/area_slope_transporter/transport-limited-LEM-example.ipynb rename to docs/source/tutorials/landscape_evolution/area_slope_transporter/transport-limited-LEM-example.ipynb diff --git a/notebooks/tutorials/landscape_evolution/erosion_deposition/erosion_deposition_component.ipynb b/docs/source/tutorials/landscape_evolution/erosion_deposition/erosion_deposition_component.ipynb similarity index 92% rename from notebooks/tutorials/landscape_evolution/erosion_deposition/erosion_deposition_component.ipynb rename to docs/source/tutorials/landscape_evolution/erosion_deposition/erosion_deposition_component.ipynb index b9af7b97d7..66dfda0434 100644 --- a/notebooks/tutorials/landscape_evolution/erosion_deposition/erosion_deposition_component.ipynb +++ b/docs/source/tutorials/landscape_evolution/erosion_deposition/erosion_deposition_component.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# Introduction to the `ErosionDeposition` component" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -234,13 +218,6 @@ "\n", "Willgoose, G. (2018). Principles of soilscape and landscape evolution. Cambridge University Press." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/docs/source/tutorials/landscape_evolution/erosion_deposition/shared_stream_power.ipynb b/docs/source/tutorials/landscape_evolution/erosion_deposition/shared_stream_power.ipynb new file mode 100644 index 0000000000..b56d8b2792 --- /dev/null +++ b/docs/source/tutorials/landscape_evolution/erosion_deposition/shared_stream_power.ipynb @@ -0,0 +1,439 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "metadata": {}, + "source": [ + "# Using the Landlab Shared Stream Power Model\n", + "\n", + "*(Ann Thompson, Arizona State University, July 2024)*\n", + "\n", + "This notebook is a tutorial of the `SharedStreamPower` component, which is an extension of the `ErosionDeposion` component. `SharedStreamPower` is a landscape evolution model designed to seamlessly transition between bedrock incision (detachment limited erosion) and sediment transport (transport limited erosion). It is based off of the shared stream power model from Hergarten (2021)." + ] + }, + { + "cell_type": "markdown", + "id": "1", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "### Theory\n", + "\n", + "Here is the equation for the shared stream power model:\n", + "\n", + "$$E = k_{bedrock}A^mS^n- \\frac{k_{bedrock}}{k_{transport}}\\frac{Q_s}{A} $$ \n", + "\n", + "where $k_{bedrock}$ is the erodibility with no sediment and $k_{transport}$ is the ability to transport sediment. The ratio, $\\frac{k_{bedrock}}{k_{transport}}$ determines how much relative bedrock incision and sediment transport is occurring.\n", + "\n", + "For $\\frac{k_{bedrock}}{k_{transport}} = 0$, the model is entirely detachment limited, and behaves as the stream power model:\n", + "$$E = k_{bedrock}A^mS^n$$\n", + "\n", + "For $\\frac{k_{bedrock}}{k_{transport}} = \\infty$, the model is completely dominated by deposition.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "2", + "metadata": {}, + "source": [ + "Import Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from tqdm.notebook import trange\n", + "\n", + "from landlab import RasterModelGrid\n", + "from landlab.components import (\n", + " ChannelProfiler,\n", + " ChiFinder,\n", + " DepressionFinderAndRouter,\n", + " FlowAccumulator,\n", + " SharedStreamPower,\n", + " SteepnessFinder,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": {}, + "source": [ + "Make Grid" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5", + "metadata": {}, + "outputs": [], + "source": [ + "# Create grid\n", + "grid = RasterModelGrid((20, 20), xy_spacing=100.0)\n", + "\n", + "# Leave bottom boundary open\n", + "grid.set_closed_boundaries_at_grid_edges(True, True, True, False)\n", + "\n", + "\n", + "# Create initial topography\n", + "np.random.seed(35) # seed set so our figures are reproducible\n", + "\n", + "# initial noise on elevation grid\n", + "# set up the elevation on the grid\n", + "grid.at_node[\"topographic__elevation\"] = np.random.rand(grid.number_of_nodes) / 1000.0" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "Set Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "metadata": {}, + "outputs": [], + "source": [ + "k_bedrock = 0.001 # bedrock erodibility\n", + "k_transport = 0.01 # transport coefficient\n", + "# For detachment limited behavior, set k_bedrock = 0.001, k_transport = 0.01\n", + "# For transport limited behavior, set k_bedrock = 0.01, k_transport = 0.001\n", + "# For mixed bedrock-alluvial conditions, set k_bedrock = k_transport = 0.001\n", + "\n", + "F_f = 0.0 # fraction of fines\n", + "m_sp = 0.5 # discharge exponent\n", + "n_sp = 1.0 # slope exponent\n", + "r = 1.0 # m/yr # Define runoff parameter r, where Q=Ar\n", + "\n", + "# time parameters, timestep, run time, print time (years)\n", + "timestep = 10\n", + "run_time = 50000\n", + "print_time = 10000\n", + "\n", + "# Set elapsed time to zero\n", + "elapsed_time = 0\n", + "\n", + "# set uplift rate\n", + "rock_uplift_rate = 1e-4 # m/yr" + ] + }, + { + "cell_type": "markdown", + "id": "8", + "metadata": {}, + "source": [ + "Instantiate Components" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "# Instantiate flow accumulator and depression finder for each timestep\n", + "flow_accumulator = FlowAccumulator(grid, flow_director=\"D8\")\n", + "depression_finder = DepressionFinderAndRouter(grid)\n", + "\n", + "# Instantiate components for plotting results\n", + "steepness_finder = SteepnessFinder(\n", + " grid, reference_concavity=m_sp / n_sp, min_drainage_area=1000.0\n", + ")\n", + "chi_finder = ChiFinder(\n", + " grid,\n", + " min_drainage_area=1000.0,\n", + " reference_concavity=m_sp / n_sp,\n", + " use_true_dx=True,\n", + ")\n", + "\n", + "# Instantiate the shared stream power component\n", + "shared_stream_power = SharedStreamPower(\n", + " grid, k_bedrock=k_bedrock, k_transport=k_transport, m_sp=m_sp, n_sp=n_sp\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "10", + "metadata": {}, + "source": [ + "Run" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "metadata": {}, + "outputs": [], + "source": [ + "for _ in trange(0, run_time, timestep):\n", + " # Run the flow router\n", + " flow_accumulator.run_one_step()\n", + "\n", + " # Run the depression finder and router; optional\n", + " depression_finder.map_depressions()\n", + "\n", + " # Run the SSPM model\n", + " shared_stream_power.run_one_step(dt=timestep)\n", + "\n", + " # Move elevation of core nodes upwards relative to base level\n", + " # at the rock uplift rate\n", + " grid.at_node[\"topographic__elevation\"][grid.core_nodes] += (\n", + " rock_uplift_rate * timestep\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "12", + "metadata": {}, + "source": [ + "### Plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], + "source": [ + "# Pick individual channels to plot in map view\n", + "prf = ChannelProfiler(\n", + " grid,\n", + " number_of_watersheds=2,\n", + " main_channel_only=False,\n", + " minimum_channel_threshold=grid.dx**2,\n", + ")\n", + "prf.run_one_step()\n", + "\n", + "plt.figure(1)\n", + "prf.plot_profiles_in_map_view()\n", + "plt.show()\n", + "\n", + "# Plot channel profiles\n", + "plt.figure(2)\n", + "prf.plot_profiles()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot slope-area plots for the channels\n", + "plt.figure(3)\n", + "plt.figure(figsize=(6, 2))\n", + "for i, outlet_id in enumerate(prf.data_structure):\n", + " for j, segment_id in enumerate(prf.data_structure[outlet_id]):\n", + " if j == 0:\n", + " label = f\"channel {i + 1}\"\n", + " else:\n", + " label = \"_nolegend_\"\n", + " segment = prf.data_structure[outlet_id][segment_id]\n", + " profile_ids = segment[\"ids\"]\n", + " color = segment[\"color\"]\n", + " plt.loglog(\n", + " grid.at_node[\"drainage_area\"][profile_ids],\n", + " grid.at_node[\"topographic__steepest_slope\"][profile_ids],\n", + " \".\",\n", + " color=color,\n", + " label=label,\n", + " )\n", + "\n", + "plt.legend(loc=\"lower left\")\n", + "plt.xlabel(\"drainage area (m^2)\")\n", + "plt.ylabel(\"channel slope [m/m]\")\n", + "plt.title(\"Area vs. Slope\")\n", + "\n", + "\n", + "# calculate normalized channel steepness\n", + "steepness_finder.calculate_steepnesses()\n", + "\n", + "# plots of normalized channel steepness in the profiled channels\n", + "plt.figure(6)\n", + "plt.figure(figsize=(6, 2))\n", + "for i, outlet_id in enumerate(prf.data_structure):\n", + " for j, segment_id in enumerate(prf.data_structure[outlet_id]):\n", + " if j == 0:\n", + " label = f\"channel {i + 1}\"\n", + " else:\n", + " label = \"_nolegend_\"\n", + " segment = prf.data_structure[outlet_id][segment_id]\n", + " profile_ids = segment[\"ids\"]\n", + " distance_upstream = segment[\"distances\"]\n", + " color = segment[\"color\"]\n", + " plt.plot(\n", + " distance_upstream,\n", + " grid.at_node[\"channel__steepness_index\"][profile_ids],\n", + " \"x\",\n", + " color=color,\n", + " label=label,\n", + " )\n", + "\n", + "plt.xlabel(\"distance upstream (m)\")\n", + "plt.ylabel(\"steepness index\")\n", + "plt.legend(loc=\"lower left\")\n", + "plt.title(\"Distance Upstream vs. Ksn\")\n", + "\n", + "# Plot drainage area vs. sediment flux\n", + "plt.figure(7)\n", + "plt.figure(figsize=(6, 2))\n", + "plt.scatter(\n", + " grid.at_node[\"drainage_area\"],\n", + " grid.at_node[\"sediment__flux\"],\n", + " marker=\"o\",\n", + " color=\"y\",\n", + ")\n", + "\n", + "plt.xlabel(\"drainage area (m^2)\")\n", + "plt.ylabel(\"(sediment flux m^3/s)\")\n", + "plt.title(\"Area vs. Sediment Flux\")" + ] + }, + { + "cell_type": "markdown", + "id": "15", + "metadata": {}, + "source": [ + "# Run with Transient Uplift \n", + "To observe the landscape response to increased uplift, we set a new uplift rate, run for 10,000 years, and plot the normalized channel steepness at every 1000 years.\n" + ] + }, + { + "cell_type": "markdown", + "id": "16", + "metadata": {}, + "source": [ + "Set new parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "metadata": {}, + "outputs": [], + "source": [ + "rock_uplift_rate = 0.001 # increased by a factor of 0\n", + "time_interval = 1000 # interval between each plot\n", + "run_time = 10000 # total run time\n", + "elapsed_time = 0 # reset elapsed time to 0" + ] + }, + { + "cell_type": "markdown", + "id": "18", + "metadata": {}, + "source": [ + "Run loop at plot at each interval" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19", + "metadata": {}, + "outputs": [], + "source": [ + "for elapsed_time in trange(0, run_time, timestep):\n", + " if elapsed_time % time_interval == 0: # if time interval is reached, plot\n", + " prf.run_one_step()\n", + " steepness_finder.calculate_steepnesses()\n", + " plt.figure(6)\n", + " plt.figure(figsize=(6, 2))\n", + " for i, outlet_id in enumerate(prf.data_structure):\n", + " for j, segment_id in enumerate(prf.data_structure[outlet_id]):\n", + " if j == 0:\n", + " label = f\"channel {i + 1}\"\n", + " else:\n", + " label = \"_nolegend_\"\n", + " segment = prf.data_structure[outlet_id][segment_id]\n", + " profile_ids = segment[\"ids\"]\n", + " distance_upstream = segment[\"distances\"]\n", + " color = segment[\"color\"]\n", + " plt.plot(\n", + " distance_upstream,\n", + " grid.at_node[\"channel__steepness_index\"][profile_ids],\n", + " \"x\",\n", + " color=color,\n", + " label=label,\n", + " )\n", + "\n", + " plt.xlabel(\"distance upstream (m)\")\n", + " plt.ylabel(\"steepness index\")\n", + " plt.legend(loc=\"lower left\")\n", + " plt.title(f\"Steepness index at t = {elapsed_time}\")\n", + "\n", + " # Run the flow router\n", + " flow_accumulator.run_one_step()\n", + "\n", + " # Run the depression finder and router; optional\n", + " depression_finder.map_depressions()\n", + "\n", + " # Run the SSPM model for one timestep\n", + " shared_stream_power.run_one_step(dt=timestep)\n", + "\n", + " # Move elevation of core nodes upwards relative to base level\n", + " # at the rock uplift rate\n", + " grid.at_node[\"topographic__elevation\"][grid.core_nodes] += (\n", + " rock_uplift_rate * timestep\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "20", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "\n", + "Hergarten, S. (2021). The influence of sediment transport on stationary\n", + " and mobile knickpoints in river profiles. Journal of Geophysical Research:\n", + " Earth Surface, 126, e2021JF006218. https://doi.org/10.1029/2021JF006218\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/tutorials/landscape_evolution/gravel_bedrock_eroder/gravel_bedrock_transporter_unit_tests.ipynb b/docs/source/tutorials/landscape_evolution/gravel_bedrock_eroder/gravel_bedrock_transporter_unit_tests.ipynb similarity index 100% rename from notebooks/tutorials/landscape_evolution/gravel_bedrock_eroder/gravel_bedrock_transporter_unit_tests.ipynb rename to docs/source/tutorials/landscape_evolution/gravel_bedrock_eroder/gravel_bedrock_transporter_unit_tests.ipynb diff --git a/notebooks/tutorials/landscape_evolution/gravel_river_transporter/gravel_river_transporter.ipynb b/docs/source/tutorials/landscape_evolution/gravel_river_transporter/gravel_river_transporter.ipynb similarity index 99% rename from notebooks/tutorials/landscape_evolution/gravel_river_transporter/gravel_river_transporter.ipynb rename to docs/source/tutorials/landscape_evolution/gravel_river_transporter/gravel_river_transporter.ipynb index 0df98656cc..36c80336a4 100644 --- a/notebooks/tutorials/landscape_evolution/gravel_river_transporter/gravel_river_transporter.ipynb +++ b/docs/source/tutorials/landscape_evolution/gravel_river_transporter/gravel_river_transporter.ipynb @@ -1059,7 +1059,7 @@ "id": "54", "metadata": {}, "source": [ - "#### Test: sediment flux and slope at headwater cells\n", + "### Test: sediment flux and slope at headwater cells\n", "\n", "One way to test the steady mini-basin solution is to look at the headwater cells: those that receive no external water or sediment. When in equilibrium with a specified rate of baselevel lowering, a headwater cell should erode at the rate of baselevel lowering, $E$. This will effectively supply a quantity of sediment equal to the erosion rate times the cell area, $\\Lambda$, times the solid fraction, so that we can express the volume inflow of sediment to the cell from erosional lowering as:\n", "\n", @@ -1396,7 +1396,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/landscape_evolution/hylands/HyLandsTutorial.ipynb b/docs/source/tutorials/landscape_evolution/hylands/HyLandsTutorial.ipynb similarity index 98% rename from notebooks/tutorials/landscape_evolution/hylands/HyLandsTutorial.ipynb rename to docs/source/tutorials/landscape_evolution/hylands/HyLandsTutorial.ipynb index a45528e5f7..c3060771e1 100644 --- a/notebooks/tutorials/landscape_evolution/hylands/HyLandsTutorial.ipynb +++ b/docs/source/tutorials/landscape_evolution/hylands/HyLandsTutorial.ipynb @@ -162,7 +162,7 @@ "# Instantiate model grid\n", "mg = RasterModelGrid((num_rows, num_columns), node_spacing)\n", "# add field ’topographic elevation’ to the grid\n", - "mg.add_zeros(\"node\", \"topographic__elevation\")\n", + "mg.add_zeros(\"topographic__elevation\", at=\"node\")\n", "# set constant random seed for consistent topographic roughness\n", "np.random.seed(seed=5000)\n", "\n", @@ -175,7 +175,7 @@ "mg[\"node\"][\"topographic__elevation\"] += random_noise\n", "\n", "# add field 'soil__depth' to the grid\n", - "mg.add_zeros(\"node\", \"soil__depth\")\n", + "mg.add_zeros(\"soil__depth\", at=\"node\")\n", "\n", "# Set 2 m of initial soil depth at core nodes\n", "mg.at_node[\"soil__depth\"][mg.core_nodes] = 1.0 # meters\n", @@ -509,18 +509,13 @@ ")\n", "plt.show()" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/notebooks/tutorials/landscape_evolution/river_input_lem/adding_discharge_point_source_to_a_lem.ipynb b/docs/source/tutorials/landscape_evolution/river_input_lem/adding_discharge_point_source_to_a_lem.ipynb similarity index 100% rename from notebooks/tutorials/landscape_evolution/river_input_lem/adding_discharge_point_source_to_a_lem.ipynb rename to docs/source/tutorials/landscape_evolution/river_input_lem/adding_discharge_point_source_to_a_lem.ipynb diff --git a/notebooks/tutorials/landscape_evolution/smooth_threshold_eroder/stream_power_smooth_threshold_eroder.ipynb b/docs/source/tutorials/landscape_evolution/smooth_threshold_eroder/stream_power_smooth_threshold_eroder.ipynb similarity index 100% rename from notebooks/tutorials/landscape_evolution/smooth_threshold_eroder/stream_power_smooth_threshold_eroder.ipynb rename to docs/source/tutorials/landscape_evolution/smooth_threshold_eroder/stream_power_smooth_threshold_eroder.ipynb diff --git a/notebooks/tutorials/landscape_evolution/space/SPACE_large_scale_eroder_user_guide_and_examples.ipynb b/docs/source/tutorials/landscape_evolution/space/SPACE_large_scale_eroder_user_guide_and_examples.ipynb similarity index 83% rename from notebooks/tutorials/landscape_evolution/space/SPACE_large_scale_eroder_user_guide_and_examples.ipynb rename to docs/source/tutorials/landscape_evolution/space/SPACE_large_scale_eroder_user_guide_and_examples.ipynb index 6ac527e710..06c4e6ebcf 100644 --- a/notebooks/tutorials/landscape_evolution/space/SPACE_large_scale_eroder_user_guide_and_examples.ipynb +++ b/docs/source/tutorials/landscape_evolution/space/SPACE_large_scale_eroder_user_guide_and_examples.ipynb @@ -113,11 +113,10 @@ "source": [ "import matplotlib.pyplot as plt # For plotting results; optional\n", "import numpy as np\n", + "from tqdm.notebook import trange\n", "\n", - "from landlab import RasterModelGrid # Grid utility\n", - "from landlab import imshow_grid # For plotting results; optional\n", - "from landlab.components import SpaceLargeScaleEroder # SpaceLargeScaleEroder model\n", - "from landlab.components import PriorityFloodFlowRouter" + "from landlab import RasterModelGrid\n", + "from landlab.components import PriorityFloodFlowRouter, SpaceLargeScaleEroder" ] }, { @@ -126,7 +125,7 @@ "source": [ "Two Landlab components are essential to running the SPACE model: the model itself, and the `PriorityFloodFlowRouter`, which calculates drainage pathways, topographic slopes, and surface water discharge across the grid. \n", "\n", - "In addition to the relevant process components, some Landlab utilities are required to generate the model grid (in this example `RasterModelGrid`) and to visualize output (`imshow_grid`). Note that while it is possible to visualize output through functionality in other libraries (e.g., matplotlib), `imshow_grid` provides a simple way to generate 2-D maps of model variables.\n", + "In addition to the relevant process components, some Landlab utilities are required to generate the model grid (in this example `RasterModelGrid`).\n", "\n", "Most Landlab functionality requires the Numpy package for scientific computing in python. The matplotlib plotting library has also been imported to aid visualization of results." ] @@ -154,44 +153,26 @@ }, "outputs": [], "source": [ - "# Set grid parameters\n", - "num_rows = 20\n", - "num_columns = 20\n", - "node_spacing = 100.0\n", + "rng = np.random.default_rng(seed=5000)\n", "\n", - "# track sediment flux at the node adjacent to the outlet at lower-left\n", - "node_next_to_outlet = num_columns + 1\n", - "\n", - "# Instantiate model grid\n", - "mg = RasterModelGrid((num_rows, num_columns), node_spacing)\n", - "# add field ’topographic elevation’ to the grid\n", - "mg.add_zeros(\"node\", \"topographic__elevation\")\n", - "# set constant random seed for consistent topographic roughness\n", - "np.random.seed(seed=5000)\n", + "mg = RasterModelGrid((20, 20), xy_spacing=100.0)\n", "\n", - "# Create initial model topography:\n", "# plane tilted towards the lower−left corner\n", - "topo = mg.node_y / 100000.0 + mg.node_x / 100000.0\n", - "\n", - "# add topographic roughness\n", - "random_noise = (\n", - " np.random.rand(len(mg.node_y)) / 1000.0\n", - ") # impose topography values on model grid\n", - "mg[\"node\"][\"topographic__elevation\"] += topo + random_noise\n", - "\n", - "# add field 'soil__depth' to the grid\n", - "mg.add_zeros(\"node\", \"soil__depth\")\n", + "mg.at_node[\"bedrock__elevation\"] = (\n", + " mg.y_of_node / 100000.0\n", + " + mg.x_of_node / 100000.0\n", + " + rng.uniform(0.0, 1e-3, size=mg.number_of_nodes)\n", + ")\n", "\n", "# Set 2 m of initial soil depth at core nodes\n", + "mg.add_zeros(\"soil__depth\", at=\"node\")\n", "mg.at_node[\"soil__depth\"][mg.core_nodes] = 2.0 # meters\n", "\n", - "# Add field 'bedrock__elevation' to the grid\n", - "mg.add_zeros(\"bedrock__elevation\", at=\"node\")\n", - "\n", "# Sum 'soil__depth' and 'bedrock__elevation'\n", "# to yield 'topographic elevation'\n", - "mg.at_node[\"bedrock__elevation\"][:] = mg.at_node[\"topographic__elevation\"]\n", - "mg.at_node[\"topographic__elevation\"][:] += mg.at_node[\"soil__depth\"]" + "mg.at_node[\"topographic__elevation\"] = (\n", + " mg.at_node[\"bedrock__elevation\"] + mg.at_node[\"soil__depth\"]\n", + ")" ] }, { @@ -218,10 +199,19 @@ "\n", "# Set lower-left (southwest) corner as an open boundary\n", "mg.set_watershed_boundary_condition_outlet_id(\n", - " 0, mg[\"node\"][\"topographic__elevation\"], -9999.0\n", + " 0, mg.at_node[\"topographic__elevation\"], -9999.0\n", ")" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "mg.imshow(\"topographic__elevation\", cmap=\"terrain\")" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -288,36 +278,22 @@ }, "outputs": [], "source": [ - "# Set model timestep\n", - "timestep = 1.0 # years\n", - "\n", - "# Set elapsed time to zero\n", - "elapsed_time = 0.0 # years\n", - "\n", - "# Set timestep count to zero\n", - "count = 0\n", + "n_steps = 500\n", + "dt = 1.0 # years\n", "\n", - "# Set model run time\n", - "run_time = 500.0 # years\n", - "\n", - "# Array to save sediment flux values\n", - "sed_flux = np.zeros(int(run_time // timestep))\n", + "# track sediment flux at the node adjacent to the outlet at lower-left\n", + "node_next_to_outlet = mg.shape[0] + 1\n", + "sed_flux = []\n", "\n", - "while elapsed_time < run_time: # time units of years\n", + "for time in trange(n_steps):\n", " # Run the flow router\n", " fr.run_one_step()\n", "\n", " # Run SPACE for one time step\n", - " sp.run_one_step(dt=timestep)\n", + " sp.run_one_step(dt=dt)\n", "\n", " # Save sediment flux value to array\n", - " sed_flux[count] = mg.at_node[\"sediment__flux\"][node_next_to_outlet]\n", - "\n", - " # Add to value of elapsed time\n", - " elapsed_time += timestep\n", - "\n", - " # Increase timestep count\n", - " count += 1" + " sed_flux.append(mg.at_node[\"sediment__flux\"][node_next_to_outlet])" ] }, { @@ -344,15 +320,7 @@ }, "outputs": [], "source": [ - "# Instantiate figure\n", - "fig = plt.figure()\n", - "\n", - "# Instantiate subplot\n", - "plot = plt.subplot()\n", - "\n", - "# Show sediment flux map\n", - "imshow_grid(\n", - " mg,\n", + "mg.imshow(\n", " \"sediment__flux\",\n", " plot_name=\"Sediment flux\",\n", " var_name=\"Sediment flux\",\n", @@ -362,18 +330,20 @@ ")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Elevation map" + ] + }, { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ - "# Export figure to image\n", - "fig.savefig(\"sediment_flux_map.eps\")" + "mg.imshow(\"topographic__elevation\", cmap=\"terrain\")" ] }, { @@ -395,18 +365,10 @@ }, "outputs": [], "source": [ - "# Instantiate figure\n", - "fig = plt.figure()\n", + "plt.plot(np.arange(len(sed_flux)) * dt, sed_flux, color=\"k\", linewidth=3.0)\n", "\n", - "# Instantiate subplot\n", - "sedfluxplot = plt.subplot()\n", - "\n", - "# Plot data\n", - "sedfluxplot.plot(np.arange(500), sed_flux, color=\"k\", linewidth=3.0)\n", - "\n", - "# Add axis labels\n", - "sedfluxplot.set_xlabel(\"Time [yr]\")\n", - "sedfluxplot.set_ylabel(r\"Sediment flux [m$^3$/yr]\")" + "plt.gca().set_xlabel(\"Time [yr]\")\n", + "plt.gca().set_ylabel(r\"Sediment flux [m$^3$/yr]\")" ] }, { @@ -415,18 +377,11 @@ "source": [ "There is an initial increase in sediment flux from the model domain as the water reaches its equilibrium transport capacity. Over the long run, topographic gradients are reduced by the erosion of sediment, which results in lower and lower sediment fluxes from the domain over time." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -440,7 +395,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.1" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/landscape_evolution/space/SPACE_user_guide_and_examples.ipynb b/docs/source/tutorials/landscape_evolution/space/SPACE_user_guide_and_examples.ipynb similarity index 98% rename from notebooks/tutorials/landscape_evolution/space/SPACE_user_guide_and_examples.ipynb rename to docs/source/tutorials/landscape_evolution/space/SPACE_user_guide_and_examples.ipynb index 3aaa5c51d9..c7193e42c9 100644 --- a/notebooks/tutorials/landscape_evolution/space/SPACE_user_guide_and_examples.ipynb +++ b/docs/source/tutorials/landscape_evolution/space/SPACE_user_guide_and_examples.ipynb @@ -164,7 +164,7 @@ "# Instantiate model grid\n", "mg = RasterModelGrid((num_rows, num_columns), node_spacing)\n", "# add field ’topographic elevation’ to the grid\n", - "mg.add_zeros(\"node\", \"topographic__elevation\")\n", + "mg.add_zeros(\"topographic__elevation\", at=\"node\")\n", "# set constant random seed for consistent topographic roughness\n", "np.random.seed(seed=5000)\n", "\n", @@ -179,7 +179,7 @@ "mg[\"node\"][\"topographic__elevation\"] += topo + random_noise\n", "\n", "# add field 'soil__depth' to the grid\n", - "mg.add_zeros(\"node\", \"soil__depth\")\n", + "mg.add_zeros(\"soil__depth\", at=\"node\")\n", "\n", "# Set 2 m of initial soil depth at core nodes\n", "mg.at_node[\"soil__depth\"][mg.core_nodes] = 2.0 # meters\n", @@ -422,13 +422,6 @@ "source": [ "There is an initial increase in sediment flux from the model domain as the water reaches its equilibrium transport capacity. Over the long run, topographic gradients are reduced by the erosion of sediment, which results in lower and lower sediment fluxes from the domain over time." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/landscape_evolution/threshold_eroder/threshold_eroder.ipynb b/docs/source/tutorials/landscape_evolution/threshold_eroder/threshold_eroder.ipynb similarity index 96% rename from notebooks/tutorials/landscape_evolution/threshold_eroder/threshold_eroder.ipynb rename to docs/source/tutorials/landscape_evolution/threshold_eroder/threshold_eroder.ipynb index 310c7ae6ac..652f7a8359 100644 --- a/notebooks/tutorials/landscape_evolution/threshold_eroder/threshold_eroder.ipynb +++ b/docs/source/tutorials/landscape_evolution/threshold_eroder/threshold_eroder.ipynb @@ -4,14 +4,6 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# User guide and example for the Landlab threshold_eroder component\n", "\n", @@ -24,7 +16,7 @@ }, { "cell_type": "markdown", - "id": "2", + "id": "1", "metadata": {}, "source": [ "## Threshold eroder with regular grid\n" @@ -33,7 +25,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -74,7 +66,7 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ "## Threshold eroder with regular grid using a bedrock and soil field\n" @@ -83,7 +75,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -124,7 +116,7 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ "## Threshold eroder with hexagonal grid\n" @@ -133,7 +125,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -175,7 +167,7 @@ }, { "cell_type": "markdown", - "id": "8", + "id": "7", "metadata": {}, "source": [ "### Click here to learn about Landlab tutorials" diff --git a/notebooks/tutorials/lithology/lithology_and_litholayers.ipynb b/docs/source/tutorials/lithology/lithology_and_litholayers.ipynb similarity index 99% rename from notebooks/tutorials/lithology/lithology_and_litholayers.ipynb rename to docs/source/tutorials/lithology/lithology_and_litholayers.ipynb index a59c2c065c..1fa799ef26 100644 --- a/notebooks/tutorials/lithology/lithology_and_litholayers.ipynb +++ b/docs/source/tutorials/lithology/lithology_and_litholayers.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -1006,7 +999,7 @@ "\n", "For more detailed information about the [Lithology](https://landlab.readthedocs.io/en/release/landlab.components.lithology.html) and [LithoLayers](https://landlab.readthedocs.io/en/release/landlab.components.litholayers.html) objects, check out their detailed documentation. \n", "\n", - "# **Click [here](https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html) for more Landlab tutorials**" + "### **Click [here](https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html) for more Landlab tutorials**" ] } ], @@ -1026,9 +1019,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/making_components/component_design_tips.ipynb b/docs/source/tutorials/making_components/component_design_tips.ipynb similarity index 96% rename from notebooks/tutorials/making_components/component_design_tips.ipynb rename to docs/source/tutorials/making_components/component_design_tips.ipynb index 510a683043..8ef60aa62c 100644 --- a/notebooks/tutorials/making_components/component_design_tips.ipynb +++ b/docs/source/tutorials/making_components/component_design_tips.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# Tips on Writing Landlab Components" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -247,13 +231,6 @@ "## Other references\n", "Many of the landlab developers have found this [resource on python anti-patterns](https://docs.quantifiedcode.com/python-anti-patterns/index.html) helpful. " ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/making_components/making_components.ipynb b/docs/source/tutorials/making_components/making_components.ipynb similarity index 97% rename from notebooks/tutorials/making_components/making_components.ipynb rename to docs/source/tutorials/making_components/making_components.ipynb index eb6e83960f..013b9e64a6 100644 --- a/notebooks/tutorials/making_components/making_components.ipynb +++ b/docs/source/tutorials/making_components/making_components.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# How to write a Landlab component" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -844,13 +828,6 @@ "\n", "Nonetheless, the above example illustrates the basics of component-making. A great next step would be to create a unit test based on this example." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more [Landlab tutorials](https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html)" - ] } ], "metadata": { @@ -869,9 +846,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/mappers/mappers.ipynb b/docs/source/tutorials/mappers/mappers.ipynb similarity index 96% rename from notebooks/tutorials/mappers/mappers.ipynb rename to docs/source/tutorials/mappers/mappers.ipynb index 8f92c91320..97566196b0 100644 --- a/notebooks/tutorials/mappers/mappers.ipynb +++ b/docs/source/tutorials/mappers/mappers.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Mapping values between grid elements\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html)\n", - "
\n", - "\n", "Imagine that you're using Landlab to write a model of shallow water flow over terrain. A natural approach is to place your scalar fields, such as water depth, at the nodes. You then place your vector fields, such as water surface gradient, flow velocity, and discharge, at the links. But your velocity depends on both slope and depth, which means you need to know the depth at the links too. How do you do this?\n", "\n", "This tutorial introduces *mappers*: grid functions that map quantities defined on one set of elements (such as nodes) onto another set of elements (such as links). As you'll see, there are a variety of mappers available.\n", diff --git a/notebooks/tutorials/marine_sediment_transport/simple_submarine_diffuser_tutorial.ipynb b/docs/source/tutorials/marine_sediment_transport/simple_submarine_diffuser_tutorial.ipynb similarity index 94% rename from notebooks/tutorials/marine_sediment_transport/simple_submarine_diffuser_tutorial.ipynb rename to docs/source/tutorials/marine_sediment_transport/simple_submarine_diffuser_tutorial.ipynb index 4563abd30f..00a1f840f0 100644 --- a/notebooks/tutorials/marine_sediment_transport/simple_submarine_diffuser_tutorial.ipynb +++ b/docs/source/tutorials/marine_sediment_transport/simple_submarine_diffuser_tutorial.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using the Landlab SimpleSubmarineDiffuser component\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "This tutorial demonstrates how to use the `SimpleSubmarineDiffuser` component. `SimpleSubmarineDiffuser` models submarine sediment transport using a diffusion approach, in which the diffusivity varies with water depth. The component sets diffusivity to a (nearly) constant value between sea level and the wave-base depth, and to a value that declines exponentially with depth below the wave base. (The diffusivity on land, meaning locations with an elevation above current sea level, is set to an arbitrarily tiny positive value)." ] }, @@ -289,13 +278,6 @@ "# from a tiny roundoff error)\n", "print(np.sum(cum_depo))" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/mass_wasting_runout/A_PlanarSlope.asc b/docs/source/tutorials/mass_wasting_runout/A_PlanarSlope.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/A_PlanarSlope.asc rename to docs/source/tutorials/mass_wasting_runout/A_PlanarSlope.asc diff --git a/notebooks/tutorials/mass_wasting_runout/B_PlanarSlopeWithConstriction.asc b/docs/source/tutorials/mass_wasting_runout/B_PlanarSlopeWithConstriction.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/B_PlanarSlopeWithConstriction.asc rename to docs/source/tutorials/mass_wasting_runout/B_PlanarSlopeWithConstriction.asc diff --git a/notebooks/tutorials/mass_wasting_runout/C_WideFlumeWithBench.asc b/docs/source/tutorials/mass_wasting_runout/C_WideFlumeWithBench.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/C_WideFlumeWithBench.asc rename to docs/source/tutorials/mass_wasting_runout/C_WideFlumeWithBench.asc diff --git a/notebooks/tutorials/mass_wasting_runout/DEM_of_Difference.asc b/docs/source/tutorials/mass_wasting_runout/DEM_of_Difference.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/DEM_of_Difference.asc rename to docs/source/tutorials/mass_wasting_runout/DEM_of_Difference.asc diff --git a/notebooks/tutorials/mass_wasting_runout/D_ConvergentConcave.asc b/docs/source/tutorials/mass_wasting_runout/D_ConvergentConcave.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/D_ConvergentConcave.asc rename to docs/source/tutorials/mass_wasting_runout/D_ConvergentConcave.asc diff --git a/notebooks/tutorials/mass_wasting_runout/E_VariableConvergenceConcave.asc b/docs/source/tutorials/mass_wasting_runout/E_VariableConvergenceConcave.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/E_VariableConvergenceConcave.asc rename to docs/source/tutorials/mass_wasting_runout/E_VariableConvergenceConcave.asc diff --git a/notebooks/tutorials/mass_wasting_runout/F_VaryConvergenceConvex.asc b/docs/source/tutorials/mass_wasting_runout/F_VaryConvergenceConvex.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/F_VaryConvergenceConvex.asc rename to docs/source/tutorials/mass_wasting_runout/F_VaryConvergenceConvex.asc diff --git a/notebooks/tutorials/mass_wasting_runout/landslide_depth.asc b/docs/source/tutorials/mass_wasting_runout/landslide_depth.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/landslide_depth.asc rename to docs/source/tutorials/mass_wasting_runout/landslide_depth.asc diff --git a/notebooks/tutorials/mass_wasting_runout/landslide_polygon.asc b/docs/source/tutorials/mass_wasting_runout/landslide_polygon.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/landslide_polygon.asc rename to docs/source/tutorials/mass_wasting_runout/landslide_polygon.asc diff --git a/notebooks/tutorials/mass_wasting_runout/landslide_runout_animation.ipynb b/docs/source/tutorials/mass_wasting_runout/landslide_runout_animation.ipynb similarity index 99% rename from notebooks/tutorials/mass_wasting_runout/landslide_runout_animation.ipynb rename to docs/source/tutorials/mass_wasting_runout/landslide_runout_animation.ipynb index 350ddab32d..36cdd41f10 100644 --- a/notebooks/tutorials/mass_wasting_runout/landslide_runout_animation.ipynb +++ b/docs/source/tutorials/mass_wasting_runout/landslide_runout_animation.ipynb @@ -5,7 +5,9 @@ "id": "0", "metadata": {}, "source": [ - "" + "# Landslide Runout Animation\n", + "\n", + "**Simulate the runout extent, sediment transport and topographic change caused by the retrogressive enlargement of a landslide scar in the Cascade Mountains, WA, USA**" ] }, { @@ -13,17 +15,9 @@ "id": "1", "metadata": {}, "source": [ - "## Simulate the runout extent, sediment transport and topographic change caused by the retrogressive enlargement of a landslide scar in the Cascade Mountains, WA, USA" - ] - }, - { - "cell_type": "markdown", - "id": "2", - "metadata": {}, - "source": [ - "#### In this tutorial, the user models the runout of a landslide that occurred near Mt. St. Helens in Washington State in December of 2021. The landslide was associated with the retrogressive enlargement of an existing landslide scar. The existing landslide scar formed during a much larger landslide in 2009. The 2021 enlargement failed along the upper edge of the 2009 scar and ranout down the center of the 2009 runout path. It intersected the S-1000, a forest road recently reconstructed below the landslide and another forest road below it before coming to rest at a river valley at the base of the slope. \n", + "In this tutorial, the user models the runout of a landslide that occurred near Mt. St. Helens in Washington State in December of 2021. The landslide was associated with the retrogressive enlargement of an existing landslide scar. The existing landslide scar formed during a much larger landslide in 2009. The 2021 enlargement failed along the upper edge of the 2009 scar and ranout down the center of the 2009 runout path. It intersected the S-1000, a forest road recently reconstructed below the landslide and another forest road below it before coming to rest at a river valley at the base of the slope. \n", "\n", - "#### To model the landslide runout caused by the 2021 enlargement, the user loads a DEM, recorded after te 2009 landslide but before the 2021 enlargement, the mapped extent of the enlargement, defines the failure depth and parameterizes MassWastingRunout (MWR) to match observed runout extent, erosion and deposition caused by the enlargement. At the end of the notebook, a DEM-of-Difference (DoD) of the modeled runout is visually compared with a DoD of the observed runout." + "To model the landslide runout caused by the 2021 enlargement, the user loads a DEM, recorded after te 2009 landslide but before the 2021 enlargement, the mapped extent of the enlargement, defines the failure depth and parameterizes MassWastingRunout (MWR) to match observed runout extent, erosion and deposition caused by the enlargement. At the end of the notebook, a DEM-of-Difference (DoD) of the modeled runout is visually compared with a DoD of the observed runout." ] }, { @@ -33,7 +27,7 @@ } }, "cell_type": "markdown", - "id": "3", + "id": "2", "metadata": {}, "source": [ "
\n", @@ -48,10 +42,10 @@ } }, "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ - "#### Model overview\n", + "## Model overview\n", "- MWR models the downslope progression of mass wasting processes such as debris flows or dry debris avalanches.\n", "\n", "- Mass continuity is central to model conceptualization; at any node, the incoming flux (q_I), erosion (E) and aggradation (A) determine outgoing flux (q_O) and ultimately the runout extent and how the landscape evolves. \n", @@ -70,7 +64,7 @@ } }, "cell_type": "markdown", - "id": "5", + "id": "4", "metadata": {}, "source": [ "
\n", @@ -80,7 +74,7 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ "(a) Release of the initial mass wasting source material nodes (represented by red cells); (b) How q_O at node n (n = 45) is distributed downslope after incoming material q_I (here equal to flux from node 51) has aggraded (A) or eroded (E) node n; (c) Mass continuity determines the change in regolith thickness/topographic elevation. For a full description of the above parameters, see Keck et al. (2024). " @@ -88,16 +82,16 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "6", "metadata": {}, "source": [ - "#### To begin, first import packages and components necessary to load MWR inputs, run MWR and visualize model results." + "**To begin, first import packages and components necessary to load MWR inputs, run MWR and visualize model results.**" ] }, { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -116,10 +110,11 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "8", "metadata": {}, "source": [ - "#### Next, define key MWR parameters S_c, q_c and k and attributes to be tracked by the model.
\n", + "**Next, define key MWR parameters S_c, q_c and k and attributes to be tracked by the model.**\n", + "\n", "In MWR, S_c is a critical slope constraint. For some flows, it may be possible to approximate S_c from the surface slope of observed deposits. The parameter q_c is the threshold flux for deposition, that conceptually represents the flow depth below which flow resistance is large enough to cease the forward momentum of the flow, whether in the form of frictional resistance along the base of the flow or debris and vegetation in the path of the flow. Parameter k scales the erosion rate.
\n", "\n", "Calibration may be required to determine single values of S_c and q_c that parameterize MWR to a site while other model parameters can be determined directly from a site. For this example, we provide S_c and q_c parameter values determined from the MWR calibration utility, a separate program that tunes MWR modeled runout to match observed runout extent, deposition and erosion patterns. A future notebook will detail how MWR can be calibrated using the MWR calibrator utility." @@ -128,7 +123,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -149,17 +144,18 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "10", "metadata": {}, "source": [ - "#### Next, define the initial model terrain and lanslide location and depth.
\n", + "**Next, define the initial model terrain and lanslide location and depth.**\n", + "\n", "To initiate MWR, the user needs to provide an initial DEM, a regolith depth map and the location and depth of the mass wasting source material (e.g., landslide body). In this example, the required inputs have been prepared using an external GIS system. The initial DEM was created after the 2009 landslide but before the 2021 enlargement. Regolith depth is assumed uniform and equal to 1.2 meters. The depth of the landslide was estimated by subtracting a DEM recorded after the 2021 failure from the initial DEM. The landslide polygon was mapped from airphotos of the 2021 landslide and converted to a gridded representation. The number of rows, number of columns and grid size (10 meter) of each input is the same and all are loaded as fields onto a Landlab raster model grid. Below we load each and add them as fields to a raster model grid. We also load a high-resolution hillshade of the model domain that will be used for visualizing model results." ] }, { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -237,15 +233,15 @@ }, { "cell_type": "markdown", - "id": "13", + "id": "12", "metadata": {}, "source": [ - "#### Before we instantiate and run the model, lets visualize some of the loaded inputs to get a feel for the landslide geometry relative to the terrain." + "**Before we instantiate and run the model, lets visualize some of the loaded inputs to get a feel for the landslide geometry relative to the terrain.**" ] }, { "cell_type": "markdown", - "id": "14", + "id": "13", "metadata": {}, "source": [ "First we need to define a few functions for visualizing model results.
\n", @@ -255,7 +251,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -367,7 +363,7 @@ }, { "cell_type": "markdown", - "id": "16", + "id": "15", "metadata": {}, "source": [ "As noted above, the landslide is an enlargement of an existing landslide scar that formed in 2009. Downslope of the 2009 scar, a first-to-second order channel drains the center of the 2009 runout path and two forest roads cross the channel. Both road crossing were destroyed by the 2009 runout but were later reconstructed and are large fills that effectively create check dams in the runout path of the 2021 landslide. Note the model is run using a 10-meter grid but for visualization purposes, we show model inputs and results overlayed on top of a high-resolution (2-meter) hillshade of the terrain." @@ -376,7 +372,7 @@ { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -387,7 +383,7 @@ }, { "cell_type": "markdown", - "id": "18", + "id": "17", "metadata": {}, "source": [ "In the next figure, we plot topographic slope of the initial DEM. At high slopes, MWR will erode while at low slopes MWR will deposit, where high and low vary as a function of the parameter S_c. You can see that there is an area of moderate-to-low slope (green and blue cells) between the two roads." @@ -396,7 +392,7 @@ { "cell_type": "code", "execution_count": null, - "id": "19", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -412,7 +408,7 @@ }, { "cell_type": "markdown", - "id": "20", + "id": "19", "metadata": {}, "source": [ "We calibrated MWR to a DoD of the observed runout (shown below). Red indicates a positive change in the elevation of the terrain (aggradation) and blue indicates a negative change (erosion). Notice how the observed runout eroded along the steep reaches and deposited in the moderate to low slope reaches. It also formed thick deposits up-channel of the road crossings. It eroded the upper road surface but not the surface of the lower road. Only a small amount of the observed runout actually flowed into the river at the base of the hillslope." @@ -421,7 +417,7 @@ { "cell_type": "code", "execution_count": null, - "id": "21", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -432,17 +428,18 @@ }, { "cell_type": "markdown", - "id": "22", + "id": "21", "metadata": {}, "source": [ - "#### Now set up an instance of MWR using the newly defined raster model grid and the landslide and watch a calibrated recreation of the observed runout!
\n", + "**Now set up an instance of MWR using the newly defined raster model grid and the landslide and watch a calibrated recreation of the observed runout!**\n", + "\n", "Before we instantiate the model, we need to switch the topographic__steepest_slope and other related flow routing fields from the D8 flow routing option to the multidirectional routing option. MWR uses multi-directional slope. " ] }, { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -474,7 +471,7 @@ }, { "cell_type": "markdown", - "id": "24", + "id": "23", "metadata": {}, "source": [ "Once the model has finished running, view an animation of the landslide runout, here shown as the DoD from each iteration of the model run.
" @@ -483,13 +480,10 @@ { "cell_type": "code", "execution_count": null, - "id": "25", + "id": "24", "metadata": {}, "outputs": [], "source": [ - "%matplotlib notebook\n", - "\n", - "\n", "# update function\n", "def update_plot(frame_number, MWR, plot):\n", " mg.at_node[\"dem_dif_m\"] = (\n", @@ -500,6 +494,8 @@ " plot[0].remove()\n", " plot[0] = color_mesh_vals(clim=[-1, 1])\n", "\n", + " return plot\n", + "\n", "\n", "# prepare the first frame\n", "fig = plt.figure(figsize=(8, 8))\n", @@ -528,10 +524,10 @@ }, { "cell_type": "markdown", - "id": "26", + "id": "25", "metadata": {}, "source": [ - "#### Now that you've seen an example of how a calibrated MWR can replicate observed runout, try re-running this notebook with different parameter values to see if you can send more sediment into the river valley below the second road crossing!" + "**Now that you've seen an example of how a calibrated MWR can replicate observed runout, try re-running this notebook with different parameter values to see if you can send more sediment into the river valley below the second road crossing!**" ] } ], @@ -551,7 +547,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/mass_wasting_runout/pre_runout_DEM.asc b/docs/source/tutorials/mass_wasting_runout/pre_runout_DEM.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/pre_runout_DEM.asc rename to docs/source/tutorials/mass_wasting_runout/pre_runout_DEM.asc diff --git a/notebooks/tutorials/mass_wasting_runout/pre_runout_DEM_hillshade.asc b/docs/source/tutorials/mass_wasting_runout/pre_runout_DEM_hillshade.asc similarity index 100% rename from notebooks/tutorials/mass_wasting_runout/pre_runout_DEM_hillshade.asc rename to docs/source/tutorials/mass_wasting_runout/pre_runout_DEM_hillshade.asc diff --git a/notebooks/tutorials/mass_wasting_runout/synthetic_landscape_animation.ipynb b/docs/source/tutorials/mass_wasting_runout/synthetic_landscape_animation.ipynb similarity index 99% rename from notebooks/tutorials/mass_wasting_runout/synthetic_landscape_animation.ipynb rename to docs/source/tutorials/mass_wasting_runout/synthetic_landscape_animation.ipynb index 33ae473d30..b47c2c9941 100644 --- a/notebooks/tutorials/mass_wasting_runout/synthetic_landscape_animation.ipynb +++ b/docs/source/tutorials/mass_wasting_runout/synthetic_landscape_animation.ipynb @@ -5,7 +5,9 @@ "id": "0", "metadata": {}, "source": [ - "" + "# Synthetic landscape animation\n", + "\n", + "Simulate the runout extent, sediment transport and topographic change caused by the runout of a rectangular landslide over a synthetic terrain using MassWastingRunout" ] }, { @@ -13,15 +15,7 @@ "id": "1", "metadata": {}, "source": [ - "## Simulate the runout extent, sediment transport and topographic change caused by the runout of a rectangular landslide over a synthetic terrain using MassWastingRunout" - ] - }, - { - "cell_type": "markdown", - "id": "2", - "metadata": {}, - "source": [ - "#### In this tutorial, the user defines the rectangular geometry of a landslide, parameterizes MassWastingRunout (MWR) and chooses one of 6 synthetic terrains on which the runout of the landslide is modeled." + "In this tutorial, the user defines the rectangular geometry of a landslide, parameterizes MassWastingRunout (MWR) and chooses one of 6 synthetic terrains on which the runout of the landslide is modeled." ] }, { @@ -31,10 +25,10 @@ } }, "cell_type": "markdown", - "id": "3", + "id": "2", "metadata": {}, "source": [ - "#### Model overview\n", + "## Model overview\n", "- MWR models the downslope progression of mass wasting processes such as debris flows or dry debris avalanches.\n", "\n", "- Mass continuity is central to model conceptualization; at any node, the incoming flux (q_I), erosion (E) and aggradation (A) determine outgoing flux (q_O) and ultimately the runout extent and how the landscape evolves. \n", @@ -54,7 +48,7 @@ } }, "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ "
\n", @@ -64,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "4", "metadata": {}, "source": [ "(a) Release of the initial mass wasting source material nodes (represented by red cells); (b) How q_O at node n (n = 45) is distributed downslope after incoming material q_I (here equal to flux from node 51) has aggraded (A) or eroded (E) node n; (c) Mass continuity determines the change in regolith thickness/topographic elevation. For a full description of the above parameters, see Keck et al. (2024). " @@ -72,16 +66,16 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ - "#### To begin, first import packages and components necessary to load MWR inputs, run MWR and visualize model results." + "**To begin, first import packages and components necessary to load MWR inputs, run MWR and visualize model results.**" ] }, { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -97,17 +91,18 @@ }, { "cell_type": "markdown", - "id": "8", + "id": "7", "metadata": {}, "source": [ - "#### Next, define the mass wasting source area (landslide) geometry.
\n", + "**Next, define the mass wasting source area (landslide) geometry.**\n", + "\n", "In this notebook, we define the geometry of the landslide as a rectangular prism. In later notebooks, we will use the geometry of a landslide body observed in the field." ] }, { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -119,17 +114,18 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "9", "metadata": {}, "source": [ - "#### Then, define key MWR parameters S_c, q_c and k.
\n", + "**Then, define key MWR parameters S_c, q_c and k.**\n", + "\n", "In MWR, S_c is a critical slope constraint. For some flows, it may be possible to approximate S_c from the surface slope of observed deposits. The parameter q_c is the threshold flux for deposition, that conceptually represents the flow depth below which flow resistance is large enough to cease the forward momentum of the flow, whether in the form of frictional resistance along the base of the flow or debris and vegetation in the path of the flow. Parameter k scales the erosion rate.
We also specify the typical particle diameter found in the regolith because in this example, we will use an erosion rule that varies as a function of the flow grain size." ] }, { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -141,10 +137,12 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ - "#### Now, pick which terrain the landslide will runout on.
\n", + "**Now, pick which terrain the landslide will runout on.**\n", + "\n", + "\n", "The planimetric curvature of each terrain ranges from divergent to steeply convergent. In profile, the terrains include concave-up, convex-up, planar and broken.
\n", "Terrains are shaded with the DEM of Difference (DoD) of previous model results using ls_width = 3, ls_length = 5, ls_h = 3, soil_thickness = 2, qs_max = ls_h, q_c = .25, S_c = 0.03, k = 0.005, and Dp = 0.2. Red indicates a positive change in the elevation of the terrain (aggradation) and blue indicates a negative change (erosion).
" ] @@ -152,7 +150,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -166,7 +164,7 @@ } }, "cell_type": "markdown", - "id": "14", + "id": "13", "metadata": {}, "source": [ "
\n", @@ -177,7 +175,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -195,17 +193,18 @@ }, { "cell_type": "markdown", - "id": "16", + "id": "15", "metadata": {}, "source": [ - "#### Now, define a few functions that will create the landslide from the given dimensions and plot model results.
\n", + "**Now, define a few functions that will create the landslide from the given dimensions and plot model results.**\n", + "\n", "These functions are not necessary to run the model and are only included in this notebook for visualizing and setting up the synthetic terrains." ] }, { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -320,17 +319,18 @@ }, { "cell_type": "markdown", - "id": "18", + "id": "17", "metadata": {}, "source": [ - "#### Using the selected terrain, grain size and regolith (soil) depth inputs from above, define the raster model grid.
\n", + "**Using the selected terrain, grain size and regolith (soil) depth inputs from above, define the raster model grid.**\n", + "\n", "Here the landslide thickness is set equal to the regolith thickness. Alternatively, the landslide thickness at each node in the landslide could be defined by providing a numpy.array of the landslide thickness values." ] }, { "cell_type": "code", "execution_count": null, - "id": "19", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -370,17 +370,18 @@ }, { "cell_type": "markdown", - "id": "20", + "id": "19", "metadata": {}, "source": [ - "#### Lets take a look at the location of the initial landslide nodes (dark grey area) relative to the flume.
\n", + "**Lets take a look at the location of the initial landslide nodes (dark grey area) relative to the flume.**\n", + "\n", "Here, the flume is colored according to elevation" ] }, { "cell_type": "code", "execution_count": null, - "id": "21", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -411,16 +412,16 @@ }, { "cell_type": "markdown", - "id": "22", + "id": "21", "metadata": {}, "source": [ - "#### Now set up an instance of MWR using the newly defined raster model grid and landslide and run the model! " + "**Now set up an instance of MWR using the newly defined raster model grid and landslide and run the model!**" ] }, { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -443,17 +444,18 @@ }, { "cell_type": "markdown", - "id": "24", + "id": "23", "metadata": {}, "source": [ - "#### Once the model has finished running, view the runout extent and how the landslide runout modified the terrain.
\n", + "**Once the model has finished running, view the runout extent and how the landslide runout modified the terrain.**\n", + "\n", "Here the terrain is shown following the runout of the landslide and is now colored according to the DoD. Notice how the landslide removed material at its source, and except for lateral levees, eroded over most of the runout path. The runout material deposited once the slope of the terrain << S_c. Again, red indicates a positive change in the elevation of the terrain (aggradation) and blue indicates a negative change (erosion)." ] }, { "cell_type": "code", "execution_count": null, - "id": "25", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -479,16 +481,16 @@ }, { "cell_type": "markdown", - "id": "26", + "id": "25", "metadata": {}, "source": [ - "#### Finally, watch an animation of the runout process that created the final erosion and depositional pattern shown above. The runout is visualized as the DoD of each model iteration.
" + "**Finally, watch an animation of the runout process that created the final erosion and depositional pattern shown above. The runout is visualized as the DoD of each model iteration.**" ] }, { "cell_type": "code", "execution_count": null, - "id": "27", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -545,10 +547,10 @@ }, { "cell_type": "markdown", - "id": "28", + "id": "27", "metadata": {}, "source": [ - "#### Now that you've seen an example, try re-running this notebook with different parameter values, terrains and landslide geometries to see how MWR responds!" + "**Now that you've seen an example, try re-running this notebook with different parameter values, terrains and landslide geometries to see how MWR responds!**" ] } ], @@ -568,7 +570,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/matrix_creation/numerical_matrix_building_tools.ipynb b/docs/source/tutorials/matrix_creation/numerical_matrix_building_tools.ipynb similarity index 87% rename from notebooks/tutorials/matrix_creation/numerical_matrix_building_tools.ipynb rename to docs/source/tutorials/matrix_creation/numerical_matrix_building_tools.ipynb index 91facdee43..037b347093 100644 --- a/notebooks/tutorials/matrix_creation/numerical_matrix_building_tools.ipynb +++ b/docs/source/tutorials/matrix_creation/numerical_matrix_building_tools.ipynb @@ -14,11 +14,15 @@ "\n", "Numerical solutions to differential equations often involve matrices. With grid-based numerical models, like those that Landlab is designed to support, the problem is *discretized* in space: we solve for one or more state variables of interest at a series of discrete spatial locations, such as a grid node or the cell that surrounds it. That process of discretization converts a partial differential equation into a set of ordinary differential equations, with one equation per point. Consider, for example, the one-dimensional diffusion equation:\n", "\n", - "$$\\frac{\\partial \\eta}{\\partial t} = D\\frac{\\partial^2 \\eta}{\\partial x^2}$$\n", + "\\begin{equation}\n", + "\\frac{\\partial \\eta}{\\partial t} = D\\frac{\\partial^2 \\eta}{\\partial x^2}\n", + "\\end{equation}\n", "\n", "where $t$ is time, $x$ is distance, $D$ is a transport coefficient, and $\\eta$ could be concentration of a dissolved chemical (classic chemical diffusion), the temperature in a solid (heat diffusion), the velocity of flow in a viscous liquid (viscous momentum diffusion), or the height of the land on a hillslope (soil diffusion). If the domain is discretized such that we seek the value of $\\eta$ at a series of discrete points, then the above equation for a given point $i$ becomes:\n", "\n", - "$$\\frac{d \\eta_i}{d t} = D\\frac{d^2 \\eta}{d x^2}\\bigg\\rvert_i$$\n", + "\\begin{equation}\n", + "\\frac{d \\eta_i}{d t} = D\\frac{d^2 \\eta}{d x^2}\\bigg\\rvert_i\n", + "\\end{equation}\n", "\n", "where the subscript at the right means \"evaluated at $i$\". Once the right side has been cast in terms of values of $\\eta$ at particular points, you end up with a linear system of equations, and matrix methods provide a natural way to solve them. One example among many is an implicit finite-difference solution to the one-dimensional form of the diffusion equation, which involves constructing a matrix and a \"right-hand side\" vector, inverting the matrix, and multiplying it by the vector to obtain a solution for the state variable at each grid node (for more on that particular example, see *Mathematical Modeling of Earth's Dynamical Systems* by Slingerland and Kump, or *Numerical Recipes* by Press et al.).\n", "\n", @@ -37,24 +41,29 @@ "\n", "Consider the diffusion model for hillslope evolution in two dimensions. The equation describes the time evolution of land surface height, $z$, given a transport coefficient $D$ $[L^2/T]$, and relative uplift rate $U$ $[L/T]$ as:\n", "\n", - "$$\\frac{\\partial z}{\\partial t} = U - \\nabla \\cdot (-D \\nabla z)$$\n", + "\\begin{equation}\n", + "\\frac{\\partial z}{\\partial t} = U - \\nabla \\cdot (-D \\nabla z)\n", + "\\end{equation}\n", "\n", "Here $\\nabla z$ is the gradient of $z$, which here is a two-element vector (components in the $x$ and $y$ directions, respectively), and $\\nabla\\cdot$ is the divergence operator. We'll use a matrix method to solve for $z(x)$ when the time derivative is zero. So the equation we want to solve is:\n", "\n", - "$$U \\nabla \\cdot (-D \\nabla z) = 0$$\n", + "\\begin{equation}\n", + "U \\nabla \\cdot (-D \\nabla z) = 0\n", + "\\end{equation}\n", "\n", "If $D$ is spatially uniform, we can write this as:\n", "\n", - "$$\\boxed{\\nabla^2 z = -U/D}$$\n", + "\\begin{equation}\n", + "\\boxed{\\nabla^2 z = -U/D}\n", + "\\end{equation}\n", "\n", "This is the equation we're going to discretize and solve. Here $\\nabla^2$ is understood to be the divergence-of-the-gradient, and in 1D would just be a second derivative:\n", "\n", - "$$\\frac{d^2z}{dx^2} = -\\frac{U}{D}$$\n", + "\\begin{equation}\n", + "\\frac{d^2z}{dx^2} = -\\frac{U}{D}\n", + "\\end{equation}\n", "\n", - "The minus sign is important: it indicates upward convexity of the solution when $U$ and $D$ are positive (which they always are in this case).\n", - "\n", - "\n", - "\n" + "The minus sign is important: it indicates upward convexity of the solution when $U$ and $D$ are positive (which they always are in this case)." ] }, { @@ -65,25 +74,35 @@ "\n", "Let's take a step back in the derivation of the diffusion equation to note that it is composed of two parts together. One part is mass conservation:\n", "\n", - "$$\\frac{\\partial z}{\\partial t} = U - \\nabla \\cdot \\mathbf{q}$$\n", + "\\begin{equation}\n", + "\\frac{\\partial z}{\\partial t} = U - \\nabla \\cdot \\mathbf{q}\n", + "\\end{equation}\n", "\n", "where $\\mathbf{q}$ is soil volume flux per unit width $[L^2/T]$. The other part is the flux law:\n", "\n", - "$$\\mathbf{q} = -D\\nabla z$$\n", + "\\begin{equation}\n", + "\\mathbf{q} = -D\\nabla z\n", + "\\end{equation}\n", "\n", "For this example, we'll set the time derivative to zero, meaning we are looking for a steady solution.\n", "\n", "Next, we integrate the conservation law over a 2D region $R$. In general, $R$ is a simply connected region. Ultimately for us, it will be a grid cell, which could be a square, a rectangle, a hexagon, or even an irregular polygon.\n", "\n", - "$$\\int\\int_R \\nabla\\cdot \\mathbf{q} dR = \\int\\int_R U dR$$\n", + "\\begin{equation}\n", + "\\int\\int_R \\nabla\\cdot \\mathbf{q} dR = \\int\\int_R U dR\n", + "\\end{equation}\n", "\n", "Because $U$ is constant inside the region $R$,\n", "\n", - "$$\\int\\int_R \\nabla\\cdot \\mathbf{q} dR = U A_r$$\n", + "\\begin{equation}\n", + "\\int\\int_R \\nabla\\cdot \\mathbf{q} dR = U A_r\n", + "\\end{equation}\n", "\n", "Now we apply Green's theorem, which basically says that an area integral over the divergence of a vector field is equivalent to a line integral of the surface-normal component of that vector around the perimeter of the region. Intuitively, if we consider $\\mathbf{q}$ to be a flux in this case, what we're saying is that we can obtain the net total flux over the region (grid cell!) by integrating the flux all around the perimeter. Think of it as keeping track of all the people who enter or leave the perimeter of a playing field.\n", "\n", - "$$\\oint_S \\mathbf{q} \\cdot\\mathbf{n} dS = U A_r$$\n", + "\\begin{equation}\n", + "\\oint_S \\mathbf{q} \\cdot\\mathbf{n} dS = U A_r\n", + "\\end{equation}\n", "\n", "where $\\mathbf{n}$ is an (outward-facing) unit vector perpendicular to the perimeter $S$ that encloses region $R$. For us, again the perimeter is just the perimeter of the grid cell: the four sides of a square or rectangle, or the six side of a hexagon, the $N$ sides of a Voronoi polygon, or whatever. Then the line integral becomes a summation.\n", "\n", @@ -101,7 +120,9 @@ "\n", "Suppose $R$ is a square grid cell of width $\\Delta x$. Then:\n", "\n", - "$$\\oint_S \\mathbf{f} \\cdot\\mathbf{n} dR = \\sum_{k=1}^4 q_k \\delta_k \\Delta x$$\n", + "\\begin{equation}\n", + "\\oint_S \\mathbf{f} \\cdot\\mathbf{n} dR = \\sum_{k=1}^4 q_k \\delta_k \\Delta x\n", + "\\end{equation}\n", "\n", "where $q_k$ is the magnitude of the vector field at face $k$, and $\\delta = -1$ if the link at face $k$ points inward, and $+1$ if the link points outward.\n", "\n", @@ -117,15 +138,21 @@ "\n", "Here the subscript refers to the four cardinal directions. When you work out the summation above, you get:\n", "\n", - "$$\\sum_{k=1}^4 q_k \\delta_k \\Delta x = -D (z_e + z_n - + z_w + z_s - 4z_i)$$.\n", + "\\begin{equation}\n", + "\\sum_{k=1}^4 q_k \\delta_k \\Delta x = -D (z_e + z_n - + z_w + z_s - 4z_i)\n", + "\\end{equation}\n", "\n", "Now plug this back into our governing equation, and divide both sides by $A_r = \\Delta x^2$:\n", "\n", - "$$-D (z_e + z_n - + z_w + z_s - 4z_i) = U$$\n", + "\\begin{equation}\n", + "-D (z_e + z_n - + z_w + z_s - 4z_i) = U\n", + "\\end{equation}\n", "\n", "or\n", "\n", - "$$\\boxed{z_e + z_n - + z_w + z_s - 4z_i = -U/D}$$\n", + "\\begin{equation}\n", + "\\boxed{z_e + z_n - + z_w + z_s - 4z_i = -U/D}\n", + "\\end{equation}\n", "\n", "So the above represents a system of equations: one equation per core node in a Landlab grid. For any given core node, $z_i$ is the elevation of the node itself, and the other four are the elevations of its four neighbors. By the way, for a regular raster grid, this finite-volume setup turns out to be the same as the finite-difference version. Here the directional subscripts will ultimately be replaced with indices of the particular neighboring nodes." ] @@ -138,42 +165,53 @@ "\n", "Suppose we have a raster model grid with 4 rows and 5 columns, so that there are 6 interior nodes. To make it interesting, let's assume that one of the interior nodes is actually a fixed-value boundary. We will also assume that the perimeter nodes are fixed-value boundaries. Fixed-value boundary simply means that we will keep the elevation constant at these nodes. In total, then, there are 5 core nodes at which we wish to solve for $z$. An illustration of the grid, with the lower-left node being node number 0, looks like:\n", "\n", - "`o---o---o---o---o\n", - " | | | | |\n", - " o---.---.---o---o\n", - " | | | | |\n", - " o---.---.---.---o\n", - " | | | | |\n", - " o---o---o---o---o`\n", + "```\n", + "o---o---o---o---o\n", + "| | | | |\n", + "o---.---.---o---o\n", + "| | | | |\n", + "o---.---.---.---o\n", + "| | | | |\n", + "o---o---o---o---o\n", + "```\n", "\n", "In the illustration, `.` is a core node, and `o` is a fixed-value boundary node. The numbering of *nodes* looks like this:\n", "\n", - "`15---16---17---18---19\n", - " | | | | |\n", - " 10---11---12---13---14\n", - " | | | | |\n", - " 5--- 6--- 7--- 8--- 9\n", - " | | | | |\n", - " 0--- 1--- 2--- 3--- 4`\n", + "```\n", + "15---16---17---18---19\n", + " | | | | |\n", + "10---11---12---13---14\n", + " | | | | |\n", + " 5--- 6--- 7--- 8--- 9\n", + " | | | | |\n", + " 0--- 1--- 2--- 3--- 4\n", + "```\n", "\n", "Here's a version where we number the *core nodes* consecutively:\n", "\n", - "`o---o---o---o---o\n", - " | | | | |\n", - " o---3---4---o---o\n", - " | | | | |\n", - " o---0---1---2---o\n", - " | | | | |\n", - " o---o---o---o---o`\n", - "\n", + "```\n", + "o---o---o---o---o\n", + "| | | | |\n", + "o---3---4---o---o\n", + "| | | | |\n", + "o---0---1---2---o\n", + "| | | | |\n", + "o---o---o---o---o\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "These numbers correspond to rows in a matrix that we will construct. For each row, the column representing the node itself gets a -4, corresponding to the boxed equation above. For each of its neighboring **core** nodes, the corresponding column gets a +1. For example, the first row in the matrix, representing core node 0 in the above sketch, will have a -4 in column 0. It will have a +1 in column 1, representing the neighbor to its east, and a +1 in column 3, representing the neighbor to its north. Here's what the matrix should look like:\n", "\n", "\\begin{vmatrix}\n", "-4 & 1 & 0 & 1 & 0 \\\\\n", - " 1 & -4 & 1 & 0 & 1 \\\\\n", - " 0 & 1 & -4 & 0 & 0 \\\\\n", - " 1 & 0 & 0 & -4 & 1 \\\\\n", - " 0 & 1 & 0 & 1 & -4 \\\\\n", + "1 & -4 & 1 & 0 & 1 \\\\\n", + "0 & 1 & -4 & 0 & 0 \\\\\n", + "1 & 0 & 0 & -4 & 1 \\\\\n", + "0 & 1 & 0 & 1 & -4 \\\\\n", "\\end{vmatrix}\n", "\n", "But what happens when one or more of the four neighbors is not another core node, but rather a fixed-value boundary? That's actually the case for *all* of the core nodes in the above example. To appreciate how this works, recall that we're going to put all the constant terms on the right-hand side of the equation. To write this out, we need a way to notate both core nodes and fixed-value nodes. Here, we'll use a subscript to index by *core node ID* (for the core nodes), and parentheses to index by *node ID* (for the boundary nodes). With that notation in mind, the equations for the example grid above are:\n", @@ -189,22 +227,27 @@ "With this notation, it's easy to spot the fixed-value boundary nodes, whose entries we'll move to the right-side:\n", "\n", "\\begin{eqnarray}\n", - " - 4z_0 + z_1 + z_3 = -U/D - (z(5) + z(1)) \\\\\n", + "- 4z_0 + z_1 + z_3 = -U/D - (z(5) + z(1)) \\\\\n", "z_0 - 4z_1 + z_2 + z_4 = -U/D - z(2) \\\\\n", "z_1 - 4z_2 = -U/D - (z(9) + z(13) + z_1 + z(3)) \\\\\n", "z_0 - 4z_3 + z_4 = -U/D - (z(16) + z(10)) \\\\\n", "z_1 + z_3 - 4z_4 = -U/D - (z(13) + z(17)) \\\\\n", - "\\end{eqnarray}\n", - "\n", + "\\end{eqnarray}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "The above set of equations is represented by the following matrix equation:\n", "\n", "\\begin{gather}\n", "\\begin{bmatrix}\n", "-4 & 1 & 0 & 1 & 0 \\\\\n", - " 1 & -4 & 1 & 0 & 1 \\\\\n", - " 0 & 1 & -4 & 0 & 0 \\\\\n", - " 1 & 0 & 0 & -4 & 1 \\\\\n", - " 0 & 1 & 0 & 1 & -4 \\\\\n", + "1 & -4 & 1 & 0 & 1 \\\\\n", + "0 & 1 & -4 & 0 & 0 \\\\\n", + "1 & 0 & 0 & -4 & 1 \\\\\n", + "0 & 1 & 0 & 1 & -4 \\\\\n", "\\end{bmatrix}\n", "\\begin{bmatrix}\n", "z_0 \\\\\n", @@ -224,11 +267,15 @@ "\n", "or more succinctly,\n", "\n", - "$$A\\mathbf{z} = \\mathbf{b}$$\n", + "\\begin{equation}\n", + "A\\mathbf{z} = \\mathbf{b}\n", + "\\end{equation}\n", "\n", "for which the solution is\n", "\n", - "$$\\mathbf{z} = A^{-1} \\mathbf{b}$$\n", + "\\begin{equation}\n", + "\\mathbf{z} = A^{-1} \\mathbf{b}\n", + "\\end{equation}\n", "\n", "In other words this is the equation that we need to solve by inverting the matrix $A$, which we can do using `numpy.linalg.inv()`. Here's an example:" ] @@ -269,9 +316,9 @@ "U = 0.0001\n", "D = 0.01\n", "rhs = -(U / D) + np.zeros((5, 1))\n", - "solution = np.dot(\n", - " np.linalg.inv(mat), rhs\n", - ") # dot product for matrix-vector multiplication\n", + "\n", + "# dot product for matrix-vector multiplication\n", + "solution = np.dot(np.linalg.inv(mat), rhs)\n", "print(solution)" ] }, @@ -485,7 +532,9 @@ "\n", "The expected analytical solution is a parabola:\n", "\n", - "$$z = \\frac{UL^2}{D}\\left(\\frac{x}{L} - \\frac{1}{2}\\left[\\frac{x}{L}\\right]^2\\right)$$\n" + "\\begin{equation}\n", + "z = \\frac{UL^2}{D}\\left(\\frac{x}{L} - \\frac{1}{2}\\left[\\frac{x}{L}\\right]^2\\right)\n", + "\\end{equation}\n" ] }, { @@ -588,7 +637,9 @@ "source": [ "We can test this. The uplift rate times the cell area represents the volume rate in. Because this is a steady problem, it should equal the volume rate out. The volume rate out across any outer cell face is equal to the gradient across the face times $D$ times the width of the face. The face width in this case is $3^{-1/2}$. Here, the boundaries are all at zero and the distance between nodes is unity, so the gradient is equal to the elevation value. Hence, the flux out across any one face is:\n", "\n", - "$$3^{-1/2} Dz$$\n", + "\\begin{equation}\n", + "3^{-1/2} Dz\n", + "\\end{equation}\n", "\n", "and the total flux equals the flux of one face times the number of outer faces, of which there happen to be 10. Here's the calculation:" ] @@ -625,7 +676,9 @@ "\n", "In a regular hexagonal grid, the summation should look as derived in the following:\n", "\n", - "$$\\oint_S \\mathbf{f} \\cdot\\mathbf{n} dR = U A_r$$,\n", + "\\begin{equation}\n", + "\\oint_S \\mathbf{f} \\cdot\\mathbf{n} dR = U A_r\n", + "\\end{equation}\n", "\n", "where $A_r$ is now the area of a regular hexagon. In terms of the side length, $a$, area is:\n", "\n", @@ -644,11 +697,15 @@ "\n", "So then our summation looks like:\n", "\n", - "$$\\oint_S \\mathbf{f} \\cdot\\mathbf{n} dR = \\sum_{k=1}^6 \\mathbf{q_k}\\delta_k \\frac{1}{\\sqrt{3}}\\Delta x = U \\frac{\\sqrt{3}}{2}\\Delta x^2$$\n", + "\\begin{equation}\n", + "\\oint_S \\mathbf{f} \\cdot\\mathbf{n} dR = \\sum_{k=1}^6 \\mathbf{q_k}\\delta_k \\frac{1}{\\sqrt{3}}\\Delta x = U \\frac{\\sqrt{3}}{2}\\Delta x^2\n", + "\\end{equation}\n", "\n", "which simplifies to\n", "\n", - "$$\\sum_{k=1}^6 \\mathbf{q_k}\\delta_k = U \\frac{3}{2}\\Delta x$$\n", + "\\begin{equation}\n", + "\\sum_{k=1}^6 \\mathbf{q_k}\\delta_k = U \\frac{3}{2}\\Delta x\n", + "\\end{equation}\n", "\n", "Then put in the 6 fluxes (here assuming a \"horizontal\" arrangement):\n", "\n", @@ -666,7 +723,9 @@ "\n", "and so you get:\n", "\n", - "$$\\eta_e + \\eta_{nne} + \\eta_{nnw} + \\eta_w + \\eta_{ssw} + \\eta_{sse} - 6\\eta_i = -\\frac{3U}{2D} \\Delta x^2$$\n", + "\\begin{equation}\n", + "\\eta_e + \\eta_{nne} + \\eta_{nnw} + \\eta_w + \\eta_{ssw} + \\eta_{sse} - 6\\eta_i = -\\frac{3U}{2D} \\Delta x^2\n", + "\\end{equation}\n", "\n", "Conclusion: the only difference between a raster and a hex grid is the factor of 3/2 on the RHS, and of course the fact that you are adding up 6 neighbors instead of 4." ] @@ -680,38 +739,47 @@ "\n", "Let $s = dz/dx$, then\n", "\n", - "$$\\frac{ds}{dx} = -\\frac{U}{D}$$\n", + "\\begin{equation}\n", + "\\frac{ds}{dx} = -\\frac{U}{D}\n", + "\\end{equation}\n", "\n", "Assume we have a linear domain of length $2L$, in which $s(L)=0$. Integrate:\n", "\n", - "$$s = -\\frac{U}{D}x + C_1$$\n", + "\\begin{equation}\n", + "s = -\\frac{U}{D}x + C_1\n", + "\\end{equation}\n", "\n", "Evaluate the constant of integration:\n", "\n", - "$$0 = -\\frac{U}{D}L + C_1$$\n", + "\\begin{equation}\n", + "0 = -\\frac{U}{D}L + C_1\n", + "\\end{equation}\n", "\n", "and therefore\n", "\n", - "$$s = \\frac{dz}{dx} = \\frac{U}{D}(L-x)$$\n", + "\\begin{equation}\n", + "s = \\frac{dz}{dx} = \\frac{U}{D}(L-x)\n", + "\\end{equation}\n", "\n", "The above implies that gradient is positive when $xL$, as expected.\n", "\n", "Now integrate again:\n", "\n", - "$$z = \\frac{U}{D}\\left(Lx - \\frac{x^2}{2}\\right) + C_2$$\n", + "\\begin{equation}\n", + "z = \\frac{U}{D}\\left(Lx - \\frac{x^2}{2}\\right) + C_2\n", + "\\end{equation}\n", "\n", "Given $z(x)=z(2L)=0$, $C_2=0$, thus (and factoring out $L^2$):\n", "\n", - "$$\\boxed{z = \\frac{UL^2}{D}\\left(\\frac{x}{L} - \\frac{1}{2}\\left[\\frac{x}{L}\\right]^2\\right)}$$\n", - "\n", - "\n", - "\n" + "\\begin{equation}\n", + "\\boxed{z = \\frac{UL^2}{D}\\left(\\frac{x}{L} - \\frac{1}{2}\\left[\\frac{x}{L}\\right]^2\\right)}\n", + "\\end{equation}" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -725,9 +793,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.1" + "version": "3.11.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/network_sediment_transporter/bed_parcel_initializer.ipynb b/docs/source/tutorials/network_sediment_transporter/bed_parcel_initializer.ipynb similarity index 94% rename from notebooks/tutorials/network_sediment_transporter/bed_parcel_initializer.ipynb rename to docs/source/tutorials/network_sediment_transporter/bed_parcel_initializer.ipynb index 4702adf72c..1854b51696 100644 --- a/notebooks/tutorials/network_sediment_transporter/bed_parcel_initializer.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/bed_parcel_initializer.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using the Landlab BedParcelInitializer components to initialize river bed sediment parcels for the NetworkSedimentTransporter component\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "This tutorial illustrates how to initialize bed sediment to model the transport of coarse sediment through a river network using the NetworkSedimentTransporter Landlab component. \n", "\n", "In this example we will: \n", @@ -154,7 +143,7 @@ "\n", "There are four available components for initiating bed sediment parcels, each of which take different parameters to determine the initial median grain size (d50) of the bed sediment. All initializers return a DataRecord of parcels with a set of parcels with a lognormal distribution of parcel grain sizes. By default, the d84 is 2.1 times d50, though the user can change the with of the grain size distribution. \n", "\n", - "#### 1. BedParcelInitializerDischarge: set d50 via link discharge and Manning's _n_ roughness\n", + "### 1. BedParcelInitializerDischarge: set d50 via link discharge and Manning's _n_ roughness\n", "We calculate initial sediment median grain size (d50) for each link using dominant discharge and channel width (via the Snyder et al.(2013) formula). Total parcel volume is function of active layer thickness, which is estimated from grain size (d84). We calculate the parcel volume by setting minimum number of parcels as 100. \n", "Let's create arrays with all of the essential sediment parcel variables by running the Landlab utility BedParcelInitializer: " ] @@ -222,7 +211,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### 2. BedParcelInitializerDepth: set $D_{50}$ via link flow depth, channel slope, and Shields stress\n", + "### 2. BedParcelInitializerDepth: set $D_{50}$ via link flow depth, channel slope, and Shields stress\n", "We calculate initial sediment median grain size (d50) for each link using a formative (e.g. bankfull) flow depth, as in Pfeiffer et al. (2017). The user can change critical Shields stress and a \"multiplier\" as well, the default values of which are 0.04 and 1, respectively. " ] }, @@ -267,7 +256,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### 3. BedParcelInitializerUserD50: \n", + "### 3. BedParcelInitializerUserD50: \n", "\n", "The user can specify either a d50 for each link in the network, or a single d50 for all links. " ] @@ -295,7 +284,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Many options available for specifying $D_{50}$\n" + "**Many options available for specifying $D_{50}$**" ] }, { @@ -345,7 +334,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 3. Plot to explore starting parcels\n", + "### 4. Plot to explore starting parcels\n", "\n", "What grain size did we end up with? How many parcels per link (check)? Etc. \n", "\n", @@ -485,9 +474,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/network_sediment_transporter/create_networkgrid_from_rastergrid.ipynb b/docs/source/tutorials/network_sediment_transporter/create_networkgrid_from_rastergrid.ipynb similarity index 98% rename from notebooks/tutorials/network_sediment_transporter/create_networkgrid_from_rastergrid.ipynb rename to docs/source/tutorials/network_sediment_transporter/create_networkgrid_from_rastergrid.ipynb index cf8edb6510..ed5e25c1ce 100644 --- a/notebooks/tutorials/network_sediment_transporter/create_networkgrid_from_rastergrid.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/create_networkgrid_from_rastergrid.ipynb @@ -5,7 +5,7 @@ "id": "0", "metadata": {}, "source": [ - "## Create A Network Grid from Raster Grid\n", + "# Create A Network Grid from Raster Grid\n", "\n", "This notebook demonstrates how to extract a NetworkModelGrid from a RasterModelGrid using the 'create_network_from_raster' function" ] @@ -183,7 +183,7 @@ "id": "15", "metadata": {}, "source": [ - "# Reduce the numer of nodes in channel segments\n", + "## Reduce the numer of nodes in channel segments\n", "\n", "In the above, we have preserved every node in each channel segment. You can reduce the number of nodes in each segment by passing a *reducer* to the *network_grid_from_raster* function. A *reducer* is simply a function that accepts a list of nodes defining a segment. Although you can write your own, *landlab* provides a set of commonly used reducers." ] @@ -300,7 +300,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/network_sediment_transporter/hugo_site.asc b/docs/source/tutorials/network_sediment_transporter/hugo_site.asc similarity index 100% rename from notebooks/tutorials/network_sediment_transporter/hugo_site.asc rename to docs/source/tutorials/network_sediment_transporter/hugo_site.asc diff --git a/notebooks/tutorials/network_sediment_transporter/network_plotting_examples.ipynb b/docs/source/tutorials/network_sediment_transporter/network_plotting_examples.ipynb similarity index 97% rename from notebooks/tutorials/network_sediment_transporter/network_plotting_examples.ipynb rename to docs/source/tutorials/network_sediment_transporter/network_plotting_examples.ipynb index e5dac0205a..ac6571d516 100644 --- a/notebooks/tutorials/network_sediment_transporter/network_plotting_examples.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/network_plotting_examples.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using plotting tools associated with the Landlab NetworkSedimentTransporter component \n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "This tutorial illustrates how to plot the results of the NetworkSedimentTransporter Landlab component using the `plot_network_and_parcels` tool. \n", "\n", "In this example we will: \n", @@ -513,7 +502,9 @@ "metadata": { "celltoolbar": "Raw Cell Format", "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/notebooks/tutorials/network_sediment_transporter/network_sediment_transporter.ipynb b/docs/source/tutorials/network_sediment_transporter/network_sediment_transporter.ipynb similarity index 95% rename from notebooks/tutorials/network_sediment_transporter/network_sediment_transporter.ipynb rename to docs/source/tutorials/network_sediment_transporter/network_sediment_transporter.ipynb index af2c8e0f70..9067215a30 100644 --- a/notebooks/tutorials/network_sediment_transporter/network_sediment_transporter.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/network_sediment_transporter.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using the Landlab NetworkSedimentTransporter component\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "This tutorial illustrates how to model the transport of coarse sediment through a synthetic river network using the NetworkSedimentTransporter Landlab component. \n", "\n", "For an equivalent tutorial demonstrating initialization of the NetworkSedimentTransporter with a *shapefile river network*, [click here](../network_sediment_transporter/network_sediment_transporter_shapefile_network.ipynb).\n", @@ -374,13 +363,6 @@ "source": [ "Great, smaller parcels transport farther! " ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/network_sediment_transporter/network_sediment_transporter_NHDPlus_HR_network.ipynb b/docs/source/tutorials/network_sediment_transporter/network_sediment_transporter_NHDPlus_HR_network.ipynb similarity index 98% rename from notebooks/tutorials/network_sediment_transporter/network_sediment_transporter_NHDPlus_HR_network.ipynb rename to docs/source/tutorials/network_sediment_transporter/network_sediment_transporter_NHDPlus_HR_network.ipynb index 5a98019ba2..69cbad8e87 100644 --- a/notebooks/tutorials/network_sediment_transporter/network_sediment_transporter_NHDPlus_HR_network.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/network_sediment_transporter_NHDPlus_HR_network.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -608,7 +601,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Non-network plotting\n", + "### Non-network plotting\n", "The results of the NST can be visualized by directly accessing information about the grid, the parcels, and by accessing variables stored after the run of NST. \n", "\n", "As a simple example, we can plot the total volume of parcels on the grid through time. As parcels exit the grid, the total volume decreases. " @@ -679,7 +672,9 @@ ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", @@ -696,9 +691,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/network_sediment_transporter/network_sediment_transporter_shapefile_network.ipynb b/docs/source/tutorials/network_sediment_transporter/network_sediment_transporter_shapefile_network.ipynb similarity index 96% rename from notebooks/tutorials/network_sediment_transporter/network_sediment_transporter_shapefile_network.ipynb rename to docs/source/tutorials/network_sediment_transporter/network_sediment_transporter_shapefile_network.ipynb index 762750c389..52aa39f006 100644 --- a/notebooks/tutorials/network_sediment_transporter/network_sediment_transporter_shapefile_network.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/network_sediment_transporter_shapefile_network.ipynb @@ -1,22 +1,11 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using the Landlab NetworkSedimentTransporter component starting with a shapefile river network\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "This tutorial illustrates how to model the transport of coarse sediment through a river network using the NetworkSedimentTransporter Landlab component. For an equivalent tutorial demonstrating initialization of the NetworkSedimentTransporter with a *synthetic network model grid*, [here](../network_sediment_transporter/network_sediment_transporter.ipynb).\n", "\n", "\n", @@ -435,7 +424,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Non-network plotting\n", + "### Non-network plotting\n", "The results of the NST can be visualized by directly accessing information about the grid, the parcels, and by accessing variables stored after the run of NST. \n", "\n", "As a simple example, we can plot the total volume of parcels on the grid through time. As parcels exit the grid, the total volume decreases. " @@ -520,9 +509,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.12.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/notebooks/tutorials/network_sediment_transporter/nst_scaling_profiling.ipynb b/docs/source/tutorials/network_sediment_transporter/nst_scaling_profiling.ipynb similarity index 97% rename from notebooks/tutorials/network_sediment_transporter/nst_scaling_profiling.ipynb rename to docs/source/tutorials/network_sediment_transporter/nst_scaling_profiling.ipynb index 655f020d54..98e988c78c 100644 --- a/notebooks/tutorials/network_sediment_transporter/nst_scaling_profiling.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/nst_scaling_profiling.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -592,15 +585,6 @@ "# plt.savefig(\"scaling1.png\")\n", "plt.show()" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see that both the init and run one step functions increase in their duration when the number of nodes parcels per link increase. However, the init function is less sensitive to the number of parcels per link. Feel free to explore plotting this data in different ways. \n", - "\n", - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/network_sediment_transporter/run_network_generator_OpenTopoDEM.ipynb b/docs/source/tutorials/network_sediment_transporter/run_network_generator_OpenTopoDEM.ipynb similarity index 97% rename from notebooks/tutorials/network_sediment_transporter/run_network_generator_OpenTopoDEM.ipynb rename to docs/source/tutorials/network_sediment_transporter/run_network_generator_OpenTopoDEM.ipynb index 5951bebb8e..774e05fc6b 100644 --- a/notebooks/tutorials/network_sediment_transporter/run_network_generator_OpenTopoDEM.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/run_network_generator_OpenTopoDEM.ipynb @@ -4,20 +4,8 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# Generate a Network Model Grid on an OpenTopography DEM\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "\n", - "
\n", "\n", "This notebook demonstrates how to create a NetworkModelGrid from a DEM hosted by OpenTopography. In this tutorial we will:\n", "* Download a DEM from OpenTopography\n", @@ -29,7 +17,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2", + "id": "1", "metadata": {}, "outputs": [], "source": [ @@ -42,7 +30,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "2", "metadata": {}, "source": [ "## 1. Download DEM from OpenTopography using Topography utility" @@ -50,7 +38,7 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ "Create a function to download and save SRTM images using [BMI_topography](https://bmi-topography.readthedocs.io/en/latest/).\n", @@ -61,7 +49,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -70,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ "Download (or reload) topography data." @@ -79,7 +67,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -97,7 +85,7 @@ }, { "cell_type": "markdown", - "id": "8", + "id": "7", "metadata": {}, "source": [ "## 2. Use Rasterio to Reproject DEM" @@ -105,7 +93,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "8", "metadata": {}, "source": [ "Use rasterio to reproject to UTM Zone 13. Since our DEM was pulled from the CO region, this is the appropriate UTM system, but you can specify a general EPSG code as 'dst_crs' if you wish to reproject to a different area.\n", @@ -115,7 +103,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -126,7 +114,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -136,7 +124,7 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ "This is the resolution in meters of our target DEM, the UTM coordinate system has a native unit of meters." @@ -145,7 +133,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -170,7 +158,7 @@ }, { "cell_type": "markdown", - "id": "14", + "id": "13", "metadata": {}, "source": [ "Let's use this transform to get X and Y vectors along the DEM row=0 and col=0 lines respectively so we know what new x, y coordinates to assign to our transformed `DataArray`." @@ -179,7 +167,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -189,7 +177,7 @@ }, { "cell_type": "markdown", - "id": "16", + "id": "15", "metadata": {}, "source": [ "Now reproject using rasterio:\n", @@ -198,7 +186,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "16", "metadata": {}, "source": [ "Define an output array to hold our data, this is structured like the `Topography` `DataArray` output." @@ -207,7 +195,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -224,7 +212,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "18", "metadata": {}, "source": [ "Reproject data into this array." @@ -233,7 +221,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -252,7 +240,7 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "20", "metadata": {}, "source": [ "## 3. Create Landlab Grid" @@ -261,7 +249,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -271,7 +259,7 @@ { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -288,7 +276,7 @@ }, { "cell_type": "markdown", - "id": "24", + "id": "23", "metadata": {}, "source": [ "Close the no data values" @@ -297,7 +285,7 @@ { "cell_type": "code", "execution_count": null, - "id": "25", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -307,7 +295,7 @@ { "cell_type": "code", "execution_count": null, - "id": "26", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -322,7 +310,7 @@ }, { "cell_type": "markdown", - "id": "27", + "id": "26", "metadata": {}, "source": [ "## 4. Clip Grid to largest watershed using the FlowAccumulator and a watershed mask" @@ -331,7 +319,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -341,7 +329,7 @@ }, { "cell_type": "markdown", - "id": "29", + "id": "28", "metadata": {}, "source": [ "Run the FlowAccumulator to determine where flow is being directed and accumulated in the watershed" @@ -350,7 +338,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -361,7 +349,7 @@ }, { "cell_type": "markdown", - "id": "31", + "id": "30", "metadata": {}, "source": [ "### Create a mask to isolate the largest watershed:\n", @@ -371,7 +359,7 @@ { "cell_type": "code", "execution_count": null, - "id": "32", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -382,7 +370,7 @@ }, { "cell_type": "markdown", - "id": "33", + "id": "32", "metadata": {}, "source": [ "Set all values outside the largest watershed to a nodata value of -9999:" @@ -391,7 +379,7 @@ { "cell_type": "code", "execution_count": null, - "id": "34", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -403,7 +391,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "34", "metadata": {}, "source": [ "Set the model boundary conditions to 'closed' outside of the watershed" @@ -412,7 +400,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -423,7 +411,7 @@ }, { "cell_type": "markdown", - "id": "37", + "id": "36", "metadata": {}, "source": [ "Visualize clipped DEM:" @@ -432,7 +420,7 @@ { "cell_type": "code", "execution_count": null, - "id": "38", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -447,7 +435,7 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "38", "metadata": {}, "source": [ "### Set a watershed boundary condition for your grid\n", @@ -459,7 +447,7 @@ { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -473,7 +461,7 @@ { "cell_type": "code", "execution_count": null, - "id": "41", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -485,7 +473,7 @@ }, { "cell_type": "markdown", - "id": "42", + "id": "41", "metadata": {}, "source": [ "## 5. Create a NetworkModelGrid on this topography\n", @@ -500,7 +488,7 @@ { "cell_type": "code", "execution_count": null, - "id": "43", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -516,7 +504,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -530,7 +518,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -547,7 +535,7 @@ }, { "cell_type": "markdown", - "id": "46", + "id": "45", "metadata": {}, "source": [ "### Refine Network using Reducers\n", @@ -558,7 +546,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -575,7 +563,7 @@ }, { "cell_type": "markdown", - "id": "48", + "id": "47", "metadata": {}, "source": [ "Realistically, you may want to reduce your NetworkModelGrid node spacing in the steeper, higher elevation areas of the basin for stability of the NetworkSedimentTransporter model. Here, we show an option to define the network node spacing from an upstream drainage area relation that estimates river width from the Frasson et al. 2019 (GRL) power law relationship:\n", @@ -588,7 +576,7 @@ { "cell_type": "code", "execution_count": null, - "id": "49", + "id": "48", "metadata": {}, "outputs": [], "source": [ diff --git a/notebooks/tutorials/network_sediment_transporter/sediment_pulser_at_links.ipynb b/docs/source/tutorials/network_sediment_transporter/sediment_pulser_at_links.ipynb similarity index 91% rename from notebooks/tutorials/network_sediment_transporter/sediment_pulser_at_links.ipynb rename to docs/source/tutorials/network_sediment_transporter/sediment_pulser_at_links.ipynb index 9683cece72..c670ceae31 100644 --- a/notebooks/tutorials/network_sediment_transporter/sediment_pulser_at_links.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/sediment_pulser_at_links.ipynb @@ -4,19 +4,8 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# Using SedimentPulserAtLinks to add sediment parcels to a channel network\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", "\n", "This tutorial illustrates how to use SedimentPulserAtLinks with a network model grid and the NetworkSedimentTransporter.\n", "\n", @@ -31,16 +20,16 @@ }, { "cell_type": "markdown", - "id": "2", + "id": "1", "metadata": {}, "source": [ - "### 1. Setup the work space" + "## 1. Setup the work space" ] }, { "cell_type": "code", "execution_count": null, - "id": "3", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -60,16 +49,16 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ - "### 2. Define the network model grid topology" + "## 2. Define the network model grid topology" ] }, { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -81,7 +70,7 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ "to help visualize where the pulses will be sent, plot the network with link and node id numbers " @@ -90,7 +79,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -101,16 +90,16 @@ }, { "cell_type": "markdown", - "id": "8", + "id": "7", "metadata": {}, "source": [ - "### 3. Define necessary link and node fields and run a flow director on the grid to add a slope field" + "## 3. Define necessary link and node fields and run a flow director on the grid to add a slope field" ] }, { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -137,17 +126,17 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "9", "metadata": {}, "source": [ - "### 4. Create an initial set of parcels on the grid. \n", + "## 4. Create an initial set of parcels on the grid. \n", "Note, we start with a small number of initial parcels so that parcels from later pulses of material are visible in plots of the parcels and network" ] }, { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -164,7 +153,7 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ "See the warning? Because the NST is designed to model alluvial channel processes, it's problematic to have so few parcels. For the purpose of this tutorial, it makes for simpler visualizations." @@ -172,7 +161,7 @@ }, { "cell_type": "markdown", - "id": "13", + "id": "12", "metadata": {}, "source": [ "View the initial parcels on the network model grid, shaded by grain diameter" @@ -181,7 +170,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -198,16 +187,16 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "14", "metadata": {}, "source": [ - "### 5. Instantiate and run the NetworkSedimentTransporter component using a flow event with flow depth equal to the link field \"flow_depth\" that last 24 hours " + "## 5. Instantiate and run the NetworkSedimentTransporter component using a flow event with flow depth equal to the link field \"flow_depth\" that last 24 hours " ] }, { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -226,7 +215,7 @@ { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -238,7 +227,7 @@ }, { "cell_type": "markdown", - "id": "18", + "id": "17", "metadata": {}, "source": [ "View parcel locations after the flow event" @@ -247,7 +236,7 @@ { "cell_type": "code", "execution_count": null, - "id": "19", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -268,10 +257,10 @@ }, { "cell_type": "markdown", - "id": "20", + "id": "19", "metadata": {}, "source": [ - "### 6. Instantiate SedimentPulserAtLink\n", + "## 6. Instantiate SedimentPulserAtLink\n", "SedimentPulserAtLinks is instantiated with a network model grid and time_to_pulse function that defines the condition when a pulse is permitted. Optionally, a parcel DataRecord can be provided and default parcel attributes can be defined. \n", "If a parcel DataRecord is not provided, SedimentPulserAtLinks will create a new parcel DataRecord." ] @@ -279,7 +268,7 @@ { "cell_type": "code", "execution_count": null, - "id": "21", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -295,10 +284,10 @@ }, { "cell_type": "markdown", - "id": "22", + "id": "21", "metadata": {}, "source": [ - "### 7. Make the first pulse by specifying the time of the pulse, the link(s) the pulse enters the channel network and the number of parcels sent to each link. \n", + "## 7. Make the first pulse by specifying the time of the pulse, the link(s) the pulse enters the channel network and the number of parcels sent to each link. \n", "Here we send a pulse to links 0 and 5 (see first figure for link id's)\n", "Note, all inputs, except time, are lists. \n", "Also note that any parcel attributes not specified use default values. Default values can be set when SedimentPulserAtLinks is instantiated." @@ -307,7 +296,7 @@ { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -319,7 +308,7 @@ }, { "cell_type": "markdown", - "id": "24", + "id": "23", "metadata": {}, "source": [ "view the location of the new parcels from the pulse" @@ -328,7 +317,7 @@ { "cell_type": "code", "execution_count": null, - "id": "25", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -345,7 +334,7 @@ }, { "cell_type": "markdown", - "id": "26", + "id": "25", "metadata": {}, "source": [ "now apply another 24 hr flow event" @@ -354,7 +343,7 @@ { "cell_type": "code", "execution_count": null, - "id": "27", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -363,7 +352,7 @@ }, { "cell_type": "markdown", - "id": "28", + "id": "27", "metadata": {}, "source": [ "View parcel locations after the flow event" @@ -372,7 +361,7 @@ { "cell_type": "code", "execution_count": null, - "id": "29", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -389,7 +378,7 @@ }, { "cell_type": "markdown", - "id": "30", + "id": "29", "metadata": {}, "source": [ "Notice that after the flow event, the pulse of parcels in link 0 left the channel network. Flow depth in link 0 is much higher than the lower order channels such as links 1, 3, 5 and 6." @@ -397,17 +386,17 @@ }, { "cell_type": "markdown", - "id": "31", + "id": "30", "metadata": {}, "source": [ - "### 8. Send a second pulse. This time we'll specify more attributes of the pulse.\n", + "## 8. Send a second pulse. This time we'll specify more attributes of the pulse.\n", "We're sending boulders to link 6" ] }, { "cell_type": "code", "execution_count": null, - "id": "32", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -428,7 +417,7 @@ }, { "cell_type": "markdown", - "id": "33", + "id": "32", "metadata": {}, "source": [ "view the new parcels" @@ -437,7 +426,7 @@ { "cell_type": "code", "execution_count": null, - "id": "34", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -454,7 +443,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "34", "metadata": {}, "source": [ "apply another day long flow event" @@ -463,7 +452,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -473,7 +462,7 @@ { "cell_type": "code", "execution_count": null, - "id": "37", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -490,7 +479,7 @@ }, { "cell_type": "markdown", - "id": "38", + "id": "37", "metadata": {}, "source": [ "note that the boulders did not budge" @@ -498,16 +487,16 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "38", "metadata": {}, "source": [ - "### 9. Apply one final pulse, this time we'll change the time_to_pulse function" + "## 9. Apply one final pulse, this time we'll change the time_to_pulse function" ] }, { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -523,7 +512,7 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "40", "metadata": {}, "source": [ "call the instance, this time defining a single pulse of 1000 parcels at link 2" @@ -532,7 +521,7 @@ { "cell_type": "code", "execution_count": null, - "id": "42", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -552,7 +541,7 @@ }, { "cell_type": "markdown", - "id": "43", + "id": "42", "metadata": {}, "source": [ "note that it was not a time to pulse, nothing was added to the channel network\n", @@ -562,7 +551,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -571,17 +560,17 @@ }, { "cell_type": "markdown", - "id": "45", + "id": "44", "metadata": {}, "source": [ - "### 10. Try pulsing again, note that after the last flow event, time is now within the window described by the time_to_pulse_window function\n", + "## 10. Try pulsing again, note that after the last flow event, time is now within the window described by the time_to_pulse_window function\n", "this time, we send 30 parcels of fine sediment to link 1" ] }, { "cell_type": "code", "execution_count": null, - "id": "46", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -602,7 +591,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -619,7 +608,7 @@ }, { "cell_type": "markdown", - "id": "48", + "id": "47", "metadata": {}, "source": [ "apply one more flow event, this one 5 days long" @@ -628,7 +617,7 @@ { "cell_type": "code", "execution_count": null, - "id": "49", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -642,7 +631,7 @@ { "cell_type": "code", "execution_count": null, - "id": "50", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -659,19 +648,11 @@ }, { "cell_type": "markdown", - "id": "51", + "id": "50", "metadata": {}, "source": [ "Note that after the flow event, the fines in link 2 have been flushed out of the network" ] - }, - { - "cell_type": "markdown", - "id": "52", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { @@ -690,7 +671,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/network_sediment_transporter/sediment_pulser_each_parcel.ipynb b/docs/source/tutorials/network_sediment_transporter/sediment_pulser_each_parcel.ipynb similarity index 87% rename from notebooks/tutorials/network_sediment_transporter/sediment_pulser_each_parcel.ipynb rename to docs/source/tutorials/network_sediment_transporter/sediment_pulser_each_parcel.ipynb index 79cae6a95e..2c7fa109ba 100644 --- a/notebooks/tutorials/network_sediment_transporter/sediment_pulser_each_parcel.ipynb +++ b/docs/source/tutorials/network_sediment_transporter/sediment_pulser_each_parcel.ipynb @@ -4,19 +4,8 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# Using SedimentPulserEachParcel to add sediment parcels to a channel network\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", "\n", "This tutorial illustrates how to use SedimentPulserEachParcel with a network model grid and the NetworkSedimentTransporter. \n", "\n", @@ -33,16 +22,16 @@ }, { "cell_type": "markdown", - "id": "2", + "id": "1", "metadata": {}, "source": [ - "### 1. Setup the work space" + "## 1. Setup the work space" ] }, { "cell_type": "code", "execution_count": null, - "id": "3", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -63,16 +52,16 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ - "### 2. Define the network model grid topology" + "## 2. Define the network model grid topology" ] }, { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -84,7 +73,7 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ " to help visualize where the pulses will be sent, plot the network with link and node id numbers " @@ -93,7 +82,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -104,16 +93,16 @@ }, { "cell_type": "markdown", - "id": "8", + "id": "7", "metadata": {}, "source": [ - "### 3. Define required link and node fields and run a flow director on the grid to add a slope field" + "## 3. Define required link and node fields and run a flow director on the grid to add a slope field" ] }, { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -136,17 +125,17 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "9", "metadata": {}, "source": [ - "### 4. Create an initial set of parcels on the grid. \n", + "## 4. Create an initial set of parcels on the grid. \n", "Note, we start with a small number of initial parcels so that parcels from later pulses of material are visible in plots of the parcels and network" ] }, { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -161,16 +150,16 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ - "#### View the initial parcels on the network model grid, shaded by grain diameter" + "### View the initial parcels on the network model grid, shaded by grain diameter" ] }, { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -187,16 +176,16 @@ }, { "cell_type": "markdown", - "id": "14", + "id": "13", "metadata": {}, "source": [ - "#### Viewing the element id of the parcels in the network shows that ParcelInitializer added 15 parcels to the network" + "### Viewing the element id of the parcels in the network shows that ParcelInitializer added 15 parcels to the network" ] }, { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -205,16 +194,16 @@ }, { "cell_type": "markdown", - "id": "16", + "id": "15", "metadata": {}, "source": [ - "### 5. Instantiate and run the NetworkSedimentTransporter component using a flow event with flow depth equal to the link field \"flow_depth\" that last 24 hours " + "## 5. Instantiate and run the NetworkSedimentTransporter component using a flow event with flow depth equal to the link field \"flow_depth\" that last 24 hours " ] }, { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -233,7 +222,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -242,16 +231,16 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "18", "metadata": {}, "source": [ - "#### View parcel locations after the flow event" + "### View parcel locations after the flow event" ] }, { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -268,18 +257,18 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "20", "metadata": {}, "source": [ - "#### Note that none of parcels moved because the partial initializer places all parcels in the inactive layer" + "### Note that none of parcels moved because the partial initializer places all parcels in the inactive layer" ] }, { "cell_type": "markdown", - "id": "22", + "id": "21", "metadata": {}, "source": [ - "### 6. Instantiate SedimentPulserEachParcel\n", + "## 6. Instantiate SedimentPulserEachParcel\n", "SedimentPulserEachParcel is instantiated with a network model grid. Optionally, default parcel attributes and a parcel DataRecord can be defined. If a parcel DataRecord is not provided, SedimentPulserEachParcel will create a new parcel \n", "DataRecord." ] @@ -287,7 +276,7 @@ { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -298,10 +287,10 @@ }, { "cell_type": "markdown", - "id": "24", + "id": "23", "metadata": {}, "source": [ - "### 7. create the PulseDF (Pulse DataFrame). \n", + "## 7. create the PulseDF (Pulse DataFrame). \n", "Each row of the PulseDF contains information on the deposition location and \n", "volume of a single pulse of sediment. The pulse is divided into 'n' number of \n", "parcels, where 'n' equals numpy.ceil(pulse volume / max parcel volume)\n", @@ -315,7 +304,7 @@ { "cell_type": "code", "execution_count": null, - "id": "25", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -335,7 +324,7 @@ { "cell_type": "code", "execution_count": null, - "id": "26", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -344,17 +333,17 @@ }, { "cell_type": "markdown", - "id": "27", + "id": "26", "metadata": {}, "source": [ - "#### view the location of the new parcels from the pulse. \n", + "### view the location of the new parcels from the pulse. \n", "Note that all parcels from a pulse are placed at the same point in the network and appear as 4 points on the plot\n" ] }, { "cell_type": "code", "execution_count": null, - "id": "28", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -371,16 +360,16 @@ }, { "cell_type": "markdown", - "id": "29", + "id": "28", "metadata": {}, "source": [ - "#### Viewing the element id of the parcels in the network shows that we actually added roughly 80 new parcels" + "### Viewing the element id of the parcels in the network shows that we actually added roughly 80 new parcels" ] }, { "cell_type": "code", "execution_count": null, - "id": "30", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -389,16 +378,16 @@ }, { "cell_type": "markdown", - "id": "31", + "id": "30", "metadata": {}, "source": [ - "#### now apply another 24 hr flow event" + "### now apply another 24 hr flow event" ] }, { "cell_type": "code", "execution_count": null, - "id": "32", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -407,16 +396,16 @@ }, { "cell_type": "markdown", - "id": "33", + "id": "32", "metadata": {}, "source": [ - "#### View parcel locations after the flow event" + "### View parcel locations after the flow event" ] }, { "cell_type": "code", "execution_count": null, - "id": "34", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -433,7 +422,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "34", "metadata": {}, "source": [ "Notice that after the flow event, the parcels at each pulse location spread out." @@ -441,10 +430,10 @@ }, { "cell_type": "markdown", - "id": "36", + "id": "35", "metadata": {}, "source": [ - "### 8. Send a second pulseDF\n", + "## 8. Send a second pulseDF\n", "\n", "This pulseDF includes two pulses:\n", "\n", @@ -456,7 +445,7 @@ { "cell_type": "code", "execution_count": null, - "id": "37", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -476,7 +465,7 @@ { "cell_type": "code", "execution_count": null, - "id": "38", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -485,16 +474,16 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "38", "metadata": {}, "source": [ - "#### view the new parcels" + "### view the new parcels" ] }, { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -511,16 +500,16 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "40", "metadata": {}, "source": [ - "#### apply another day long flow event" + "### apply another day long flow event" ] }, { "cell_type": "code", "execution_count": null, - "id": "42", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -530,7 +519,7 @@ { "cell_type": "code", "execution_count": null, - "id": "43", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -547,10 +536,10 @@ }, { "cell_type": "markdown", - "id": "44", + "id": "43", "metadata": {}, "source": [ - "#### Notice how parcels containing the boulder size grains in link 6 did not move but the parcels containing gravel sized grains in link 3 do." + "### Notice how parcels containing the boulder size grains in link 6 did not move but the parcels containing gravel sized grains in link 3 do." ] } ], @@ -570,7 +559,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/normal_fault/normal_fault_component_tutorial.ipynb b/docs/source/tutorials/normal_fault/normal_fault_component_tutorial.ipynb similarity index 99% rename from notebooks/tutorials/normal_fault/normal_fault_component_tutorial.ipynb rename to docs/source/tutorials/normal_fault/normal_fault_component_tutorial.ipynb index 798992d6f3..6bee4795d7 100644 --- a/notebooks/tutorials/normal_fault/normal_fault_component_tutorial.ipynb +++ b/docs/source/tutorials/normal_fault/normal_fault_component_tutorial.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/tutorials/output/writing_legacy_vtk_files.ipynb b/docs/source/tutorials/output/writing_legacy_vtk_files.ipynb similarity index 96% rename from notebooks/tutorials/output/writing_legacy_vtk_files.ipynb rename to docs/source/tutorials/output/writing_legacy_vtk_files.ipynb index b5079c459b..f7b8ffbae2 100644 --- a/notebooks/tutorials/output/writing_legacy_vtk_files.ipynb +++ b/docs/source/tutorials/output/writing_legacy_vtk_files.ipynb @@ -4,15 +4,6 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# Writing with legacy vtk files\n", "\n", @@ -39,7 +30,7 @@ }, { "cell_type": "markdown", - "id": "2", + "id": "1", "metadata": {}, "source": [ "## Hex grid example\n", @@ -50,7 +41,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -63,7 +54,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -81,7 +72,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "4", "metadata": {}, "source": [ "Let's see what the output looks like:" @@ -90,7 +81,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -99,7 +90,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "6", "metadata": {}, "source": [ "## Raster grid example" @@ -108,7 +99,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -127,7 +118,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -136,7 +127,7 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "9", "metadata": {}, "source": [ "Notice that this has saved the grid's *nodes* and *patches* (VTK uses the terms *points* and *cells*). If you would like to save the dual grid, you can do this through the ``at`` keyword. The default (`at=\"node\"`) is to save the main grid but you can use `at=\"corner\"` to save the dual grid." @@ -145,7 +136,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -154,7 +145,7 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ "If your grid contains many fields, you may not want to save all of them. You can specify which fields to save through the `include` and `exclude` keywords. These operate much like UNIX filename pattern matching and are the same as described in the ``fields`` method of your grid. As an example, the following with exclude any fields that contain the string \"surface_water\". " @@ -163,7 +154,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -172,7 +163,7 @@ }, { "cell_type": "markdown", - "id": "14", + "id": "13", "metadata": {}, "source": [ "The VTK format assumes points (i.e. either *nodes* or *corners*) are defined by *x*, *y*, and *z* coordinates. The default is to assign a value of 0 to all *z* coordinates. You can, however, change this behavior and assign your own data. For example, the following code uses the `topo` array for the *z* coordinate of each of the *nodes*." @@ -181,7 +172,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "14", "metadata": {}, "outputs": [], "source": [ diff --git a/notebooks/tutorials/overland_flow/Square_TestBasin.asc b/docs/source/tutorials/overland_flow/Square_TestBasin.asc similarity index 100% rename from notebooks/tutorials/overland_flow/Square_TestBasin.asc rename to docs/source/tutorials/overland_flow/Square_TestBasin.asc diff --git a/notebooks/tutorials/overland_flow/coupled_rainfall_runoff.ipynb b/docs/source/tutorials/overland_flow/coupled_rainfall_runoff.ipynb similarity index 100% rename from notebooks/tutorials/overland_flow/coupled_rainfall_runoff.ipynb rename to docs/source/tutorials/overland_flow/coupled_rainfall_runoff.ipynb diff --git a/notebooks/tutorials/overland_flow/how_to_d4_pitfill_a_dem.ipynb b/docs/source/tutorials/overland_flow/how_to_d4_pitfill_a_dem.ipynb similarity index 91% rename from notebooks/tutorials/overland_flow/how_to_d4_pitfill_a_dem.ipynb rename to docs/source/tutorials/overland_flow/how_to_d4_pitfill_a_dem.ipynb index 585c389d06..00b8137cc2 100644 --- a/notebooks/tutorials/overland_flow/how_to_d4_pitfill_a_dem.ipynb +++ b/docs/source/tutorials/overland_flow/how_to_d4_pitfill_a_dem.ipynb @@ -4,14 +4,6 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, "source": [ "# How to do \"D4\" pit-filling on a digital elevation model (DEM)\n", "\n", @@ -26,7 +18,7 @@ }, { "cell_type": "markdown", - "id": "2", + "id": "1", "metadata": {}, "source": [ "First, some imports:" @@ -35,7 +27,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -45,7 +37,7 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "3", "metadata": {}, "source": [ "Read the un-filled DEM, which happens to be in Arc/Info ASCII Grid format (a.k.a., ESRI ASCII). We will use the `set_watershed_boundary_condition` function to set all nodes with an elevation value equal to a \"no data\" code (default -9999) to closed boundaries, and any nodes with valid elevation values that lie on the grid's perimeter to open (fixed value) boundaries. You can learn more about the raster version of this handy function [here](https://landlab.readthedocs.io/en/latest/reference/grid/raster_api.html#landlab.grid.raster.RasterModelGrid.set_watershed_boundary_condition). " @@ -54,7 +46,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -69,7 +61,7 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "5", "metadata": {}, "source": [ "Having read the DEM and set its boundary conditions, we now instantiate and run `FlowAccumulator`. We will tell it to use \"D4\" routing, which is indicated by the parameter choice `flow_director = FlowDirectorSteepest`. (Note that the term \"steepest\" means \"choose the steepest drop among all directly adjacent nodes\". In a RasterModelGrid, there are normally four neighboring nodes, and so when `FlowDirectorSteepest` is applied to a raster grid, it does 'D4' routing. When it is applied to a hex grid, for example, it chooses among six possible directions. This variation in the number of potential directions depending on grid type is why it this particular flow-direction method is called \"steepest\" rather than \"D4\". For more on this, see the tutorials *the_FlowDirectors* and *compare_FlowDirectors*.)\n", @@ -80,7 +72,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -91,7 +83,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -100,7 +92,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "8", "metadata": {}, "source": [ "Notice that there are interruptions in the drainage patterns: places where drainage area abruptly drops in the downstream direction. These spots represent drainages that terminate in pits." @@ -108,7 +100,7 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "9", "metadata": {}, "source": [ "Now we'll repeat the process, but this time we will also tell the `FlowAccumulator` to use the `LakeMapperBarnes` component for depression handling. (Note that we could run `LakeMapperBarnes` separately, but because depression handling and flow accumulation work together, the `FlowAccumulator` provides a way to directly \"embed\" a depression handler and its arguments, which is the approach used here; you can learn more about this in the tutorial *the_FlowAccumulator*.) We can examine the parameters of `LakeMapperBarnes`:" @@ -117,7 +109,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -128,7 +120,7 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ "If we don't wish to accept the built-in defaults, we can send any of these parameters as additional arguments to the `FlowAccumulator` constructor. For this application, we want:\n", @@ -144,7 +136,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -164,7 +156,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -177,7 +169,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "14", "metadata": {}, "source": [ "Now we have a continuous drainage system that passes smoothly over the now-filled pits. Drainage from every cell in the watershed can reach the outlet. By plotting the difference between the original and modified topography, we can inspect the depth and spatial patterns of pit filling:" @@ -186,7 +178,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -195,24 +187,6 @@ " colorbar_label=\"fill depth (m)\",\n", ")" ] - }, - { - "cell_type": "markdown", - "id": "17", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, - { - "cell_type": "markdown", - "id": "18", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { @@ -231,7 +205,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/overland_flow/hugo_site.asc b/docs/source/tutorials/overland_flow/hugo_site.asc similarity index 100% rename from notebooks/tutorials/overland_flow/hugo_site.asc rename to docs/source/tutorials/overland_flow/hugo_site.asc diff --git a/notebooks/tutorials/overland_flow/hugo_site_filled.asc b/docs/source/tutorials/overland_flow/hugo_site_filled.asc similarity index 100% rename from notebooks/tutorials/overland_flow/hugo_site_filled.asc rename to docs/source/tutorials/overland_flow/hugo_site_filled.asc diff --git a/notebooks/tutorials/overland_flow/kinwave_implicit/kinwave_implicit_overland_flow.ipynb b/docs/source/tutorials/overland_flow/kinwave_implicit/kinwave_implicit_overland_flow.ipynb similarity index 95% rename from notebooks/tutorials/overland_flow/kinwave_implicit/kinwave_implicit_overland_flow.ipynb rename to docs/source/tutorials/overland_flow/kinwave_implicit/kinwave_implicit_overland_flow.ipynb index 8f0d22348b..e0733585b5 100644 --- a/notebooks/tutorials/overland_flow/kinwave_implicit/kinwave_implicit_overland_flow.ipynb +++ b/docs/source/tutorials/overland_flow/kinwave_implicit/kinwave_implicit_overland_flow.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# The Implicit Kinematic Wave Overland Flow Component " ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -492,18 +476,13 @@ "source": [ "Voila! A fine hydrograph, and a water-depth map that shows deeper water in the channels (and highlights depressions in the topography)." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/notebooks/tutorials/overland_flow/linear_diffusion_overland_flow/linear_diffusion_overland_flow_router.ipynb b/docs/source/tutorials/overland_flow/linear_diffusion_overland_flow/linear_diffusion_overland_flow_router.ipynb similarity index 96% rename from notebooks/tutorials/overland_flow/linear_diffusion_overland_flow/linear_diffusion_overland_flow_router.ipynb rename to docs/source/tutorials/overland_flow/linear_diffusion_overland_flow/linear_diffusion_overland_flow_router.ipynb index f07d600f13..6cced4f0d4 100644 --- a/notebooks/tutorials/overland_flow/linear_diffusion_overland_flow/linear_diffusion_overland_flow_router.ipynb +++ b/docs/source/tutorials/overland_flow/linear_diffusion_overland_flow/linear_diffusion_overland_flow_router.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# The Linear Diffusion Overland Flow Router" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -462,13 +446,6 @@ "\n", "Slingerland, R., & Kump, L. (2011). Mathematical Modeling of Earth's Dynamical Systems. Princeton University Press." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/overland_flow/overland_flow_driver.ipynb b/docs/source/tutorials/overland_flow/overland_flow_driver.ipynb similarity index 89% rename from notebooks/tutorials/overland_flow/overland_flow_driver.ipynb rename to docs/source/tutorials/overland_flow/overland_flow_driver.ipynb index 24d15b8d03..af72d3dd6c 100644 --- a/notebooks/tutorials/overland_flow/overland_flow_driver.ipynb +++ b/docs/source/tutorials/overland_flow/overland_flow_driver.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# The deAlmeida Overland Flow Component " ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -254,13 +238,6 @@ " plt.figure(t)\n", " rmg.imshow(\"surface_water__depth\", cmap=\"Blues\")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { @@ -279,7 +256,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/overland_flow/overland_flow_erosion/ol_flow_erosion_components.ipynb b/docs/source/tutorials/overland_flow/overland_flow_erosion/ol_flow_erosion_components.ipynb similarity index 97% rename from notebooks/tutorials/overland_flow/overland_flow_erosion/ol_flow_erosion_components.ipynb rename to docs/source/tutorials/overland_flow/overland_flow_erosion/ol_flow_erosion_components.ipynb index 6f852a72b6..82f8e5ba47 100644 --- a/notebooks/tutorials/overland_flow/overland_flow_erosion/ol_flow_erosion_components.ipynb +++ b/docs/source/tutorials/overland_flow/overland_flow_erosion/ol_flow_erosion_components.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -479,20 +472,13 @@ "source": [ "grid.imshow(starting_elev - elev, colorbar_label=\"cumulative erosion (m)\")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] } ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/notebooks/tutorials/overland_flow/rainfall/rainfall.asc b/docs/source/tutorials/overland_flow/rainfall/rainfall.asc similarity index 100% rename from notebooks/tutorials/overland_flow/rainfall/rainfall.asc rename to docs/source/tutorials/overland_flow/rainfall/rainfall.asc diff --git a/notebooks/tutorials/overland_flow/soil_infiltration_green_ampt/bijou_gully_subset_5m_edit_dx_filled.asc b/docs/source/tutorials/overland_flow/soil_infiltration_green_ampt/bijou_gully_subset_5m_edit_dx_filled.asc similarity index 100% rename from notebooks/tutorials/overland_flow/soil_infiltration_green_ampt/bijou_gully_subset_5m_edit_dx_filled.asc rename to docs/source/tutorials/overland_flow/soil_infiltration_green_ampt/bijou_gully_subset_5m_edit_dx_filled.asc diff --git a/notebooks/tutorials/overland_flow/soil_infiltration_green_ampt/infilt_green_ampt_with_overland_flow.ipynb b/docs/source/tutorials/overland_flow/soil_infiltration_green_ampt/infilt_green_ampt_with_overland_flow.ipynb similarity index 99% rename from notebooks/tutorials/overland_flow/soil_infiltration_green_ampt/infilt_green_ampt_with_overland_flow.ipynb rename to docs/source/tutorials/overland_flow/soil_infiltration_green_ampt/infilt_green_ampt_with_overland_flow.ipynb index aa1b62a4d1..1e1cc509b7 100644 --- a/notebooks/tutorials/overland_flow/soil_infiltration_green_ampt/infilt_green_ampt_with_overland_flow.ipynb +++ b/docs/source/tutorials/overland_flow/soil_infiltration_green_ampt/infilt_green_ampt_with_overland_flow.ipynb @@ -207,7 +207,9 @@ ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/notebooks/tutorials/plotting/animate-landlab-output.ipynb b/docs/source/tutorials/plotting/animate-landlab-output.ipynb similarity index 95% rename from notebooks/tutorials/plotting/animate-landlab-output.ipynb rename to docs/source/tutorials/plotting/animate-landlab-output.ipynb index 51ee992201..f025245a8a 100644 --- a/notebooks/tutorials/plotting/animate-landlab-output.ipynb +++ b/docs/source/tutorials/plotting/animate-landlab-output.ipynb @@ -1,13 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -312,13 +304,6 @@ "source": [ "Image(filename=\"second_phase.gif\")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/plotting/first_phase.mp4 b/docs/source/tutorials/plotting/first_phase.mp4 similarity index 100% rename from notebooks/tutorials/plotting/first_phase.mp4 rename to docs/source/tutorials/plotting/first_phase.mp4 diff --git a/notebooks/tutorials/plotting/landlab-plotting.ipynb b/docs/source/tutorials/plotting/landlab-plotting.ipynb similarity index 93% rename from notebooks/tutorials/plotting/landlab-plotting.ipynb rename to docs/source/tutorials/plotting/landlab-plotting.ipynb index ca4f005c78..f901509af5 100644 --- a/notebooks/tutorials/plotting/landlab-plotting.ipynb +++ b/docs/source/tutorials/plotting/landlab-plotting.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# Plotting grid data with Landlab" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -322,13 +306,6 @@ "prf.plot_profiles_in_map_view()\n", "plt.show()" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/python_intro/python_intro.ipynb b/docs/source/tutorials/python_intro/python_intro.ipynb similarity index 96% rename from notebooks/tutorials/python_intro/python_intro.ipynb rename to docs/source/tutorials/python_intro/python_intro.ipynb index a211fe2dc0..ccf4f19a6d 100644 --- a/notebooks/tutorials/python_intro/python_intro.ipynb +++ b/docs/source/tutorials/python_intro/python_intro.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -14,15 +7,6 @@ "# A super-brief intro to Python and NumPy" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -809,13 +793,6 @@ "source": [ "The online NumPy help is actually an extremely readable resource, and is highly recommended to find out more about the family of available NumPy methods." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/reading_dem_into_landlab/reading_dem_into_landlab.ipynb b/docs/source/tutorials/reading_dem_into_landlab/reading_dem_into_landlab.ipynb similarity index 96% rename from notebooks/tutorials/reading_dem_into_landlab/reading_dem_into_landlab.ipynb rename to docs/source/tutorials/reading_dem_into_landlab/reading_dem_into_landlab.ipynb index 62f1496aa7..06e58b4431 100644 --- a/notebooks/tutorials/reading_dem_into_landlab/reading_dem_into_landlab.ipynb +++ b/docs/source/tutorials/reading_dem_into_landlab/reading_dem_into_landlab.ipynb @@ -4,14 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How to read a DEM as a Landlab grid" + "# How to read a DEM as a Landlab grid" ] }, { @@ -155,9 +148,9 @@ "\n", "### The rest of this tutorial illustrates setting boundary conditions on DEMs and using the halo option for reading in DEMs without nodata values around the edges.\n", "\n", - "Because this is a watershed, we probably want to set *watershed boundary conditions.* For more on setting watershed boundary conditions on rasters, see [this tutorial](../boundary_conds/set_watershed_BCs_raster.ipynb)\n", + "Because this is a watershed, we probably want to set *watershed boundary conditions.* For more on setting watershed boundary conditions on rasters, see [this tutorial](../boundary_conditions/set_watershed_BCs_raster.ipynb)\n", "\n", - "In essence, the `set_watershed_boundary_condition` function identifies the non-NODATA grid node with the lowest elevation. This node is assumed to be the watershed outlet. The boundary status of the outlet node is converted from \"core\" to \"fixed value,\" meaning that it is now a boundary node. All NODATA nodes are flagged as \"closed,\" and as a result all links that connect to them are flagged as \"inactive.\" These codes can then be used by components and models to restrict certain numerical operations to a subset of grid elements; for example, one might calculate a topographic gradient only at active links, or update elevation values only on core nodes. (For more on boundary condition handling in general, see the tutorials in the boundary_conds folder.\n", + "In essence, the `set_watershed_boundary_condition` function identifies the non-NODATA grid node with the lowest elevation. This node is assumed to be the watershed outlet. The boundary status of the outlet node is converted from \"core\" to \"fixed value,\" meaning that it is now a boundary node. All NODATA nodes are flagged as \"closed,\" and as a result all links that connect to them are flagged as \"inactive.\" These codes can then be used by components and models to restrict certain numerical operations to a subset of grid elements; for example, one might calculate a topographic gradient only at active links, or update elevation values only on core nodes. (For more on boundary condition handling in general, see the tutorials in the boundary_conditions folder.\n", "\n", "We also replot the watershed, this time coloring by the node status, which illustrates the boundary condition at each node." ] @@ -307,7 +300,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "There are lots of ways we could have done this. In a more complicated DEM we would probably want to search for the smallest z values in the second row in order to figure out which should be fixed values. For more on setting raster boundary conditions see this [tutorial](../boundary_conds/set_BCs_on_raster_perimeter.ipynb)" + "There are lots of ways we could have done this. In a more complicated DEM we would probably want to search for the smallest z values in the second row in order to figure out which should be fixed values. For more on setting raster boundary conditions see this [tutorial](../boundary_conditions/set_BCs_on_raster_perimeter.ipynb)" ] } ], @@ -327,7 +320,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/reading_dem_into_landlab/synthetic_landscape.asc b/docs/source/tutorials/reading_dem_into_landlab/synthetic_landscape.asc similarity index 100% rename from notebooks/tutorials/reading_dem_into_landlab/synthetic_landscape.asc rename to docs/source/tutorials/reading_dem_into_landlab/synthetic_landscape.asc diff --git a/notebooks/tutorials/reading_dem_into_landlab/west_bijou_gully.asc b/docs/source/tutorials/reading_dem_into_landlab/west_bijou_gully.asc similarity index 100% rename from notebooks/tutorials/reading_dem_into_landlab/west_bijou_gully.asc rename to docs/source/tutorials/reading_dem_into_landlab/west_bijou_gully.asc diff --git a/docs/source/tutorials/river_flow_dynamics/DEM-kootenai_37x50_1x1.asc b/docs/source/tutorials/river_flow_dynamics/DEM-kootenai_37x50_1x1.asc new file mode 100644 index 0000000000..3350942081 --- /dev/null +++ b/docs/source/tutorials/river_flow_dynamics/DEM-kootenai_37x50_1x1.asc @@ -0,0 +1,43 @@ +NCOLS 50 +NROWS 37 +XLLCORNER 556440 +YLLCORNER 5394932 +CELLSIZE 1 +NODATA_value -9999 +543.340026855468977 543.299987792969 543.27001953125 543.260009765625 543.309997558594 543.320007324219 543.340026855469 543.359985351562 543.380004882812 543.400024414062 543.409973144531 543.429992675781 543.440002441406 543.390014648438 543.320007324219 543.340026855469 543.349975585938 543.380004882812 543.450012207031 543.549987792969 543.549987792969 543.559997558594 543.52001953125 543.539978027344 543.539978027344 543.549987792969 543.609985351562 543.659973144531 543.719970703125 543.789978027344 543.719970703125 543.72998046875 543.700012207031 543.799987792969 543.739990234375 543.700012207031 543.530029296875 543.409973144531 543.030029296875 542.330017089844 541.929992675781 541.380004882812 540.679992675781 540.320007324219 540.059997558594 539.830017089844 539.590026855469 539.400024414062 539.27001953125 539.190002441406 +543.359985351562 543.359985351562 543.330017089844 543.280029296875 543.299987792969 543.309997558594 543.309997558594 543.320007324219 543.330017089844 543.340026855469 543.349975585938 543.369995117188 543.340026855469 543.309997558594 543.280029296875 543.320007324219 543.369995117188 543.390014648438 543.429992675781 543.52001953125 543.559997558594 543.570007324219 543.52001953125 543.510009765625 543.510009765625 543.570007324219 543.609985351562 543.710021972656 543.75 543.789978027344 543.710021972656 543.659973144531 543.690002441406 543.690002441406 543.5 543.510009765625 543.030029296875 542.419982910156 541.840026855469 541.450012207031 540.840026855469 540.330017089844 540.150024414062 539.830017089844 539.609985351562 539.419982910156 539.239990234375 539.119995117188 539.010009765625 538.830017089844 +543.380004882812 543.349975585938 543.330017089844 543.340026855469 543.330017089844 543.330017089844 543.280029296875 543.289978027344 543.289978027344 543.289978027344 543.299987792969 543.320007324219 543.299987792969 543.280029296875 543.289978027344 543.320007324219 543.340026855469 543.359985351562 543.429992675781 543.530029296875 543.549987792969 543.539978027344 543.5 543.549987792969 543.609985351562 543.570007324219 543.619995117188 543.75 543.760009765625 543.75 543.690002441406 543.609985351562 543.489990234375 543.22998046875 542.820007324219 542.580017089844 542.059997558594 541.340026855469 540.719970703125 540.400024414062 540.140014648438 539.909973144531 539.580017089844 539.359985351562 539.210021972656 539.070007324219 538.929992675781 538.799987792969 538.650024414062 538.469970703125 +543.409973144531 543.390014648438 543.330017089844 543.320007324219 543.309997558594 543.349975585938 543.260009765625 543.260009765625 543.260009765625 543.27001953125 543.289978027344 543.330017089844 543.320007324219 543.289978027344 543.280029296875 543.299987792969 543.320007324219 543.359985351562 543.390014648438 543.409973144531 543.429992675781 543.469970703125 543.549987792969 543.599975585938 543.650024414062 543.549987792969 543.640014648438 543.77001953125 543.809997558594 543.780029296875 543.659973144531 543.429992675781 542.940002441406 542.440002441406 542.010009765625 541.47998046875 540.900024414062 540.380004882812 540.099975585938 539.820007324219 539.590026855469 539.340026855469 539.260009765625 539.059997558594 538.909973144531 538.809997558594 538.690002441406 538.549987792969 538.380004882812 538.359985351562 +543.349975585938 543.330017089844 543.280029296875 543.299987792969 543.260009765625 543.219970703125 543.22998046875 543.219970703125 543.25 543.280029296875 543.25 543.219970703125 543.27001953125 543.25 543.260009765625 543.25 543.299987792969 543.330017089844 543.320007324219 543.369995117188 543.460021972656 543.549987792969 543.570007324219 543.669982910156 543.659973144531 543.580017089844 543.630004882812 543.690002441406 543.719970703125 543.719970703125 543.669982910156 543.210021972656 542.349975585938 541.429992675781 540.940002441406 540.559997558594 540.119995117188 539.809997558594 539.590026855469 539.359985351562 539.140014648438 539.049987792969 538.950012207031 538.809997558594 538.609985351562 538.559997558594 538.429992675781 538.340026855469 538.309997558594 538.309997558594 +543.359985351562 543.330017089844 543.299987792969 543.299987792969 543.299987792969 543.239990234375 543.219970703125 543.260009765625 543.219970703125 543.159973144531 543.140014648438 543.190002441406 543.25 543.219970703125 543.25 543.260009765625 543.280029296875 543.280029296875 543.390014648438 543.440002441406 543.530029296875 543.599975585938 543.619995117188 543.640014648438 543.669982910156 543.609985351562 543.570007324219 543.609985351562 543.489990234375 543.489990234375 543.239990234375 542.47998046875 541.52001953125 540.530029296875 540.190002441406 539.789978027344 539.5 539.340026855469 539.169982910156 539 538.940002441406 538.739990234375 538.619995117188 538.440002441406 538.419982910156 538.359985351562 538.299987792969 538.309997558594 538.289978027344 538.309997558594 +543.27001953125 543.25 543.239990234375 543.22998046875 543.22998046875 543.239990234375 543.210021972656 543.140014648438 543.109985351562 543.080017089844 543.099975585938 543.169982910156 543.239990234375 543.260009765625 543.280029296875 543.280029296875 543.309997558594 543.340026855469 543.419982910156 543.510009765625 543.489990234375 543.590026855469 543.630004882812 543.640014648438 543.630004882812 543.619995117188 543.549987792969 543.380004882812 543.190002441406 542.97998046875 542.25 541.489990234375 540.599975585938 539.940002441406 539.700012207031 539.320007324219 539.140014648438 539.030029296875 538.890014648438 538.710021972656 538.539978027344 538.330017089844 538.340026855469 538.340026855469 538.289978027344 538.289978027344 538.299987792969 538.320007324219 538.289978027344 538.330017089844 +543.200012207031 543.159973144531 543.169982910156 543.200012207031 543.25 543.27001953125 543.27001953125 543.219970703125 543.169982910156 543.090026855469 543.080017089844 543.099975585938 543.150024414062 543.219970703125 543.150024414062 543.119995117188 543.299987792969 543.299987792969 543.469970703125 543.52001953125 543.47998046875 543.469970703125 543.47998046875 543.570007324219 543.570007324219 543.330017089844 543.179992675781 542.840026855469 541.830017089844 541.47998046875 541.260009765625 540.489990234375 539.72998046875 539.489990234375 539.200012207031 539 538.869995117188 538.77001953125 538.640014648438 538.469970703125 538.320007324219 538.260009765625 538.239990234375 538.239990234375 538.239990234375 538.260009765625 538.27001953125 538.289978027344 538.299987792969 538.369995117188 +543.25 543.25 543.200012207031 543.239990234375 543.260009765625 543.25 543.289978027344 543.239990234375 543.179992675781 543.109985351562 543.02001953125 543.030029296875 542.989990234375 542.960021972656 542.900024414062 543.030029296875 543.239990234375 543.340026855469 543.440002441406 543.530029296875 543.489990234375 543.369995117188 543.450012207031 543.330017089844 543.200012207031 542.940002441406 542.489990234375 541.760009765625 540.940002441406 539.880004882812 539.989990234375 539.530029296875 539.309997558594 539.090026855469 538.859985351562 538.739990234375 538.580017089844 538.489990234375 538.340026855469 538.280029296875 538.239990234375 538.239990234375 538.219970703125 538.260009765625 538.25 538.289978027344 538.299987792969 538.349975585938 538.369995117188 538.419982910156 +543.330017089844 543.25 543.25 543.260009765625 543.239990234375 543.239990234375 543.25 543.200012207031 543.080017089844 542.929992675781 542.900024414062 542.760009765625 542.650024414062 542.650024414062 542.619995117188 542.890014648438 543.140014648438 543.219970703125 543.299987792969 543.380004882812 543.419982910156 543.25 543.239990234375 543.140014648438 542.739990234375 542.159973144531 541.409973144531 540.669982910156 539.940002441406 539.330017089844 539.140014648438 538.97998046875 538.909973144531 538.809997558594 538.630004882812 538.460021972656 538.340026855469 538.299987792969 538.25 538.239990234375 538.219970703125 538.280029296875 538.27001953125 538.349975585938 538.369995117188 538.390014648438 538.359985351562 538.400024414062 538.460021972656 538.460021972656 +543.320007324219 543.22998046875 543.239990234375 543.219970703125 543.27001953125 543.260009765625 543.239990234375 543.099975585938 542.969970703125 542.840026855469 542.609985351562 542.429992675781 542.380004882812 542.330017089844 542.450012207031 542.590026855469 542.859985351562 542.849975585938 542.969970703125 543.080017089844 542.989990234375 542.369995117188 542.320007324219 542.010009765625 541.489990234375 541.150024414062 540.580017089844 539.830017089844 539.150024414062 539.02001953125 538.919982910156 538.760009765625 538.650024414062 538.460021972656 538.369995117188 538.289978027344 538.219970703125 538.239990234375 538.25 538.239990234375 538.289978027344 538.289978027344 538.340026855469 538.390014648438 538.419982910156 538.429992675781 538.429992675781 538.460021972656 538.47998046875 538.510009765625 +543.25 543.22998046875 543.22998046875 543.239990234375 543.239990234375 543.210021972656 543.119995117188 543.010009765625 542.840026855469 542.580017089844 542.390014648438 542.210021972656 542.150024414062 542.080017089844 542.119995117188 542.169982910156 542.299987792969 542.469970703125 542.549987792969 542.619995117188 541.890014648438 541.260009765625 541.02001953125 540.780029296875 540.25 539.960021972656 539.630004882812 539.010009765625 538.840026855469 538.799987792969 538.590026855469 538.450012207031 538.390014648438 538.340026855469 538.289978027344 538.219970703125 538.25 538.280029296875 538.260009765625 538.299987792969 538.340026855469 538.369995117188 538.429992675781 538.429992675781 538.460021972656 538.5 538.5 538.530029296875 538.570007324219 538.599975585938 +543.210021972656 543.210021972656 543.239990234375 543.179992675781 543.159973144531 543.109985351562 542.969970703125 542.859985351562 542.679992675781 542.440002441406 542.150024414062 541.900024414062 541.789978027344 541.780029296875 541.609985351562 541.580017089844 541.619995117188 541.570007324219 541.640014648438 541.299987792969 540.640014648438 540.130004882812 539.760009765625 539.489990234375 539.039978027344 538.859985351562 538.690002441406 538.609985351562 538.469970703125 538.330017089844 538.289978027344 538.289978027344 538.25 538.25 538.25 538.299987792969 538.289978027344 538.299987792969 538.27001953125 538.320007324219 538.390014648438 538.390014648438 538.400024414062 538.450012207031 538.5 538.530029296875 538.580017089844 538.599975585938 538.619995117188 538.659973144531 +543.22998046875 543.219970703125 543.210021972656 543.119995117188 543.049987792969 542.849975585938 542.72998046875 542.630004882812 542.419982910156 542.22998046875 541.849975585938 541.559997558594 541.510009765625 541.369995117188 541.130004882812 541.099975585938 540.919982910156 540.75 540.409973144531 539.960021972656 539.570007324219 539.299987792969 539.059997558594 538.809997558594 538.619995117188 538.450012207031 538.320007324219 538.27001953125 538.219970703125 538.239990234375 538.200012207031 538.210021972656 538.22998046875 538.239990234375 538.27001953125 538.27001953125 538.299987792969 538.320007324219 538.369995117188 538.419982910156 538.409973144531 538.429992675781 538.429992675781 538.489990234375 538.580017089844 538.590026855469 538.619995117188 538.650024414062 538.690002441406 538.72998046875 +543.210021972656 543.179992675781 543.130004882812 542.989990234375 542.760009765625 542.599975585938 542.47998046875 542.349975585938 542.159973144531 541.900024414062 541.570007324219 541.369995117188 541.27001953125 541.039978027344 540.679992675781 540.429992675781 540.150024414062 539.890014648438 539.659973144531 539.27001953125 538.919982910156 538.780029296875 538.580017089844 538.380004882812 538.239990234375 538.179992675781 538.099975585938 538.070007324219 538.099975585938 538.140014648438 538.200012207031 538.22998046875 538.25 538.289978027344 538.320007324219 538.330017089844 538.359985351562 538.429992675781 538.419982910156 538.460021972656 538.47998046875 538.510009765625 538.559997558594 538.570007324219 538.609985351562 538.690002441406 538.679992675781 538.719970703125 538.739990234375 538.809997558594 +543.099975585938 542.969970703125 542.780029296875 542.619995117188 542.440002441406 542.309997558594 542.200012207031 542.030029296875 541.809997558594 541.590026855469 541.340026855469 541.070007324219 541.080017089844 540.77001953125 540.369995117188 540.02001953125 539.719970703125 539.400024414062 539.169982910156 538.880004882812 538.650024414062 538.409973144531 538.260009765625 538.109985351562 538.030029296875 537.900024414062 537.919982910156 538.02001953125 538.109985351562 538.190002441406 538.200012207031 538.260009765625 538.320007324219 538.369995117188 538.380004882812 538.390014648438 538.400024414062 538.419982910156 538.489990234375 538.559997558594 538.549987792969 538.580017089844 538.630004882812 538.619995117188 538.669982910156 538.75 538.77001953125 538.710021972656 538.820007324219 538.869995117188 +542.859985351562 542.650024414062 542.429992675781 542.25 542.260009765625 541.97998046875 541.830017089844 541.609985351562 541.349975585938 541.059997558594 540.75 540.830017089844 540.72998046875 540.469970703125 540.070007324219 539.650024414062 539.419982910156 539.219970703125 538.900024414062 538.659973144531 538.289978027344 538.099975585938 537.960021972656 537.900024414062 537.840026855469 537.840026855469 537.950012207031 538.059997558594 538.169982910156 538.25 538.309997558594 538.390014648438 538.429992675781 538.469970703125 538.429992675781 538.460021972656 538.5 538.530029296875 538.52001953125 538.559997558594 538.52001953125 538.640014648438 538.640014648438 538.690002441406 538.739990234375 538.789978027344 538.820007324219 538.809997558594 538.840026855469 538.840026855469 +542.590026855469 542.359985351562 542.059997558594 541.929992675781 541.72998046875 541.559997558594 541.330017089844 541.109985351562 540.619995117188 540.369995117188 540.299987792969 540.419982910156 540.150024414062 539.799987792969 539.440002441406 539.22998046875 538.960021972656 538.619995117188 538.330017089844 538.049987792969 537.929992675781 537.809997558594 537.72998046875 537.739990234375 537.809997558594 537.900024414062 538.049987792969 538.190002441406 538.260009765625 538.349975585938 538.390014648438 538.409973144531 538.47998046875 538.469970703125 538.429992675781 538.419982910156 538.52001953125 538.570007324219 538.590026855469 538.510009765625 538.539978027344 538.690002441406 538.669982910156 538.690002441406 538.830017089844 538.830017089844 538.820007324219 538.830017089844 538.820007324219 538.859985351562 +542.289978027344 542.02001953125 541.780029296875 541.450012207031 541.159973144531 540.940002441406 540.530029296875 540.179992675781 540.010009765625 539.919982910156 539.940002441406 539.830017089844 539.47998046875 539.239990234375 538.859985351562 538.580017089844 538.200012207031 538.030029296875 537.849975585938 537.780029296875 537.659973144531 537.599975585938 537.690002441406 537.739990234375 537.890014648438 538.030029296875 538.169982910156 538.299987792969 538.359985351562 538.409973144531 538.489990234375 538.559997558594 538.52001953125 538.530029296875 538.429992675781 538.349975585938 538.450012207031 538.549987792969 538.590026855469 538.539978027344 538.640014648438 538.719970703125 538.690002441406 538.760009765625 538.820007324219 538.840026855469 538.880004882812 538.859985351562 538.859985351562 538.909973144531 +541.909973144531 541.630004882812 541.450012207031 540.940002441406 540.570007324219 540.260009765625 539.929992675781 539.780029296875 539.650024414062 539.690002441406 539.510009765625 539.150024414062 538.830017089844 538.549987792969 538.280029296875 538.059997558594 537.890014648438 537.760009765625 537.659973144531 537.599975585938 537.52001953125 537.549987792969 537.659973144531 537.830017089844 538.02001953125 538.190002441406 538.289978027344 538.390014648438 538.450012207031 538.530029296875 538.570007324219 538.590026855469 538.580017089844 538.5 538.5 538.429992675781 538.5 538.549987792969 538.52001953125 538.609985351562 538.690002441406 538.72998046875 538.789978027344 538.840026855469 538.809997558594 538.869995117188 538.919982910156 538.909973144531 538.919982910156 538.969970703125 +541.469970703125 541.440002441406 541.030029296875 540.530029296875 540.179992675781 539.890014648438 539.650024414062 539.489990234375 539.380004882812 539.200012207031 538.969970703125 538.570007324219 538.25 538.049987792969 538.010009765625 537.830017089844 537.739990234375 537.570007324219 537.469970703125 537.429992675781 537.450012207031 537.52001953125 537.710021972656 538 538.159973144531 538.289978027344 538.390014648438 538.460021972656 538.510009765625 538.559997558594 538.580017089844 538.580017089844 538.590026855469 538.539978027344 538.510009765625 538.559997558594 538.539978027344 538.580017089844 538.630004882812 538.75 538.780029296875 538.820007324219 538.849975585938 538.890014648438 538.900024414062 538.97998046875 538.969970703125 538.969970703125 538.989990234375 538.989990234375 +541.049987792969 540.880004882812 540.47998046875 540.109985351562 539.820007324219 539.570007324219 539.429992675781 539.219970703125 538.940002441406 538.700012207031 538.390014648438 538.130004882812 537.989990234375 537.890014648438 537.880004882812 537.690002441406 537.640014648438 537.510009765625 537.440002441406 537.390014648438 537.440002441406 537.630004882812 537.880004882812 538.090026855469 538.22998046875 538.359985351562 538.440002441406 538.489990234375 538.539978027344 538.580017089844 538.580017089844 538.590026855469 538.630004882812 538.650024414062 538.640014648438 538.659973144531 538.609985351562 538.640014648438 538.700012207031 538.780029296875 538.869995117188 538.830017089844 538.909973144531 538.940002441406 539.02001953125 539.039978027344 539.010009765625 539.010009765625 539 539 +540.640014648438 540.289978027344 539.989990234375 539.659973144531 539.460021972656 539.309997558594 539.179992675781 538.739990234375 538.489990234375 538.260009765625 538.059997558594 537.950012207031 537.77001953125 537.659973144531 537.669982910156 537.570007324219 537.530029296875 537.440002441406 537.369995117188 537.359985351562 537.52001953125 537.72998046875 538.039978027344 538.150024414062 538.359985351562 538.469970703125 538.570007324219 538.570007324219 538.539978027344 538.559997558594 538.599975585938 538.619995117188 538.650024414062 538.679992675781 538.679992675781 538.690002441406 538.710021972656 538.75 538.789978027344 538.830017089844 538.909973144531 538.940002441406 539.010009765625 539.030029296875 539.02001953125 539 539.02001953125 539 538.97998046875 538.929992675781 +540.359985351562 539.950012207031 539.510009765625 539.27001953125 539.130004882812 538.969970703125 538.650024414062 538.409973144531 538.210021972656 538.070007324219 537.940002441406 537.830017089844 537.700012207031 537.599975585938 537.539978027344 537.530029296875 537.419982910156 537.400024414062 537.369995117188 537.460021972656 537.630004882812 537.909973144531 538.119995117188 538.22998046875 538.380004882812 538.530029296875 538.619995117188 538.590026855469 538.599975585938 538.630004882812 538.659973144531 538.690002441406 538.679992675781 538.710021972656 538.679992675781 538.700012207031 538.760009765625 538.849975585938 538.880004882812 538.929992675781 538.919982910156 538.940002441406 539.030029296875 539.080017089844 539.039978027344 539.039978027344 539.049987792969 539 538.929992675781 538.909973144531 +539.909973144531 539.559997558594 539.219970703125 538.859985351562 538.710021972656 538.549987792969 538.390014648438 538.190002441406 538.150024414062 538.030029296875 537.859985351562 537.760009765625 537.669982910156 537.5 537.450012207031 537.450012207031 537.440002441406 537.419982910156 537.510009765625 537.690002441406 537.900024414062 538.02001953125 538.109985351562 538.260009765625 538.419982910156 538.450012207031 538.580017089844 538.630004882812 538.650024414062 538.690002441406 538.700012207031 538.72998046875 538.75 538.780029296875 538.780029296875 538.840026855469 538.890014648438 538.900024414062 538.940002441406 539 539.010009765625 539.010009765625 539.049987792969 539 539.039978027344 539.030029296875 539.030029296875 539 538.940002441406 538.919982910156 +539.489990234375 539.119995117188 538.840026855469 538.609985351562 538.450012207031 538.349975585938 538.289978027344 538.210021972656 538.080017089844 537.960021972656 537.809997558594 537.640014648438 537.489990234375 537.400024414062 537.419982910156 537.419982910156 537.549987792969 537.669982910156 537.830017089844 537.969970703125 538.059997558594 538.090026855469 538.190002441406 538.299987792969 538.400024414062 538.450012207031 538.619995117188 538.669982910156 538.690002441406 538.700012207031 538.72998046875 538.77001953125 538.799987792969 538.849975585938 538.880004882812 538.919982910156 538.929992675781 538.909973144531 538.929992675781 539.030029296875 539.049987792969 539.080017089844 539.030029296875 538.989990234375 539 539.010009765625 539.010009765625 538.969970703125 538.989990234375 539.010009765625 +539.02001953125 538.590026855469 538.440002441406 538.280029296875 538.25 538.27001953125 538.219970703125 538.200012207031 538.109985351562 537.97998046875 537.780029296875 537.590026855469 537.5 537.419982910156 537.409973144531 537.530029296875 537.77001953125 537.940002441406 538.080017089844 538.169982910156 538.239990234375 538.289978027344 538.330017089844 538.369995117188 538.460021972656 538.650024414062 538.700012207031 538.690002441406 538.72998046875 538.739990234375 538.789978027344 538.820007324219 538.859985351562 538.890014648438 538.880004882812 538.890014648438 538.919982910156 538.880004882812 539.039978027344 539.109985351562 539.049987792969 539.080017089844 539.049987792969 539.02001953125 539.039978027344 539.030029296875 539.039978027344 539.039978027344 539.059997558594 539.090026855469 +538.590026855469 538.330017089844 538.109985351562 538.030029296875 538.109985351562 538.22998046875 538.27001953125 538.200012207031 538.179992675781 538.039978027344 537.880004882812 537.690002441406 537.580017089844 537.510009765625 537.590026855469 537.77001953125 537.929992675781 538.109985351562 538.140014648438 538.349975585938 538.409973144531 538.450012207031 538.489990234375 538.5 538.619995117188 538.679992675781 538.710021972656 538.75 538.799987792969 538.830017089844 538.840026855469 538.909973144531 538.950012207031 538.940002441406 538.929992675781 538.960021972656 539 538.97998046875 539.02001953125 539.070007324219 539.119995117188 539.130004882812 539.090026855469 539.090026855469 539.109985351562 539.130004882812 539.070007324219 539.099975585938 539.119995117188 539.140014648438 +538.280029296875 538.030029296875 537.840026855469 537.809997558594 538.049987792969 538.260009765625 538.280029296875 538.239990234375 538.190002441406 538.099975585938 537.97998046875 537.880004882812 537.820007324219 537.830017089844 537.900024414062 538.010009765625 538.130004882812 538.27001953125 538.400024414062 538.450012207031 538.47998046875 538.539978027344 538.549987792969 538.710021972656 538.700012207031 538.710021972656 538.75 538.77001953125 538.820007324219 538.869995117188 538.909973144531 538.909973144531 538.909973144531 538.950012207031 539.010009765625 539.030029296875 539.030029296875 539.030029296875 539.039978027344 539.070007324219 539.150024414062 539.119995117188 539.119995117188 539.159973144531 539.200012207031 539.239990234375 539.25 539.239990234375 539.239990234375 539.219970703125 +538 537.789978027344 537.710021972656 537.900024414062 538.140014648438 538.299987792969 538.340026855469 538.320007324219 538.22998046875 538.179992675781 538.119995117188 538.099975585938 538.159973144531 538.159973144531 538.150024414062 538.210021972656 538.369995117188 538.47998046875 538.489990234375 538.47998046875 538.570007324219 538.599975585938 538.659973144531 538.72998046875 538.710021972656 538.75 538.799987792969 538.840026855469 538.859985351562 538.890014648438 538.909973144531 538.909973144531 538.950012207031 538.969970703125 539 539.010009765625 539.010009765625 539.039978027344 539.049987792969 539.090026855469 539.140014648438 539.169982910156 539.190002441406 539.25 539.289978027344 539.320007324219 539.400024414062 539.380004882812 539.340026855469 539.299987792969 +537.989990234375 537.849975585938 537.840026855469 537.989990234375 538.22998046875 538.369995117188 538.460021972656 538.429992675781 538.320007324219 538.27001953125 538.280029296875 538.280029296875 538.320007324219 538.340026855469 538.380004882812 538.469970703125 538.489990234375 538.549987792969 538.549987792969 538.539978027344 538.609985351562 538.669982910156 538.700012207031 538.700012207031 538.739990234375 538.780029296875 538.809997558594 538.900024414062 538.890014648438 538.960021972656 538.960021972656 538.960021972656 538.960021972656 538.940002441406 539 539.049987792969 539.039978027344 539.030029296875 539.119995117188 539.119995117188 539.140014648438 539.190002441406 539.280029296875 539.400024414062 539.359985351562 539.419982910156 539.419982910156 539.419982910156 539.390014648438 539.380004882812 +538 537.940002441406 537.900024414062 538.090026855469 538.289978027344 538.450012207031 538.530029296875 538.469970703125 538.409973144531 538.390014648438 538.419982910156 538.460021972656 538.5 538.559997558594 538.599975585938 538.590026855469 538.549987792969 538.630004882812 538.590026855469 538.609985351562 538.669982910156 538.710021972656 538.75 538.72998046875 538.809997558594 538.869995117188 538.900024414062 538.929992675781 538.960021972656 539 539 538.97998046875 538.950012207031 538.97998046875 539 539.039978027344 539.070007324219 539.099975585938 539.140014648438 539.159973144531 539.239990234375 539.330017089844 539.380004882812 539.440002441406 539.460021972656 539.419982910156 539.419982910156 539.400024414062 539.380004882812 539.429992675781 +538.090026855469 538.02001953125 538.02001953125 538.140014648438 538.340026855469 538.559997558594 538.580017089844 538.590026855469 538.510009765625 538.539978027344 538.52001953125 538.559997558594 538.590026855469 538.659973144531 538.609985351562 538.590026855469 538.599975585938 538.609985351562 538.599975585938 538.630004882812 538.679992675781 538.75 538.820007324219 538.859985351562 538.859985351562 538.909973144531 538.919982910156 538.97998046875 539.049987792969 539.02001953125 539.02001953125 539.049987792969 539.049987792969 539.049987792969 539.059997558594 539.150024414062 539.190002441406 539.150024414062 539.190002441406 539.280029296875 539.309997558594 539.400024414062 539.409973144531 539.409973144531 539.429992675781 539.390014648438 539.359985351562 539.359985351562 539.419982910156 539.47998046875 +538.119995117188 538.090026855469 538.049987792969 538.169982910156 538.340026855469 538.630004882812 538.690002441406 538.640014648438 538.650024414062 538.669982910156 538.640014648438 538.609985351562 538.669982910156 538.650024414062 538.619995117188 538.609985351562 538.580017089844 538.580017089844 538.599975585938 538.690002441406 538.710021972656 538.859985351562 538.859985351562 538.869995117188 538.940002441406 538.969970703125 538.960021972656 538.950012207031 539 539.049987792969 539.059997558594 539.039978027344 539.140014648438 539.179992675781 539.25 539.280029296875 539.27001953125 539.25 539.27001953125 539.320007324219 539.349975585938 539.400024414062 539.400024414062 539.409973144531 539.390014648438 539.289978027344 539.309997558594 539.380004882812 539.429992675781 539.549987792969 +538.140014648438 538.109985351562 538.150024414062 538.219970703125 538.409973144531 538.760009765625 538.77001953125 538.719970703125 538.760009765625 538.77001953125 538.719970703125 538.700012207031 538.690002441406 538.659973144531 538.659973144531 538.580017089844 538.559997558594 538.599975585938 538.659973144531 538.710021972656 538.799987792969 538.869995117188 538.840026855469 538.909973144531 539.010009765625 539.059997558594 539.059997558594 539.02001953125 539.049987792969 539.070007324219 539.02001953125 539.059997558594 539.190002441406 539.260009765625 539.309997558594 539.320007324219 539.280029296875 539.299987792969 539.330017089844 539.359985351562 539.380004882812 539.409973144531 539.400024414062 539.390014648438 539.320007324219 539.330017089844 539.349975585938 539.359985351562 539.460021972656 539.489990234375 +538.159973144531 538.159973144531 538.200012207031 538.260009765625 538.489990234375 538.780029296875 538.900024414062 538.809997558594 538.799987792969 538.739990234375 538.690002441406 538.679992675781 538.700012207031 538.669982910156 538.619995117188 538.599975585938 538.609985351562 538.669982910156 538.72998046875 538.799987792969 538.880004882812 538.849975585938 538.909973144531 538.97998046875 539.070007324219 539.080017089844 539.070007324219 539.109985351562 539.150024414062 539.159973144531 539.179992675781 539.190002441406 539.210021972656 539.239990234375 539.320007324219 539.309997558594 539.330017089844 539.359985351562 539.380004882812 539.340026855469 539.380004882812 539.380004882812 539.369995117188 539.349975585938 539.309997558594 539.369995117188 539.400024414062 539.419982910156 539.429992675781 539.460021972656 +538.239990234375 538.190002441406 538.190002441406 538.25 538.5 538.72998046875 538.869995117188 538.820007324219 538.849975585938 538.700012207031 538.690002441406 538.630004882812 538.669982910156 538.659973144531 538.619995117188 538.630004882812 538.679992675781 538.719970703125 538.780029296875 538.859985351562 538.880004882812 538.900024414062 538.97998046875 539.030029296875 539.090026855469 539.150024414062 539.179992675781 539.169982910156 539.219970703125 539.25 539.239990234375 539.27001953125 539.27001953125 539.25 539.280029296875 539.340026855469 539.369995117188 539.390014648438 539.409973144531 539.409973144531 539.380004882812 539.390014648438 539.369995117188 539.390014648438 539.409973144531 539.429992675781 539.460021972656 539.469970703125 539.510009765625 539.559997558594 diff --git a/docs/source/tutorials/river_flow_dynamics/river_flow_dynamics_tutorial.ipynb b/docs/source/tutorials/river_flow_dynamics/river_flow_dynamics_tutorial.ipynb new file mode 100644 index 0000000000..c3e8f6094c --- /dev/null +++ b/docs/source/tutorials/river_flow_dynamics/river_flow_dynamics_tutorial.ipynb @@ -0,0 +1,656 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2D Surface Water Flow component\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "This notebook demonstrate the usage of the `river flow dynamics` Landlab component. The component runs a semi-implicit, semi-Lagrangian finite-volume approximation to the depth-averaged 2D shallow-water equations of Casulli and Cheng (1992) and related work.\n", + "\n", + "### Theory\n", + "\n", + "The depth-averaged 2D shallow-water equations are the simplification of the Navier-Stokes equations, which correspond to the balance of momentum and mass in the fluid. It is possible to simplify these equations by assuming a well-mixed water column and a small water depth to width ratio, where a vertical integration results in depth-averaged equations. These require boundary conditions at the top and bottom of the water column, which are provided by the wind stress and the Manning-Chezy formula, respectively:\n", + "\n", + "$$\n", + "\\frac{\\partial U}{\\partial t}\n", + "+ U\\frac{\\partial U}{\\partial x} + V\\frac{\\partial U}{\\partial y}\n", + "= \n", + "- g\\frac{\\partial \\eta}{\\partial x}\n", + "+ \\epsilon\\left(\\frac{\\partial^2 U}{\\partial x^2} + \\frac{\\partial^2 U}{\\partial y^2}\\right)\n", + "+ \\frac{\\gamma_T(U_a - U)}{H} - g\\frac{\\sqrt{U^2 + V^2}}{Cz^2}U + \\mathbf{f}V\n", + "$$\n", + "\n", + "$$\n", + "\\frac{\\partial V}{\\partial t}\n", + "+ U\\frac{\\partial V}{\\partial x} + V\\frac{\\partial V}{\\partial y}\n", + "= \n", + "- g\\frac{\\partial \\eta}{\\partial y}\n", + "+ \\epsilon\\left(\\frac{\\partial^2 V}{\\partial x^2} + \\frac{\\partial^2 V}{\\partial y^2}\\right)\n", + "+ \\frac{\\gamma_T(V_a - V)}{H} - g\\frac{\\sqrt{U^2 + V^2}}{Cz^2}V + \\mathbf{f}U\n", + "$$\n", + "\n", + "$$\n", + "\\frac{\\partial \\eta}{\\partial t}\n", + "+ \\frac{\\partial (HU)}{\\partial x} + \\frac{\\partial (HV)}{\\partial y}\n", + "= 0\n", + "$$\n", + "\n", + "where $U$ is the water velocity in the $x$-direction, $V$ is the water velocity in the $y$-direction, $H$ is the water depth, $\\eta$ is the water surface elevation, $Cz$ is the Chezy friction coefficient, and $t$ is time. For the constants $g$ is the gravity acceleration, $\\epsilon$ is the horizontal eddy viscosity, $\\mathbf{f}$ is the Coriolis parameter, $\\gamma_T$ is the wind stress coefficient, and $U_a$ and $V_a$ are the prescribed wind velocities.\n", + "\n", + "### Numerical representation\n", + "\n", + "A semi-implicit, semi-Lagrangian, finite volume numerical approximation represents the depth averaged, 2D shallow-water equations described before. The water surface elevation, $\\eta$, is defined at the center of each computational volume (nodes). Water depth, $H$, and velocity components, $U$ and $V$, are defined at the midpoint of volume faces (links). The finite volume structure provides a control volume representation that is inherently mass conservative.\n", + "\n", + "The combination of a semi-implciit water surface elevation solution and a semi-Lagrangian representation of advection provides the advantages of a stable solution and of time steps that exceed the CFL criterion. In the semi-implicit process, $\\eta$ in the momentum equations, and the velocity divergence in the continuity equation, are treated implicitly. The advective terms in the momentum equations, are discretized explicitly. See the cited literature for more details.\n", + "\n", + "### The component\n", + "\n", + "Import the needed libraries:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from IPython.display import clear_output\n", + "from tqdm import trange\n", + "\n", + "from landlab import RasterModelGrid\n", + "from landlab.components import river_flow_dynamics\n", + "from landlab.io import esri_ascii" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Information about the component\n", + "\n", + "Using the class name as argument for the `help` function returns descriptions of the various methods and parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "help(river_flow_dynamics)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Examples\n", + "\n", + "-- --\n", + "\n", + "### Example 1: Flow in a rectangular channel 6.0 m long\n", + "\n", + "This first basic example illustrates water flowing through a rectangular channel 1.0 $m$ wide and 6.0 $m$ long. Our channel is made in concrete, so we choose a Manning's roughness coefficient equal to 0.012 $s/m^\\frac{1}{3}$, and it has a slope of 0.01 $m/m$.\n", + "\n", + "We specify some basic parameters such as the grid resolution, time step duration, number of time steps, and the domain dimensions by specifying the number of columns and rows. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Basic parameters\n", + "mannings_n = 0.012 # Manning's roughness coefficient, [s/m^(1/3)]\n", + "channel_slope = 0.01 # Channel slope [m/m]\n", + "\n", + "# Simulation parameters\n", + "n_timesteps = 100 # Number of timesteps\n", + "dt = 0.1 # Timestep duration, [s]\n", + "nrows = 20 # Number of node rows\n", + "ncols = 60 # Number of node cols\n", + "dx = 0.1 # Node spacing in the x-direction, [m]\n", + "dy = 0.1 # Node spacing in the y-direction, [m]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create the grid:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create and set up the grid\n", + "grid = RasterModelGrid((nrows, ncols), xy_spacing=(dx, dy))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create the elevation field and define the topography to represent our rectangular channel:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# The grid represents a basic rectangular channel with slope equal to 0.01 m/m\n", + "te = grid.add_field(\n", + " \"topographic__elevation\", 1.0 - channel_slope * grid.x_of_node, at=\"node\"\n", + ")\n", + "te[grid.y_of_node > 1.5] = 2.5\n", + "te[grid.y_of_node < 0.5] = 2.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We show a top view of the domain:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Showing the topography\n", + "grid.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The channel is empty at the beginning of the simulation, so we create the fields for the water surface elevation, depth and velocity:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# We establish the initial conditions, which represent an empty channel\n", + "h = grid.add_zeros(\"surface_water__depth\", at=\"node\")\n", + "\n", + "# Water velocity is zero in everywhere since there is no water yet\n", + "vel = grid.add_zeros(\"surface_water__velocity\", at=\"link\")\n", + "\n", + "# Calculating the initial water surface elevation from water depth and topographic elevation\n", + "wse = grid.add_field(\"surface_water__elevation\", te, at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we specify the nodes at which water is entering into the domain, and also the associated links. These are going to be the entry boundary conditions for water depth and velocity. In this case, water flows from left to right at 0.5 $m$ depth, with a velocity of 0.45 $m/s$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# We set fixed boundary conditions, specifying the nodes and links in which the water is flowing into the grid\n", + "fixed_entry_nodes = np.array([300, 360, 420, 480, 540, 600, 660, 720, 780, 840, 900])\n", + "fixed_entry_links = grid.links_at_node[fixed_entry_nodes][:, 0]\n", + "\n", + "# We set the fixed values in the entry nodes/links\n", + "entry_nodes_h_values = np.array([0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5])\n", + "entry_links_vel_values = np.array(\n", + " [0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And now we show the boundary condition in the cross-section:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.plot(\n", + " grid.y_of_node[fixed_entry_nodes], entry_nodes_h_values + te[fixed_entry_nodes]\n", + ")\n", + "plt.plot(grid.y_of_node[grid.nodes_at_left_edge], te[grid.nodes_at_left_edge])\n", + "plt.title(\"Cross-section\")\n", + "plt.xlabel(\"Distance [m]\")\n", + "plt.ylabel(\"Elevation [m]\")\n", + "plt.axis([0.25, 1.75, 0.75, 2.75])\n", + "plt.grid(True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We construct our component by passing the arguments we defined previously:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Finally, we run the model and let the water fill our channel\n", + "rfd = river_flow_dynamics(\n", + " grid,\n", + " dt=dt,\n", + " mannings_n=mannings_n,\n", + " fixed_entry_nodes=fixed_entry_nodes,\n", + " fixed_entry_links=fixed_entry_links,\n", + " entry_nodes_h_values=entry_nodes_h_values,\n", + " entry_links_vel_values=entry_links_vel_values,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And finally, we run the simulation for 100 timesteps (10 seconds).\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set the animation frequency to n_timesteps if you\n", + "# don't want to plot the water depth\n", + "# display_animation_freq = n_timesteps\n", + "display_animation_freq = 5\n", + "\n", + "grid.imshow(\"surface_water__depth\", output=True)\n", + "for timestep in trange(n_timesteps):\n", + " rfd.run_one_step()\n", + "\n", + " if timestep % display_animation_freq == 0:\n", + " clear_output(wait=True) # This will clear the previous image\n", + " grid.imshow(\"surface_water__depth\", output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Exploring the water depth results at the latest time:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "grid.imshow(\"surface_water__depth\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the water surface elevation:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "grid.imshow(\"surface_water__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "-- --\n", + "## Example 2: Surface water flowing over a DEM\n", + "\n", + "On this case, we will import a digital elevation model (DEM) for a side-channel of the Kootenai River, Idaho, US." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Getting the grid and some parameters\n", + "asc_file = \"DEM-kootenai_37x50_1x1.asc\"\n", + "with open(asc_file) as fp:\n", + " grid = esri_ascii.load(fp, name=\"topographic__elevation\")\n", + "te = grid.at_node[\"topographic__elevation\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, we specify some basic parameters such as the time step number and duration. For simplicity, we will keep our previous Manning's coefficient. Notice that we already loaded all the required libraries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Basic parameters\n", + "mannings_n = 0.012 # Manning's roughness coefficient, [s/m^(1/3)]\n", + "\n", + "# Simulation parameters\n", + "n_timesteps = 75 # Number of timesteps\n", + "dt = 1.0 # Timestep duration, [s]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see our new topography:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Showing the topography\n", + "grid.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our side-channel is empty at the beggining of the simulation, so we create the proper fields:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# We establish the initial conditions, which represent an empty channel\n", + "h = grid.add_zeros(\"surface_water__depth\", at=\"node\")\n", + "\n", + "# Water velocity is zero in everywhere since there is no water yet\n", + "vel = grid.add_zeros(\"surface_water__velocity\", at=\"link\")\n", + "\n", + "# Calculating the initial water surface elevation from water depth and topographic elevation\n", + "wse = grid.add_field(\"surface_water__elevation\", te, at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we specify the nodes at which water is entering into the domain, and also the associated links. These are going to be our entry boundary conditions for water depth and velocity. On this case, water flows from right to left:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# We set fixed boundary conditions, specifying the nodes and links in which the water is flowing into the grid\n", + "fixed_entry_nodes = grid.nodes_at_right_edge\n", + "fixed_entry_links = grid.links_at_node[fixed_entry_nodes][:, 2]\n", + "\n", + "# We set the fixed values in the entry nodes/links\n", + "entry_nodes_h_values = np.array(\n", + " [\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.04998779,\n", + " 0.05999756,\n", + " 0.03997803,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.05999756,\n", + " 0.10998535,\n", + " 0.12994385,\n", + " 0.09997559,\n", + " 0.15997314,\n", + " 0.23999023,\n", + " 0.30999756,\n", + " 0.36999512,\n", + " 0.45996094,\n", + " 0.50994873,\n", + " 0.54998779,\n", + " 0.59997559,\n", + " 0.63995361,\n", + " 0.65997314,\n", + " 0.65997314,\n", + " 0.60998535,\n", + " 0.5,\n", + " 0.13995361,\n", + " 0.0,\n", + " ]\n", + ")\n", + "entry_links_vel_values = np.array(\n", + " [\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " -2.58638018,\n", + " 0.0,\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can plot our entry boundary condition in the cross-section:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.plot(\n", + " grid.y_of_node[fixed_entry_nodes], entry_nodes_h_values + te[fixed_entry_nodes]\n", + ")\n", + "plt.plot(grid.y_of_node[grid.nodes_at_right_edge], te[grid.nodes_at_right_edge])\n", + "plt.title(\"Entry cross-section\")\n", + "plt.xlabel(\"Distance [m]\")\n", + "plt.ylabel(\"Elevation [m]\")\n", + "plt.grid(True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we create the component by passing the arguments defined previously:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Finally, we run the model and let the water fill our channel\n", + "rfd = river_flow_dynamics(\n", + " grid,\n", + " dt=dt,\n", + " mannings_n=mannings_n,\n", + " fixed_entry_nodes=fixed_entry_nodes,\n", + " fixed_entry_links=fixed_entry_links,\n", + " entry_nodes_h_values=entry_nodes_h_values,\n", + " entry_links_vel_values=entry_links_vel_values,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we run 75 time steps of 1 $s$ duration (around 1 minute of computing time):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set the animation frequency to n_timesteps if you\n", + "# don't want to plot the water depth\n", + "# display_animation_freq = n_timesteps\n", + "display_animation_freq = 5\n", + "\n", + "grid.imshow(\"surface_water__depth\", output=True)\n", + "for timestep in trange(n_timesteps):\n", + " rfd.run_one_step()\n", + "\n", + " if timestep % display_animation_freq == 0:\n", + " clear_output(wait=True) # This will clear the previous image\n", + " grid.imshow(\"surface_water__depth\", output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we can explore the results by plotting the resulting water depth:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "grid.imshow(\"surface_water__depth\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "-- --\n", + "### And that's it! \n", + "\n", + "Nice work completing this tutorial. You know now how to use the `river_flow_dynamics` Landlab component to run your own simulations :)\n", + "\n", + "-- --\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Click here for more Landlab tutorials" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/tutorials/species_evolution/Introduction_to_SpeciesEvolver.ipynb b/docs/source/tutorials/species_evolution/Introduction_to_SpeciesEvolver.ipynb similarity index 98% rename from notebooks/tutorials/species_evolution/Introduction_to_SpeciesEvolver.ipynb rename to docs/source/tutorials/species_evolution/Introduction_to_SpeciesEvolver.ipynb index 081cbfd0d7..d535c417b7 100644 --- a/notebooks/tutorials/species_evolution/Introduction_to_SpeciesEvolver.ipynb +++ b/docs/source/tutorials/species_evolution/Introduction_to_SpeciesEvolver.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -945,13 +938,6 @@ "source": [ "Taxon 0 is one of the initial taxa and speciated taxa 2...11 when the zone fragmented at time 2. The same sequence of events occurred for taxon 1 and its descendents, 12...21. This phylogeny is explained by the one zone capture that brought together the two initial taxa, followed by the 11 zones fragmentations that drove the 20 speciations of the child taxa descended from the two initial taxa." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more [Landlab tutorials](https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html)" - ] } ], "metadata": { diff --git a/notebooks/tutorials/species_evolution/img/zone__current_time.svg b/docs/source/tutorials/species_evolution/img/zone__current_time.svg similarity index 100% rename from notebooks/tutorials/species_evolution/img/zone__current_time.svg rename to docs/source/tutorials/species_evolution/img/zone__current_time.svg diff --git a/notebooks/tutorials/species_evolution/img/zone__many_to_many.svg b/docs/source/tutorials/species_evolution/img/zone__many_to_many.svg similarity index 100% rename from notebooks/tutorials/species_evolution/img/zone__many_to_many.svg rename to docs/source/tutorials/species_evolution/img/zone__many_to_many.svg diff --git a/notebooks/tutorials/species_evolution/img/zone__many_to_one.svg b/docs/source/tutorials/species_evolution/img/zone__many_to_one.svg similarity index 100% rename from notebooks/tutorials/species_evolution/img/zone__many_to_one.svg rename to docs/source/tutorials/species_evolution/img/zone__many_to_one.svg diff --git a/notebooks/tutorials/species_evolution/img/zone__one_to_many.svg b/docs/source/tutorials/species_evolution/img/zone__one_to_many.svg similarity index 100% rename from notebooks/tutorials/species_evolution/img/zone__one_to_many.svg rename to docs/source/tutorials/species_evolution/img/zone__one_to_many.svg diff --git a/notebooks/tutorials/species_evolution/img/zone__one_to_one.svg b/docs/source/tutorials/species_evolution/img/zone__one_to_one.svg similarity index 100% rename from notebooks/tutorials/species_evolution/img/zone__one_to_one.svg rename to docs/source/tutorials/species_evolution/img/zone__one_to_one.svg diff --git a/notebooks/tutorials/species_evolution/img/zone__prior_time.svg b/docs/source/tutorials/species_evolution/img/zone__prior_time.svg similarity index 100% rename from notebooks/tutorials/species_evolution/img/zone__prior_time.svg rename to docs/source/tutorials/species_evolution/img/zone__prior_time.svg diff --git a/notebooks/tutorials/species_evolution/img/zone_connectivity__one_to_many.svg b/docs/source/tutorials/species_evolution/img/zone_connectivity__one_to_many.svg similarity index 100% rename from notebooks/tutorials/species_evolution/img/zone_connectivity__one_to_many.svg rename to docs/source/tutorials/species_evolution/img/zone_connectivity__one_to_many.svg diff --git a/notebooks/tutorials/species_evolution/model_grid_steady_state_elevation.txt b/docs/source/tutorials/species_evolution/model_grid_steady_state_elevation.txt similarity index 100% rename from notebooks/tutorials/species_evolution/model_grid_steady_state_elevation.txt rename to docs/source/tutorials/species_evolution/model_grid_steady_state_elevation.txt diff --git a/notebooks/tutorials/tectonics/listric_kinematic_extender.ipynb b/docs/source/tutorials/tectonics/listric_kinematic_extender.ipynb similarity index 98% rename from notebooks/tutorials/tectonics/listric_kinematic_extender.ipynb rename to docs/source/tutorials/tectonics/listric_kinematic_extender.ipynb index c53f75eb5d..57652b97ab 100644 --- a/notebooks/tutorials/tectonics/listric_kinematic_extender.ipynb +++ b/docs/source/tutorials/tectonics/listric_kinematic_extender.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -15,10 +8,6 @@ "\n", "*(Greg Tucker, University of Colorado Boulder, March 2021; revised June 2023 to use AdvectionSolverTVD instead of stepwise extension algorithm)*\n", "\n", - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
\n", - "\n", "This tutorial demonstrates how to use the `ListricKinematicExtender` component. `ListricKinematicExtender` models the vertical subsidence and lateral tectonic motion associated with a listric detachment fault. A listric fault is one that shallows with depth, such that the fault plane has a concave-upward profile. The word \"kinematic\" indicates that this component does not calculate the mechanics of stress and strain involved in an extensional fault; it simply aims to mimic them geometrically. The basic concept is to solve the advection equation for a hangingwall block of thickness $H(x,y,t)$ moving at velocity $u(x,y,t)$ relative to an underlying footwall block, to is fixed relative to the grid. " ] }, @@ -1099,13 +1088,6 @@ "plt.ylabel(\"Elevation (m)\")\n", "plt.grid(True)" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/terrain_analysis/chi_finder/chi_finder.ipynb b/docs/source/tutorials/terrain_analysis/chi_finder/chi_finder.ipynb similarity index 90% rename from notebooks/tutorials/terrain_analysis/chi_finder/chi_finder.ipynb rename to docs/source/tutorials/terrain_analysis/chi_finder/chi_finder.ipynb index 3dba9ffbb4..84bf52bd94 100644 --- a/notebooks/tutorials/terrain_analysis/chi_finder/chi_finder.ipynb +++ b/docs/source/tutorials/terrain_analysis/chi_finder/chi_finder.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -15,9 +8,11 @@ "\n", "The `ChiFinder` component creates a map of the $\\chi$ drainage network index from a digital elevation model. The $\\chi$ index, described by Perron and Royden (2013), is a function of drainage area, $A$, and elevation, $\\eta$:\n", "\n", - "$$\\chi = \\int\\limits_{x_b}^{x} \\left(\\frac{A_0}{A(x)}\\right)^\\theta dx$$\n", + "\\begin{equation}\n", + "\\chi = \\int\\limits_{x_b}^{x} \\left(\\frac{A_0}{A(x)}\\right)^\\theta dx\n", + "\\end{equation}\n", "\n", - "where $x_b$ is the location of the outlet of a watershed of interest, $x$ is a position on a channel somewhere upstream, $A_0$ is a drainage area scale, and $\\theta$ is the concavity index parameter, often taken to be $\\approx$0.5.\n", + "where $x_b$ is the location of the outlet of a watershed of interest, $x$ is a position on a channel somewhere upstream, $A_0$ is a drainage area scale, and $\\theta$ is the concavity index parameter, often taken to be $\\approx$ 0.5.\n", "\n", "This tutorial shows briefly how to use the `ChiFinder` on natural or synthetic data." ] @@ -28,7 +23,7 @@ "source": [ "## Imports and inline docs\n", "\n", - "First, import what we'll need:" + "First, import what we'll need." ] }, { @@ -48,7 +43,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The docstring describes the component and provides some simple examples:" + "The docstring describes the component and provides some simple examples." ] }, { @@ -128,7 +123,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now run the `ChiFinder` and display the map of $\\chi$ values:" + "Now run the `ChiFinder` and display the map of $\\chi$ values." ] }, { @@ -158,16 +153,9 @@ "\n", "Perron, J., Royden, L. (2012). An integral approach to bedrock river\n", "profile analysis Earth Surface Processes and Landforms 38(6), 570-576. https://dx.doi.org/10.1002/esp.3302\n", - " \n", + "\n", "Rengers, F. K., & Tucker, G. E. (2014). Analysis and modeling of gully headcut dynamics, North American high plains. Journal of Geophysical Research: Earth Surface, 119(5), 983-1003. https://doi.org/10.1002/2013JF002962" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html" - ] } ], "metadata": { diff --git a/notebooks/tutorials/terrain_analysis/chi_finder/west_bijou_escarpment_snippet.asc b/docs/source/tutorials/terrain_analysis/chi_finder/west_bijou_escarpment_snippet.asc similarity index 100% rename from notebooks/tutorials/terrain_analysis/chi_finder/west_bijou_escarpment_snippet.asc rename to docs/source/tutorials/terrain_analysis/chi_finder/west_bijou_escarpment_snippet.asc diff --git a/notebooks/tutorials/terrain_analysis/chi_finder/west_bijou_escarpment_snippet.prj b/docs/source/tutorials/terrain_analysis/chi_finder/west_bijou_escarpment_snippet.prj similarity index 100% rename from notebooks/tutorials/terrain_analysis/chi_finder/west_bijou_escarpment_snippet.prj rename to docs/source/tutorials/terrain_analysis/chi_finder/west_bijou_escarpment_snippet.prj diff --git a/notebooks/tutorials/terrain_analysis/drainage_density/drainage_density.ipynb b/docs/source/tutorials/terrain_analysis/drainage_density/drainage_density.ipynb similarity index 96% rename from notebooks/tutorials/terrain_analysis/drainage_density/drainage_density.ipynb rename to docs/source/tutorials/terrain_analysis/drainage_density/drainage_density.ipynb index 0fa4ab3acc..5530d52ad2 100644 --- a/notebooks/tutorials/terrain_analysis/drainage_density/drainage_density.ipynb +++ b/docs/source/tutorials/terrain_analysis/drainage_density/drainage_density.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -294,13 +287,6 @@ "\n", "Tucker, G. E., Catani, F., Rinaldo, A., & Bras, R. L. (2001). Statistical analysis of drainage density from digital terrain data. Geomorphology, 36(3-4), 187-202, [https://doi.org/10.1016/S0169-555X(00)00056-8](https://doi.org/10.1016/S0169-555X(00)00056-8)." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html" - ] } ], "metadata": { diff --git a/notebooks/tutorials/terrain_analysis/drainage_density/west_bijou_escarpment_snippet.asc b/docs/source/tutorials/terrain_analysis/drainage_density/west_bijou_escarpment_snippet.asc similarity index 100% rename from notebooks/tutorials/terrain_analysis/drainage_density/west_bijou_escarpment_snippet.asc rename to docs/source/tutorials/terrain_analysis/drainage_density/west_bijou_escarpment_snippet.asc diff --git a/notebooks/tutorials/terrain_analysis/flow__distance_utility/application_of_flow__distance_utility.ipynb b/docs/source/tutorials/terrain_analysis/flow__distance_utility/application_of_flow__distance_utility.ipynb similarity index 90% rename from notebooks/tutorials/terrain_analysis/flow__distance_utility/application_of_flow__distance_utility.ipynb rename to docs/source/tutorials/terrain_analysis/flow__distance_utility/application_of_flow__distance_utility.ipynb index 708ecd9a5b..a686d5805b 100644 --- a/notebooks/tutorials/terrain_analysis/flow__distance_utility/application_of_flow__distance_utility.ipynb +++ b/docs/source/tutorials/terrain_analysis/flow__distance_utility/application_of_flow__distance_utility.ipynb @@ -4,21 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Application of the flow__distance utility on a Sicilian basin**" + "# Application of the flow__distance utility on a Sicilian basin" ] }, { @@ -187,7 +173,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/tutorials/terrain_analysis/flow__distance_utility/nocella_resampled.txt b/docs/source/tutorials/terrain_analysis/flow__distance_utility/nocella_resampled.txt similarity index 100% rename from notebooks/tutorials/terrain_analysis/flow__distance_utility/nocella_resampled.txt rename to docs/source/tutorials/terrain_analysis/flow__distance_utility/nocella_resampled.txt diff --git a/notebooks/tutorials/terrain_analysis/hack_calculator/hack_calculator.ipynb b/docs/source/tutorials/terrain_analysis/hack_calculator/hack_calculator.ipynb similarity index 97% rename from notebooks/tutorials/terrain_analysis/hack_calculator/hack_calculator.ipynb rename to docs/source/tutorials/terrain_analysis/hack_calculator/hack_calculator.ipynb index e982a9b745..11ede691c9 100644 --- a/notebooks/tutorials/terrain_analysis/hack_calculator/hack_calculator.ipynb +++ b/docs/source/tutorials/terrain_analysis/hack_calculator/hack_calculator.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -416,13 +409,6 @@ "\n", "Montgomery, D. R., & Dietrich, W. E. (1992). Channel initiation and the problem of landscape scale. Science, 255(5046), 826-830." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html" - ] } ], "metadata": { diff --git a/notebooks/tutorials/terrain_analysis/hack_calculator/west_bijou_escarpment_snippet.asc b/docs/source/tutorials/terrain_analysis/hack_calculator/west_bijou_escarpment_snippet.asc similarity index 100% rename from notebooks/tutorials/terrain_analysis/hack_calculator/west_bijou_escarpment_snippet.asc rename to docs/source/tutorials/terrain_analysis/hack_calculator/west_bijou_escarpment_snippet.asc diff --git a/notebooks/tutorials/terrain_analysis/steepness_finder/hugo_site_filled.asc b/docs/source/tutorials/terrain_analysis/steepness_finder/hugo_site_filled.asc similarity index 100% rename from notebooks/tutorials/terrain_analysis/steepness_finder/hugo_site_filled.asc rename to docs/source/tutorials/terrain_analysis/steepness_finder/hugo_site_filled.asc diff --git a/notebooks/tutorials/terrain_analysis/steepness_finder/steepness_finder.ipynb b/docs/source/tutorials/terrain_analysis/steepness_finder/steepness_finder.ipynb similarity index 96% rename from notebooks/tutorials/terrain_analysis/steepness_finder/steepness_finder.ipynb rename to docs/source/tutorials/terrain_analysis/steepness_finder/steepness_finder.ipynb index 2d57721fe7..00fd6f9e27 100644 --- a/notebooks/tutorials/terrain_analysis/steepness_finder/steepness_finder.ipynb +++ b/docs/source/tutorials/terrain_analysis/steepness_finder/steepness_finder.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -222,13 +215,6 @@ "\n", "Wobus, C. W., Whipple, K. X., Kirby, E., Snyder, N. P., Johnson, J., Spyropolou, K., Crosby, B. T., and Sheenan, D.: Tectonics from topography: Procedures, promise, and pitfalls, in: Tectonics, Climate, and Landscape Evolution, edited by: Willett, S. D., Hovius, N., Brandon, M. T., and Fisher, D., Geological Society of America Special Paper 398, Geological Society of America, Boulder, CO, USA, 55–74, 2006." ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html" - ] } ], "metadata": { diff --git a/notebooks/tutorials/tidal_flow/tidal_flow_calculator.ipynb b/docs/source/tutorials/tidal_flow/tidal_flow_calculator.ipynb similarity index 98% rename from notebooks/tutorials/tidal_flow/tidal_flow_calculator.ipynb rename to docs/source/tutorials/tidal_flow/tidal_flow_calculator.ipynb index a241c0872a..45c054e4bf 100644 --- a/notebooks/tutorials/tidal_flow/tidal_flow_calculator.ipynb +++ b/docs/source/tutorials/tidal_flow/tidal_flow_calculator.ipynb @@ -542,15 +542,6 @@ "# make plots...\n", "plot_tidal_flow_hex(grid)" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Congratulations on completing the `TidalFlowCalculator` tutorial!\n", - "\n", - "### Click here for more Landlab tutorials" - ] } ], "metadata": { diff --git a/notebooks/tutorials/tidal_flow/zSW3.asc b/docs/source/tutorials/tidal_flow/zSW3.asc similarity index 100% rename from notebooks/tutorials/tidal_flow/zSW3.asc rename to docs/source/tutorials/tidal_flow/zSW3.asc diff --git a/notebooks/tutorials/visualization/blender/landlab_to_blender.ipynb b/docs/source/tutorials/visualization/blender/landlab_to_blender.ipynb similarity index 99% rename from notebooks/tutorials/visualization/blender/landlab_to_blender.ipynb rename to docs/source/tutorials/visualization/blender/landlab_to_blender.ipynb index 6076a1c910..5a687a2b1f 100644 --- a/notebooks/tutorials/visualization/blender/landlab_to_blender.ipynb +++ b/docs/source/tutorials/visualization/blender/landlab_to_blender.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -16,15 +9,6 @@ "*(This tutorial was written as a collaboration between geology professor Greg Tucker and Vancouver-based visual effects artist Rees Tucker. First version August 2023.)*" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -350,18 +334,13 @@ "\n", "https://github.com/csdms/welcomes/discussions\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/notebooks/tutorials/visualization/paraview/assets/paraview_apply_new_file.png b/docs/source/tutorials/visualization/paraview/assets/paraview_apply_new_file.png similarity index 100% rename from notebooks/tutorials/visualization/paraview/assets/paraview_apply_new_file.png rename to docs/source/tutorials/visualization/paraview/assets/paraview_apply_new_file.png diff --git a/notebooks/tutorials/visualization/paraview/assets/paraview_color_by.png b/docs/source/tutorials/visualization/paraview/assets/paraview_color_by.png similarity index 100% rename from notebooks/tutorials/visualization/paraview/assets/paraview_color_by.png rename to docs/source/tutorials/visualization/paraview/assets/paraview_color_by.png diff --git a/notebooks/tutorials/visualization/paraview/assets/paraview_filters.png b/docs/source/tutorials/visualization/paraview/assets/paraview_filters.png similarity index 100% rename from notebooks/tutorials/visualization/paraview/assets/paraview_filters.png rename to docs/source/tutorials/visualization/paraview/assets/paraview_filters.png diff --git a/notebooks/tutorials/visualization/paraview/assets/paraview_netcdf_reader.png b/docs/source/tutorials/visualization/paraview/assets/paraview_netcdf_reader.png similarity index 100% rename from notebooks/tutorials/visualization/paraview/assets/paraview_netcdf_reader.png rename to docs/source/tutorials/visualization/paraview/assets/paraview_netcdf_reader.png diff --git a/notebooks/tutorials/visualization/paraview/assets/paraview_open_file.png b/docs/source/tutorials/visualization/paraview/assets/paraview_open_file.png similarity index 100% rename from notebooks/tutorials/visualization/paraview/assets/paraview_open_file.png rename to docs/source/tutorials/visualization/paraview/assets/paraview_open_file.png diff --git a/notebooks/tutorials/visualization/paraview/assets/paraview_playback_controls.png b/docs/source/tutorials/visualization/paraview/assets/paraview_playback_controls.png similarity index 100% rename from notebooks/tutorials/visualization/paraview/assets/paraview_playback_controls.png rename to docs/source/tutorials/visualization/paraview/assets/paraview_playback_controls.png diff --git a/notebooks/tutorials/visualization/paraview/assets/paraview_view_mode.png b/docs/source/tutorials/visualization/paraview/assets/paraview_view_mode.png similarity index 100% rename from notebooks/tutorials/visualization/paraview/assets/paraview_view_mode.png rename to docs/source/tutorials/visualization/paraview/assets/paraview_view_mode.png diff --git a/notebooks/tutorials/visualization/paraview/assets/paraview_warp_by_topo.png b/docs/source/tutorials/visualization/paraview/assets/paraview_warp_by_topo.png similarity index 100% rename from notebooks/tutorials/visualization/paraview/assets/paraview_warp_by_topo.png rename to docs/source/tutorials/visualization/paraview/assets/paraview_warp_by_topo.png diff --git a/notebooks/tutorials/visualization/paraview/importing_landlab_netcdf_to_paraview.ipynb b/docs/source/tutorials/visualization/paraview/importing_landlab_netcdf_to_paraview.ipynb similarity index 94% rename from notebooks/tutorials/visualization/paraview/importing_landlab_netcdf_to_paraview.ipynb rename to docs/source/tutorials/visualization/paraview/importing_landlab_netcdf_to_paraview.ipynb index 504bda67fa..c94132ce5c 100644 --- a/notebooks/tutorials/visualization/paraview/importing_landlab_netcdf_to_paraview.ipynb +++ b/docs/source/tutorials/visualization/paraview/importing_landlab_netcdf_to_paraview.ipynb @@ -1,12 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -16,15 +9,6 @@ "*(GE Tucker, CU Boulder, June 2023)*" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", - "
" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -328,18 +312,13 @@ "\n", "Shobe, C.M., Tucker, G.E., and Barnhart, K.R. The SPACE 1.0 model: a Landlab component for 2-D calculation of sediment transport, bedrock erosion, and landscape evolution. Geoscientific Model Development, 2017, doi:10.5194/gmd-10-4577-2017. " ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here for more Landlab tutorials" - ] } ], "metadata": { "execution": { - "markers": "slow" + "nbmake": { + "markers": "slow" + } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/docs/source/usedby.rst b/docs/source/usedby.rst deleted file mode 100644 index eaa8c43f43..0000000000 --- a/docs/source/usedby.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. _papers: - -.. include:: ../../USEDBY.rst diff --git a/docs/source/user_guide/build_a_model.rst b/docs/source/user_guide/build_a_model.md similarity index 52% rename from docs/source/user_guide/build_a_model.rst rename to docs/source/user_guide/build_a_model.md index cfc324c5b4..2ae77f2a65 100644 --- a/docs/source/user_guide/build_a_model.rst +++ b/docs/source/user_guide/build_a_model.md @@ -1,10 +1,8 @@ -.. _build_a_model: +(build-a-model)= -=============================== -What goes into a Landlab model? -=============================== +# What goes into a Landlab model? -In the previous section, :ref:`Grid ` we showed you most of the core +In the previous section, {ref}`Grid ` we showed you most of the core functionality of the Landlab grid. In this section, we introduce you to how to actually use it to build models and work with the Landlab component library. @@ -15,25 +13,24 @@ Python environment like iPython. Typically, a driver file will consist of six distinct sections: -* **Import** the Python and Landlab libraries you'll need to run your model -* **Instantiate** the Landlab elements (grid and, if using them, components) -* **Load** any necessary data into the grid fields -* Set the **boundary conditions** -* **Run** the model, typically by creating a for loop or using a Landlab generator (see below) -* **Finalize** and handle the data (e.g., plot, export) +- **Import** the Python and Landlab libraries you'll need to run your model +- **Instantiate** the Landlab elements (grid and, if using them, components) +- **Load** any necessary data into the grid fields +- Set the **boundary conditions** +- **Run** the model, typically by creating a for loop or using a Landlab generator (see below) +- **Finalize** and handle the data (e.g., plot, export) Beyond the driver, if you're using Landlab components, you'll probably also need -a :ref:`parameter file`. This file supplies the components with the additional +a {ref}`parameter file`. This file supplies the components with the additional parameter and setup information they need. Landlab parameter files are text -files ``.txt``, have fixed format, and for convenience (so you only have to +files `.txt`, have fixed format, and for convenience (so you only have to specify the minimum of path information in the file name) should be placed in the same folder as the driver file. Find out more about parameter files -:ref:`here`. However, if you're not using components, there's little need +{ref}`here`. However, if you're not using components, there's little need to create a parameter file; you can just directly pass other parameters to the grid in the driver. -A brief introduction to components ----------------------------------- +## A brief introduction to components A key strength of Landlab is that not only is it designed to make implementing your own process simulations as simple as possible, but it also offers an @@ -41,9 +38,9 @@ off-the-shelf library of pre-designed process descriptions that you can use in your drivers. We call these process simulators Landlab **components**. The intention is that each component be: -* Plug-and-play -* Interoperable with all other components -* Implementable in your driver in only one or two lines of code +- Plug-and-play +- Interoperable with all other components +- Implementable in your driver in only one or two lines of code By no means is using the component library necessary or even always desirable when working with Landlab. However, we hope that components will dramatically reduce the time investment needed to implement @@ -53,7 +50,7 @@ existing, off-the-shelf components can be slotted in alongside novel process descriptions. A list of the current components is found within the Reference guide -:ref:`components section `. +{ref}`components section `. Note that not all components will run under all conditions, but any limitations should be made clear in the documentation associated with @@ -67,58 +64,54 @@ all cases, before setting out on any major research challenges using a component, we'd recommend contacting the original coder of the component to let them know they have external users to think about! -Implementing a Landlab driver ------------------------------ +## Implementing a Landlab driver As noted above, the process of creating a driver is essentially equivalent whether you want to implement Landlab components, purely use your own code, or combine some mixture of the two. Here we take a closer look at the various steps. -1. Import the libraries and functions you need -++++++++++++++++++++++++++++++++++++++++++++++ +### 1. Import the libraries and functions you need Landlab handles a lot like NumPy, and like NumPy you'll need to import the various libraries and functions that you'll want to use. At the very least, we suspect you'll need from outside Landlab: -* *NumPy* itself -* rudimentary Pylab plotting routines: *plot*, *show*, *figure* +- *NumPy* itself +- rudimentary Pylab plotting routines: *plot*, *show*, *figure* Also useful can be: -* the Python module *time*, to time various parts of your code elements -* from *SciPy*, the scientific computing library. Lots of useful methods (e.g., +- the Python module *time*, to time various parts of your code elements +- from *SciPy*, the scientific computing library. Lots of useful methods (e.g., matrix solutions, curve fitting) can be found in here, to avoid reinventing the wheel. From inside Landlab, you'll also need: -* A **grid** class—choose from :py:class:`RasterModelGrid `, - :py:class:`landlab.grid.voronoi.VoronoiDelaunayGrid `, +- A **grid** class—choose from {py:class}`RasterModelGrid `, + {py:class}`landlab.grid.voronoi.VoronoiDelaunayGrid `, or some of the more specialized classes listed on the - :ref:`grid documentation page `. -* Any **components** you want to run -* Any Landlab **utilities** you need, such as plotters ( - :py:func:`imshow_grid `) or - :ref:`io functions `. + {ref}`grid documentation page `. +- Any **components** you want to run +- Any Landlab **utilities** you need, such as plotters ( + {py:func}`imshow_grid `) or + {py:mod}`io functions `. A specific example might be: -.. code-block:: python +```python +import numpy as np +from pylab import show, figure, plot +import time +from landlab import RasterModelGrid +from landlab.components import FlowAccumlator +from landlab.plot.imshow import imshow_node_grid +``` - import numpy as np - from pylab import show, figure, plot - import time - from landlab import RasterModelGrid - from landlab.components import FlowAccumlator - from landlab.plot.imshow import imshow_node_grid +### 2. Instantiate objects -2. Instantiate objects -++++++++++++++++++++++ - -As noted in previous sections, Landlab is coded in an `object-oriented style -`_. +As noted in previous sections, Landlab is coded in an [object-oriented style](https://code.tutsplus.com/articles/python-from-scratch-object-oriented-programming--net-21476). This means that we need to "instantiate" the various Landlab objects such as the grid and the components that we will use to store data and run the model. @@ -129,22 +122,21 @@ instantiate will be the grid. Check the docstrings for each class (grid, component) you want to instantiate for a detailed description of what you need to supply as arguments. -For a RasterModelGrid, this will be ``((i, j), [node_spacing])``. Here, ``(i, j)`` is a tuple where *i* is the number of rows and *j* the number of columns, and ``node_spacing`` is an optional second tuple or float. If you want uniform node spacing in the *y* and *x* directions, use a float, otherwise use a tuple to specify ``(dy, dx)`` if you want them to be different (see example immediately below). Spacing will default to (1., 1.). [Landlab also recognizes an older style of RasterModelGrid signature, which looks like ``(number_of_node_rows, number_of_node_columns, node_spacing(optional))``, and is clever enough to work with this form.] For a VoronoiDelaunayGrid, the signature will be ``(array_of_node_x_coords, array_of_node_y_coords)``. For a generic component, it will typically be ``(ModelGrid, 'path_to_parameter_file.txt')``, though there may be some variation, and optional inputs may also be available. +For a RasterModelGrid, this will be `((i, j), [node_spacing])`. Here, `(i, j)` is a tuple where *i* is the number of rows and *j* the number of columns, and `node_spacing` is an optional second tuple or float. If you want uniform node spacing in the *y* and *x* directions, use a float, otherwise use a tuple to specify `(dy, dx)` if you want them to be different (see example immediately below). Spacing will default to (1., 1.). \[Landlab also recognizes an older style of RasterModelGrid signature, which looks like `(number_of_node_rows, number_of_node_columns, node_spacing(optional))`, and is clever enough to work with this form.\] For a VoronoiDelaunayGrid, the signature will be `(array_of_node_x_coords, array_of_node_y_coords)`. For a generic component, it will typically be `(ModelGrid, 'path_to_parameter_file.txt')`, though there may be some variation, and optional inputs may also be available. -Give each object you instantiate a variable name. We like ``mg`` for ModelGrid +Give each object you instantiate a variable name. We like `mg` for ModelGrid objects and some appropriate abbreviation for a component. An example might be: -.. code-block:: python - - mg = RasterModelGrid((10, 10), xy_spacing(1.0, 2.0)) # 100 nodes, dy=1., dx=2. - fr = FlowAccumlator(mg) +```python +mg = RasterModelGrid((10, 10), xy_spacing(1.0, 2.0)) # 100 nodes, dy=1., dx=2. +fr = FlowAccumlator(mg) +``` -3. Load/create data in fields -+++++++++++++++++++++++++++++ +### 3. Load/create data in fields -(:ref:`See this section` if you don't know what a Landlab field is.) +({ref}`See this section` if you don't know what a Landlab field is.) Now we need some data to work with. Here we'll assume that you're going to be working with a DEM-style elevation map across the nodes of the grid, but similar @@ -160,38 +152,35 @@ In both cases, we advocate a two step process: creating a NumPy array of the data, then loading it into the grid as a field. We can illustrate both of the above cases: -.. code-block:: python - - mg = RasterModelGrid((10, 10), 1.0) # make a grid - z = np.zeros(100, dtype=float) # make a flat surface, elev 0 - # or… - z = mg.node_y * 0.01 # a flat surface dipping shallowly south - # add a little noise to the surface: - z += np.random.rand(100.0) / 10000.0 - # create the field: - mg.add_field("node", "topographic__elevation", z, units="m") +```python +mg = RasterModelGrid((10, 10), 1.0) # make a grid +z = np.zeros(100, dtype=float) # make a flat surface, elev 0 +# or… +z = mg.node_y * 0.01 # a flat surface dipping shallowly south +# add a little noise to the surface: +z += np.random.rand(100.0) / 10000.0 +# create the field: +mg.add_field("node", "topographic__elevation", z, units="m") +``` Alternatively, we can use the specialized Landlab function -:py:func:`read_esri_ascii ` +{py:func}`read_esri_ascii ` to import an ascii raster that can be output from ARC. Note this function both -creates the grid for you and loads the data as a field if you provide ``name``. +creates the grid for you and loads the data as a field if you provide `name`. If not, you'll have to load the data output (*z*, below) manually - .. code-block:: python - - from landlab.io import read_esri_ascii - - mg, z = read_esri_ascii("my_ARC_output.asc", name="topographic__elevation") - np.all(mg.at_node["topographic__elevation"] == z) - +> ```python +> from landlab.io import read_esri_ascii +> +> mg, z = read_esri_ascii("my_ARC_output.asc", name="topographic__elevation") +> np.all(mg.at_node["topographic__elevation"] == z) +> ``` Note that if you don't want to use any Landlab components, you can continue to work with data as "free floating" NumPy arrays, and can ignore the fields (e.g., -see this `simple introductory tutorial -`_). +see this [simple introductory tutorial](https://gist.github.com/jennyknuth/034e696d65aec808b70e)). -4. Set the boundary conditions -++++++++++++++++++++++++++++++ +### 4. Set the boundary conditions Once you have a grid and the initial condition data you'll need, it's time to set the boundary conditions. If you're working with a raster, or some @@ -199,10 +188,10 @@ pre-existing imported data, this is very straightforward using the built in RasterModelGrid functions. For a raster where only the edges are to be boundary nodes - .. code-block:: python - - mg.set_fixed_value_boundaries_at_grid_edges(False, True, False, True) - mg.set_closed_boundaries_at_grid_edges(True, False, True, False) +> ```python +> mg.set_fixed_value_boundaries_at_grid_edges(False, True, False, True) +> mg.set_closed_boundaries_at_grid_edges(True, False, True, False) +> ``` This will give a grid with fixed value boundaries at the left and right edges, and closed boundaries at the top and bottom. @@ -210,9 +199,9 @@ and closed boundaries at the top and bottom. If you're working with, say, an ARC imported array with a null value on the closed nodes (e.g., -9999), you can do this - .. code-block:: python - - mg.set_nodata_nodes_to_closed(mg.at_node["topographic__elevation"], -9999) +> ```python +> mg.set_nodata_nodes_to_closed(mg.at_node["topographic__elevation"], -9999) +> ``` (Be aware that you're still likely to have to reopen an outlet node manually! In which case you'll also need to follow the instructions below.) @@ -224,26 +213,25 @@ Fortunately, Landlab uses some Python magic to make sure that when you update, for example, the status of a node, the statuses of attached links and cells change concomitantly. For example - .. code-block:: python - - # find the ID of the lowest elevation core node. - # we'll make this a fixed gradient outlet: - outlet_id = mg.core_nodes[ - np.argmin(mg.at_node["topographic__elevation"][mg.core_nodes]) - ] - - # show there are no links with *mg.BC_LINK_IS_FIXED* boundary conditions - # in the grid yet: - np.any(mg.status_at_link == mg.BC_LINK_IS_FIXED) - - # update the outlet node: - mg.status_at_node[outlet_id] = mg.BC_LINK_IS_FIXED - np.any(mg.status_at_link == mg.BC_LINK_IS_FIXED) - - # the corresponding link has been automatically updated. - -5. Run the model -++++++++++++++++ +> ```python +> # find the ID of the lowest elevation core node. +> # we'll make this a fixed gradient outlet: +> outlet_id = mg.core_nodes[ +> np.argmin(mg.at_node["topographic__elevation"][mg.core_nodes]) +> ] +> +> # show there are no links with *mg.BC_LINK_IS_FIXED* boundary conditions +> # in the grid yet: +> np.any(mg.status_at_link == mg.BC_LINK_IS_FIXED) +> +> # update the outlet node: +> mg.status_at_node[outlet_id] = mg.BC_LINK_IS_FIXED +> np.any(mg.status_at_link == mg.BC_LINK_IS_FIXED) +> +> # the corresponding link has been automatically updated. +> ``` + +### 5. Run the model We're now ready to actually implement a run of our model! Most things you might want to do with Landlab are probably time-sensitive, so in almost all cases, @@ -251,137 +239,135 @@ you'll probably be placing the guts of your simulation inside a loop of some sort. In simple cases, you can just use some variation on a simple for loop or while statement, either: -.. code-block:: python - - dt = 10.0 - for tstep in xrange(100): - # ...do the thing for one timestep dt - pass +```python +dt = 10.0 +for tstep in xrange(100): + # ...do the thing for one timestep dt + pass +``` or: -.. code-block:: python - - dt = 10.0 - accumulated_time = 0.0 - while accumulated_time < 1000.0: - # ...do the thing for one timestep dt - accumulated_time += dt +```python +dt = 10.0 +accumulated_time = 0.0 +while accumulated_time < 1000.0: + # ...do the thing for one timestep dt + accumulated_time += dt +``` Both produce 1000 time units of run, with an explicit timestep of 10. Notice that the latter technique is particularly amenable to situations where your -explicit timestep is varying (e.g., a storm sequence). (For more on time steps in numerical models see the :ref:`Time Steps` page.) +explicit timestep is varying (e.g., a storm sequence). (For more on time steps in numerical models see the {ref}`Time Steps ` page.) Landlab also however has a built in storm generator component, -:py:class:`PrecipitationDistribution`, -which (as its name suggests) acts as a true `Python generator -`_. The main method is -:py:func:`yield_storm_interstorm_duration_intensity `. +{py:class}`PrecipitationDistribution`, +which (as its name suggests) acts as a true [Python generator](https://www.python-course.eu/generators.php). The main method is +{py:func}`yield_storm_interstorm_duration_intensity `. This means producing a storm series in Landlab is also very easy: -.. code-block:: python - - from landlab.components.uniform_precip import PrecipitationDistribution - - time_to_run = 500000.0 - precip_perturb = PrecipitationDistribution( - input_file=input_file_string, total_t=time_to_run - ) - for ( - interval_duration, - rainfall_rate, - ) in precip_perturb.yield_storm_interstorm_duration_intensity(): - if rainfall_rate != 0.0: - # ...do the thing, making sure to pass it the current - # interval_duration and rainfall_rate - pass +```python +from landlab.components.uniform_precip import PrecipitationDistribution + +time_to_run = 500000.0 +precip_perturb = PrecipitationDistribution( + input_file=input_file_string, total_t=time_to_run +) +for ( + interval_duration, + rainfall_rate, +) in precip_perturb.yield_storm_interstorm_duration_intensity(): + if rainfall_rate != 0.0: + # ...do the thing, making sure to pass it the current + # interval_duration and rainfall_rate + pass +``` Notice that the advantage of the generator is that it just stops when the -desired number of events/time duration has expired! See the end of `this -tutorial -`_ +desired number of events/time duration has expired! See the end of [this +tutorial](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/component_tutorial/component_tutorial.ipynb) for an example of this generator in action. What exactly "…do the thing" consists of is up to you. You can either design your own operations to do in the loop for yourself, or you can implement -processes from Landlab's component library. See :ref:`here -` +processes from Landlab's component library. See {ref}`here +` for more information on using the components. -6. Finalize and handle the data -+++++++++++++++++++++++++++++++ +### 6. Finalize and handle the data Once the looping is complete, the model is effectively finished. However, you will still need to output the data somehow! Some options include: -Save or export the data -^^^^^^^^^^^^^^^^^^^^^^^ +#### Save or export the data If you're using a raster grid, you can easily save your grid output to either ESRI ascii (i.e., ARCmap) or open source netCDF formats. netCDF in particular is a powerful format, and allows easy subsequent re-loading of a Landlab modelgrid and all its fields. Save your raster like this: -.. code-block:: python - - rmg.save("my_savename.asc", names=["field1", "field2"]) - # for esri ascii, only saving the fields 1 and 2 +```python +rmg.save("my_savename.asc", names=["field1", "field2"]) +# for esri ascii, only saving the fields 1 and 2 +``` or: -.. code-block:: python - - rmg.save("my_savename.nc") - # save as netCDF3, saving all fields by default +```python +rmg.save("my_savename.nc") +# save as netCDF3, saving all fields by default +``` -The former way will give two save files, ``my_savename_field1.asc`` and -``my_savename_field2.asc``. The latter will just give ``my_savename.nc``. +The former way will give two save files, `my_savename_field1.asc` and +`my_savename_field2.asc`. The latter will just give `my_savename.nc`. To reload a netCDF file, use the Landlab io function -:py:func:`read_netcdf` +{py:func}`read_netcdf` -.. code-block:: python +```python +from landlab.io.netcdf import read_netcdf - from landlab.io.netcdf import read_netcdf - - mg = read_netcdf("my_savename.nc") +mg = read_netcdf("my_savename.nc") +``` Note all the original fields you had will automatically be repopulated. If you're using an irregular grid, the simple grid save function is not yet operational (though is under development). Instead, we recommend using Pickle, a -native Python way of saving ("pickling") any Python object. It works like this:: +native Python way of saving ("pickling") any Python object. It works like this: - >>> import cPickle as pickle - # cPickle is a lot faster than normal pickle - >>> pickle.dump(mg, open("my_savename.pickle", "wb")) - # ...save the grid, and all its fields - >>> mg = pickle.load(open("my_savename.pickle", "rb")) - # ...load the grid and fields back into a grid object +``` +>>> import cPickle as pickle +# cPickle is a lot faster than normal pickle +>>> pickle.dump(mg, open("my_savename.pickle", "wb")) +# ...save the grid, and all its fields +>>> mg = pickle.load(open("my_savename.pickle", "rb")) +# ...load the grid and fields back into a grid object +``` Unfortunately, the power of pickle comes somewhat at the expense of both disk space and speed. Saves this way can be slow and, if the grid is big, memory expensive (e.g., ~1 Gb for millions of nodes). You can also use lower level, NumPy save routines to preserve just your data -(rather than the whole grid object). The NumPy methods ``save`` and ``savetxt`` -and ``load`` and ``loadtxt`` can be called on any NumPy array, including those -saved as fields. Save and load use the NumPy specific ``.npy`` file format; -``savetxt`` and ``loadtxt`` use ``textfiles``. Use them like this:: +(rather than the whole grid object). The NumPy methods `save` and `savetxt` +and `load` and `loadtxt` can be called on any NumPy array, including those +saved as fields. Save and load use the NumPy specific `.npy` file format; +`savetxt` and `loadtxt` use `textfiles`. Use them like this: - >>> np.save("savename.npy", mg.at_node["my_field"]) - >>> mg.at_node["my_field"] = np.load("savename.npy") - >>> np.savetxt("savename.txt", mg.at_node["my_field"]) - >>> mg.at_node["my_field"] = np.loadtxt("savename.txt") +``` +>>> np.save("savename.npy", mg.at_node["my_field"]) +>>> mg.at_node["my_field"] = np.load("savename.npy") +>>> np.savetxt("savename.txt", mg.at_node["my_field"]) +>>> mg.at_node["my_field"] = np.loadtxt("savename.txt") +``` -Plot the data -^^^^^^^^^^^^^ +#### Plot the data Landlab has a fairly comprehensive suite of built in plotting functions; read -more about them :ref:`here`. +more about them {ref}`here`. -You also of course have the option of using the `matplotlib plotting library -`_ of Python for things like cross-sections. +You also of course have the option of using the [matplotlib plotting library](https://matplotlib.org/) of Python for things like cross-sections. If you're careful, you can also build plotting functions into the body of a run loop for your model, so you can see how your output evolves through time. Note @@ -389,41 +375,40 @@ however that all Python save and plot functions are considerably time expensive, so it would probably be a bad idea to do this kind of thing every timestep. Instead, you can try something like: -.. code-block:: python - - import plot - - dt = 10.0 - accumulated_time = 0.0 - last_accumulated_time_remainder = 0.0 - while accumulated_time < 1000.0: - # ...do the thing for one timestep dt - accumulated_time += dt - if last_accumulated_time_remainder < accumulated_time % 100.0: # output every 100. - plot( - mg.node_vector_to_raster(z)[mg.number_of_node_rows // 2, :] - ) # a cross section - last_accumulated_time_remainder = accumulated_time % 100.0 - show() +```python +import plot + +dt = 10.0 +accumulated_time = 0.0 +last_accumulated_time_remainder = 0.0 +while accumulated_time < 1000.0: + # ...do the thing for one timestep dt + accumulated_time += dt +if last_accumulated_time_remainder < accumulated_time % 100.0: # output every 100. + plot( + mg.node_vector_to_raster(z)[mg.number_of_node_rows // 2, :] + ) # a cross section + last_accumulated_time_remainder = accumulated_time % 100.0 +show() +``` Note that if you're running inside an interactive Python session like iPython, all the variables and objects (both grid and component) that you've used in your model will still be available in the environment. Thus, you can play with your data for as long as you want! -Animating figures -^^^^^^^^^^^^^^^^^ +#### Animating figures Due to issues surrounding platform-dependent video codecs, Landlab does not currently support native video or animated output. However, numerous effective hacks using free third party software can be effective. We recommend saving your figure for animation -at the desired frame interval using the matplotlib ``savefig`` command, then +at the desired frame interval using the matplotlib `savefig` command, then stitching these images together into a video file externally. DEJH has had a lot of success doing this in Preview on a Mac (which has the great -advantage that it is always available). Simply open the first image, go to ``Export...`` -under file, then **while holding down alt** click on the ``Format`` button to gain -access to a list of extra formats, including ``.gif``. Open your new gif file, also +advantage that it is always available). Simply open the first image, go to `Export...` +under file, then **while holding down alt** click on the `Format` button to gain +access to a list of extra formats, including `.gif`. Open your new gif file, also in preview, then just drag the remaining image files into the sidebar onto the first slide, where they will be appended to the gif as individual frames. Save, and you will now have an animated gif of your output (note you'll have to open the file in a diff --git a/docs/source/user_guide/cell_lab_user_guide.md b/docs/source/user_guide/cell_lab_user_guide.md new file mode 100644 index 0000000000..7c298a0d74 --- /dev/null +++ b/docs/source/user_guide/cell_lab_user_guide.md @@ -0,0 +1,406 @@ +(celllab)= + +# CellLab-CTS User Guide + +Created: August 2015, Greg Tucker + +Last updated: April 2020 GT + +## Introduction + +CellLab-CTS is a Landlab module for building pairwise, continuous-time stochastic (CTS) cellular automata. Like other cellular automata, pairwise CTS models represent natural phenomena using a regular grid of cells; in the case of CellLab-CTS, the user can choose between square and hexagonal cells. Each cell has a given state, which is an integer code representing something about the nature or contents of that cell. Cells change state at random time intervals according to a user-defined transition rules. The transitions depend on the states of the neighboring cells, and in particular, of the states of each *pair* of adjacent cells. For example a pair with states 0 and 1 might undergo a transition to 1 and 1, or 3 and 0, etc. + +This Users Manual provides instructions on how to write a model using CellLab-CTS, along with reference information about the classes and methods that CellLab-CTS provides. For further information about the theory, implementation, and design of CellLab-CTS, see Tucker et al. (2016). For background information on the theory of pairwise CTS models and example applications, see Narteau et al. (2001, 2009) and Rozier and Narteau (2014). For background on cellular automata in general, see Chopard and Droz (1998). + +*Note on terminology:* In a CellLab-CTS model, the computational points—the objects that are normally called **cells** in a cellular automaton model—actually correspond with the **nodes** in a Landlab grid. Although Landlab grids also contain *cells*, which are defined as polygons that contain a node, Landlab grids do not have cells along the outmost ring of nodes around the grid. For example, a 4-row by 5-column Landlab raster grid has 20 nodes but only 6 cells (2 inner rows x 3 inner columns). For CellLab-CTS models, it is useful to include the perimeter nodes as "cells" for the purpose of handling boundary conditions. Therefore, CellLab-CTS treats all the **nodes** in the grid as if they were cells in a cellular automaton. This includes the perimeter nodes, for which Landlab does not formally define cells. For practical purposes, the distinction doesn't make much difference, but it is important to understand that CellLab-CTS works with arrays of grid nodes rather than the (shorter) arrays of grid cells. Henceforth, to avoid confusion, we will refer to **nodes**, which you should read as being synonymous with the usual meaning of "cell" in a cellular automaton. + +*Prerequisites:* This manual assumes working knowledge of the Python programming language (any version), including basic familiarity with Python classes and objects. It also assumes a basic familiarity with Landlab grids. In addition, it will be helpful to have some familiarity with the Matplotlib and/or Pylab plotting libraries. + +## Writing a CellLab-CTS model + +### What is a CellLab-CTS model? + +A CellLab-CTS model is a Python program that creates and initializes one of the four types of `CellLabCTSModel` object, defines the possible cell states and transition rules, and calls the `run` method to execute the model. A CellLab-CTS model can be written in one of two basic ways. The first option is to write a simple Python script that imports the necessary ingredients. This approach is easy and versatile, and is recommended for first-time users, and/or those who are relatively unfamiliar with Python classes. The second option is to write your model as a subclass of one of the four existing CellLabModel subclasses (more on these below). The subclass approach is useful when you wish to use the *dynamic property updating* capability of CellLab-CTS—that is, for example, when you want to attach some form of additional data to the grid, and update the data at each transition event according to the state of the grid. In this manual, we will focus on the example of a simple script-based model. + +### Basic ingredients of a CellLab-CTS model + +The basic steps in most CellLab-CTS models are as follows: + +1. Import the necessary CTS classes (and any other necessary packages). These include: one of the four CellLab-CTS model classes (described below), the `Transition` class, and (optionally) the `CAPlotter` class for graphical display. +2. Create and initialize a Landlab `ModelGrid` object: either a `RasterModelGrid` or a `HexModelGrid` +3. Create a dictionary that defines the node states to be used +4. Create a list of Transition objects: one for each transition type in your model +5. Create an array with the initial state values in the grid +6. Instantiate and initialize one of the four CellLab-CTS classes +7. Set up plotting (if desired) +8. Run the model by calling the CellLab-CTS object's `run` method (perhaps pausing every so often to display the grid and/or write output to file) +9. Clean up + +We will illustrate each of these steps using a simple example called `isotropic_turbulent_suspension.py`. This program simulates the random motion of neutrally buoyant sediment particles that are immersed in a turbulent fluid: think of tea leaves in a jar of tea that you are stirring with an invisible spoon. Each random motion is simulated by simply swapping a fluid state and a particle state. + +:::{figure} images/transition_example.png +:align: center +:figwidth: 80 % + +Figure 1: A CellLab-CTS model of suspended sediment particles in an isotropic turbulent fluid. +::: + +Before diving into the example, however, it's useful to look at the four different types of CellLab-CTS model. + +### Types of CellLab-CTS model + +A CellLab-CTS grid can be either raster (regular grid of square cells) or hexagonal (trigonal grid of nodes with hexagonal cells). In addition, a CellLab-CTS model can be either *oriented* or *non-oriented*. An oriented model is one in which the spatial orientation of a node pair influences the types and/or of transition. For example, in an oriented raster model, a horizontal pair with states 0 and 1 might have a different set of potential transitions than a vertical pair with states 0 and 1. A non-oriented pair treats the sequence 0-1 the same regardless of whether the pair is vertical, horizontal, or (in the case of a hex grid) at any other angle. + +With these different possibilities in mind, the four CellLab-CTS model types are: + +1. `RasterCTS:` A non-oriented grid of square cells. +2. `OrientedRasterCTS:` An oriented grid of square cells, with two orientations (horizontal and vertical). +3. `HexCTS`: A non-oriented grid of hexagons. +4. `OrientedHexCTS:` An oriented grid of hexagons, with three orientations. These can be: (1) vertical, (2) +30 degrees from horizontal (angling down/left to up/right), and (3) -30 degrees from horizontal (angling up/left to down/right). Or, alternatively, the three axes can be horizontal and +/-30 degrees from vertical (one determines this when instantiating the grid object, as illustrated below). + +These four types are implemented as subclasses of the base class `CellLabCTSModel`, as illustrated in Figure 2. + +:::{figure} images/ca_class_hierarchy.png +:align: center + +Figure 2: CellLab-CTS class hierarchy and main data structures. N = number of grid nodes, L = number of grid links, NL = number of possible link (node pair) states, NT = maximum number of transitions for any link state. +::: + +### Step 1: Importing CellLab-CTS + +A CellLab-CTS application normally starts by importing the appropriate type of CTS model class, along with any other packages needed. Thus, our suspended-sediment model starts out as follows: + +```python +#!/usr/env/python + +""" +isotropic_turbulent_suspension.py + +Example of a continuous-time, stochastic, pair-based cellular automaton model, +which simulates the diffusion of suspended, neutrally buoyant particles in a +turbulent fluid. + +Written by Greg Tucker, February 2015 +""" + +import time +import matplotlib +from numpy import where +from landlab import RasterModelGrid +from landlab.ca.celllab_cts import Transition, CAPlotter +from landlab.ca.raster_cts import RasterCTS +``` + +Here, we're using a raster model, so we import Landlab's `RasterModelGrid` class. It will be a non-oriented raster model, so we import the `RasterCTS` class (rather than `OrientedRasterCTS`). We also import the `CAPlotter` class for help with graphical display (more on that below), as well as the `Transition` class. We need the Transition class to set up our pair transitions, which we explore next. + +### Setting up transitions + +#### Sequence matters! + +A particular pair state is described by the two node states, and optionally by the pair's orientation. A key thing to understand here is that any particular pair sequence, such as 0 and 1, is *different from the sequence in reverse*. The pair 0-1 is not the same as the pair 1-0! This is true for all four types of model. So then which is which? To answer this question, we first need to recall that each pair corresponds to the two ends of a *link* in the Landlab grid. A link is simply a directed line segment that connects two neighboring nodes. Every link has a *tail* and a *head* (like the head of an arrow); the direction of the link is from tail to head. The rule for CellLab-CTS pairs is that the first number refers to the tail of the corresponding link, and the second refers to its head. Thus, the pair state 0-1 means that the tail node has state 0 and the head node has state 1. + +By default, the links in a raster grid always run from down to up (for vertical links) or left to right (for horizontal links) (Figure 3). For example, with a 0-1 pair in a raster grid, the 0 is either the left-hand node (if it's a horizontal pair) or the bottom node (if the pair is vertical). In a default hex grid, the links point either (1) upward, (2) angling right and up 30 degrees, or (3) angling right and down 30 degrees. (Note that you also have the option of switching the grid orientation so that one of the principal axes is horizontal instead of vertical; in that case, the three orientations are horizontal, 30 degrees clockwise from vertical, and 30 degrees counter-clockwise from vertical). + +:::{figure} images/grid_schematic2.png +:align: center + +Figure 3: Illustration of nodes, links, and cells in a raster and hex grids. Note directions of links, which always "point" toward the upper-right hemisphere. The hex illustration shows a hex grid cell in vertical orientation; in horizontal orientation, links point rightward, up and right, and up and left. +::: + +#### How transitions are represented + +Each transition type is described by the states of the tail and head nodes, and by the orientation of the pair. This information is encoded in a 3-element tuple. Recall that each pair is associated with a link. The first number is the state of the link's tail node, the second is the state of the link's head node, and the third is an *orientation code* that represents the pair's spatial orientation (Figure 4). In a non-oriented model, the orientation code is always zero. In an oriented raster, the orientation code is either 0 (horizontal) or 1 (vertical). For example, the code (0, 1, 0) in an oriented raster model would represent a vertical pair in which the left node has state 0 and the right state 1. + +:::{figure} images/cell_pair_orientation.png +:align: center + +Figure 4: Pair orientation codes in a raster (top 2 panels) and vertical hex (bottom 3 panels) grid. +::: + +In an oriented hex, the orientation codes depend on the orientation of the grid itself. A Landlab `HexModelGrid` can be oriented such that one of the three principal axes is either horizontal (the default) or vertical. The choice is controlled by the optional keyword argument `orientation` (either `'vertical'` or `'horizontal'`) in the `HexModelGrid` initialization function. For a vertically aligned hex grid, the CellLab-CTS orientation codes are: 0 for vertical, 1 for right and upward, and 2 for right and downward (Figure 4). For example, the code (1, 0, 2) would represent a down-and-right pair, with a state of 1 in the upper-left node and 0 in the lower-right node. For a horizontally aligned hex grid, the CellLab-CTS orientation codes are: 0 for upward and left, 1 for upward and right, and 2 for right. For example, the code (1, 0, 2) would represent a left-to-right pair, with a state of 1 in the left node and 0 in the right node. + +#### Example of a transition setup function + +It can be helpful to put the transition setup procedure inside a function of its own. Here is the transition setup function for our turbulent suspension example (notice that the function itself has only four lines of code; all the rest is documentation): + +```python +def setup_transition_list(): + """ + Creates and returns a list of Transition() objects to represent state + transitions for an unbiased random walk. + + Parameters + ---------- + (none) + + Returns + ------- + xn_list : list of Transition objects + List of objects that encode information about the link-state transitions. + + Notes + ----- + State 0 represents fluid and state 1 represents a particle (such as a + sediment grain, tea leaf, or solute molecule). + + The states and transitions are as follows: + + Pair state Transition to Process Rate (cells/s) + ========== ============= ======= ============== + 0 (0-0) (none) - - + 1 (0-1) 2 (1-0) left/down motion 10.0 + 2 (1-0) 1 (0-1) right/up motion 10.0 + 3 (1-1) (none) - - + + """ + + # Create an empty transition list + xn_list = [] + + # Append two transitions to the list. + # Note that the arguments to the Transition() object constructor are: + # - Tuple representing starting pair state + # (left/bottom cell, right/top cell, orientation) + # - Tuple representing new pair state + # (left/bottom cell, right/top cell, orientation) + # - Transition rate (cells per time step, in this case 1 sec) + # - Name for transition + xn_list.append(Transition((0, 1, 0), (1, 0, 0), 10.0, "left/down motion")) + xn_list.append(Transition((1, 0, 0), (0, 1, 0), 10.0, "right/up motion")) + + return xn_list +``` + +In this example, state 0 represents the fluid and state 1 represents a particle. Motion is represented by a transition from a 0-1 pair to a 1-0, or vice versa. + +Your transition setup function should create and return a list of `Transition` objects. A Transition object contains (and is initialized with) the 3-element tuples for the starting and ending transitions, a transition rate (in units of cell-widths per time), and (optionally) a name. Two other optional parameters are used when you want to track properties associated with moving particles: a boolean flag (`swap_properties`) indicating whether the transition involves an exchange of properties, and the name of a user-defined callback function (`prop_update_fn`) to invoke whenever a transition of that type occurs. + +(Note that it is also possible to specify a single-integer code for the link state, instead of 3-element tuple. This is a bit more of a headache, however, since it requires you to work out the link-state code corresponding to each pair, and is not recommended.) + +### Defining parameters + +Typical parameters in a CellLab-CTS model, in addition to the transitions and rates, include the dimensions of the grid, the duration of the run, and the time intervals for plotting, writing output to file, and/or reporting progress on screen. In the following example, we have defined these within a `main()` function. They could also be read in from a file, input on a command line, or specified by some other method. + +```python +def main(): + # INITIALIZE + + # User-defined parameters + nr = 80 # number of rows in grid + nc = 50 # number of columns in grid + plot_interval = 0.5 # time interval for plotting, sec + run_duration = 20.0 # duration of run, sec + report_interval = 10.0 # report interval, in real-time seconds + + # Remember the clock time, and calculate when we next want to report + # progress. + current_real_time = time.time() + next_report = current_real_time + report_interval +``` + +### Step 2: Creating a grid + +Depending on the type of CTS model to be used, your code will need to instantiate either a `RasterModelGrid` or a `HexModelGrid`. If you wish to modify the default boundary setup, this should be done right after the grid is created. In the example below, we create a raster grid and set each of its four boundaries to act like a wall: + +```python +# Create grid +mg = RasterModelGrid(nr, nc, 1.0) + +# Make the boundaries be walls +mg.set_closed_boundaries_at_grid_edges(True, True, True, True) +``` + +### Step 3: Create a node-state dictionary + +The possible node states are defined by creating entries in a dictionary, in which each key is an integer and each value is a string that gives the name for that state. There should be one entry for each state in your model. For example, our isotropic turbulent suspension model defines just two states: + +```python +ns_dict = {0: "fluid", 1: "particle"} +``` + +### Step 4: Create the transition list + +If you've already defined a transition setup function, all you need to do here is call that function, as in the following example: + +```python +xn_list = setup_transition_list() +``` + +### Step 5: Create an array containing the initial node-state values + +The node state array should be a 1D numpy array of integers, with length equal to the number of grid rows times the number of grid columns. The easiest way to create such a grid is to use the grid's `add_zeros()` method (or, similarly, `add_ones` or `add_empty`). For example, for the suspended-sediment example we'll create an array of zeros, representing a container filled with fluid: + +```python +# Create the node-state array and attach it to the grid +node_state_grid = mg.add_zeros("node", "node_state_map", dtype=int) +``` + +The first argument here is the name of the grid element to which values should be attached, the second is a name to give the array, and the third sets the data type to integer (instead of the default `float` type). + +Depending on the nature of the model, the next step is to set the initial values of the node states. You can do this just as you would with any Landlab grid field. Remember that the coordinates of each node in a Landlab grid are available through the `node_x` and `node_y` arrays. For our working example, we'll set the lower 10% of nodes to state 1, indicating that we are starting with a pile of tea leaves at the bottom of the container: + +```python +# Initialize the node-state array: here, the initial condition is a pile of +# resting grains at the bottom of a container. +bottom_rows = where(mg.node_y < 0.1 * nr)[0] +node_state_grid[bottom_rows] = 1 + +# For visual display purposes, set all boundary nodes to fluid +node_state_grid[mg.closed_boundary_nodes] = 0 +``` + +Note the use of the numpy `where` function, which we imported in Step 1. + +### Step 6: Instantiate a CellLab-CTS object + +Our core model will be an object (a.k.a. *instance*) of one of the four CellLabCTS model classes. We create this just as we would any other Python object: by calling its constructor function, which is simply the name of the class followed by parentheses, with any necessary arguments within the parentheses. There are four required arguments: a grid object (which must be of the correct type, i.e., raster or hex), a dictionary of node states, a list of `Transition` objects, and the initial node state array. Here's what it looks like for our raster-based suspension model: + +```python +# Create the CA model +ca = RasterCTS(mg, ns_dict, xn_list, node_state_grid) +``` + +### Step 7: Set up plotting + +If you want to display your model's progress on screen, you can pause the run every once in a while and use pylab, matplotlib, or whatever your favorite graphics library may be to plot what's going on. For convenience, CellLab-CTS provides a `CAPlotter` class. CAPlotter is smart enough to find your node-state array, and to plot its contents in raster or hex form as appropriate. When you create the CAPlotter object, you pass it your CA model object and optionally a matplotlib colormap object. The CAPlotter has an `update_plot` method to plot the current state of your model, and a `finalize` method to clean up. + +Here's an example of how to use a CAPlotter: + +```python +# Set up colors for plotting +grain = "#5F594D" +fluid = "#D0E4F2" +clist = [fluid, grain] +my_cmap = matplotlib.colors.ListedColormap(clist) + +# Create a CAPlotter object for handling screen display +ca_plotter = CAPlotter(ca, cmap=my_cmap) + +# Plot the initial grid +ca_plotter.update_plot() +``` + +## Step 8: Run the model + +Once a CTS model object has been instantiated, you run it forward in time with the `run` method. `run` takes one required argument: the future time to which to run. There are also three optional arguments: + +- a node-state array (this is provided so that if you wish you can modify the array and re-run) +- a flag indicating whether to re-plot after each transition occurs +- a plotter object, which is required if the value of the flag is True + +If you wish to pause occasionally to plot and/or write data to file, a natural approach is to place the call to the run method inside a loop, as in the following example: + +```python +# RUN +current_time = 0.0 +while current_time < run_duration: + # Once in a while, print out simulation real time to let the user + # know that the sim is running ok + current_real_time = time.time() + if current_real_time >= next_report: + print( + f"Current simulation time {current_time}" + f" ({int(100.0 * current_time / run_duration)}%)" + ) + next_report = current_real_time + report_interval + + # Run the model forward in time until the next output step + ca.run(current_time + plot_interval, ca.node_state, plot_each_transition=False) + current_time += plot_interval + + # Plot the current grid + ca_plotter.update_plot() +``` + +### Step 9: Cleanup + +There generally isn't much to clean up. If you are using a CAPlotter object, it can be helpful to call its `finalize` method, which turns off matplotlib's interactive mode and calls `show()` to make sure the plot is displayed on screen. + +```python +ca_plotter.finalize() +``` + +## Reference information + +### Main data structures in the CellLabCTSModel class + +Each of the four types of CTS model inherits from the base class (CellLabCTSModel) the following data structures. These are also illustrated in Figure 2. (Note: some of the data structures and names have changed since the publication of Tucker et al. (2016); thus, the list below differs in some respects from the original paper and from Figure 2.) + +`node_state` + +: Node-based grid of node-state codes. This is the grid of cell (sic) states. + +`node_pair` + +: List of 3-element tuples representing all the various link states. Allows + you to look up the node states and orientation corresponding to a particular + link-state ID. + +`priority_queue` + +: Data structure that implements a priority queue. The queue contains all + future transition events, sorted by time of occurrence (from soonest to latest). + +`next_update` + +: Time (in the future) at which the link will undergo its next transition. + You might notice that the update time for every scheduled transition is also + stored in each Event object in the event queue. Why store it twice? Because + a scheduled event might be invalidated after the event has been scheduled + (because another transition has changed one of a link's two nodes, for + example). The way to tell whether a scheduled event is still valid is to + compare its time with the corresponding transition time in the *next_update* + array. If they are different, the event is discarded. + +`link_orientation` + +: Orientation code for each link. + +`link_state` + +: State code for each link. + +`n_trn` + +: Number of transitions ("xn" stands for "transition") from a given link + state. + +`trn_to` + +: Stores the link-state code(s) to which a particular link state can + transition. + +`trn_rate` + +: Rate associated with each link-state transition. + +### Source Code Documentation for CellLab-CTS + +- {py:class}`Methods and Internal Documentation for the base class: CellLabCTSModel ` +- {py:class}`Methods and Internal Documentation for the RasterCTS class ` +- {py:class}`Methods and Internal Documentation for the OrientedRasterCTS class ` +- {py:class}`Methods and Internal Documentation for the HexCTS class ` +- {py:class}`Methods and Internal Documentation for the OrientedHexCTS class ` + +## References + +Chopard, B., & Droz, M. (1998). Cellular automata. Cambridge University Press, +Cambridge, UK. + +Narteau, C., Le Mouël, J. L., Poirier, J. P., Sepúlveda, E., & Shnirman, M. +(2001). On a small-scale roughness of the core–mantle boundary. Earth and +Planetary Science Letters, 191(1), 49-60. + +Narteau, C., Zhang, D., Rozier, O., & Claudin, P. (2009). Setting the length +and time scales of a cellular automaton dune model from the analysis of +superimposed bed forms. Journal of Geophysical Research: Earth Surface +(2003–2012), 114(F3). + +Rozier, O., & Narteau, C. (2014). A real‐space cellular automaton laboratory. +Earth Surface Processes and Landforms, 39(1), 98-109. + +Tucker, G. E., Hobley, D. E., Hutton, E., Gasparini, N. M., Istanbulluoglu, E., +Adams, J. M., & Nudurupati, S. S. (2016). CellLab-CTS 2015: continuous-time +stochastic cellular automaton modeling using Landlab. Geoscientific Model +Development, 9(2), 823-839, +[doi:10.5194/gmd-9-823-2016](https://www.geosci-model-dev.net/9/823/2016/). diff --git a/docs/source/user_guide/cell_lab_user_guide.rst b/docs/source/user_guide/cell_lab_user_guide.rst deleted file mode 100644 index edd9a1be31..0000000000 --- a/docs/source/user_guide/cell_lab_user_guide.rst +++ /dev/null @@ -1,425 +0,0 @@ -.. _celllab: - -====================== -CellLab-CTS User Guide -====================== - -Created: August 2015, Greg Tucker - -Last updated: April 2020 GT - -Introduction ------------- - -CellLab-CTS is a Landlab module for building pairwise, continuous-time stochastic (CTS) cellular automata. Like other cellular automata, pairwise CTS models represent natural phenomena using a regular grid of cells; in the case of CellLab-CTS, the user can choose between square and hexagonal cells. Each cell has a given state, which is an integer code representing something about the nature or contents of that cell. Cells change state at random time intervals according to a user-defined transition rules. The transitions depend on the states of the neighboring cells, and in particular, of the states of each *pair* of adjacent cells. For example a pair with states 0 and 1 might undergo a transition to 1 and 1, or 3 and 0, etc. - -This Users Manual provides instructions on how to write a model using CellLab-CTS, along with reference information about the classes and methods that CellLab-CTS provides. For further information about the theory, implementation, and design of CellLab-CTS, see Tucker et al. (2016). For background information on the theory of pairwise CTS models and example applications, see Narteau et al. (2001, 2009) and Rozier and Narteau (2014). For background on cellular automata in general, see Chopard and Droz (1998). - -*Note on terminology:* In a CellLab-CTS model, the computational points—the objects that are normally called **cells** in a cellular automaton model—actually correspond with the **nodes** in a Landlab grid. Although Landlab grids also contain *cells*, which are defined as polygons that contain a node, Landlab grids do not have cells along the outmost ring of nodes around the grid. For example, a 4-row by 5-column Landlab raster grid has 20 nodes but only 6 cells (2 inner rows x 3 inner columns). For CellLab-CTS models, it is useful to include the perimeter nodes as "cells" for the purpose of handling boundary conditions. Therefore, CellLab-CTS treats all the **nodes** in the grid as if they were cells in a cellular automaton. This includes the perimeter nodes, for which Landlab does not formally define cells. For practical purposes, the distinction doesn't make much difference, but it is important to understand that CellLab-CTS works with arrays of grid nodes rather than the (shorter) arrays of grid cells. Henceforth, to avoid confusion, we will refer to **nodes**, which you should read as being synonymous with the usual meaning of "cell" in a cellular automaton. - -*Prerequisites:* This manual assumes working knowledge of the Python programming language (any version), including basic familiarity with Python classes and objects. It also assumes a basic familiarity with Landlab grids. In addition, it will be helpful to have some familiarity with the Matplotlib and/or Pylab plotting libraries. - - -Writing a CellLab-CTS model ---------------------------- - -What is a CellLab-CTS model? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A CellLab-CTS model is a Python program that creates and initializes one of the four types of ``CellLabCTSModel`` object, defines the possible cell states and transition rules, and calls the ``run`` method to execute the model. A CellLab-CTS model can be written in one of two basic ways. The first option is to write a simple Python script that imports the necessary ingredients. This approach is easy and versatile, and is recommended for first-time users, and/or those who are relatively unfamiliar with Python classes. The second option is to write your model as a subclass of one of the four existing CellLabModel subclasses (more on these below). The subclass approach is useful when you wish to use the *dynamic property updating* capability of CellLab-CTS—that is, for example, when you want to attach some form of additional data to the grid, and update the data at each transition event according to the state of the grid. In this manual, we will focus on the example of a simple script-based model. - -Basic ingredients of a CellLab-CTS model -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The basic steps in most CellLab-CTS models are as follows: - -1. Import the necessary CTS classes (and any other necessary packages). These include: one of the four CellLab-CTS model classes (described below), the ``Transition`` class, and (optionally) the ``CAPlotter`` class for graphical display. -2. Create and initialize a Landlab ``ModelGrid`` object: either a ``RasterModelGrid`` or a ``HexModelGrid`` -3. Create a dictionary that defines the node states to be used -4. Create a list of Transition objects: one for each transition type in your model -5. Create an array with the initial state values in the grid -6. Instantiate and initialize one of the four CellLab-CTS classes -7. Set up plotting (if desired) -8. Run the model by calling the CellLab-CTS object's ``run`` method (perhaps pausing every so often to display the grid and/or write output to file) -9. Clean up - -We will illustrate each of these steps using a simple example called ``isotropic_turbulent_suspension.py``. This program simulates the random motion of neutrally buoyant sediment particles that are immersed in a turbulent fluid: think of tea leaves in a jar of tea that you are stirring with an invisible spoon. Each random motion is simulated by simply swapping a fluid state and a particle state. - -.. figure:: images/transition_example.png - :figwidth: 80 % - :align: center - - Figure 1: A CellLab-CTS model of suspended sediment particles in an isotropic turbulent fluid. - - -Before diving into the example, however, it's useful to look at the four different types of CellLab-CTS model. - -Types of CellLab-CTS model -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A CellLab-CTS grid can be either raster (regular grid of square cells) or hexagonal (trigonal grid of nodes with hexagonal cells). In addition, a CellLab-CTS model can be either *oriented* or *non-oriented*. An oriented model is one in which the spatial orientation of a node pair influences the types and/or of transition. For example, in an oriented raster model, a horizontal pair with states 0 and 1 might have a different set of potential transitions than a vertical pair with states 0 and 1. A non-oriented pair treats the sequence 0-1 the same regardless of whether the pair is vertical, horizontal, or (in the case of a hex grid) at any other angle. - -With these different possibilities in mind, the four CellLab-CTS model types are: - -1. ``RasterCTS:`` A non-oriented grid of square cells. -2. ``OrientedRasterCTS:`` An oriented grid of square cells, with two orientations (horizontal and vertical). -3. ``HexCTS``: A non-oriented grid of hexagons. -4. ``OrientedHexCTS:`` An oriented grid of hexagons, with three orientations. These can be: (1) vertical, (2) +30 degrees from horizontal (angling down/left to up/right), and (3) -30 degrees from horizontal (angling up/left to down/right). Or, alternatively, the three axes can be horizontal and +/-30 degrees from vertical (one determines this when instantiating the grid object, as illustrated below). - -These four types are implemented as subclasses of the base class ``CellLabCTSModel``, as illustrated in Figure 2. - -.. figure:: images/ca_class_hierarchy.png - :align: center - - Figure 2: CellLab-CTS class hierarchy and main data structures. N = number of grid nodes, L = number of grid links, NL = number of possible link (node pair) states, NT = maximum number of transitions for any link state. - - -Step 1: Importing CellLab-CTS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A CellLab-CTS application normally starts by importing the appropriate type of CTS model class, along with any other packages needed. Thus, our suspended-sediment model starts out as follows: - -.. code-block:: python - - #!/usr/env/python - - """ - isotropic_turbulent_suspension.py - - Example of a continuous-time, stochastic, pair-based cellular automaton model, - which simulates the diffusion of suspended, neutrally buoyant particles in a - turbulent fluid. - - Written by Greg Tucker, February 2015 - """ - - import time - import matplotlib - from numpy import where - from landlab import RasterModelGrid - from landlab.ca.celllab_cts import Transition, CAPlotter - from landlab.ca.raster_cts import RasterCTS - -Here, we're using a raster model, so we import Landlab's ``RasterModelGrid`` class. It will be a non-oriented raster model, so we import the ``RasterCTS`` class (rather than ``OrientedRasterCTS``). We also import the ``CAPlotter`` class for help with graphical display (more on that below), as well as the ``Transition`` class. We need the Transition class to set up our pair transitions, which we explore next. - - -Setting up transitions -~~~~~~~~~~~~~~~~~~~~~~ - -Sequence matters! -^^^^^^^^^^^^^^^^^ - -A particular pair state is described by the two node states, and optionally by the pair's orientation. A key thing to understand here is that any particular pair sequence, such as 0 and 1, is *different from the sequence in reverse*. The pair 0-1 is not the same as the pair 1-0! This is true for all four types of model. So then which is which? To answer this question, we first need to recall that each pair corresponds to the two ends of a *link* in the Landlab grid. A link is simply a directed line segment that connects two neighboring nodes. Every link has a *tail* and a *head* (like the head of an arrow); the direction of the link is from tail to head. The rule for CellLab-CTS pairs is that the first number refers to the tail of the corresponding link, and the second refers to its head. Thus, the pair state 0-1 means that the tail node has state 0 and the head node has state 1. - -By default, the links in a raster grid always run from down to up (for vertical links) or left to right (for horizontal links) (Figure 3). For example, with a 0-1 pair in a raster grid, the 0 is either the left-hand node (if it's a horizontal pair) or the bottom node (if the pair is vertical). In a default hex grid, the links point either (1) upward, (2) angling right and up 30 degrees, or (3) angling right and down 30 degrees. (Note that you also have the option of switching the grid orientation so that one of the principal axes is horizontal instead of vertical; in that case, the three orientations are horizontal, 30 degrees clockwise from vertical, and 30 degrees counter-clockwise from vertical). - -.. figure:: images/grid_schematic2.png - :align: center - - Figure 3: Illustration of nodes, links, and cells in a raster and hex grids. Note directions of links, which always "point" toward the upper-right hemisphere. The hex illustration shows a hex grid cell in vertical orientation; in horizontal orientation, links point rightward, up and right, and up and left. - -How transitions are represented -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Each transition type is described by the states of the tail and head nodes, and by the orientation of the pair. This information is encoded in a 3-element tuple. Recall that each pair is associated with a link. The first number is the state of the link's tail node, the second is the state of the link's head node, and the third is an *orientation code* that represents the pair's spatial orientation (Figure 4). In a non-oriented model, the orientation code is always zero. In an oriented raster, the orientation code is either 0 (horizontal) or 1 (vertical). For example, the code (0, 1, 0) in an oriented raster model would represent a vertical pair in which the left node has state 0 and the right state 1. - -.. figure:: images/cell_pair_orientation.png - :align: center - - Figure 4: Pair orientation codes in a raster (top 2 panels) and vertical hex (bottom 3 panels) grid. - -In an oriented hex, the orientation codes depend on the orientation of the grid itself. A Landlab ``HexModelGrid`` can be oriented such that one of the three principal axes is either horizontal (the default) or vertical. The choice is controlled by the optional keyword argument ``orientation`` (either ``'vertical'`` or ``'horizontal'``) in the ``HexModelGrid`` initialization function. For a vertically aligned hex grid, the CellLab-CTS orientation codes are: 0 for vertical, 1 for right and upward, and 2 for right and downward (Figure 4). For example, the code (1, 0, 2) would represent a down-and-right pair, with a state of 1 in the upper-left node and 0 in the lower-right node. For a horizontally aligned hex grid, the CellLab-CTS orientation codes are: 0 for upward and left, 1 for upward and right, and 2 for right. For example, the code (1, 0, 2) would represent a left-to-right pair, with a state of 1 in the left node and 0 in the right node. - -Example of a transition setup function -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -It can be helpful to put the transition setup procedure inside a function of its own. Here is the transition setup function for our turbulent suspension example (notice that the function itself has only four lines of code; all the rest is documentation): - -.. code-block:: python - - def setup_transition_list(): - """ - Creates and returns a list of Transition() objects to represent state - transitions for an unbiased random walk. - - Parameters - ---------- - (none) - - Returns - ------- - xn_list : list of Transition objects - List of objects that encode information about the link-state transitions. - - Notes - ----- - State 0 represents fluid and state 1 represents a particle (such as a - sediment grain, tea leaf, or solute molecule). - - The states and transitions are as follows: - - Pair state Transition to Process Rate (cells/s) - ========== ============= ======= ============== - 0 (0-0) (none) - - - 1 (0-1) 2 (1-0) left/down motion 10.0 - 2 (1-0) 1 (0-1) right/up motion 10.0 - 3 (1-1) (none) - - - - """ - - # Create an empty transition list - xn_list = [] - - # Append two transitions to the list. - # Note that the arguments to the Transition() object constructor are: - # - Tuple representing starting pair state - # (left/bottom cell, right/top cell, orientation) - # - Tuple representing new pair state - # (left/bottom cell, right/top cell, orientation) - # - Transition rate (cells per time step, in this case 1 sec) - # - Name for transition - xn_list.append(Transition((0, 1, 0), (1, 0, 0), 10.0, "left/down motion")) - xn_list.append(Transition((1, 0, 0), (0, 1, 0), 10.0, "right/up motion")) - - return xn_list - - -In this example, state 0 represents the fluid and state 1 represents a particle. Motion is represented by a transition from a 0-1 pair to a 1-0, or vice versa. - -Your transition setup function should create and return a list of ``Transition`` objects. A Transition object contains (and is initialized with) the 3-element tuples for the starting and ending transitions, a transition rate (in units of cell-widths per time), and (optionally) a name. Two other optional parameters are used when you want to track properties associated with moving particles: a boolean flag (``swap_properties``) indicating whether the transition involves an exchange of properties, and the name of a user-defined callback function (``prop_update_fn``) to invoke whenever a transition of that type occurs. - -(Note that it is also possible to specify a single-integer code for the link state, instead of 3-element tuple. This is a bit more of a headache, however, since it requires you to work out the link-state code corresponding to each pair, and is not recommended.) - -Defining parameters -~~~~~~~~~~~~~~~~~~~ - -Typical parameters in a CellLab-CTS model, in addition to the transitions and rates, include the dimensions of the grid, the duration of the run, and the time intervals for plotting, writing output to file, and/or reporting progress on screen. In the following example, we have defined these within a ``main()`` function. They could also be read in from a file, input on a command line, or specified by some other method. - -.. code-block:: python - - def main(): - # INITIALIZE - - # User-defined parameters - nr = 80 # number of rows in grid - nc = 50 # number of columns in grid - plot_interval = 0.5 # time interval for plotting, sec - run_duration = 20.0 # duration of run, sec - report_interval = 10.0 # report interval, in real-time seconds - - # Remember the clock time, and calculate when we next want to report - # progress. - current_real_time = time.time() - next_report = current_real_time + report_interval - -Step 2: Creating a grid -~~~~~~~~~~~~~~~~~~~~~~~ - -Depending on the type of CTS model to be used, your code will need to instantiate either a ``RasterModelGrid`` or a ``HexModelGrid``. If you wish to modify the default boundary setup, this should be done right after the grid is created. In the example below, we create a raster grid and set each of its four boundaries to act like a wall: - -.. code-block:: python - - # Create grid - mg = RasterModelGrid(nr, nc, 1.0) - - # Make the boundaries be walls - mg.set_closed_boundaries_at_grid_edges(True, True, True, True) - -Step 3: Create a node-state dictionary -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The possible node states are defined by creating entries in a dictionary, in which each key is an integer and each value is a string that gives the name for that state. There should be one entry for each state in your model. For example, our isotropic turbulent suspension model defines just two states: - -.. code-block:: python - - ns_dict = {0: "fluid", 1: "particle"} - -Step 4: Create the transition list -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you've already defined a transition setup function, all you need to do here is call that function, as in the following example: - -.. code-block:: python - - xn_list = setup_transition_list() - -Step 5: Create an array containing the initial node-state values -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The node state array should be a 1D numpy array of integers, with length equal to the number of grid rows times the number of grid columns. The easiest way to create such a grid is to use the grid's ``add_zeros()`` method (or, similarly, ``add_ones`` or ``add_empty``). For example, for the suspended-sediment example we'll create an array of zeros, representing a container filled with fluid: - -.. code-block:: python - - # Create the node-state array and attach it to the grid - node_state_grid = mg.add_zeros("node", "node_state_map", dtype=int) - -The first argument here is the name of the grid element to which values should be attached, the second is a name to give the array, and the third sets the data type to integer (instead of the default ``float`` type). - -Depending on the nature of the model, the next step is to set the initial values of the node states. You can do this just as you would with any Landlab grid field. Remember that the coordinates of each node in a Landlab grid are available through the ``node_x`` and ``node_y`` arrays. For our working example, we'll set the lower 10% of nodes to state 1, indicating that we are starting with a pile of tea leaves at the bottom of the container: - -.. code-block:: python - - # Initialize the node-state array: here, the initial condition is a pile of - # resting grains at the bottom of a container. - bottom_rows = where(mg.node_y < 0.1 * nr)[0] - node_state_grid[bottom_rows] = 1 - - # For visual display purposes, set all boundary nodes to fluid - node_state_grid[mg.closed_boundary_nodes] = 0 - -Note the use of the numpy ``where`` function, which we imported in Step 1. - -Step 6: Instantiate a CellLab-CTS object -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Our core model will be an object (a.k.a. *instance*) of one of the four CellLabCTS model classes. We create this just as we would any other Python object: by calling its constructor function, which is simply the name of the class followed by parentheses, with any necessary arguments within the parentheses. There are four required arguments: a grid object (which must be of the correct type, i.e., raster or hex), a dictionary of node states, a list of ``Transition`` objects, and the initial node state array. Here's what it looks like for our raster-based suspension model: - -.. code-block:: python - - # Create the CA model - ca = RasterCTS(mg, ns_dict, xn_list, node_state_grid) - -Step 7: Set up plotting -~~~~~~~~~~~~~~~~~~~~~~~ - -If you want to display your model's progress on screen, you can pause the run every once in a while and use pylab, matplotlib, or whatever your favorite graphics library may be to plot what's going on. For convenience, CellLab-CTS provides a ``CAPlotter`` class. CAPlotter is smart enough to find your node-state array, and to plot its contents in raster or hex form as appropriate. When you create the CAPlotter object, you pass it your CA model object and optionally a matplotlib colormap object. The CAPlotter has an ``update_plot`` method to plot the current state of your model, and a ``finalize`` method to clean up. - -Here's an example of how to use a CAPlotter: - -.. code-block:: python - - # Set up colors for plotting - grain = "#5F594D" - fluid = "#D0E4F2" - clist = [fluid, grain] - my_cmap = matplotlib.colors.ListedColormap(clist) - - # Create a CAPlotter object for handling screen display - ca_plotter = CAPlotter(ca, cmap=my_cmap) - - # Plot the initial grid - ca_plotter.update_plot() - -Step 8: Run the model ---------------------- - -Once a CTS model object has been instantiated, you run it forward in time with the ``run`` method. ``run`` takes one required argument: the future time to which to run. There are also three optional arguments: - -* a node-state array (this is provided so that if you wish you can modify the array and re-run) -* a flag indicating whether to re-plot after each transition occurs -* a plotter object, which is required if the value of the flag is True - -If you wish to pause occasionally to plot and/or write data to file, a natural approach is to place the call to the run method inside a loop, as in the following example: - -.. code-block:: python - - # RUN - current_time = 0.0 - while current_time < run_duration: - # Once in a while, print out simulation real time to let the user - # know that the sim is running ok - current_real_time = time.time() - if current_real_time >= next_report: - print( - f"Current simulation time {current_time}" - f" ({int(100.0 * current_time / run_duration)}%)" - ) - next_report = current_real_time + report_interval - - # Run the model forward in time until the next output step - ca.run(current_time + plot_interval, ca.node_state, plot_each_transition=False) - current_time += plot_interval - - # Plot the current grid - ca_plotter.update_plot() - -Step 9: Cleanup -~~~~~~~~~~~~~~~ - -There generally isn't much to clean up. If you are using a CAPlotter object, it can be helpful to call its ``finalize`` method, which turns off matplotlib's interactive mode and calls ``show()`` to make sure the plot is displayed on screen. - -.. code-block:: python - - ca_plotter.finalize() - -Reference information ---------------------- - -Main data structures in the CellLabCTSModel class -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Each of the four types of CTS model inherits from the base class (CellLabCTSModel) the following data structures. These are also illustrated in Figure 2. (Note: some of the data structures and names have changed since the publication of Tucker et al. (2016); thus, the list below differs in some respects from the original paper and from Figure 2.) - -``node_state`` : 1d array (x number of nodes in grid) - Node-based grid of node-state codes. This is the grid of cell (sic) states. - -``node_pair`` : list (x number of possible link states) - List of 3-element tuples representing all the various link states. Allows - you to look up the node states and orientation corresponding to a particular - link-state ID. - -``priority_queue`` : object - Data structure that implements a priority queue. The queue contains all - future transition events, sorted by time of occurrence (from soonest to latest). - -``next_update`` : 1d array (x number of active links) - Time (in the future) at which the link will undergo its next transition. - You might notice that the update time for every scheduled transition is also - stored in each Event object in the event queue. Why store it twice? Because - a scheduled event might be invalidated after the event has been scheduled - (because another transition has changed one of a link's two nodes, for - example). The way to tell whether a scheduled event is still valid is to - compare its time with the corresponding transition time in the *next_update* - array. If they are different, the event is discarded. - -``link_orientation`` : 1d array of ints (x number of active links) - Orientation code for each link. - -``link_state`` : 1d array of ints (x number of active links) - State code for each link. - -``n_trn`` : 1d array of ints (x number of possible link states) - Number of transitions ("xn" stands for "transition") from a given link - state. - -``trn_to`` : 1d array of np.int (x number of transitions) - Stores the link-state code(s) to which a particular link state can - transition. - -``trn_rate`` : 1d array of floats (x number of transitions) - Rate associated with each link-state transition. - -Source Code Documentation for CellLab-CTS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* :py:class:`Methods and Internal Documentation for the base class: CellLabCTSModel ` -* :py:class:`Methods and Internal Documentation for the RasterCTS class ` -* :py:class:`Methods and Internal Documentation for the OrientedRasterCTS class ` -* :py:class:`Methods and Internal Documentation for the HexCTS class ` -* :py:class:`Methods and Internal Documentation for the OrientedHexCTS class ` - - - -References ----------- - -Chopard, B., & Droz, M. (1998). Cellular automata. Cambridge University Press, -Cambridge, UK. - -Narteau, C., Le Mouël, J. L., Poirier, J. P., Sepúlveda, E., & Shnirman, M. -(2001). On a small-scale roughness of the core–mantle boundary. Earth and -Planetary Science Letters, 191(1), 49-60. - -Narteau, C., Zhang, D., Rozier, O., & Claudin, P. (2009). Setting the length -and time scales of a cellular automaton dune model from the analysis of -superimposed bed forms. Journal of Geophysical Research: Earth Surface -(2003–2012), 114(F3). - -Rozier, O., & Narteau, C. (2014). A real‐space cellular automaton laboratory. -Earth Surface Processes and Landforms, 39(1), 98-109. - -Tucker, G. E., Hobley, D. E., Hutton, E., Gasparini, N. M., Istanbulluoglu, E., -Adams, J. M., & Nudurupati, S. S. (2016). CellLab-CTS 2015: continuous-time -stochastic cellular automaton modeling using Landlab. Geoscientific Model -Development, 9(2), 823-839, -`doi:10.5194/gmd-9-823-2016 `_. diff --git a/docs/source/user_guide/component_list.md b/docs/source/user_guide/component_list.md new file mode 100644 index 0000000000..8e462384f8 --- /dev/null +++ b/docs/source/user_guide/component_list.md @@ -0,0 +1,14 @@ +# List of Components + +````{jinja} llcats +```{{"{"}}list-table{{"}"}} +:widths: 50 50 +:header-rows: 0 + +{% for name, component in components |dictsort %} +{% set parts = component['name'].split(".") %} +* - {{"{"}}class{{"}"}}`{{name}} <{{ component['name'] }}>` + - {{ component['summary'] }} +{% endfor %} +``` +```` diff --git a/docs/source/user_guide/component_list.rst b/docs/source/user_guide/component_list.rst deleted file mode 100644 index 509b39694f..0000000000 --- a/docs/source/user_guide/component_list.rst +++ /dev/null @@ -1,15 +0,0 @@ -================== -List of Components -================== - -.. jinja:: llcats - - .. list-table:: - :widths: 50 50 - :header-rows: 0 - - {% for name, component in components |dictsort %} - {% set parts = component['name'].split(".") %} - * - :class:`{{name}} <{{ component['name'] }}>` - - {{ component['summary'] }} - {% endfor %} diff --git a/docs/source/user_guide/components.rst b/docs/source/user_guide/components.md similarity index 57% rename from docs/source/user_guide/components.rst rename to docs/source/user_guide/components.md index e85f02de4e..9704c04914 100644 --- a/docs/source/user_guide/components.rst +++ b/docs/source/user_guide/components.md @@ -1,8 +1,6 @@ -.. _landlab_components_page: +(landlab-components-page)= -===================== -The Component Library -===================== +# The Component Library Landlab offers an ever-growing library of components that aim to describe individual or closely associated suites of surface processes. Components are @@ -12,51 +10,49 @@ enable the sharing of data between the components, and we aim to have a relatively standardized way of interacting with and using each different one. Landlab components exist as classes, and can be imported from -``landlab.components``. +`landlab.components`. To develop your own Landlab component, see -:ref:`this page ` +{ref}`this page ` and -`this tutorial `_. +[this tutorial](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/making_components/making_components.ipynb). + +## Component Library Tutorial -Component Library Tutorial ----------------------------- For a tutorial introduction to using the component library, see -`here `_. +[here](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/component_tutorial/component_tutorial.ipynb). -Available Landlab components ----------------------------- +## Available Landlab components For the complete list of Landlab components type the following command in a command prompt: -``landlab list`` +`landlab list` -See the :ref:`Components section ` of the Landlab reference +See the {ref}`Components section ` of the Landlab reference manual for a list of all Landlab components currently available. -Landlab component classes, their import, and their instantiation ----------------------------------------------------------------- +## Landlab component classes, their import, and their instantiation Almost all Landlab components exist as Python classes. This means that to use -them, you must first import the class, then ``instantiate`` a Python instance +them, you must first import the class, then `instantiate` a Python instance of that class, then call a method from the class to run the component. The way this is done has now been almost totally standardised across Landlab. A component class is imported from the library as -.. code-block:: python - - from landlab.components import NameOfComponentToImport +```python +from landlab.components import NameOfComponentToImport +``` e.g., to get the linear diffusion component, we would do: -.. code-block:: python - - from landlab.components import LinearDiffuser +```python +from landlab.components import LinearDiffuser +``` The available components are listed in the -:ref:`Components section ` of the Landlab Reference Manual. +{ref}`Components section ` of the Landlab Reference Manual. Component classes always take a copy of the grid as their first argument. They then take a sequence of additional keyword arguments that set the actual @@ -64,9 +60,9 @@ parameters for the component. This means that the instantiation of a component looks something like this: -.. code-block:: python - - dfn = LinearDiffuser(grid, linear_diffusivity=0.01) +```python +dfn = LinearDiffuser(grid, linear_diffusivity=0.01) +``` These keywords can also be set by passing a Python dictionary, or using a text input file (see below). @@ -76,10 +72,10 @@ can run it by calling its run method. The component's documentation will explain how to do this for each individual case, but typically a component will have a method called `run_one_step`, which can be called like this: -.. code-block:: python - - dt = 100.0 # the timestep - dfn.run_one_step(dt) +```python +dt = 100.0 # the timestep +dfn.run_one_step(dt) +``` If the component describes a time-varying process, the first argument of `run_one_step` will be the duration for which to run the component in this @@ -99,20 +95,23 @@ It should probably be emphasized here to **always read the documentation for the component you are using**! You can get at this documentation either on this website, or in a dynamic Python session by getting help for either the imported class or the instantiated component object. i.e., in this case, any of the -following would work:: +following would work: +``` .. code-block:: pycon +``` - >>> help(LinearDiffuser) - >>> help(dfn) # LinearDiffuser? or dfn? also works +> ```pycon +> >>> help(LinearDiffuser) +> >>> help(dfn) # LinearDiffuser? or dfn? also works +> ``` Quit interactive help in iPython by pressing "q". +(input-files)= -.. _input_files: +## Inputs to components -Inputs to components --------------------- Landlab components are initialized by passing a copy of the grid, then by passing additional dynamic Python keyword arguments, almost all of which are set to default values if a value is not provided. This means all of the ways @@ -126,19 +125,19 @@ values for the `FastscapeEroder` are I want to set the `K_sp` to, say, `1.e-6`, but I am happy with these other parameters, I can simply do: -.. code-block:: python - - fsc = FastscapeEroder(grid, K_sp=1.0e-6) +```python +fsc = FastscapeEroder(grid, K_sp=1.0e-6) +``` Because Landlab components make use of Python's native `**kwargs` argument syntax, we can also pass multiple keywords at once to a component using a Python dictionary: -.. code-block:: python - - sp_thresholds = grid.add_ones("node", "sp_thresholds") - myargs = {"K_sp": 1.0e-5, "rainfall_intensity": 0.5, "threshold_sp": sp_thresholds} - fsc = FastscapeEroder(grid, **myargs) +```python +sp_thresholds = grid.add_ones("node", "sp_thresholds") +myargs = {"K_sp": 1.0e-5, "rainfall_intensity": 0.5, "threshold_sp": sp_thresholds} +fsc = FastscapeEroder(grid, **myargs) +``` Note the "magic" `**` decorator that is placed on the dictionary when it is passed to the component that makes this work. Also note that we can allow the @@ -155,98 +154,75 @@ Landlab components always want to see a Python dictionary as their input, as illustrated above. However, Landlab does offer a native file reader called `load_params` that allows you to create dictionaries to pass to components from input files. This function recognizes both -`"yaml" `_ formatted data files, e.g., +["yaml"](https://yaml.org/spec/1.2/) formatted data files, e.g., -.. code-block:: yaml - - K_sp: 0.3 - m_sp: 0.5 - n_sp: 1. - linear_diffusivity: 0.0001 +```yaml +K_sp: 0.3 +m_sp: 0.5 +n_sp: 1. +linear_diffusivity: 0.0001 +``` The `load_params` method will figure out which to use by itself, and will do any necessary typecasting automatically (i.e., floats will be floats, not strings): -.. code-block:: python - - from landlab import load_params +```python +from landlab import load_params - my_input_dict = load_params("./mytextinputfile.txt") - dfn = FastscapeEroder(grid, **my_input_dict) +my_input_dict = load_params("./mytextinputfile.txt") +dfn = FastscapeEroder(grid, **my_input_dict) +``` -Component standard properties ------------------------------ +## Component standard properties All Landlab components offer a standardized interface. This provides automated information on the fields, units, etc. that the component works with, creates, and/or modifies. For a fully compliant component, you will find you can call the following methods and attributes. - -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ | Property | Description | -+======================================================================================================+========================================================+ -| :py:meth:`Component.name ` | a string | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.input_var_names ` | a tuple giving input field names | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.output_var_names ` | a tuple giving output field names | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.var_loc ` | a tuple of (var_name, ['node', 'link', etc]) | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.definitions ` | a tuple of pairs of (var_name, short description) | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.units ` | a tuple of (var_name, ['m', 'Pa', etc]) | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.var_units('field') ` | method to return the unit of 'field' | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.var_definition('field') ` | method to return a short description of 'field' | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.var_mapping('field') ` | method to return the element of 'field' (e.g., 'node') | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.var_type('field') ` | method to return dtype of 'field' (e.g., float) | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ -| :py:meth:`Component.var_help('field') ` | a text summary of all of this information for 'field' | -+------------------------------------------------------------------------------------------------------+--------------------------------------------------------+ - - -See :ref:`the tutorials ` for +| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | +| {py:meth}`Component.name ` | a string | +| {py:meth}`Component.input_var_names ` | a tuple giving input field names | +| {py:meth}`Component.output_var_names ` | a tuple giving output field names | +| {py:meth}`Component.var_loc ` | a tuple of (var_name, \['node', 'link', etc\]) | +| {py:meth}`Component.definitions ` | a tuple of pairs of (var_name, short description) | +| {py:meth}`Component.units ` | a tuple of (var_name, \['m', 'Pa', etc\]) | +| {py:meth}`Component.var_units('field') ` | method to return the unit of 'field' | +| {py:meth}`Component.var_definition('field') ` | method to return a short description of 'field' | +| {py:meth}`Component.var_mapping('field') ` | method to return the element of 'field' (e.g., 'node') | +| {py:meth}`Component.var_type('field') ` | method to return dtype of 'field' (e.g., float) | +| {py:meth}`Component.var_help('field') ` | a text summary of all of this information for 'field' | + +See {ref}`the tutorials ` for examples of use cases with one, two, and more coupled components. You can also get an overview of field usage by all components through Landlab's command line interface. See -:ref:`here ` +{ref}`here ` for more information. -.. _component_standard_names: +(component-standard-names)= -Landlab standard naming conventions ------------------------------------ +## Landlab standard naming conventions The Landlab component library attempts to make use of a relatively standardized set of names across the various components, in order to maximize ease of component coupling. If you're familiar with -the concept of the `CSDMS standard naming conventions -`_, note that we have tried to strike a balance +the concept of the [CSDMS standard naming conventions](https://csdms.colorado.edu/wiki/CSDMS_Standard_Names), note that we have tried to strike a balance between the rigor and uniqueness of those names and a more user-friendly, succinct approach. Nonetheless, you may recognize the basic style of the names: - **thing_described__what_is_described** +> **thing_described\_\_what_is_described** -e.g., *topographic__elevation*, *water_surface__gradient*, *water__volume_flux* +e.g., *topographic\_\_elevation*, *water_surface\_\_gradient*, *water\_\_volume_flux* -We compile three tables to assist users with the :ref:`Landlab standard names`. +We compile three tables to assist users with the {ref}`Landlab standard names`. - First is a list of all names with their definitions. - Second is a table listing which components use each field. - Third is a table listing which components provide each field. - -See :ref:`here ` for a list of changes to the standard -name list associated with the release of Landlab version 1.x (relative to 0.x). - - -Dealing with nonstandard names -++++++++++++++++++++++++++++++ +### Dealing with nonstandard names The large number of developers on Landlab and historical accident have meant that despite our best efforts you'll inevitably find instances where different components use different names @@ -254,7 +230,9 @@ for the same thing. In these cases, you need to make equivalent two fields in th have different names so that two components can talk to each other. This is actually easy; you can just do: +```pycon >>> mg.add_field("node", "second_name", mg.at_node["first_name"]) +``` Note that we are making slow progress towards truly standardizing the component library, but these kind of idiosyncrasies might yet persist for a while! diff --git a/docs/source/user_guide/dupuit_theory.md b/docs/source/user_guide/dupuit_theory.md new file mode 100644 index 0000000000..4b10792b32 --- /dev/null +++ b/docs/source/user_guide/dupuit_theory.md @@ -0,0 +1,180 @@ +--- +orphan: true +--- + +(dupuit-theory)= + +# Theory and Implementation of GroundwaterDupuitPercolator + +## Governing Equations + +Variably-saturated groundwater flow is often assumed to be governed by +the Richards equation, which describes how water content and/or total +energy potential evolve in an idealized porous medium due to fluxes of +water driven by gradients in total potential, $h = z + p/ \gamma$, +where $z$ is the elevation head, $p$ is the gage pressure, +and $\gamma$ is the specific weight of water. + +$$ +\frac{\partial \theta}{\partial t} = \frac{\partial}{\partial x} \bigg( k \frac{\partial h}{\partial x} \bigg) + \frac{\partial}{\partial y} \bigg( k \frac{\partial h}{\partial y} \bigg) + \frac{\partial}{\partial z} \bigg( k \frac{\partial h}{\partial z} \bigg) +$$ + +Here $\theta$ is the volumetric water content of the aquifer and +$k$ is the hydraulic conductivity, which may be a function of +$\theta$. Here we use the widely applied Dupuit-Forcheimer +approximation, which is valid when the aquifer is laterally extensive in +comparison to its thickness, and the capillary fringe above the water +table is relatively thin. If this is the case, the component of the +hydraulic gradient normal to the aquifer base can be neglected, and the +water table can be treated as a free surface. Consequently, the total +head is equal to the water table elevation, $h=z$. With these +assumptions, an adjusted governing equation can be written for the time +evolution of the water table elevation: + +$$ +n \frac{\partial h}{\partial t} = \frac{\partial}{\partial x} \bigg( k_{sat} h \frac{\partial h}{\partial x} \bigg) + \frac{\partial}{\partial y} \bigg( k_{sat} h \frac{\partial h}{\partial y} \bigg) +$$ + +where $n$ is the drainable porosity, and $k_{sat}$ is the +saturated hydraulic conductivity. + +:::{figure} images/water_table_schematic.png +:align: center +:alt: Aquifer schematic. +:scale: 50% + +Aquifer schematic showing vertical aquifer thickness $h$, bed-normal +aquifer thickness $\eta$, and water table elevation $z$. +::: + +When the aquifer base is sloping, the governing equations must be adjusted. +Childs (1971) provides the governing equation for the groundwater specific discharge as: + +$$ +q_{x'} = - k_{sat} \eta \frac{\partial z}{\partial x'} +$$ + +where $x'$ is the coordinate parallel to the impermeable base, and $\eta$ +is the aquifer thickness perpendicular to the impermeable base ([^footnote-2]). +The `GroundwaterDupuitPercolator` treats two additional fluxes that affect +aquifer storage: groundwater return flow to the surface $q_s$, and +recharge from precipitation $f$. Implementations of the Dupuit-Forcheimer +model often encounter numerical instabilities as the water table intersects the +land surface. To alleviate this problem, we use the regularization approach +introduced by Marcais et al. (2017), which smooths the transition between +surface and subsurface flow ([^footnote-1]). The complete governing equations in the +base-parallel reference frame $(x',y')$ are: + +$$ +\begin{aligned} +n \frac{\partial \eta}{\partial t} &= f \cos(\alpha) - q_s \cos(\alpha) - \nabla' \cdot q \\ +q &= -k_{sat} \eta \big( \nabla' z ) \\ +q_s &= \mathcal{G}_r \bigg( \frac{\eta}{d'} \bigg) \mathcal{R} \big(-\nabla' \cdot q + f \cos(\alpha) \big) \\\end{aligned} +$$ + +where $\alpha$ is the slope angle of aquifer base, and $d'$ is the +permeable thickness normal to the aquifer base. The gradient operator +$\nabla'$ and divergence operator $\nabla' \cdot$ are calculated +with respect to the base-parallel coordinate system. Note that the surface runoff +is the sum of both groundwater return flow and precipitation on saturated area. + +The expression for $q_s$ utilizes two regularization functions $\mathcal{G}_r$ and $\mathcal{R}$: + +$$ +\mathcal{G}_r(r,u) = \exp \bigg( - \frac{1-u}{r} \bigg) +$$ + +$$ +\mathcal{R}(u) = u \mathcal{H}(u) +$$ + +where $r$ is a user-specified regularization factor and +$\mathcal{H}(u)$ is the Heaviside step function: + +$$ +\mathcal{H}(u) = \left\{ +\begin{array}{ll} + 0 & u<0 \\[8pt] + 1 & u \geq 0 +\end{array} +\right. +$$ + +:::{figure} images/GDP_regularization.png +:align: center +:alt: Regularization functions +:scale: 40% + +Regularization functions +::: + +To recast the problem in terms of the horizontal coordinate system used by Landlab, +we make the substitutions $\eta = h \cos(\alpha)$, $x = x' \cos(\alpha)$, +and $y = y' \cos(\alpha)$. In the horizontal coordinate system $(x,y)$, the +governing equations are: + +$$ +\begin{aligned} +n \frac{\partial h}{\partial t} &= f - q_s - \nabla \cdot q \\ +q &= -k_{sat} \cos^2(\alpha) h \big( \nabla z ) \\ +q_s &= \mathcal{G}_r \bigg( \frac{h}{d} \bigg) \mathcal{R} \big(f - \nabla \cdot q \big) \\\end{aligned} +$$ + +where $d$ is the vertical regolith thickness, and the gradient operator +$\nabla$ and divergence operator $\nabla \cdot$ are calculated with +respect to the horizontal coordinate system $(x,y)$. + +## Numerical Implementation + +We use an explicit, forward-in-time finite-volume method to solve the +governing equations. In this method, gradients are calculated at links +(between volume centers), and flux divergences are calculated at nodes +(at volume centers). The governing equation with timestep +$\Delta t$ is: + +$$ +n \bigg( \frac{h^{t+\Delta t} - h^t}{\Delta t} \bigg) = f^t - q_s^t - \nabla \cdot q^t +$$ + +Below is a description of the components needed to calculate the right +side of this equation. To calculate the groundwater flux $q$, the +gradients of aquifer base elevation $b$ and water table elevation +$z$ must be determined. The slope angle of the aquifer base is +calculated from the aquifer base elevation $b$: + +$$ +\begin{aligned} + \alpha_{ij} =& \arctan \big( (\nabla b)_{ij} \big) \\ + \big( \nabla b \big)_{ij} =& \frac{b_{i} - b_{j}}{L_{ij}}\end{aligned} +$$ + +where the subscripts $i$ and $j$ indicate the nodes at the +head and tail of the link respectively, and $L_{ij}$ is the length +of the link. The gradient $\nabla z$ is calculated on link $ij$ as: + +$$ +\big( \nabla z \big)_{ij} = \frac{z_{i} - z_{j}}{L_{ij}} +$$ + +Flux divergence is calculated by summing the fluxes into an out of the +links that connect to a node. The divergence of the groundwater flux is: + +$$ +\big( \nabla \cdot q \big)_i = \frac{1}{A_i} \sum_{j \in S} \delta_{ij} q_{ij} \lambda_{ij} +$$ + +where $A_i$ is the area of node $i$, $S$ is the set of +nodes that have links that connect to node $i$, and +$\delta_{ij}$ is a function that is equal to +1 if the link points +away from the node (the tail of the link is at node $i$), and +equal to -1 if the link points toward the node (the head of the link is +at node $i$). The groundwater flux on the link is $q_{ij}$ +and the width of the face through which $q_{ij}$ passes is +$\lambda_{ij}$. + +References: + +[^footnote-1]: Marçais, J., de Dreuzy, J. R. & Erhel, J. Dynamic coupling of subsurface and seepage flows solved within a regularized partition formulation. + Advances in Water Resources 109, 94–105 (2017). + +[^footnote-2]: Childs, E. C. Drainage of Groundwater Resting on a Sloping Bed. Water Resources Research 7, 1256–1263 (1971). diff --git a/docs/source/user_guide/examples.rst b/docs/source/user_guide/examples.rst deleted file mode 100644 index d47a07542f..0000000000 --- a/docs/source/user_guide/examples.rst +++ /dev/null @@ -1,51 +0,0 @@ -.. _examples: - -Examples -======== - -Welcome to the **Landlab** gallery of examples! - - -Overland Flow -------------- - -.. image:: images/SS_vs_OverlandFlow_Cartoon.jpg - :width: 300px - :align: center - -Square Basin ------------- - -.. image:: images/SquareBasin.jpg - :width: 300px - :align: center - -Flexure -------- - -.. image:: images/flexure.png - :width: 300px - :align: center - :target: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/flexure/lots_of_loads.ipynb - -Hydrograph of Changing Storm Intensity --------------------------------------- - -.. image:: images/Hydrograph_ChangingIntensity.jpg - :width: 300px - :align: center - -Topographic Elevation ---------------------- - -.. image:: images/topographic-elevation.png - :width: 300px - :align: center - :target: https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/component_tutorial/component_tutorial.ipynb - -CA Transition -------------- - -.. image:: images/transition_example.png - :width: 300px - :align: center diff --git a/docs/source/user_guide/faq.md b/docs/source/user_guide/faq.md new file mode 100644 index 0000000000..21988f8b86 --- /dev/null +++ b/docs/source/user_guide/faq.md @@ -0,0 +1,170 @@ +(faq)= + +# Frequently Asked Questions + +## What is the difference between a cell and a node? + +A cell is a polygon surrounding a node. Nodes on the grid perimeter do not have +cells. Cells have area, nodes have coordinates. + +## Why is my node data a 1d array? I'm using a raster... + +All Landlab data structures have to be compatible with both regular and +irregular grids. A 2d structure for node data might make sense for a raster, +but it wouldn't work for an irregular grid - and moreover, there is also no +sensible way to represent link data as a 2d raster either, even for a raster. +Thus, instead, Landlab stores all data in an order set by *node ID number*. +For a raster, IDs begin at zero in the bottom left corner of the grid, then +run along each row in turn. For links, the IDs also start in the bottom left +and run across then up, but in this case all vertical links are listed, then +all horizontal links. Here's a sketch summary of this scheme for a 4x5 raster: + +``` +NODES: LINKS: +15------16------17------18------19 *--27-->*--28-->*--29-->*--30-->* +| | | | | ^ ^ ^ ^ ^ +| | | | | 22 23 24 25 26 +| | | | | | | | | | +10------11------12------13------14 *--18-->*--19-->*--20-->*--21-->* +| | | | | ^ ^ ^ ^ ^ +| | | | | 13 14 15 16 17 +| | | | | | | | | | +5-------6-------7-------8-------9 *---9-->*--10-->*--11-->*--12-->* +| | | | | ^ ^ ^ ^ ^ +| | | | | 4 5 6 7 8 +| | | | | | | | | | +0-------1-------2-------3-------4 *---0-->*---1-->*---2-->*---3-->* +``` + +## How do I set the boundary codes for the edges of a grid? + +By default, the boundary nodes around the perimeter of a grid are all +open boundaries. For a raster grid, if you want to make one or more sides +closed boundaries, use the grid method +{py:func}`RasterModelGrid.set_closed_boundaries_at_grid_edges `. + +The following code snippet sets the southern boundary nodes to be closed: + +```python +import landlab + +grid = landlab.RasterModelGrid(3, 4) +grid.set_closed_boundaries_at_grid_edges(True, False, False, False) +grid.status_at_node +array([4, 4, 4, 4, 1, 0, 0, 1, 1, 1, 1, 1], dtype=int8) +``` + +It's also possible to set the boundary conditions "by hand", if you know the ID of the element you're trying to change: +\: + +```python +mynodes_to_close = z < 0.0 # if z is some elevation field +grid.status_at_node[mynodes_to_close] = grid.BC_NODE_IS_CLOSED +my_fixed_node = mg.find_nearest_node((1.2, 2.3)) +my_fixed_node +9 +grid.status_at_node[my_fixed_node] = ( + grid.BC_NODE_IS_FIXED_GRADIENT +) # to fix the node closest to (1.2, 2.3) +``` + +See also: + +> - {py:func}`RasterModelGrid.set_fixed_value_boundaries_at_grid_edges ` +> - {py:func}`ModelGrid.set_nodata_nodes_to_closed ` + +## Can I import Landlab output into ParaView or VisIt? + +See {ref}`How do I get netCDF output? ` below. + +(how-do-i-get-netcdf-output)= + +## How do I get netCDF output? + +At present, Landlab can write output to a netCDF file if you are using a raster grid +(support for unstructured grids is coming later). To create netCDF output, use the function +{py:func}`landlab.io.netcdf.write_netcdf `. +This function will write to file + +1. the grid geometry, and +2. any data arrays that are linked to the grid + +this will automatically include any arrays that you created with functions +such as +{py:func}`landlab.grid.base.ModelGrid.add_zeros `, +as long as you provided a name for the array as one of the arguments. + +## How do I assign values from nodes to links? + +Suppose you have a set of values, such as water depths, that are defined at nodes. How do +you figure out what the corresponding values would be at the links, so you can multiply +these by some other quantity (such as water-surface slope) that is defined on links? Here +are some options: + +1. assign the *average* +2. assign the upstream value +3. assign the downstream value + +Look at this +[Tutorial](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/file=mappers/mappers.ipynb) +for all the Landlab mappers + +## How do I test whether my grid is regular or irregular? + +There are a number of cases when designing Landlab components where you'll want to do +something one way if the grid is a raster, or another if it's a Voronoi-derived type. +The way to do this is: + +```python +from landlab import RasterModelGrid, VoronoiDelaunayGrid + +# ... +if isinstance(mg, RasterModelGrid): + print("Doing it one way") +elif isinstance(mg, VoronoiDelaunayGrid): + print("Doing it the other way") +else: + raise TypeError("Landlab did not recognize your grid type!") +``` + +## How do I modify boundary conditions for part of the grid where I know the coordinates? + +See [this tutorial](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/boundary_conds/set_BCs_from_xy.ipynb). + +## I am having trouble installing Landlab on Ubuntu without Anaconda. What is the fix? + +Andy Wickert (5/16) suggests the following: + +"The version of setuptools that comes standard on Ubuntu is out-of-date with respect to Landlab's Cython code. Here is the fix:" + +```bash +sudo apt-get install python-setuptools # if you don't have it already +sudo easy_install pip +sudo apt-get remove python-setuptools +pip install setuptools # add "--upgrade" if needed +``` + +And then you can cd to landlab and this works: + +```bash +pip install -e . +``` + +## Support: How can I ask more questions and get help? + +File an issue at +[https://github.com/landlab/landlab](https://github.com/landlab/landlab/issues) +using the `New issue` button in the upper right. +Tell us about your issue, and we'll be in touch. + +## How do I keep in touch with Landlab developments? + +There are a few ways to follow Landlab developments. You can + +- follow Landlab on [Twitter](https://mobile.twitter.com/landlabtoolkit) @landlabtoolkit, +- "watch" Landlab's GitHub repository, +- file a pull request or an issue at [https://github.com/landlab/landlab](https://github.com/landlab/landlab), + +## Why are there no other FAQs besides these few? + +Because we need your questions. Please feel free to add your own questions by making a GitHub Issue. diff --git a/docs/source/user_guide/faq.rst b/docs/source/user_guide/faq.rst deleted file mode 100644 index 84f8236a5e..0000000000 --- a/docs/source/user_guide/faq.rst +++ /dev/null @@ -1,186 +0,0 @@ -.. _faq: - -Frequently Asked Questions -========================== - - -What is the difference between a cell and a node? -------------------------------------------------- - -A cell is a polygon surrounding a node. Nodes on the grid perimeter do not have -cells. Cells have area, nodes have coordinates. - -Why is my node data a 1d array? I'm using a raster... ------------------------------------------------------ - -All Landlab data structures have to be compatible with both regular and -irregular grids. A 2d structure for node data might make sense for a raster, -but it wouldn't work for an irregular grid - and moreover, there is also no -sensible way to represent link data as a 2d raster either, even for a raster. -Thus, instead, Landlab stores all data in an order set by *node ID number*. -For a raster, IDs begin at zero in the bottom left corner of the grid, then -run along each row in turn. For links, the IDs also start in the bottom left -and run across then up, but in this case all vertical links are listed, then -all horizontal links. Here's a sketch summary of this scheme for a 4x5 raster:: - - NODES: LINKS: - 15------16------17------18------19 *--27-->*--28-->*--29-->*--30-->* - | | | | | ^ ^ ^ ^ ^ - | | | | | 22 23 24 25 26 - | | | | | | | | | | - 10------11------12------13------14 *--18-->*--19-->*--20-->*--21-->* - | | | | | ^ ^ ^ ^ ^ - | | | | | 13 14 15 16 17 - | | | | | | | | | | - 5-------6-------7-------8-------9 *---9-->*--10-->*--11-->*--12-->* - | | | | | ^ ^ ^ ^ ^ - | | | | | 4 5 6 7 8 - | | | | | | | | | | - 0-------1-------2-------3-------4 *---0-->*---1-->*---2-->*---3-->* - - -How do I set the boundary codes for the edges of a grid? --------------------------------------------------------- - -By default, the boundary nodes around the perimeter of a grid are all -open boundaries. For a raster grid, if you want to make one or more sides -closed boundaries, use the grid method -:py:func:`RasterModelGrid.set_closed_boundaries_at_grid_edges `. - -The following code snippet sets the southern boundary nodes to be closed: - -.. code-block:: python - - import landlab - - grid = landlab.RasterModelGrid(3, 4) - grid.set_closed_boundaries_at_grid_edges(True, False, False, False) - grid.status_at_node - array([4, 4, 4, 4, 1, 0, 0, 1, 1, 1, 1, 1], dtype=int8) - -It's also possible to set the boundary conditions "by hand", if you know the ID of the element you're trying to change: -: - -.. code-block:: python - - mynodes_to_close = z < 0.0 # if z is some elevation field - grid.status_at_node[mynodes_to_close] = grid.BC_NODE_IS_CLOSED - my_fixed_node = mg.find_nearest_node((1.2, 2.3)) - my_fixed_node - 9 - grid.status_at_node[my_fixed_node] = ( - grid.BC_NODE_IS_FIXED_GRADIENT - ) # to fix the node closest to (1.2, 2.3) - -See also: - - - :py:func:`RasterModelGrid.set_fixed_value_boundaries_at_grid_edges ` - - :py:func:`ModelGrid.set_nodata_nodes_to_closed ` - - -Can I import Landlab output into ParaView or VisIt? ---------------------------------------------------- - -See :ref:`How do I get netCDF output? ` below. - -.. _how_do_i_get_netcdf_output: - -How do I get netCDF output? ---------------------------- - -At present, Landlab can write output to a netCDF file if you are using a raster grid -(support for unstructured grids is coming later). To create netCDF output, use the function -:py:func:`landlab.io.netcdf.write_netcdf `. -This function will write to file - -(1) the grid geometry, and -(2) any data arrays that are linked to the grid - -this will automatically include any arrays that you created with functions -such as -:py:func:`landlab.grid.base.ModelGrid.add_zeros `, -as long as you provided a name for the array as one of the arguments. - - -How do I assign values from nodes to links? -------------------------------------------- - -Suppose you have a set of values, such as water depths, that are defined at nodes. How do -you figure out what the corresponding values would be at the links, so you can multiply -these by some other quantity (such as water-surface slope) that is defined on links? Here -are some options: - -(1) assign the *average* -(2) assign the upstream value -(3) assign the downstream value - -Look at this -`Tutorial `_ -for all the Landlab mappers - -How do I test whether my grid is regular or irregular? ------------------------------------------------------- - -There are a number of cases when designing Landlab components where you'll want to do -something one way if the grid is a raster, or another if it's a Voronoi-derived type. -The way to do this is: - -.. code-block:: python - - from landlab import RasterModelGrid, VoronoiDelaunayGrid - - # ... - if isinstance(mg, RasterModelGrid): - print("Doing it one way") - elif isinstance(mg, VoronoiDelaunayGrid): - print("Doing it the other way") - else: - raise TypeError("Landlab did not recognize your grid type!") - - -How do I modify boundary conditions for part of the grid where I know the coordinates? --------------------------------------------------------------------------------------- - -See `this tutorial `_. - -I am having trouble installing Landlab on Ubuntu without Anaconda. What is the fix? ------------------------------------------------------------------------------------ - -Andy Wickert (5/16) suggests the following: - -"The version of setuptools that comes standard on Ubuntu is out-of-date with respect to Landlab's Cython code. Here is the fix:" - -.. code-block:: bash - - sudo apt-get install python-setuptools # if you don't have it already - sudo easy_install pip - sudo apt-get remove python-setuptools - pip install setuptools # add "--upgrade" if needed - -And then you can cd to landlab and this works: - -.. code-block:: bash - - pip install -e . - -Support: How can I ask more questions and get help? ---------------------------------------------------- - -File an issue at -`https://github.com/landlab/landlab `__ -using the ``New issue`` button in the upper right. -Tell us about your issue, and we'll be in touch. - -How do I keep in touch with Landlab developments? -------------------------------------------------- - -There are a few ways to follow Landlab developments. You can - -- follow Landlab on `Twitter `_ @landlabtoolkit, -- "watch" Landlab's GitHub repository, -- file a pull request or an issue at `https://github.com/landlab/landlab `__, - -Why are there no other FAQs besides these few? ----------------------------------------------- - -Because we need your questions. Please feel free to add your own questions by making a GitHub Issue. diff --git a/docs/source/user_guide/field_definitions.md b/docs/source/user_guide/field_definitions.md new file mode 100644 index 0000000000..eabcf0da09 --- /dev/null +++ b/docs/source/user_guide/field_definitions.md @@ -0,0 +1,45 @@ +(standard-name-definitions)= + +# List of Landlab Fields + +The following tables list all of the field names used by *landlab* components. The *Used By* tab lists +component that use a given field (i.e. it is an input for the component), while the *Provided By* tab lists +components that provide the field as output. + +`````{jinja} llcats +````{{"{"}}tab{{"}"}} Description +``` {{"{"}}list-table{{"}"}} +:widths: 50 50 +:header-rows: 0 + +{% for name, info in fields |dictsort %} +* - *{{name}}* + - {{info['desc']}} +{% endfor %} +``` +```` + +````{{"{"}}tab{{"}"}} Used By +``` {{"{"}}list-table{{"}"}} +:widths: 50 50 +:header-rows: 0 + +{% for name, info in fields |dictsort %} +* - *{{name}}* + - {% if info['used_by'] %}{% for cls in info['used_by'] %}{{"{"}}class{{"}"}}`~{{cls}}` {% endfor %}{% endif %} +{% endfor %} +``` +```` + +````{{"{"}}tab{{"}"}} Provided By +``` {{"{"}}list-table{{"}"}} +:widths: 50 50 +:header-rows: 0 + +{% for name, info in fields |dictsort %} +* - *{{name}}* + - {% if info['provided_by'] %}{% for cls in info['provided_by'] %}{{"{"}}class{{"}"}}`~{{cls}}` {% endfor %}{% endif %} +{% endfor %} +``` +```` +````` diff --git a/docs/source/user_guide/field_definitions.rst b/docs/source/user_guide/field_definitions.rst deleted file mode 100644 index be8b92d9df..0000000000 --- a/docs/source/user_guide/field_definitions.rst +++ /dev/null @@ -1,44 +0,0 @@ -.. _standard_name_definitions: - -====================== -List of Landlab Fields -====================== - -The following tables list all of the field names used by *landlab* components. The *Used By* tab lists -component that use a given field (i.e. it is an input for the component), while the *Provided By* tab lists -components that provide the field as output. - -.. jinja:: llcats - - .. tab:: Description - - .. list-table:: - :widths: 50 50 - :header-rows: 0 - - {% for name, info in fields |dictsort %} - * - *{{name}}* - - {{info['desc']}} - {% endfor %} - - .. tab:: Used By - - .. list-table:: - :widths: 50 50 - :header-rows: 0 - - {% for name, info in fields |dictsort %} - * - *{{name}}* - - {% if info['used_by'] %}{% for cls in info['used_by'] %}:py:class:`~{{cls}}` {% endfor %}{% endif %} - {% endfor %} - - .. tab:: Provided By - - .. list-table:: - :widths: 50 50 - :header-rows: 0 - - {% for name, info in fields |dictsort %} - * - *{{name}}* - - {% if info['provided_by'] %}{% for cls in info['provided_by'] %}:py:class:`~{{cls}}` {% endfor %}{% endif %} - {% endfor %} diff --git a/docs/source/user_guide/grid.rst b/docs/source/user_guide/grid.md similarity index 61% rename from docs/source/user_guide/grid.rst rename to docs/source/user_guide/grid.md index 9095354b3a..300c8dd5a0 100644 --- a/docs/source/user_guide/grid.rst +++ b/docs/source/user_guide/grid.md @@ -1,8 +1,6 @@ -.. _grid_user_guide: +(grid-user-guide)= -****************************************** -Introduction to Landlab's Gridding Library -****************************************** +# Introduction to Landlab's Gridding Library When creating a two-dimensional simulation model, often the most time-consuming and error-prone task involves writing the code to set up the underlying grid. Irregular @@ -38,33 +36,31 @@ Some of the Landlab capabilities that work with **ModelGrid** to enable easy num - Create models by coupling together your own and/or pre-built process components - Use models built by others from process components - This document provides a basic introduction to building applications using Landlab's **ModelGrid**. It covers: (1) how grids are represented, and (2) a set of tutorial examples that illustrate how to build models using simple scripts. -How a Grid is Represented -------------------------- +## How a Grid is Represented -.. _basic_grid_elements: +(basic-grid-elements)= -Basic Grid Elements -------------------- +## Basic Grid Elements -.. figure:: images/grid_schematic_ab.png - :figwidth: 80% - :align: center +:::{figure} images/grid_schematic_ab.png +:align: center +:figwidth: 80% - *Figure 1*: Elements of a model grid. The main grid elements are nodes, links, cells, - and faces. - Less commonly used elements include corners, patches, and junctions. In the - spring 2015 version of Landlab, **ModelGrid** can implement raster (a) and - Voronoi-Delaunay (b) grids. Ordered subtypes of Voronoi-Delaunay grids—radial - and hexagonal—are also available. - (Note that not all links and patches are shown, and only one representative cell is - shaded.) +*Figure 1*: Elements of a model grid. The main grid elements are nodes, links, cells, +and faces. +Less commonly used elements include corners, patches, and junctions. In the +spring 2015 version of Landlab, **ModelGrid** can implement raster (a) and +Voronoi-Delaunay (b) grids. Ordered subtypes of Voronoi-Delaunay grids—radial +and hexagonal—are also available. +(Note that not all links and patches are shown, and only one representative cell is +shaded.) +::: -:ref:`Figure 1 ` illustrates +{ref}`Figure 1 ` illustrates how **ModelGrid** represents a simulation grid. The grid contains a set of *(x,y)* points called **nodes**. In a typical finite-difference or finite-volume model, nodes are the locations at which one tracks @@ -78,57 +74,55 @@ runs from one node (known as its **from-node** or **tail-node**) to another node (known as its **to-node** or **head-node**). Every node in the grid interior is associated with a polygon known as a **cell** (illustrated, -for example, by the shaded square region in :ref:`Figure 1a `). Each cell is +for example, by the shaded square region in {ref}`Figure 1a `). Each cell is bounded by a set of line segments known as **faces**, which it shares with its neighboring cells. In the simple case of a regular (raster) grid, the cells are square, the nodes -are the center points of the cells (:ref:`Figure 1 `), and the links and faces have +are the center points of the cells ({ref}`Figure 1 `), and the links and faces have identical length (equal to the node spacing). In a Voronoi-Delaunay grid, the cells are Voronoi polygons (also known as Theissen polygons) -(:ref:`Figure 1a `). In this case, each cell represents the surface area that +({ref}`Figure 1a `). In this case, each cell represents the surface area that is closer to its own node than to any other node in the grid. The faces represent locations that are equidistant between two neighboring nodes. Other grid configurations are possible as well. The spring 2015 version of Landlab includes support for hexagonal and radial grids, which are specialized versions of the -Voronoi-Delaunay grid shown in :ref:`Figure 1a `. Note that the node-link-cell-face +Voronoi-Delaunay grid shown in {ref}`Figure 1a `. Note that the node-link-cell-face topology is general enough to represent other types of grid; for example, one could use **ModelGrid's** data structures to implement a quad-tree grid, or a Delaunay-Voronoi grid in which cells are triangular elements with nodes at their circumcenters. -Creating a Grid ---------------- +## Creating a Grid Creating a grid is easy. The first step is to import Landlab's -:py:class:`RasterModelGrid ` class (this -assumes you have :ref:`installed Landlab `) - -.. code-block:: python +{py:class}`RasterModelGrid ` class (this +assumes you have {ref}`installed Landlab `) - >>> from landlab import RasterModelGrid +```python +>>> from landlab import RasterModelGrid +``` Now, create a regular (raster) grid with 10 rows and 40 columns, with a node spacing (dx) of 5: -.. code-block:: python - - >>> mg = RasterModelGrid((10, 40), 5.0) - -*mg* is now a grid object with 400 ``( 10*40 )`` nodes and 750 ``( 40*(10-1) + 30*(10-1) )`` links. +```python +>>> mg = RasterModelGrid((10, 40), 5.0) +``` -.. code-block:: python +*mg* is now a grid object with 400 `( 10*40 )` nodes and 750 `( 40*(10-1) + 10*(40-1) )` links. - >>> mg.number_of_node_columns - 40 - >>> mg.number_of_nodes - 400 - >>> mg.number_of_links - 750 +```python +>>> mg.number_of_node_columns +40 +>>> mg.number_of_nodes +400 +>>> mg.number_of_links +750 +``` -.. _fields: +(fields)= -Adding Data to a Landlab Grid Element using Fields --------------------------------------------------- +## Adding Data to a Landlab Grid Element using Fields Landlab has a data structure called *fields* that will store data associated with different types of grid elements. Fields are convenient because 1) fields create data arrays of the proper length for @@ -140,74 +134,74 @@ track the elevation at each node. The following code creates a data field (array) called *elevation*. In this case, we'll use the grid method *add_zeros* to create a field that initially sets all values in the field to zero (we'll explain how to read in elevation values from a file in the section -on :ref:`DEMs below `). The *add_zeros* method takes +on {ref}`DEMs below `). The *add_zeros* method takes two arguments: the name of the grid element (in this case, *node*, in the singular) and a name we choose for the value in the data field (here we'll just call it *elevation*). Each *elevation* value in the data field is then associated with a specific grid node. The data field is just a NumPy array whose length is equal to the number of nodes in the grid. -.. code-block:: python - - >>> z = mg.add_zeros("elevation", at="node") +```python +>>> z = mg.add_zeros("elevation", at="node") +``` Here *z* is an array of zeros. We can verify that *z* has the same length as the number of nodes: -.. code-block:: python - - >>> z.size # or len(z) - 400 +```python +>>> z.size # or len(z) +400 +``` Note that *z* is a reference to the data stored in the model field. This means that if you change z, you also change the data in the ModelGrid's elevation field. Therefore, you can access and manipulate data in the field either through the variable *z* or through the grid, as in the following examples: -.. code-block:: python - - >>> mg.at_node["elevation"][5] = 1000.0 +```python +>>> mg.at_node["elevation"][5] = 1000.0 +``` or the alternative notation: -.. code-block:: python - - >>> mg["node"]["elevation"][5] - 1000. +```python +>>> mg["node"]["elevation"][5] +1000. +``` Now the sixth element in the model's elevation field array, or in *z*, is equal to 1000. (Remember that the first element of a Python array has an index of 0 (zero)). You can see all of the field data available at the nodes on *mg* with the following: -.. code-block:: python - - >>> mg.at_node.keys() - ['elevation'] +```python +>>> mg.at_node.keys() +['elevation'] +``` You may recognize this as a dictionary-type structure, where the keys are the names (as strings) of the data arrays. There are currently no data values (fields) assigned to the links, as shown by the following: -.. code-block:: python - - >>> mg.at_link.keys() - [] +```python +>>> mg.at_link.keys() +[] +``` It is also possible, and indeed, often quite useful, to initialize a field from an existing NumPy array of data. You can do this with the -:py:func:`add_field ` method. +{py:func}`add_field ` method. This method allows slightly more granular control over how the field gets created. In addition to the grid element and field name, this method takes an -array of values to assign to the field. Optional arguments include: ``units=`` -to assign a unit of measurement (as a string) to the value, ``copy=`` a boolean -to determine whether to make a copy of the data, and ``clobber=`` a boolean +array of values to assign to the field. Optional arguments include: `units=` +to assign a unit of measurement (as a string) to the value, `copy=` a boolean +to determine whether to make a copy of the data, and `clobber=` a boolean that prevents accidentally overwriting an existing field. -.. code-block:: python - - >>> import numpy as np - >>> elevs_in = np.random.rand(mg.number_of_nodes) - >>> mg.add_field( - ... "elevation", elevs_in, at="node", units="m", copy=True, clobber=True - ... ) +```python +>>> import numpy as np +>>> elevs_in = np.random.rand(mg.number_of_nodes) +>>> mg.add_field( +... "elevation", elevs_in, at="node", units="m", copy=True, clobber=True +... ) +``` Fields can store data at nodes, cells, links, faces, patches, junctions, and corners (though the latter two or three are very rarely, if ever, used). The grid element you select is @@ -217,70 +211,69 @@ sometimes see these terms used as input parameters to various grid methods. To access only the core nodes, core cells, active links, or some other subset of node values using the properties available through the ModelGrid, you can specify a subset of the field data array. For example, if we wanted to determine the elevations at core nodes only we can do the following: -.. code-block:: python - - >>> core_node_elevs = mg.at_node["elevation"][mg.core_nodes] +```python +>>> core_node_elevs = mg.at_node["elevation"][mg.core_nodes] +``` The first set of brackets, in this case *elevation*, indicates the field data array, and the second set of brackets, in this case *mg.core_nodes* (itself an array of core node IDs), is a NumPy filter that specifies which *elevation* elements to return. Here is another example of initializing a field with the *add_ones* method. Note that when initializing a field, the singular of the grid element type is provided: -.. code-block:: python - - >>> veg = mg.add_ones("percent_vegetation", at="cell") - >>> mg.at_cell.keys() - ['percent_vegetation'] +```python +>>> veg = mg.add_ones("percent_vegetation", at="cell") +>>> mg.at_cell.keys() +['percent_vegetation'] +``` Here *veg* is an array of ones that has the same length as the number of cells. Because there are no cells around the edge of a grid, there are fewer cells than nodes: -.. code-block:: python - - >>> mg.at_cell["percent_vegetation"].size - 304 +```python +>>> mg.at_cell["percent_vegetation"].size +304 +``` As you can see, fields are convenient because you don't have to keep track of how many nodes, links, cells, etc. there are on the grid. It is easy for any part of the code to query what data are already associated with the grid and operate on these data. You are free to call your fields whatever you want. However, field names are more useful if standardized across components. If you are writing a Landlab component -you should use :ref:`Landlab's standard names `. +you should use {ref}`Landlab's standard names `. Standard names for fields in a particular component can be accessed individually through the properties -*component_instance._input_var_names* and *component_instance._output_var_names* +*component_instance.\_input_var_names* and *component_instance.\_output_var_names* (returned as dictionaries), and are listed in the docstring for each component. -.. code-block:: python - - >>> from landlab.components.flexure import Flexure - >>> flexer = Flexure(rg) - >>> flexer._input_var_names - {'lithosphere__elevation', - 'lithosphere__overlying_pressure', - 'planet_surface_sediment__deposition_increment'} - >>> flexer._output_var_names - {'lithosphere__elevation', 'lithosphere__elevation_increment'} +```python +>>> from landlab.components.flexure import Flexure +>>> flexer = Flexure(rg) +>>> flexer._input_var_names +{'lithosphere__elevation', + 'lithosphere__overlying_pressure', + 'planet_surface_sediment__deposition_increment'} +>>> flexer._output_var_names +{'lithosphere__elevation', 'lithosphere__elevation_increment'} +``` We also maintain this list of all the -:ref:`Landlab standard names `. +{ref}`Landlab standard names `. -Our fields also offer direct compatibility with `CSDMS's standard naming system for -variables `_. +Our fields also offer direct compatibility with [CSDMS's standard naming system for +variables](https://csdms.colorado.edu/wiki/CSDMS_Standard_Names). However, note that, for ease of use and readability, Landlab standard names are typically much shorter than CSDMS standard names. We anticipate that future Landlab versions will be able to automatically map from Landlab standard names to CSDMS -standard names as part of Landlab's built-in `Basic Model Interface for CSDMS -compatibility `_. +standard names as part of Landlab's built-in [Basic Model Interface for CSDMS +compatibility](https://csdms.colorado.edu/wiki/BMI_Description). The following gives an overview of the commands you can use to interact with the grid fields. -Field initialization -^^^^^^^^^^^^^^^^^^^^ +### Field initialization -* ``grid.add_empty(name, at="group", units="-")`` -* ``grid.add_ones(name, at="group", units="-")`` -* ``grid.add_zeros(name, at="group", units="-")`` +- `grid.add_empty(name, at="group", units="-")` +- `grid.add_ones(name, at="group", units="-")` +- `grid.add_zeros(name, at="group", units="-")` "group" is one of 'node', 'link', 'cell', 'face', 'corner', 'junction', 'patch' @@ -288,11 +281,9 @@ Field initialization "units" (optional) is a string denoting the units associated with the field values. +### Field creation from existing data -Field creation from existing data -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* ``grid.add_field(name, value_array, at="group", units="-", copy=False, clobber=True)`` +- `grid.add_field(name, value_array, at="group", units="-", copy=False, clobber=True)` Arguments as above, plus: @@ -302,59 +293,52 @@ Arguments as above, plus: "clobber" (optional) if `False`, raises an exception if a field called name already exists. +### Field access -Field access -^^^^^^^^^^^^ - -* ``grid.at_node`` or ``grid['node']`` -* ``grid.at_cell`` or ``grid['cell']`` -* ``grid.at_link`` or ``grid['link']`` -* ``grid.at_face`` or ``grid['face']`` -* ``grid.at_corner`` or ``grid['corner']`` -* ``grid.at_junction`` or ``grid['junction']`` -* ``grid.at_patch`` or ``grid['patch']`` +- `grid.at_node` or `grid['node']` +- `grid.at_cell` or `grid['cell']` +- `grid.at_link` or `grid['link']` +- `grid.at_face` or `grid['face']` +- `grid.at_corner` or `grid['corner']` +- `grid.at_junction` or `grid['junction']` +- `grid.at_patch` or `grid['patch']` Each of these is then followed by the field name as a string in square brackets, e.g., -.. code-block:: python - - >>> grid.at_node["my_field_name"] # or - >>> grid["node"]["my_field_name"] +```python +>>> grid.at_node["my_field_name"] # or +>>> grid["node"]["my_field_name"] +``` You can also use these commands to create fields from existing arrays, -as long as you don't want to take advantage of the added control ``add_field()`` gives you. - +as long as you don't want to take advantage of the added control `add_field()` gives you. -.. _getting_info_about_fields: +(getting-info-about-fields)= -Getting information about fields -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +### Getting information about fields Landlab offers a command line interface that lets you find out about all the fields that are in use across all the Landlab components. You can find out the following: -``$ landlab used_by [ComponentName]`` # What fields does ComponentName take as inputs? +`$ landlab used_by [ComponentName]` # What fields does ComponentName take as inputs? -``$ landlab provided_by [ComponentName]`` # What fields does ComponentName give as outputs? +`$ landlab provided_by [ComponentName]` # What fields does ComponentName give as outputs? -``$ landlab uses [field__name]`` # What components take the field field__name as an input? +`$ landlab uses [field__name]` # What components take the field field\_\_name as an input? -``$ landlab provides [field__name]`` # What components give the field field__name as an output? +`$ landlab provides [field__name]` # What components give the field field\_\_name as an output? -``$ landlab list`` # list all the components +`$ landlab list` # list all the components -``$ (landlab provided_by && landlab used_by) | sort | uniq`` # some command line magic to see all the fields currently used in components +`$ (landlab provided_by && landlab used_by) | sort | uniq` # some command line magic to see all the fields currently used in components - -Representing Gradients in a Landlab Grid ----------------------------------------- +## Representing Gradients in a Landlab Grid Finite-difference and finite-volume models usually need to calculate spatial gradients in one or more scalar variables, and often these gradients are evaluated between pairs of adjacent nodes. ModelGrid makes these calculations easier for programmers by providing built-in functions to calculate gradients along links and allowing applications to associate an array of gradient values -with their corresponding links or edges. The `tutorial examples -`_ +with their corresponding links or edges. The [tutorial examples](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/welcome.ipynb) illustrate how this capability can be used to create models of processes such as diffusion and overland flow. @@ -362,21 +346,19 @@ Here we simply illustrate the method for calculating gradients on the links. Remember that we have already created the elevation array z, which is also accessible from the elevation field on *mg*. -.. code-block:: python - - >>> gradients = mg.calculate_gradients_at_active_links(z) +```python +>>> gradients = mg.calculate_gradients_at_active_links(z) +``` Now gradients have been calculated at all links that are active, or links on which flow is possible (see boundary conditions below). +## Other Grid Elements -Other Grid Elements -------------------- - -The cell vertices are called *corners* (`Figure 1, solid squares `). +The cell vertices are called *corners* (`Figure 1, solid squares `). Each face is therefore a line segment connecting two corners. The intersection of a face and a link (or directed edge) is known as a *junction* -(:ref:`Figure 1, open diamonds `). Often, it is useful to calculate scalar +({ref}`Figure 1, open diamonds `). Often, it is useful to calculate scalar values (say, ice thickness in a glacier) at nodes, and vector values (say, ice velocity) at junctions. This approach is sometimes referred to as a staggered-grid scheme. It lends itself naturally to finite-volume methods, in @@ -385,23 +367,22 @@ maintains conservation of mass within cells. (In the spring 2015 version of Lan there are no supporting functions for the use of junctions, but support is imminent.) Notice that the links also enclose a set of polygons that are offset from the -cells. These secondary polygons are known as *patches* (:ref:`Figure 1, -dotted `). This means that any grid comprises two complementary tesselations: one +cells. These secondary polygons are known as *patches* ({ref}`Figure 1, +dotted `). This means that any grid comprises two complementary tesselations: one made of cells, and one made of patches. If one of these is a Voronoi tessellation, the other is a Delaunay triangulation. For this reason, Delaunay triangulations and Voronoi diagrams are said to be dual to one another: for any given Delaunay triangulation, there is a unique corresponding Voronoi diagram. With **ModelGrid,** one can create a mesh with Voronoi polygons as cells and Delaunay triangles as patches -(:ref:`Figure 1b `). Alternatively, with a raster grid, one simply has +({ref}`Figure 1b `). Alternatively, with a raster grid, one simply has two sets of square elements that are offset by half the grid spacing -(:ref:`Figure 1a `). Whatever the form of the tessellation, **ModelGrid** keeps +({ref}`Figure 1a `). Whatever the form of the tessellation, **ModelGrid** keeps track of the geometry and topology of the grid. patches can be useful for processes like calculating the mean gradient at a node, incorporating influence from its neighbors. -Managing Grid Boundaries ------------------------- +## Managing Grid Boundaries An important component of any numerical model is the method for handling boundary conditions. In general, it's up to the application developer to manage @@ -413,43 +394,45 @@ portions of the grid perimeter, so that they effectively act as walls. Let's look first at how ModelGrid treats its own geometrical boundaries. The outermost elements of a grid are nodes and links (as opposed to corners and -faces). For example, :ref:`Figure 2 ` shows a sketch of a regular +faces). For example, {ref}`Figure 2 ` shows a sketch of a regular four-row by five-column grid created by RasterModelGrid. The edges of the grid are composed of nodes and links. Only the inner six nodes have cells around them; the remaining 14 nodes form the perimeter of the grid. -.. _raster4x5: +(raster4x5)= -.. figure:: images/example_raster_grid.png - :figwidth: 80% - :align: center +:::{figure} images/example_raster_grid.png +:align: center +:figwidth: 80% - Figure 2: Illustration of a simple four-row by five-column raster grid created with - :py:class:`landlab.grid.raster.RasterModelGrid `. - By default, all perimeter - nodes are tagged as open (fixed value) boundaries, and all interior cells - are tagged as core. An active link is one that connects either - two core nodes, or one core node and one open boundary node. +Figure 2: Illustration of a simple four-row by five-column raster grid created with +{py:class}`landlab.grid.raster.RasterModelGrid `. +By default, all perimeter +nodes are tagged as open (fixed value) boundaries, and all interior cells +are tagged as core. An active link is one that connects either +two core nodes, or one core node and one open boundary node. +::: All nodes are tagged as either *boundary* or *core*. Those on the perimeter of the grid are automatically tagged as boundary nodes. Nodes on the inside are *core* by default, but it is possible to tag some of them as *boundary* instead (this would be useful, for example, if you wanted to represent an irregular region, such as a watershed, inside a regular grid). In the example -shown in :ref:`Figure 2 `, all the interior nodes are *core*, and all +shown in {ref}`Figure 2 `, all the interior nodes are *core*, and all perimeter nodes are *open boundary*. Boundary nodes are flagged as either *open* or *closed*, and links are tagged as either *active* or *inactive* (Figure 3). -.. _raster4x5openclosed: +(raster4x5openclosed)= -.. figure:: images/example_raster_grid_with_closed_boundaries.png - :figwidth: 80 % - :align: center +:::{figure} images/example_raster_grid_with_closed_boundaries.png +:align: center +:figwidth: 80 % - Figure 3: Illustration of a simple four-row by five-column raster grid with a - combination of open and closed boundaries. +Figure 3: Illustration of a simple four-row by five-column raster grid with a +combination of open and closed boundaries. +::: A closed boundary is one at which no flux is permitted enter or leave, ever. By definition, all links coming into or out of a closed boundary node must be inactive. @@ -462,24 +445,21 @@ An *active link* is one that joins either two core nodes, or one *core* and one *open boundary* node (Figure 3). You can use this distinction in models to implement closed boundaries by performing flow -calculations only on active links, as seen in `this tutorial -`_. - +calculations only on active links, as seen in [this tutorial](https://mybinder.org/v2/gh/landlab/landlab/master?filepath=notebooks/tutorials/fault_scarp_notebook/landlab-fault-scarp.ipynb). -.. _bc_details: +(bc-details)= -Boundary condition details and methods --------------------------------------- +## Boundary condition details and methods A call to mg.node_status returns the codes representing the boundary condition of each node in the grid. There are 5 possible types, they are stored on the model grid: -* mg.BC_NODE_IS_CORE (Type 0) -* mg.BC_NODE_IS_FIXED_VALUE (Type 1) -* mg.BC_NODE_IS_FIXED_GRADIENT (Type 2) -* mg.BC_NODE_IS_LOOPED (Type 3, used for looped boundaries) -* mg.BC_NODE_IS_CLOSED (Type 4) +- mg.BC_NODE_IS_CORE (Type 0) +- mg.BC_NODE_IS_FIXED_VALUE (Type 1) +- mg.BC_NODE_IS_FIXED_GRADIENT (Type 2) +- mg.BC_NODE_IS_LOOPED (Type 3, used for looped boundaries) +- mg.BC_NODE_IS_CLOSED (Type 4) A number of different methods are available to you to interact with (i.e., set and update) boundary conditions at nodes. Landlab is smart enough to automatically @@ -490,10 +470,10 @@ the boundary conditions. If you are working with a simple Landlab raster where all interior nodes are core and all perimeter nodes are boundaries, you will find useful the set of commands: -* ``mg.set_closed_boundaries_at_grid_edges(right, top, left, bottom)`` -* ``mg.set_fixed_value_boundaries_at_grid_edges(right, top, left, bottom)`` -* ``mg.set_fixed_link_boundaries_at_grid_edges(right, top, left, bottom, link_value=None)`` -* ``mg.set_looped_boundaries(top_bottom_are_looped, left_right_are_looped)`` +- `mg.set_closed_boundaries_at_grid_edges(right, top, left, bottom)` +- `mg.set_fixed_value_boundaries_at_grid_edges(right, top, left, bottom)` +- `mg.set_fixed_link_boundaries_at_grid_edges(right, top, left, bottom, link_value=None)` +- `mg.set_looped_boundaries(top_bottom_are_looped, left_right_are_looped)` Where right, top, left, bottom are all booleans. See the relevant docstring for each method for more detailed information. @@ -501,7 +481,7 @@ method for more detailed information. If you are working with an imported irregularly shaped raster grid, you can close nodes which have some fixed NODATA value in the raster using: -* ``mg.set_nodata_nodes_to_closed(node_data, nodata_value)`` +- `mg.set_nodata_nodes_to_closed(node_data, nodata_value)` Note that all of these commands will treat the status of node links as slave to the status of the nodes, as indicated in Figure 3. @@ -510,25 +490,25 @@ conditions as, when you call each method. If you are working on an irregular grid, or want to do something more complicated with your raster boundary conditions, you will need to modify the -``grid.status_at_node`` array by hand, using indexes to node IDs. Simply import the +`grid.status_at_node` array by hand, using indexes to node IDs. Simply import the boundary types from landlab then set the node statuses. The links will be updated alongside these changes automatically: -.. code-block:: python - - >>> grid = RasterModelGrid((5, 5)) - >>> grid.set_closed_boundaries_at_grid_edges(False, True, False, True) - >>> grid.number_of_active_links - 18 - >>> grid.status_at_node[[6, 8]] = mg.BC_NODE_IS_CLOSED - >>> grid.status_at_node.reshape((5, 5)) - array([[4, 4, 4, 4, 4], - [1, 4, 0, 4, 1], - [1, 0, 0, 0, 1], - [1, 0, 0, 0, 1], - [4, 4, 4, 4, 4]], dtype=int8) - >>> grid.number_of_active_links # links were inactivated automatically when we closed nodes - 12 +```python +>>> grid = RasterModelGrid((5, 5)) +>>> grid.set_closed_boundaries_at_grid_edges(False, True, False, True) +>>> grid.number_of_active_links +18 +>>> grid.status_at_node[[6, 8]] = mg.BC_NODE_IS_CLOSED +>>> grid.status_at_node.reshape((5, 5)) +array([[4, 4, 4, 4, 4], + [1, 4, 0, 4, 1], + [1, 0, 0, 0, 1], + [1, 0, 0, 0, 1], + [4, 4, 4, 4, 4]], dtype=int8) +>>> grid.number_of_active_links # links were inactivated automatically when we closed nodes +12 +``` Note that while setting Landlab boundary conditions on the grid is straightforward, it is up to the individual developer of each Landlab component to ensure it is compatible @@ -536,54 +516,44 @@ with these boundary condition schemes! Almost all existing components work fine core, closed, and fixed_value conditions, but some may struggle with fixed_gradient, and most will struggle with looped. If you're working with the component library, take a moment to check your components can understand your implemented boundary conditions! -See the :ref:`Component Developer's Guide ` for more information. +See the {ref}`Component Developer's Guide ` for more information. - -Using a Different Grid Type ---------------------------- +## Using a Different Grid Type As noted earlier, Landlab provides several different types of grid. Available grids (as of this writing) are listed in the table below. Grids are designed using Python classes, with more specialized grids inheriting properties and behavior from more general types. The class hierarchy is given in the second column, **Inherits from**. -+-------------------------+-------------------------+--------------------+----------------------+ -| Grid type | Inherits from | Node arrangement | Cell geometry | -+=========================+=========================+====================+======================+ -| ``RasterModelGrid`` | ``ModelGrid`` | raster | squares | -+-------------------------+-------------------------+--------------------+----------------------+ -| ``VoronoiDelaunayGrid`` | ``ModelGrid`` | Delaunay triangles | Voronoi polygons | -+-------------------------+-------------------------+--------------------+----------------------+ -| ``FramedVoronoiGrid`` | ``VoronoiDelaunayGrid`` | Delaunay triangles | Voronoi polygons | -+-------------------------+-------------------------+--------------------+----------------------+ -| ``HexModelGrid`` | ``VoronoiDelaunayGrid`` | triagonal | hexagons | -+-------------------------+-------------------------+--------------------+----------------------+ -| ``RadialModelGrid`` | ``VoronoiDelaunayGrid`` | concentric | Voronoi polygons | -+-------------------------+-------------------------+--------------------+----------------------+ -| ``NetworkModelGrid`` | ``ModelGrid`` | ad libitum | No cells | -+-------------------------+-------------------------+--------------------+----------------------+ -| ``IcosphereGlobalGrid`` | ``ModelGrid`` | spherical | hexagons & pentagons | -+-------------------------+-------------------------+--------------------+----------------------+ - -:py:class:`landlab.grid.raster.RasterModelGrid ` +| Grid type | Inherits from | Node arrangement | Cell geometry | +| --------------------- | --------------------- | ------------------ | -------------------- | +| `RasterModelGrid` | `ModelGrid` | raster | squares | +| `VoronoiDelaunayGrid` | `ModelGrid` | Delaunay triangles | Voronoi polygons | +| `FramedVoronoiGrid` | `VoronoiDelaunayGrid` | Delaunay triangles | Voronoi polygons | +| `HexModelGrid` | `VoronoiDelaunayGrid` | triagonal | hexagons | +| `RadialModelGrid` | `VoronoiDelaunayGrid` | concentric | Voronoi polygons | +| `NetworkModelGrid` | `ModelGrid` | ad libitum | No cells | +| `IcosphereGlobalGrid` | `ModelGrid` | spherical | hexagons & pentagons | + +{py:class}`landlab.grid.raster.RasterModelGrid ` gives a regular (square) grid, initialized with *number_of_node_rows*, *number_of_node_columns*, and a *spacing*. -In a :py:class:`landlab.grid.voronoi.VoronoiDelaunayGrid `, +In a {py:class}`landlab.grid.voronoi.VoronoiDelaunayGrid `, a set of node coordinates is given as an initial condition. Landlab then forms a Delaunay triangulation, so that the links between nodes are the edges of the triangles, and the cells are Voronoi polygons. -A :py:class:`landlab.grid.framed_voronoi.FramedVoronoiGrid ` +A {py:class}`landlab.grid.framed_voronoi.FramedVoronoiGrid ` is Voronoi grid where nodes coordinates are randomly moved from an initial rectangular regular grid. -A :py:class:`landlab.grid.hex.HexModelGrid ` is a +A {py:class}`landlab.grid.hex.HexModelGrid ` is a special type of VoronoiDelaunayGrid in which the Voronoi cells happen to be regular hexagons. -In a :py:class:`landlab.grid.radial.RadialModelGrid `, nodes are created in concentric +In a {py:class}`landlab.grid.radial.RadialModelGrid `, nodes are created in concentric circles and then connected to form a Delaunay triangulation (again with Voronoi polygons as cells). -:py:class:`landlab.grid.network.NetworkModelGrid` represents a branching network of nodes and links, +{py:class}`landlab.grid.network.NetworkModelGrid` represents a branching network of nodes and links, without cells or patches. -An :py:class:`landlab.grid.icosphere.IcosphereGlobalGrid` represents the surface of a sphere. +An {py:class}`landlab.grid.icosphere.IcosphereGlobalGrid` represents the surface of a sphere. The default configuration is a spherical grid of unit radius that forms the spherical version an icosahedron (20 triangular patches, 12 nodes), with the dual complement representing a dodecahedron @@ -593,14 +563,13 @@ each triangular patch into four triangles, with corresponding addition of nodes (as the triangle vertices), together with corresponding cells and corners. -.. _importing_a_dem: +(importing-a-dem)= -Importing a DEM ---------------- +## Importing a DEM Landlab offers the methods -:py:func:`landlab.io.esri_ascii.read_esri_ascii ` and -:py:func:`landlab.io.netcdf.read_netcdf ` to allow ingestion of +{py:func}`landlab.io.esri_ascii.read_esri_ascii ` and +{py:func}`landlab.io.netcdf.read_netcdf ` to allow ingestion of existing digital elevation models as raster grids. **read_esri_ascii** allows import of an ARCmap formatted ascii file (.asc or .txt) @@ -608,66 +577,62 @@ as a grid. It returns a tuple, containing the grid and the elevations in Landlab ID order. Use the *name* keyword to add the elevation to a field in the imported grid. -.. code-block:: python - - >>> from landlab.io import read_esri_ascii - >>> (mg, z) = read_esri_ascii("myARCoutput.txt", name="topographic__elevation") - >>> mg.at_node.keys() - ['topographic__elevation'] +```python +>>> from landlab.io import read_esri_ascii +>>> (mg, z) = read_esri_ascii("myARCoutput.txt", name="topographic__elevation") +>>> mg.at_node.keys() +['topographic__elevation'] +``` **read_netcdf** allows import of the open source netCDF format for DEMs. Fields will automatically be created according to the names of variables found in the file. -Returns a :py:class:`landlab.grid.raster.RasterModelGrid `. - -.. code-block:: python - - >>> from landlab.io.netcdf import read_netcdf - >>> mg = read_netcdf("mynetcdf.nc") +Returns a {py:class}`landlab.grid.raster.RasterModelGrid `. +```python +>>> from landlab.io.netcdf import read_netcdf +>>> mg = read_netcdf("mynetcdf.nc") +``` -After import, you can use :py:func:`landlab.grid.base.ModelGrid.set_nodata_nodes_to_closed +After import, you can use {py:func}`landlab.grid.base.ModelGrid.set_nodata_nodes_to_closed ` to handle the boundary conditions in your imported DEM. Equivalent methods for output are also available for both esri ascii -(:py:func:`landlab.io.esri_ascii.write_esri_ascii `) +({py:func}`landlab.io.esri_ascii.write_esri_ascii `) and netCDF -(:py:func:`landlab.io.netcdf.write_netcdf `) formats. +({py:func}`landlab.io.netcdf.write_netcdf `) formats. +(plotting-and-vis)= -.. _plotting_and_vis: +## Plotting and Visualization -Plotting and Visualization --------------------------- - -Visualizing a Grid ------------------- +## Visualizing a Grid Landlab offers a set of matplotlib-based plotting routines for your data. These exist in the landlab.plot library. You'll also need to import some basic plotting functions from pylab (or matplotlib) to let you control your plotting output: at a minimum **show** and **figure**. The most useful function is called -:py:func:`landlab.plot.imshow.imshow_node_grid `, and is imported +{py:func}`landlab.plot.imshow.imshow_node_grid `, and is imported and used as follows: -.. code-block:: python - - >>> from landlab.plot.imshow import imshow_node_grid - >>> from pylab import show, figure - >>> mg = RasterModelGrid((50, 50), 1.0) # make a grid to plot - >>> z - mg.node_x * 0.1 # Make an arbitrary sloping surface - >>> mg.add_field( - ... "topographic_elevation", z, at="node", units="meters", copy=True - ... ) # Create the data as a field - >>> figure("Elevations from the field") # new fig, with a name - >>> imshow_node_grid(mg, "topographic_elevation") - >>> figure( - ... "You can also use values directly, not fields" - ... ) # ...but if you, do you'll lose the units, figure naming capabilities, etc - >>> imshow_node_grid(mg, z) - >>> show() - -Note that :py:func:`landlab.plot.imshow.imshow_node_grid ` +```python +>>> from landlab.plot.imshow import imshow_node_grid +>>> from pylab import show, figure +>>> mg = RasterModelGrid((50, 50), 1.0) # make a grid to plot +>>> z - mg.node_x * 0.1 # Make an arbitrary sloping surface +>>> mg.add_field( +... "topographic_elevation", z, at="node", units="meters", copy=True +... ) # Create the data as a field +>>> figure("Elevations from the field") # new fig, with a name +>>> imshow_node_grid(mg, "topographic_elevation") +>>> figure( +... "You can also use values directly, not fields" +... ) # ...but if you, do you'll lose the units, figure naming capabilities, etc +>>> imshow_node_grid(mg, z) +>>> show() +``` + +Note that {py:func}`landlab.plot.imshow.imshow_node_grid ` is clever enough to examine the grid object you pass it, work out whether the grid is irregular or regular, and plot the data appropriately. @@ -677,11 +642,9 @@ Nonetheless, you can easily override this color scheme using the keyword *cmap* argument to imshow_node_grid. Other useful built in colorschemes are *'bone'* (black to white), *'jet'*, (blue to red, through green), *'Blues'* (white to blue), and *'terrain'* (blue-green-brown-white) (note these names are case sensitive). -See `the matplotlib reference guide -`_ for more options. +See [the matplotlib reference guide](https://matplotlib.org//examples/color/colormaps_reference.html) for more options. Note that imshow_node_grid takes many of the same keyword arguments as, and is designed -to resemble, the standard matplotlib function `imshow -`_. See also the method help for more +to resemble, the standard matplotlib function [imshow](https://matplotlib.org//users/image_tutorial.html). See also the method help for more details. In particular, note you can set the maximum and minimum you want for your colorbar using the keywords *vmin* and *vmax*, much as in similar functions in the matplotlib library. @@ -690,46 +653,42 @@ the keywords *vmin* and *vmax*, much as in similar functions in the matplotlib l In *Spyder -> Preferences -> iPython console -> Graphics -> Graphics Backend -> Automatic -> Apply -> OK -> Make sure to restart Spyder to update the preferences.* -Visualizing transects through your data ---------------------------------------- +## Visualizing transects through your data If you are working with a regular grid, it is trivial to plot horizontal and vertical sections through your data. The grid provides the method -:py:func:`landlab.grid.raster.RasterModelGrid.node_vector_to_raster `, -which will turn a Landlab 1D node data array into a two dimensional rows*columns NumPy array, +{py:func}`landlab.grid.raster.RasterModelGrid.node_vector_to_raster `, +which will turn a Landlab 1D node data array into a two dimensional rows\*columns NumPy array, which you can then take slices of, e.g., we can do this: -.. code-block:: python - - >>> from pylab import plot, show - >>> mg = RasterModelGrid((10, 10), 1.0) - >>> z = mg.node_x * 0.1 - >>> my_section = mg.node_vector_to_raster(z, flip_vertically=True)[:, 5] - >>> my_ycoords = mg.node_vector_to_raster(mg.node_y, flip_vertically=True)[:, 5] - >>> plot(my_ycoords, my_section) - >>> show() - +```python +>>> from pylab import plot, show +>>> mg = RasterModelGrid((10, 10), 1.0) +>>> z = mg.node_x * 0.1 +>>> my_section = mg.node_vector_to_raster(z, flip_vertically=True)[:, 5] +>>> my_ycoords = mg.node_vector_to_raster(mg.node_y, flip_vertically=True)[:, 5] +>>> plot(my_ycoords, my_section) +>>> show() +``` -Visualizing river profiles --------------------------- +## Visualizing river profiles -See the :py:class:`ChannelProfiler ` +See the {py:class}`ChannelProfiler ` component. -Making Movies -------------- +## Making Movies Landlab does have an experimental movie making component. However, it has come to the developers' attention that the matplotlib functions it relies on in turn demand that your machine already has installed one of a small set of highly temperamental open source video codecs. It is quite likely using the component in its current form is more trouble than it's worth; however, the brave can take a look at the library -:py:mod:`landlab.plot.video_out `. We intend to improve +{py:mod}`landlab.plot.video_out `. We intend to improve video out in future Landlab releases. For now, we advocate the approach of creating an animation by saving separately individual plots from, e.g., **plot()** or -:py:func:`landlab.plot.imshow.imshow_node_grid `, +{py:func}`landlab.plot.imshow.imshow_node_grid `, then stitching them together into, e.g., a gif using external software. Note it's possible to do this directly from Preview on a Mac. diff --git a/docs/source/user_guide/grid_methods/01_nodes_links_patches.rst b/docs/source/user_guide/grid_methods/01_nodes_links_patches.md similarity index 60% rename from docs/source/user_guide/grid_methods/01_nodes_links_patches.rst rename to docs/source/user_guide/grid_methods/01_nodes_links_patches.md index 90cb7e6a7c..76d9ebed53 100644 --- a/docs/source/user_guide/grid_methods/01_nodes_links_patches.rst +++ b/docs/source/user_guide/grid_methods/01_nodes_links_patches.md @@ -1,11 +1,15 @@ -Nodes, Links, and Patches -========================= +# Nodes, Links, and Patches +```{eval-rst} .. jinja:: llcats .. currentmodule:: landlab - {% for grid, label in [('RasterModelGrid', 'Raster'), ('HexModelGrid', 'Hex'), ('RadialModelGrid', 'Radial'), ('VoronoiDelaunayGrid', 'Voronoi'), ('FramedVoronoiGrid', 'FramedVoronoi')] %} + {% for grid in ['RasterModelGrid'] + grids + | reject('equalto', 'RasterModelGrid') + | sort + %} + {% set label = grid.replace('ModelGrid', '').replace('Grid', '') %} .. tab:: {{ label }} @@ -21,3 +25,4 @@ Nodes, Links, and Patches {% endfor %} {% endfor %} {% endfor %} +``` diff --git a/docs/source/user_guide/grid_methods/02_corners_faces_cells.rst b/docs/source/user_guide/grid_methods/02_corners_faces_cells.md similarity index 60% rename from docs/source/user_guide/grid_methods/02_corners_faces_cells.rst rename to docs/source/user_guide/grid_methods/02_corners_faces_cells.md index 1ceaf64e9d..c01e8d0a31 100644 --- a/docs/source/user_guide/grid_methods/02_corners_faces_cells.rst +++ b/docs/source/user_guide/grid_methods/02_corners_faces_cells.md @@ -1,11 +1,15 @@ -Corners, Faces, and Cells -========================= +# Corners, Faces, and Cells +```{eval-rst} .. jinja:: llcats .. currentmodule:: landlab - {% for grid, label in [('RasterModelGrid', 'Raster'), ('HexModelGrid', 'Hex'), ('RadialModelGrid', 'Radial'), ('VoronoiDelaunayGrid', 'Voronoi'), ('FramedVoronoiGrid', 'FramedVoronoi')] %} + {% for grid in ['RasterModelGrid'] + grids + | reject('equalto', 'RasterModelGrid') + | sort + %} + {% set label = grid.replace('ModelGrid', '').replace('Grid', '') %} .. tab:: {{ label }} @@ -21,3 +25,4 @@ Corners, Faces, and Cells {% endfor %} {% endfor %} {% endfor %} +``` diff --git a/docs/source/user_guide/grid_methods/03_boundary_conditions.rst b/docs/source/user_guide/grid_methods/03_boundary_conditions.md similarity index 53% rename from docs/source/user_guide/grid_methods/03_boundary_conditions.rst rename to docs/source/user_guide/grid_methods/03_boundary_conditions.md index 39b3c52306..8028286222 100644 --- a/docs/source/user_guide/grid_methods/03_boundary_conditions.rst +++ b/docs/source/user_guide/grid_methods/03_boundary_conditions.md @@ -1,17 +1,21 @@ -.. _api.grid.grid_summary.bc: +(api-grid-grid-summary-bc)= -Boundary conditions -=================== +# Boundary conditions These are the primary properties for getting and setting the grid boundary -conditions. Changes made to :meth:`~.ModelGrid.status_at_node` automatically +conditions. Changes made to {meth}`~.ModelGrid.status_at_node` automatically update the conditions defined at other grid elements. +```{eval-rst} .. jinja:: llcats .. currentmodule:: landlab - {% for grid, label in [('RasterModelGrid', 'Raster'), ('HexModelGrid', 'Hex'), ('RadialModelGrid', 'Radial'), ('VoronoiDelaunayGrid', 'Voronoi'), ('FramedVoronoiGrid', 'FramedVoronoi')] %} + {% for grid in ['RasterModelGrid'] + grids + | reject('equalto', 'RasterModelGrid') + | sort + %} + {% set label = grid.replace('ModelGrid', '').replace('Grid', '') %} .. tab:: {{ label }} @@ -22,3 +26,4 @@ update the conditions defined at other grid elements. ~{{func}} {% endfor %} {% endfor %} +``` diff --git a/docs/source/user_guide/grid_methods/04_element_subsets.rst b/docs/source/user_guide/grid_methods/04_element_subsets.md similarity index 58% rename from docs/source/user_guide/grid_methods/04_element_subsets.rst rename to docs/source/user_guide/grid_methods/04_element_subsets.md index 8f19ff8de9..195e7b6eb0 100644 --- a/docs/source/user_guide/grid_methods/04_element_subsets.rst +++ b/docs/source/user_guide/grid_methods/04_element_subsets.md @@ -1,14 +1,18 @@ -Subsets of elements -=================== +# Subsets of elements These methods are useful in identifying subsets of grid elements, e.g., closest node to a point; nodes at edges. +```{eval-rst} .. jinja:: llcats .. currentmodule:: landlab - {% for grid, label in [('RasterModelGrid', 'Raster'), ('HexModelGrid', 'Hex'), ('RadialModelGrid', 'Radial'), ('VoronoiDelaunayGrid', 'Voronoi'), ('FramedVoronoiGrid', 'FramedVoronoi')] %} + {% for grid in ['RasterModelGrid'] + grids + | reject('equalto', 'RasterModelGrid') + | sort + %} + {% set label = grid.replace('ModelGrid', '').replace('Grid', '') %} .. tab:: {{ label }} @@ -19,3 +23,4 @@ to a point; nodes at edges. ~{{func}} {% endfor %} {% endfor %} +``` diff --git a/docs/source/user_guide/grid_methods/05_element_mapping.rst b/docs/source/user_guide/grid_methods/05_element_mapping.md similarity index 57% rename from docs/source/user_guide/grid_methods/05_element_mapping.rst rename to docs/source/user_guide/grid_methods/05_element_mapping.md index ca4a50d915..a44acef866 100644 --- a/docs/source/user_guide/grid_methods/05_element_mapping.rst +++ b/docs/source/user_guide/grid_methods/05_element_mapping.md @@ -1,17 +1,21 @@ -.. _api.grid.grid_summary.mappers: +(api-grid-grid-summary-mappers)= -Mapping between elements -======================== +# Mapping between elements These methods allow mapping of values defined on one grid element onto a second, e.g., mapping upwind node values onto links, or mean link values onto nodes. +```{eval-rst} .. jinja:: llcats .. currentmodule:: landlab - {% for grid, label in [('RasterModelGrid', 'Raster'), ('HexModelGrid', 'Hex'), ('RadialModelGrid', 'Radial'), ('VoronoiDelaunayGrid', 'Voronoi'), ('FramedVoronoiGrid', 'FramedVoronoi')] %} + {% for grid in ['RasterModelGrid'] + grids + | reject('equalto', 'RasterModelGrid') + | sort + %} + {% set label = grid.replace('ModelGrid', '').replace('Grid', '') %} .. tab:: {{ label }} @@ -22,3 +26,4 @@ nodes. ~{{func}} {% endfor %} {% endfor %} +``` diff --git a/docs/source/user_guide/grid_methods/06_gradients.rst b/docs/source/user_guide/grid_methods/06_gradients.md similarity index 59% rename from docs/source/user_guide/grid_methods/06_gradients.rst rename to docs/source/user_guide/grid_methods/06_gradients.md index 73e26c7161..98a4c78774 100644 --- a/docs/source/user_guide/grid_methods/06_gradients.rst +++ b/docs/source/user_guide/grid_methods/06_gradients.md @@ -1,16 +1,20 @@ -Gradients, fluxes, and divergences -================================== +# Gradients, fluxes, and divergences Landlab is designed to easily calculate gradients in quantities across the grid, and to construct fluxes and flux divergences from them. Because these calculations tend to be a little more involved than property lookups, the -methods tend to start with ``calc_``. +methods tend to start with `calc_`. +```{eval-rst} .. jinja:: llcats .. currentmodule:: landlab - {% for grid, label in [('RasterModelGrid', 'Raster'), ('HexModelGrid', 'Hex'), ('RadialModelGrid', 'Radial'), ('VoronoiDelaunayGrid', 'Voronoi'), ('FramedVoronoiGrid', 'FramedVoronoi')] %} + {% for grid in ['RasterModelGrid'] + grids + | reject('equalto', 'RasterModelGrid') + | sort + %} + {% set label = grid.replace('ModelGrid', '').replace('Grid', '') %} .. tab:: {{ label }} @@ -21,3 +25,4 @@ methods tend to start with ``calc_``. ~{{func}} {% endfor %} {% endfor %} +``` diff --git a/docs/source/user_guide/grid_methods/07_surface_analysis.rst b/docs/source/user_guide/grid_methods/07_surface_analysis.md similarity index 58% rename from docs/source/user_guide/grid_methods/07_surface_analysis.rst rename to docs/source/user_guide/grid_methods/07_surface_analysis.md index bda2763598..0985dc10a5 100644 --- a/docs/source/user_guide/grid_methods/07_surface_analysis.rst +++ b/docs/source/user_guide/grid_methods/07_surface_analysis.md @@ -1,14 +1,18 @@ -Surface analysis -================ +# Surface analysis These methods permit the kinds of surface analysis that you might expect to find in GIS software. +```{eval-rst} .. jinja:: llcats .. currentmodule:: landlab - {% for grid, label in [('RasterModelGrid', 'Raster'), ('HexModelGrid', 'Hex'), ('RadialModelGrid', 'Radial'), ('VoronoiDelaunayGrid', 'Voronoi'), ('FramedVoronoiGrid', 'FramedVoronoi')] %} + {% for grid in ['RasterModelGrid'] + grids + | reject('equalto', 'RasterModelGrid') + | sort + %} + {% set label = grid.replace('ModelGrid', '').replace('Grid', '') %} .. tab:: {{ label }} @@ -19,3 +23,4 @@ find in GIS software. ~{{func}} {% endfor %} {% endfor %} +``` diff --git a/docs/source/user_guide/grid_methods/08_fields.rst b/docs/source/user_guide/grid_methods/08_fields.md similarity index 81% rename from docs/source/user_guide/grid_methods/08_fields.rst rename to docs/source/user_guide/grid_methods/08_fields.md index 5bf099e049..8dbce8ad03 100644 --- a/docs/source/user_guide/grid_methods/08_fields.rst +++ b/docs/source/user_guide/grid_methods/08_fields.md @@ -1,14 +1,14 @@ -Fields -====== +# Fields -:class:`~.ModelGrid` inherits several useful methods for creating new data -fields and adding new data fields to a :class:`~.ModelGrid` instance. Methods to add or -create a new data array follow the ``numpy`` syntax for creating arrays. The +{class}`~.ModelGrid` inherits several useful methods for creating new data +fields and adding new data fields to a {class}`~.ModelGrid` instance. Methods to add or +create a new data array follow the `numpy` syntax for creating arrays. The following methods create and, optionally, initialize new arrays. The size of the new array is determined by the *at* keyword, which indicates on which element -the array is defined. Methods with the prefix ``add_`` will add the newly created +the array is defined. Methods with the prefix `add_` will add the newly created field to the grid, otherwise a newly-created array is **not** added to the grid. +```{eval-rst} .. tab:: Create .. autosummary:: @@ -22,7 +22,9 @@ field to the grid, otherwise a newly-created array is **not** added to the grid. ~landlab.grid.base.ModelGrid.empty ~landlab.grid.base.ModelGrid.ones ~landlab.grid.base.ModelGrid.zeros +``` +```{eval-rst} .. tab:: Access .. autosummary:: @@ -36,7 +38,9 @@ field to the grid, otherwise a newly-created array is **not** added to the grid. ~landlab.grid.base.ModelGrid.at_patch ~landlab.grid.base.ModelGrid.field_values ~landlab.grid.base.ModelGrid.return_array_or_field_values +``` +```{eval-rst} .. tab:: Info .. autosummary:: @@ -49,3 +53,4 @@ field to the grid, otherwise a newly-created array is **not** added to the grid. ~landlab.grid.base.ModelGrid.field_units ~landlab.grid.base.ModelGrid.field_values ~landlab.grid.base.ModelGrid.groups +``` diff --git a/docs/source/user_guide/grid_methods/99_uncategorized.rst b/docs/source/user_guide/grid_methods/99_uncategorized.md similarity index 75% rename from docs/source/user_guide/grid_methods/99_uncategorized.rst rename to docs/source/user_guide/grid_methods/99_uncategorized.md index 8e8484e8f7..1cb1190b86 100644 --- a/docs/source/user_guide/grid_methods/99_uncategorized.rst +++ b/docs/source/user_guide/grid_methods/99_uncategorized.md @@ -1,5 +1,4 @@ -Uncategorized or Deprecated -=========================== +# Uncategorized or Deprecated The following functions are either *uncategorized* or *deprecated*. Uncategorized functions are simply those to which we have not yet assigned a category (but we will as we continue to improve the @@ -7,11 +6,16 @@ documentation). Although functions marked as deprecated are currently still available, **they will be removed** in a future *Landlab* release and so their use is discouraged. +```{eval-rst} .. jinja:: llcats .. currentmodule:: landlab - {% for grid, label in [('RasterModelGrid', 'Raster'), ('HexModelGrid', 'Hex'), ('RadialModelGrid', 'Radial'), ('VoronoiDelaunayGrid', 'Voronoi'), ('FramedVoronoiGrid', 'FramedVoronoi')] %} + {% for grid in ['RasterModelGrid'] + grids + | reject('equalto', 'RasterModelGrid') + | sort + %} + {% set label = grid.replace('ModelGrid', '').replace('Grid', '') %} .. tab:: {{ label }} @@ -27,3 +31,4 @@ a future *Landlab* release and so their use is discouraged. {% endfor %} {% endfor %} {% endfor %} +``` diff --git a/docs/source/user_guide/grid_summary.rst b/docs/source/user_guide/grid_summary.md similarity index 58% rename from docs/source/user_guide/grid_summary.rst rename to docs/source/user_guide/grid_summary.md index 1f7d2d4039..fbe72bf98d 100644 --- a/docs/source/user_guide/grid_summary.rst +++ b/docs/source/user_guide/grid_summary.md @@ -1,52 +1,46 @@ -.. _api.grid.grid_summary: +(api-grid-grid-summary)= -==================== -List of Grid Methods -==================== +# List of Grid Methods --------------------------------- -Getting Information about a Grid --------------------------------- +## Getting Information about a Grid The following attributes, properties, and methods provide data about the grid, its geometry, and the connectivity among the various elements. Each grid element has an ID number, which is also its position in an array that contains information about that type of element. For example, the *x* -coordinate of node 5 would be found at ``grid.x_of_node[5]``. +coordinate of node 5 would be found at `grid.x_of_node[5]`. -The naming of grid-element arrays is ``_at_``, where +The naming of grid-element arrays is `_at_`, where *attribute* is the name of the data in question, and *element* is the element -to which the attribute applies. For example, the property :meth:`~.RasterModelGrid.node_at_cell` +to which the attribute applies. For example, the property {meth}`~.RasterModelGrid.node_at_cell` is an array of length *number_of_cells* where each element of the array is the *ID* of the node associated with that cell. -(e.g. ``node_at_cell[3]`` is the *ID* of the node associated with cell 3). +(e.g. `node_at_cell[3]` is the *ID* of the node associated with cell 3). In this case the *attribute* is singular since there is only one value per element. Sometimes there are multiple attributes associated with each element. In this -case, the attribute is plural. For example, the :meth:`~.RasterModelGrid.faces_at_cell` array +case, the attribute is plural. For example, the {meth}`~.RasterModelGrid.faces_at_cell` array contains multiple faces for each cell. Exceptions to these general rules are functions that return indices of a subset of all elements of a particular type. For example, you can obtain an array with *IDs* of only the core nodes using -:meth:`~.RasterModelGrid.core_nodes`, while :meth:`~.RasterModelGrid.active_links` provides an array +{meth}`~.RasterModelGrid.core_nodes`, while {meth}`~.RasterModelGrid.active_links` provides an array of *IDs* of active links (only). Finally, attributes that represent a measurement of something, such as the length of a link or the surface area of a cell, are -described using ``_of_`` (e.g. :meth:`~.RasterModelGrid.area_of_cell`). +described using `_of_` (e.g. {meth}`~.RasterModelGrid.area_of_cell`). ------- -Fields ------- +## Fields -:class:`~.ModelGrid` inherits from the :class:`~.GraphFields` class. This -provides :class:`~.ModelGrid`, and its subclasses, with the ability to, optionally, +{class}`~.ModelGrid` inherits from the {class}`~.GraphFields` class. This +provides {class}`~.ModelGrid`, and its subclasses, with the ability to, optionally, store data values associated with the different types grid elements -(nodes, cells, etc.). In particular, as part of :meth:`~.ModelGrid.__init__`, -data field *groups* are added to the :class:`~.ModelGrid` that provide containers to +(nodes, cells, etc.). In particular, as part of {meth}`~.ModelGrid.__init__`, +data field *groups* are added to the {class}`~.ModelGrid` that provide containers to put data fields into. There is one group for each of the eight grid elements (node, cell, link, face, core_node, core_cell, active_link, and active_face). +```{toctree} +:caption: Summary of grid methods +:glob: true +:hidden: true -.. toctree:: - :caption: Summary of grid methods - :glob: - :hidden: - - grid_methods/* +grid_methods/* +``` diff --git a/docs/source/user_guide/images/Adams_2015_AGUPoster_H13C-1542.jp2 b/docs/source/user_guide/images/Adams_2015_AGUPoster_H13C-1542.jp2 deleted file mode 100644 index 9e79025547..0000000000 Binary files a/docs/source/user_guide/images/Adams_2015_AGUPoster_H13C-1542.jp2 and /dev/null differ diff --git a/docs/source/user_guide/images/Adams_2015_AGUPoster_H13C-1542.jpg b/docs/source/user_guide/images/Adams_2015_AGUPoster_H13C-1542.jpg deleted file mode 100644 index 10e7269dbe..0000000000 Binary files a/docs/source/user_guide/images/Adams_2015_AGUPoster_H13C-1542.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/Adams_AGU_2014_Poster_small.jpg b/docs/source/user_guide/images/Adams_AGU_2014_Poster_small.jpg deleted file mode 100644 index 9621a386d2..0000000000 Binary files a/docs/source/user_guide/images/Adams_AGU_2014_Poster_small.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/Bandaragoda_ECAHM2017_HydroShare_Landlab_Poster.pdf b/docs/source/user_guide/images/Bandaragoda_ECAHM2017_HydroShare_Landlab_Poster.pdf deleted file mode 100644 index b445e7c857..0000000000 Binary files a/docs/source/user_guide/images/Bandaragoda_ECAHM2017_HydroShare_Landlab_Poster.pdf and /dev/null differ diff --git a/docs/source/user_guide/images/EGU_poster_2016.jpg b/docs/source/user_guide/images/EGU_poster_2016.jpg deleted file mode 100644 index 4ceed1df2a..0000000000 Binary files a/docs/source/user_guide/images/EGU_poster_2016.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/EGU_poster_2016.pdf b/docs/source/user_guide/images/EGU_poster_2016.pdf deleted file mode 100644 index dd3ccd123e..0000000000 Binary files a/docs/source/user_guide/images/EGU_poster_2016.pdf and /dev/null differ diff --git a/docs/source/reference/components/images/GDP_regularization.png b/docs/source/user_guide/images/GDP_regularization.png similarity index 100% rename from docs/source/reference/components/images/GDP_regularization.png rename to docs/source/user_guide/images/GDP_regularization.png diff --git a/docs/source/user_guide/images/Hydrograph_ChangingIntensity.jpg b/docs/source/user_guide/images/Hydrograph_ChangingIntensity.jpg deleted file mode 100644 index 69e2470d51..0000000000 Binary files a/docs/source/user_guide/images/Hydrograph_ChangingIntensity.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/JingtaoLai_AGU_2016.jpg b/docs/source/user_guide/images/JingtaoLai_AGU_2016.jpg deleted file mode 100644 index ccba6ae031..0000000000 Binary files a/docs/source/user_guide/images/JingtaoLai_AGU_2016.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/JingtaoLai_AGU_2016.pdf b/docs/source/user_guide/images/JingtaoLai_AGU_2016.pdf deleted file mode 100644 index e0f0374687..0000000000 Binary files a/docs/source/user_guide/images/JingtaoLai_AGU_2016.pdf and /dev/null differ diff --git a/docs/source/user_guide/images/Landlab_OceanSciences2016.jpg b/docs/source/user_guide/images/Landlab_OceanSciences2016.jpg deleted file mode 100755 index 2fbcf0d804..0000000000 Binary files a/docs/source/user_guide/images/Landlab_OceanSciences2016.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/Landlab_OceanSciences2016.pdf b/docs/source/user_guide/images/Landlab_OceanSciences2016.pdf deleted file mode 100755 index ffa0f6cc7e..0000000000 Binary files a/docs/source/user_guide/images/Landlab_OceanSciences2016.pdf and /dev/null differ diff --git a/docs/source/user_guide/images/Radiation.png b/docs/source/user_guide/images/Radiation.png deleted file mode 100644 index a0bc89803d..0000000000 Binary files a/docs/source/user_guide/images/Radiation.png and /dev/null differ diff --git a/docs/source/user_guide/images/RadiationFactor.png b/docs/source/user_guide/images/RadiationFactor.png deleted file mode 100644 index a71c6cde7e..0000000000 Binary files a/docs/source/user_guide/images/RadiationFactor.png and /dev/null differ diff --git a/docs/source/user_guide/images/SS_vs_OverlandFlow_Cartoon.jpg b/docs/source/user_guide/images/SS_vs_OverlandFlow_Cartoon.jpg deleted file mode 100644 index 50e28c5e82..0000000000 Binary files a/docs/source/user_guide/images/SS_vs_OverlandFlow_Cartoon.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/SaiNudurupati_CSDMS_2016.jpg b/docs/source/user_guide/images/SaiNudurupati_CSDMS_2016.jpg deleted file mode 100644 index ad092b95be..0000000000 Binary files a/docs/source/user_guide/images/SaiNudurupati_CSDMS_2016.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/SaiNudurupati_CSDMS_2016.pdf b/docs/source/user_guide/images/SaiNudurupati_CSDMS_2016.pdf deleted file mode 100644 index c336e028e8..0000000000 Binary files a/docs/source/user_guide/images/SaiNudurupati_CSDMS_2016.pdf and /dev/null differ diff --git a/docs/source/user_guide/images/Sai_AGU_2015.jpg b/docs/source/user_guide/images/Sai_AGU_2015.jpg deleted file mode 100644 index c776d6bf41..0000000000 Binary files a/docs/source/user_guide/images/Sai_AGU_2015.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/Sai_AGU_2015.pdf b/docs/source/user_guide/images/Sai_AGU_2015.pdf deleted file mode 100644 index 8aa6ea2676..0000000000 Binary files a/docs/source/user_guide/images/Sai_AGU_2015.pdf and /dev/null differ diff --git a/docs/source/user_guide/images/SquareBasin.jpg b/docs/source/user_guide/images/SquareBasin.jpg deleted file mode 100644 index 6738f55d94..0000000000 Binary files a/docs/source/user_guide/images/SquareBasin.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/basic_diffusion_example.png b/docs/source/user_guide/images/basic_diffusion_example.png deleted file mode 100644 index 8884e094e9..0000000000 Binary files a/docs/source/user_guide/images/basic_diffusion_example.png and /dev/null differ diff --git a/docs/source/user_guide/images/broken_coupled_Q.png b/docs/source/user_guide/images/broken_coupled_Q.png deleted file mode 100644 index 2dbb514110..0000000000 Binary files a/docs/source/user_guide/images/broken_coupled_Q.png and /dev/null differ diff --git a/docs/source/user_guide/images/ca_class_hierarchy.svg b/docs/source/user_guide/images/ca_class_hierarchy.svg deleted file mode 100755 index 340b618ad5..0000000000 --- a/docs/source/user_guide/images/ca_class_hierarchy.svg +++ /dev/null @@ -1,422 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - Variable namegridcurrent_timenode_state node_pair priority_queue next_update link_orientation link_state n_trn trn_totrn_rate - Descriptionsimulation gridcurrent simulation timestate of each node(tail, head, orientation) for each pair state transition events, soonest on toptime of next transition at each linkorientation code for each link pair state of each linknumber of transitions for each pair state new pair state for each transitionrate parameter for each transition - Type and sizeLandlab grid objectfloat1xN array of intlist (xNL) of tuple PriorityQueue object1xL array of float1xL array of int 1xL array of int1xNL array of int 1xNT array of int1xNT array of float - CellLabCTSModel - - RasterCTS - OrientedRasterCTS - OrientedHexCTS - HexCTS - - - - - - diff --git a/docs/source/user_guide/images/coseismic_scarp.png b/docs/source/user_guide/images/coseismic_scarp.png deleted file mode 100644 index c91df0516c..0000000000 Binary files a/docs/source/user_guide/images/coseismic_scarp.png and /dev/null differ diff --git a/docs/source/user_guide/images/degraded_scarp.png b/docs/source/user_guide/images/degraded_scarp.png deleted file mode 100644 index a1c2d803f5..0000000000 Binary files a/docs/source/user_guide/images/degraded_scarp.png and /dev/null differ diff --git a/docs/source/user_guide/images/diffusion_raster_with_analytical.png b/docs/source/user_guide/images/diffusion_raster_with_analytical.png deleted file mode 100644 index fa7d0c9a38..0000000000 Binary files a/docs/source/user_guide/images/diffusion_raster_with_analytical.png and /dev/null differ diff --git a/docs/source/user_guide/images/flexure.png b/docs/source/user_guide/images/flexure.png deleted file mode 100644 index 12f7061350..0000000000 Binary files a/docs/source/user_guide/images/flexure.png and /dev/null differ diff --git a/docs/source/user_guide/images/grid_schematic.png b/docs/source/user_guide/images/grid_schematic.png deleted file mode 100644 index 36c47eee84..0000000000 Binary files a/docs/source/user_guide/images/grid_schematic.png and /dev/null differ diff --git a/docs/source/user_guide/images/half_fork_dem.png b/docs/source/user_guide/images/half_fork_dem.png deleted file mode 100644 index d0f75e1b53..0000000000 Binary files a/docs/source/user_guide/images/half_fork_dem.png and /dev/null differ diff --git a/docs/source/user_guide/images/inundation.png b/docs/source/user_guide/images/inundation.png deleted file mode 100644 index c0b6642984..0000000000 Binary files a/docs/source/user_guide/images/inundation.png and /dev/null differ diff --git a/docs/source/user_guide/images/issues-tab.png b/docs/source/user_guide/images/issues-tab.png deleted file mode 100644 index b5fdf4a076..0000000000 Binary files a/docs/source/user_guide/images/issues-tab.png and /dev/null differ diff --git a/docs/source/user_guide/images/landlab_clinic_csdms_may2016.pdf b/docs/source/user_guide/images/landlab_clinic_csdms_may2016.pdf deleted file mode 100644 index 11ce7f762a..0000000000 Binary files a/docs/source/user_guide/images/landlab_clinic_csdms_may2016.pdf and /dev/null differ diff --git a/docs/source/user_guide/images/landlab_clinic_houston_sep2016.pdf b/docs/source/user_guide/images/landlab_clinic_houston_sep2016.pdf deleted file mode 100644 index 2b7f84ec37..0000000000 Binary files a/docs/source/user_guide/images/landlab_clinic_houston_sep2016.pdf and /dev/null differ diff --git a/docs/source/user_guide/images/landlab_logo.jpg b/docs/source/user_guide/images/landlab_logo.jpg deleted file mode 100644 index e87ee20ab9..0000000000 Binary files a/docs/source/user_guide/images/landlab_logo.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/nonlinear_coupled_Q.png b/docs/source/user_guide/images/nonlinear_coupled_Q.png deleted file mode 100644 index 93ba4c7cab..0000000000 Binary files a/docs/source/user_guide/images/nonlinear_coupled_Q.png and /dev/null differ diff --git a/docs/source/user_guide/images/nonlinear_coupled_SA.png b/docs/source/user_guide/images/nonlinear_coupled_SA.png deleted file mode 100644 index e5c9dfe503..0000000000 Binary files a/docs/source/user_guide/images/nonlinear_coupled_SA.png and /dev/null differ diff --git a/docs/source/user_guide/images/nonlinear_coupled_topo.png b/docs/source/user_guide/images/nonlinear_coupled_topo.png deleted file mode 100644 index 664b695077..0000000000 Binary files a/docs/source/user_guide/images/nonlinear_coupled_topo.png and /dev/null differ diff --git a/docs/source/user_guide/images/overland_flow_dem.png b/docs/source/user_guide/images/overland_flow_dem.png deleted file mode 100644 index 38fa59b223..0000000000 Binary files a/docs/source/user_guide/images/overland_flow_dem.png and /dev/null differ diff --git a/docs/source/user_guide/images/radial_example.png b/docs/source/user_guide/images/radial_example.png deleted file mode 100644 index 77a8eb91bc..0000000000 Binary files a/docs/source/user_guide/images/radial_example.png and /dev/null differ diff --git a/docs/source/user_guide/images/scarp_in_paraview.png b/docs/source/user_guide/images/scarp_in_paraview.png deleted file mode 100644 index 5164f7d7bb..0000000000 Binary files a/docs/source/user_guide/images/scarp_in_paraview.png and /dev/null differ diff --git a/docs/source/user_guide/images/si2pi_landlab_poster_tucker.jpg b/docs/source/user_guide/images/si2pi_landlab_poster_tucker.jpg deleted file mode 100644 index 7c8779e6e2..0000000000 Binary files a/docs/source/user_guide/images/si2pi_landlab_poster_tucker.jpg and /dev/null differ diff --git a/docs/source/user_guide/images/si2pi_landlab_poster_tucker.pdf b/docs/source/user_guide/images/si2pi_landlab_poster_tucker.pdf deleted file mode 100644 index 9600eae8bf..0000000000 Binary files a/docs/source/user_guide/images/si2pi_landlab_poster_tucker.pdf and /dev/null differ diff --git a/docs/source/user_guide/images/topographic-elevation.png b/docs/source/user_guide/images/topographic-elevation.png deleted file mode 100644 index fd79799503..0000000000 Binary files a/docs/source/user_guide/images/topographic-elevation.png and /dev/null differ diff --git a/docs/source/reference/components/images/water_table_schematic.png b/docs/source/user_guide/images/water_table_schematic.png similarity index 100% rename from docs/source/reference/components/images/water_table_schematic.png rename to docs/source/user_guide/images/water_table_schematic.png diff --git a/docs/source/user_guide/index.md b/docs/source/user_guide/index.md new file mode 100644 index 0000000000..4ae7ee0ded --- /dev/null +++ b/docs/source/user_guide/index.md @@ -0,0 +1,83 @@ +(user-guide)= + +# User Guide + +The User Guide describes Landlab by topic area. + +Users brand-new to Landlab should start with {ref}`10min`. + +Further information on any specific method can be obtained in the +{ref}`api`. + +The Landlab project creates an environment in which scientists can build a +numerical surface process model without having to code all of the individual +components. Surface process models compute flows of mass, such as water, sediment, +glacial ice, volcanic material, or landslide debris, across a gridded terrain +surface. Surface process models have a number of commonalities, such as operating +on a grid of points and routing material across the grid. Scientists who want +to use a surface process model often build their own unique model from the ground +up, re-coding the basic building blocks of their surface process model rather than +taking advantage of codes that have already been written. + +A list of papers and presentations using Landlab can be found {ref}`here `. + +```{toctree} +:caption: Grids and Components +:hidden: true +:maxdepth: 2 + +Grid & Component reference +component_list +field_definitions +grid_summary +``` + +```{toctree} +:caption: The Landlab Grid +:hidden: true +:maxdepth: 2 + +grid +``` + +```{toctree} +:caption: Model with Landlab and Components +:hidden: true +:maxdepth: 2 + +components +build_a_model +``` + +```{toctree} +:caption: Landlab and Units +:hidden: true +:maxdepth: 2 + +units +``` + +```{toctree} +:caption: Additional resources +:hidden: true +:maxdepth: 2 + +time_steps +faq +``` + +```{toctree} +:caption: Overland flow User Guide +:hidden: true +:maxdepth: 2 + +overland_flow_user_guide +``` + +```{toctree} +:caption: CellLab-CTS User Guide +:hidden: true +:maxdepth: 2 + +cell_lab_user_guide +``` diff --git a/docs/source/user_guide/index.rst b/docs/source/user_guide/index.rst deleted file mode 100644 index ff1b7db49b..0000000000 --- a/docs/source/user_guide/index.rst +++ /dev/null @@ -1,106 +0,0 @@ - -.. _user_guide: - -========== -User Guide -========== - -The User Guide describes Landlab by topic area. - -Users brand-new to Landlab should start with :ref:`10min`. - -Further information on any specific method can be obtained in the -:ref:`api`. - -The Landlab project creates an environment in which scientists can build a -numerical surface process model without having to code all of the individual -components. Surface process models compute flows of mass, such as water, sediment, -glacial ice, volcanic material, or landslide debris, across a gridded terrain -surface. Surface process models have a number of commonalities, such as operating -on a grid of points and routing material across the grid. Scientists who want -to use a surface process model often build their own unique model from the ground -up, re-coding the basic building blocks of their surface process model rather than -taking advantage of codes that have already been written. - -A list of papers and presentations using Landlab can be found :ref:`here `. - - -.. toctree:: - :caption: Introduction to Python - :maxdepth: 2 - :hidden: - - python_numpy_intro - - -.. toctree:: - :caption: The Landlab Grid - :maxdepth: 2 - :hidden: - - grid - - -.. toctree:: - :caption: Model with Landlab and Components - :maxdepth: 2 - :hidden: - - components - build_a_model - - -.. toctree:: - :caption: Landlab and Units - :maxdepth: 2 - :hidden: - - units - - -.. toctree:: - :caption: Landlab Tutorial Library - :maxdepth: 2 - :hidden: - - tutorials - teaching_tutorials - - -.. toctree:: - :caption: Additional resources - :maxdepth: 2 - :hidden: - - component_list - field_definitions - grid_summary - time_steps - examples - faq - - -.. toctree:: - :caption: Overland flow User Guide - :maxdepth: 2 - :hidden: - - overland_flow_user_guide - - -.. toctree:: - :caption: CellLab-CTS User Guide - :maxdepth: 2 - :hidden: - - cell_lab_user_guide - - -.. toctree:: - :caption: Major Version Transition Guides - :maxdepth: 2 - :hidden: - - landlab_zero_to_one - landlab_one_to_two - standard_name_changes diff --git a/docs/source/user_guide/landlab_one_to_two.rst b/docs/source/user_guide/landlab_one_to_two.rst deleted file mode 100644 index 89f74d08cb..0000000000 --- a/docs/source/user_guide/landlab_one_to_two.rst +++ /dev/null @@ -1,111 +0,0 @@ -.. _one_to_two: - -Transition from Landlab 1.x to 2.0 -================================== - -Landlab 2.0 will be released in early 2020. This page is meant to summarize the -major changes in Landlab 2.0 and make it easier for you to transition your -code. - -Changes include: - -- Landlab now requires Python 3 and no longer supports Python 2. -- The Landlab grid now inherits from the Landlab graph. -- Some grid methods have been removed. -- Standardization of the component interface. -- Some other functions/methods have been removed. -- No more GitHub Wiki, all the docs are on this page. - -These are described in more detail below. - -No more Python 2 ----------------- - -TODO: put a link to general 2 to 3 resources - -Landlab grid now inherits from the Landlab graph ------------------------------------------------- - -TODO List of user-facing changes - -Deprecation of some grid methods --------------------------------- - -TODO List of these, including replacements if any. - -Changes to field creation -------------------------- - -TODO Describe these better. - -- no more `noclobber`, instead we have `clobber` -- recommended field init (eg. at="") - -Changes to Boundary Condition Flags ------------------------------------ - -- Landlab no longer exposes unbound flags for boundary conditions. Instead - these flags are bound to the grid object. So to close the node with ID 1, - instead of - - .. code-block:: python - - from landlab import CLOSED_NODE, RasterModelGrid - - grid = RasterModelGrid((10, 5)) - grid.status_at_node[0] = CLOSED_NODE - - now we use the bound attribute `Grid.BC_NODE_IS_CLOSED`. - - .. code-block:: python - - from landlab import RasterModelGrid - - grid = RasterModelGrid((10, 5)) - grid.status_at_node[0] = grid.BC_NODE_IS_CLOSED - -A complete mapping is found in this table. - -+-------------------------+-------------------------------------+ -| Old name | New name | -+=========================+=====================================+ -| BAD_INDEX_VALUE | ModelGrid.BAD_INDEX | -+-------------------------+-------------------------------------+ -| CORE_NODE | ModelGrid.BC_NODE_IS_CORE | -+-------------------------+-------------------------------------+ -| FIXED_VALUE_BOUNDARY | ModelGrid.BC_NODE_IS_FIXED_VALUE | -+-------------------------+-------------------------------------+ -| FIXED_GRADIENT_BOUNDARY | ModelGrid.BC_NODE_IS_FIXED_GRADIENT | -+-------------------------+-------------------------------------+ -| LOOPED_BOUNDARY | ModelGrid.BC_NODE_IS_LOOPED | -+-------------------------+-------------------------------------+ -| CLOSED_BOUNDARY | ModelGrid.BC_NODE_IS_CLOSED | -+-------------------------+-------------------------------------+ -| ACTIVE_LINK | ModelGrid.BC_LINK_IS_ACTIVE | -+-------------------------+-------------------------------------+ -| INACTIVE_LINK | ModelGrid.BC_LINK_IS_INACTIVE | -+-------------------------+-------------------------------------+ -| FIXED_LINK | ModelGrid.BC_LINK_IS_FIXED | -+-------------------------+-------------------------------------+ - - -Standardization and deprecation within the component library ------------------------------------------------------------- - -TODO: Finish and write more. - -- FlowRouter deprecated. Use FlowAccumulator -- No more flooded_nodes (use ``erode_flooded_nodes=True`` at init) -- Fewer different options for runoff rate, but one, consistent, good option - (use argument to FlowAccumulator, then use ``surface__water_discharge`` for - erosion). -- Removal of old deprecated methods such as (``erode``, ``diffuse``) -- Main method now either take ``dt`` or nothing. - -Some other functions/methods have been removed ----------------------------------------------- - -TODO: Finish and write more. - -- ModelParameterDictionary -- plot.channel_profile (use ChannelProfiler component) diff --git a/docs/source/user_guide/landlab_zero_to_one.rst b/docs/source/user_guide/landlab_zero_to_one.rst deleted file mode 100644 index b5e26e0e1a..0000000000 --- a/docs/source/user_guide/landlab_zero_to_one.rst +++ /dev/null @@ -1,325 +0,0 @@ -.. _zero_to_one: - -Transition from Landlab 0.x to 1.0 -================================== - -Landlab 1.0beta was introduced May 12, 2016. This new version—the first -official stable release—introduces some powerful new capabilities. It -also brings some standardization, which means changes to certain -function names and ways of doing things. In order to minimize the impact -of these changes on your work, we've provided here a simple guide to -some of the major changes. - -Quick summary -------------- - -how to make your Landlab programs work with version 1.0beta - -Grid element and attribute names -```````````````````````````````` - -Old: ``link_length`` -New: ``length_of_link`` - -Old: ``node_x``, ``node_y`` -New: ``x_of_node``, ``y_of_node`` OR ``node_x``, ``node_y`` - -(NOTE: ``node_x`` and ``node_y`` are still supported, but best practice -is now to use ``x_of_node`` and ``y_of_node``) - -Old:``cell_area`` -New:``area_of_cell`` - -Old: ``face_width`` -New: ``width_of_face`` - -Common grid functions -````````````````````` - -Old: ``calculate_gradients_at_active_links``, -``calculate_gradients_at_links`` - -New: ``calc_grad_at_link`` (input is node-based array or field name; -output is a link-based array [**not** just active links]) - -Old: ``calculate_flux_divergence_at_nodes`` - -New: ``calc_flux_div_at_node`` (input is a *link-based array* [**not** -just active links]) - -New standardized function usage and syntax ------------------------------------------- - -Syntax of grid properties and functions ---------------------------------------- - -Data associated with Landlab grids include: - -- arrays that contain information about connections among grid elements - -- arrays that contain numerical attributes - -- grid functions - -Arrays that contain information about how various grid elements now use -a naming scheme that looks like this: - -``_at_`` - -Examples: ``link_at_face``, ``node_at_cell``, ``node_at_link_tail``, -``links_at_node``, ``faces_at_cell`` - -The word before ``_at_`` indicates what is being returned: the IDs of -links, or nodes, or faces, etc. A plural word before ``_at_``, such as -``links_at_node``, indicates that there are multiple values for each -element. For example, there are multiple links connected to every grid -node (in a raster grid, most nodes have four links). - -The word(s) after ``_at_`` indicate the dimension of the array returned. -For example, ``grid.link_at_face`` contains an array of the IDs of a -link associated with a face. The array length is equal to the number of -faces. Element 0 contains the ID of the link that crosses face 0, and so -on. - -In general, arrays containing a numerical attribute associated with -elements, such as the length of links, are named with the pattern: - -``_of_`` - -Examples: ``length_of_link``, ``width_of_face``, ``area_of_cell`` - -Grid functions that return arrays of information have names that hint at -the complexity of the underlying computation. In general, names that -simply describe a property or attribute, such as ``length_of_link``, -have minimum computational cost. Often they either simply provide an -existing array, or compute the values once but retain them thereafter so -that no further cost is incurred on future calls (though creating the -array may have an extra memory cost). More computationally expensive -functions, such that require one or more multiple floating-point -operations at each grid element, have the prefix ``calc_``. For example, -``calc_grad_at_link`` performs a subtraction and division operation at -each grid link. - -Gradient and flux divergence functions --------------------------------------- - -New functionality in Landlab's built-in gradient and flux-divergence -methods include: - -1 - The primary gradient-calculation function (for scalar quantities -defined on nodes) is now ``calc_grad_at_link``. This replaces the -previous functions ``calculate_gradients_at_active_links`` and -``calculates_gradients_at_links``. - -2 - ``calc_grad_at_link`` returns gradient values at **all** links, not -just active links. In general, Landlab's grid functions now only operate -with "complete" sets of grid elements. They will neither accept nor -return partial sets of a given element type (such as active or inactive -links, core or boundary nodes, etc.). - -3 - The primary divergence operation function is now -``calc_flux_div_at_node``. This replaces -``calculate_flux_divergence_at_nodes``. Note that it accepts an array -(or grid field name) with flux values defined on **all links** (not just -active links). Alternatively, if you provide an array (or grid field -name) with a length equal to the number of cell faces, it assumes that -these represent flux vectors aligned with the links that cross the -faces. - -4 - In general, previous function names that began with ``calculate_`` -have been shortened to ``calc_``. Similarly, names involving -``_gradient_`` are shortened to ``_grad_``, and those involving -``_divergence_`` are shortened to ``_div_``. - -3 - Names are singular. For example, ``calc_grad_at_link`` replaces -``calculate_gradients_at_links``, even though the function returns a -value for *every* link. - -4 - Landlab now provides a *net flux* function: -``calc_net_flux_at_node`` adds up fluxes around the perimeter of each -cell, essentially performing a numerical line integral. Values at -perimeter nodes (which do not have corresponding cells) are either set -to zero, or (if the user passes in an array to hold the result) are left -unchanged. The function ``calc_net_flux_at_node`` is identical to -\`calc_flux_div_at_node except that the net flux is not divided by cell -area. - -5 - Stay tuned for equivalent functions that calculates the gradient -along **faces**, and net flux and flux divergence within **patches** -(with the resulting values tied to **corners**). These will appear in a -future version, and will be named: ``calc_grad_at_face``, -``calc_net_flux_at_corner``, and ``calc_flux_div_at_corner``. - -For more information and examples about the new **grad** and **div** -functions, see the entries in the Reference manual for gradient -functions and divergence functions. - -Changes in Component Usage --------------------------- - -Components are now standardised across Landlab, eliminating the numerous -inconsistencies that existed before. This standardisation is as follows: - -1 - All component classes can now be imported directly from -``landlab.components``, e.g.: - -``from landlab.components import FlowRouter`` - -2 - All components are now instantiated using the same signature. The -first argument is the ModelGrid. Subsequent arguments are the keywords -to provide the input parameters needed by the component, and any other -flags. - -Components no longer take an input file, per se. Rather, in keeping with -the spirit of numpy, the necessary input parameters are passed as -keywords. This has several advantages, including allowing explicit -default values to be present, and clear to the user, and also allowing -dynamic Python objects (e.g., an existing array of values) to be passed -in as arguments. Note however that it is still possible (and indeed -encouraged) to use an input file, but now you will need to turn it into -a Python dictionary before passing it to the component (see below). The -recommended way to do this is with the ``load_params`` function, which -performs typing of arguments automatically and can read a variety of -file types. However, the older ways of using the Landlab -``ModelParameterDictionary`` will also still work (though are -deprecated). - -This construction format will be listed explicitly in the documentation. -Try ``help(MyComponent)`` in an interactive session to see it, or look -it up online. - -For the moment, many components are back compatible with the old ways of -doing things, but this is deprecated functionality and no longer -documented. It may disappear entirely in future releases. - -All this means that all of the following are possible ways to -instantiate a component: - -:: - - >>> from landlab.components import FastscapeEroder - >>> from landlab import RasterModelGrid, load_params, ModelParameterDictionary - >>> mg = RasterModelGrid((4, 5), 1.0) - >>> sp1 = FastscapeEroder( - ... mg, K_sp=1.0e-6 - ... ) # the minimum information needed, passed by hand, OR - >>> sp2 = FastscapeEroder( - ... mg, - ... K_sp=np.random.rand(20.0), - ... m_sp=0.5, - ... n_sp=1.0, - ... threshold_sp=0.0, - ... rainfall_intensity=1.0, - ... ) # note the array, OR - >>> myparamdict1 = load_params("my_input_file.txt") - >>> sp3 = FastscapeEroder( - ... mg, **myparamdict1 - ... ) # note the "**". Necessary args come from the dict, OR - >>> myparamdict2 = ModelParameterDictionary("my_input_file.txt", auto_type=True) - >>> sp4 = FastscapeEroder( - ... mg, **myparamdict2 - ... ) # ...but it's best practice to use load_params instead - >>> sp5 = FastscapeEroder( - ... mg, "my_input_file.txt" - ... ) # still works in many cases, but DEPRECATED - -3 - All components now have a "run method" with the standardised name -``run_one_step``. The first argument is always the timestep, dt, if -needed by the component. Subsequent arguments may be present as flags to -control run behaviour. As an example: - -:: - - >>> sp = FastscapeEroder(mg, K_sp=1.0e-6) - >>> dt = 1000.0 - >>> for i in range(100): # 100 ka of erosion - ... sp.run_one_step(dt) - ... - -The old run methods still exist inside many components, but we encourage -migration to this new standardised format. - -4 - ``run_one_step()`` never returns anything. There is no need; the -grid object will already have been updated as necessary. - -5 - All components should now have comprehensive and up-to-date -documentation. View it on the website, or in an interactive Python -session use either ``help(MyComponent)`` or ``MyComponent?``. - -Standardisation of Component Standard Field Names -------------------------------------------------- - -In the interests of internal self consistency and repeatability, the -currently in-use component standard field names have been overhauled. -This is likely to break quite a bit of code, but a search-and-replace -will fix things very fast. - -The following represents a (hopefully) almost complete list of the name -substitutions: - -- 'channel_bed_shear_stress' → 'channel__bed_shear_stress' -- 'channel_depth' → 'channel__depth' -- 'channel_discharge' → 'channel__discharge' -- 'channel_width' → 'channel__width' -- 'drainage_area' –> We're keeping it BOOM -- 'effective_fluvial_diffusivity' → field removed -- 'elevation' –> 'topographic__elevation' -- 'flow_receiver' –> 'flow__receiver_node' -- 'flow_sinks' –> 'flow__sink_flag' -- 'fluvial_sediment_flux_into_node' → - 'channel_sediment__volumetric_flux' -- 'Fluvial_sediment_transport_capacity' → - 'channel_sediment__volumetric_transport_capacity' -- 'Links_to_flow_receiver' →flow__link_to_receiver_node' -- 'lithosphere__elevation' –> 'lithosphere_surface__elevation' -- 'lithosphere__elevation_increment' → - 'lithosphere_surface__elevation_increment' -- 'planet_surface_sediment__deposition_increment' –> - 'sediment__deposition_increment' -- 'potentiality_field' –> 'flow__potential' -- 'relative_sediment_flux' → 'channel_sediment__relative_flux' -- 'shear_stress' –> 'channel__bed_shear_stress' -- 'slope_at_nodes' –> 'topographic__steepest_slope' (slope === downhill - gradient) -- 'stream_power_erosion' → field removed -- 'surface_gradient' –> 'topographic__slope' -- 'upstream_ID_order' –> 'flow__upstream_node_order' -- 'Upstream_node_order' –> 'flow__upstream_node_order' -- 'water__volume_flux' → 'water__discharge' -- 'water__volume_flux_in' → 'water__unit_flux_in' (special case in flow - router) -- 'water__volume_flux_magnitude', → 'water__discharge' -- 'water__volume_flux_xcomponent', → 'water__discharge_x_component' -- 'water__volume_flux_ycomponent', → 'water__discharge_y_component' -- 'water_depth' –> 'water__depth' -- 'water_discharge' –> 'water__discharge' -- 'water_discharge_at_nodes' –> 'water__discharge' -- 'water_surface_slope_at_nodes' –> 'water_surface__gradient' - -These changes are likely to occur in components probably not released as -part of LL1.0, but will have likely occurred once the components return -in a future release: - -- 'ActualEvapotranspiration' –> surface__evapotranspiration_rate -- 'CumulativeWaterStress' –> vegetation__cumulative_water_stress -- 'DeadBiomass' –> vegetation__dead_biomass -- 'DeadLeafAreaIndex –> vegetation__dead_leaf_area_index -- 'Drainage' –> duplicate of 'drainage_area' ? -- 'Elevation' –> duplicate of topographic__elevation, or needs to be - more specific -- 'LiveBiomass' –> vegetation__live_biomass -- 'LiveLeafAreaIndex' –> vegetation__live_leaf_area_index -- 'NetLongWaveRadiation' –> radiation__net_longwave -- 'NetRadiation' –> radiation__net -- 'NetShortWaveRadiation' –> radiation__net_shortwave -- 'PlantAge' –> plant__age -- 'PlantLiveIndex' –> plant__live_index -- 'PotentialEvapotranspiration' –> - surface__potential_evapotranspiration_rate -- 'RadiationFactor' –> radiation__ratio_to_flat_surface -- 'Runoff' –> I think I'm OK with runoff__rate -- 'SaturationFraction' –> soil_moisture__saturation_fraction -- 'TotalShortWaveRadiation' –> radiation__incoming_shortwave -- 'VegetationCover', –> vegetation__cover_fraction -- 'VegetationType' –> vegetation__type -- 'WaterStress' –> soil_moisture__water_stress diff --git a/docs/source/user_guide/overland_flow_user_guide.rst b/docs/source/user_guide/overland_flow_user_guide.md similarity index 52% rename from docs/source/user_guide/overland_flow_user_guide.rst rename to docs/source/user_guide/overland_flow_user_guide.md index 77465129d5..546ad9a45d 100644 --- a/docs/source/user_guide/overland_flow_user_guide.rst +++ b/docs/source/user_guide/overland_flow_user_guide.md @@ -1,15 +1,11 @@ -.. _overland_flow_manual: +(overland-flow-manual)= -=================================== -Overland Flow Component User Manual -=================================== +# Overland Flow Component User Manual -Background on OverlandFlow component ------------------------------------- +## Background on OverlandFlow component The Landlab OverlandFlow component implements a 2-D solution of the shallow water equations, following the algorithm of de Almeida et al., (2012). In this component, an explicit solution simulates a flood wave moving across a gridded terrain, capturing hydrodynamics throughout the system. At each point within the grid, surface water discharge is calculated based on physical properties. This component expands the hydrologic capabilities of Landlab by offering a nonsteady flow routing method as an alternative to the steady-state flow routing regimes found in many geomorphic or landscape evolution models -(such as the Landlab :py:class:`FlowAccumulator` component). - +(such as the Landlab {py:class}`FlowAccumulator` component). This User Manual describes how to instantiate, parameterize and plot data using the OverlandFlow component, using an example described in Adams et al., (in press, *Geoscientific Model Development*). For further information about the derivation of the algorithm used in this component, see: Bates et al., (2010) and de Almeida et al., (2012). @@ -17,13 +13,12 @@ This User Manual describes how to instantiate, parameterize and plot data using *Prerequisites*: A working knowledge of the Python programming language (any version) and familiarity with the Python libraries NumPy and Matplotlib. A basic understanding of the Landlab modeling framework (Hobley et al., 2017) is also recommended. -Model parameters and variables ------------------------------- +## Model parameters and variables **Input parameters** Parameters listed here are easily tuned by the model user. For a complete list, see -:py:mod:`here`. +{py:mod}`here`. - **Alpha** : Weight on the adaptive time step, ranging between 0.2 - 0.7. For more information, see Hunter et al., (2005). - **Manning's n** : An empirical value describing surface roughness. See Chow (1959). @@ -33,96 +28,91 @@ Parameters listed here are easily tuned by the model user. For a complete list, Variables listed here are updated by the component at the grid locations listed. -- **surface_water__discharge**, *link*, [m^2 s^-1] : At each link in grid, *surface_water__discharge* is calculated using the de Almeida et al., (2012) equation. Discharge is a function of the water depth, adaptive time step, surface water slope and Manning's roughness coefficient. -- **surface_water__depth**, *node*, [m] : At each node in the grid, *surface_water__depth* is updated using the *surface_water__discharge* on links connected to a given node. +- **surface_water\_\_discharge**, *link*, \[m^2 s^-1\] : At each link in grid, *surface_water\_\_discharge* is calculated using the de Almeida et al., (2012) equation. Discharge is a function of the water depth, adaptive time step, surface water slope and Manning's roughness coefficient. +- **surface_water\_\_depth**, *node*, \[m\] : At each node in the grid, *surface_water\_\_depth* is updated using the *surface_water\_\_discharge* on links connected to a given node. -Basic steps of an OverlandFlow model ------------------------------------- +## Basic steps of an OverlandFlow model -1. **Import the necessary libraries**: ``OverlandFlow`` is required. Optional libraries include the ``SinkFiller`` component, the Landlab plotting method ``imshow__grid``. Additional packages mentioned here include ``matplotlib.pyplot`` and ``numpy``. +1. **Import the necessary libraries**: `OverlandFlow` is required. Optional libraries include the `SinkFiller` component, the Landlab plotting method `imshow__grid`. Additional packages mentioned here include `matplotlib.pyplot` and `numpy`. 2. **Defining the model domain**: The computational domain of an OverlandFlow model can only work on RasterModelGrid instances as of Landlab version 1.0.0. -3. **Setting the boundary conditions**: If a clipped watershed digital elevation model (DEM) from ArcGIS is imported in ASCII format, the method ``set_watershed_boundary_condition()`` can be used. Alternatively, ``fixed_link`` boundary conditions can be used for discharge inputs on links. Other boundary condition scenarios can be accommodated by setting individual nodes or edges of the grid using Landlab boundary condition handling. -4. **Pre-processing the DEM**: This step is *optional*. If a watershed DEM is used, ArcGIS "D8" pit-filling will not create a continuous network for the "D4" ``OverlandFlow`` algorithm. The ``SinkFiller`` component can pit fill for a "D4" network. -5. **Initializing the OverlandFlow component**: The instance of the ``OverlandFlow`` class is declared, and parameters are set by the user. -6. **Determining precipitation inputs**: A constant precipitation rate can be passed to the ``OverlandFlow`` class, where precipitation persists for the entire model run. Alternatively, a single event can be set within the time loop, and then water can drain from the system when the precipitation event is over. -7. **Time loop**: The main ``OverlandFlow`` methods are called, and grid variables are updated through time. Data can be saved for plotting or later analysis. +3. **Setting the boundary conditions**: If a clipped watershed digital elevation model (DEM) from ArcGIS is imported in ASCII format, the method `set_watershed_boundary_condition()` can be used. Alternatively, `fixed_link` boundary conditions can be used for discharge inputs on links. Other boundary condition scenarios can be accommodated by setting individual nodes or edges of the grid using Landlab boundary condition handling. +4. **Pre-processing the DEM**: This step is *optional*. If a watershed DEM is used, ArcGIS "D8" pit-filling will not create a continuous network for the "D4" `OverlandFlow` algorithm. The `SinkFiller` component can pit fill for a "D4" network. +5. **Initializing the OverlandFlow component**: The instance of the `OverlandFlow` class is declared, and parameters are set by the user. +6. **Determining precipitation inputs**: A constant precipitation rate can be passed to the `OverlandFlow` class, where precipitation persists for the entire model run. Alternatively, a single event can be set within the time loop, and then water can drain from the system when the precipitation event is over. +7. **Time loop**: The main `OverlandFlow` methods are called, and grid variables are updated through time. Data can be saved for plotting or later analysis. -Step 1. Import the necessary libraries -`````````````````````````````````````` +### Step 1. Import the necessary libraries To build an OverlandFlow model, first the necessary Landlab components and utilities, as well as any necessary Python packages must be imported. Standard Python style dictates all import statements belong in the top of the driver file, after the module docstrings. In this simple example, the OverlandFlow model driver begins as follows: -.. code-block:: python - - """overland_flow_driver.py +```python +"""overland_flow_driver.py - OverlandFlow component example, initializing a 36 km^2 square watershed with a - grid resolution of 30 m, from an ESRI ASCII file, simulating a 5 mm/hr rainfall - intensity over 2 hours, the standard storm example from Adams et al., - in prep for Geoscientific Model Development +OverlandFlow component example, initializing a 36 km^2 square watershed with a +grid resolution of 30 m, from an ESRI ASCII file, simulating a 5 mm/hr rainfall +intensity over 2 hours, the standard storm example from Adams et al., +in prep for Geoscientific Model Development - Written by Jordan Adams, August 2016 - """ +Written by Jordan Adams, August 2016 +""" - ## Landlab components - from landlab.components import OverlandFlow, SinkFiller # SinkFiller is optional +## Landlab components +from landlab.components import OverlandFlow, SinkFiller # SinkFiller is optional - ## Landlab utilities - from landlab.io import read_esri_ascii # OR from landlab import RasterModelGrid - from landlab.plot import imshow_grid # plotter functions are optional +## Landlab utilities +from landlab.io import read_esri_ascii # OR from landlab import RasterModelGrid +from landlab.plot import imshow_grid # plotter functions are optional - ## Additional Python packages - import numpy as np - from matplotlib import pyplot as plt # plotter functions are optional +## Additional Python packages +import numpy as np +from matplotlib import pyplot as plt # plotter functions are optional +``` -To run the test case presented here, two components are needed. First is the required ``OverlandFlow`` component, which will be used to calculate surface water discharge and surface water depth across the model grid. Also presented here is the ``SinkFiller`` component, which can be used optionally to pre-process the DEM. The ``SinkFiller`` component is described in more detail in **Step 4** of this Users Manual. +To run the test case presented here, two components are needed. First is the required `OverlandFlow` component, which will be used to calculate surface water discharge and surface water depth across the model grid. Also presented here is the `SinkFiller` component, which can be used optionally to pre-process the DEM. The `SinkFiller` component is described in more detail in **Step 4** of this Users Manual. -To create a model domain, a Landlab RasterModelGrid instance must be initialized. In this example, the Landlab input/output suite of tools is used to read in a DEM that is formatted as an ESRI ASCII file ``read_esri_ascii``). Alternatively, a model domain can be manually created by the user. Both of these methods are described in detail in **Step 2** of this Users Manual. +To create a model domain, a Landlab RasterModelGrid instance must be initialized. In this example, the Landlab input/output suite of tools is used to read in a DEM that is formatted as an ESRI ASCII file `read_esri_ascii`). Alternatively, a model domain can be manually created by the user. Both of these methods are described in detail in **Step 2** of this Users Manual. -Other Landlab utilities used in this example are the plotting library ``imshow_grid``, which is a utility that can plot a Landlab grid instance and data field in map view, as described in the **Plotting and visualization** section in this Users Manual. +Other Landlab utilities used in this example are the plotting library `imshow_grid`, which is a utility that can plot a Landlab grid instance and data field in map view, as described in the **Plotting and visualization** section in this Users Manual. Finally, additional Python packages are imported. In this example, both packages are dependencies of Landlab, which means they are required for Landlab installation and as such, should already be present on the user's machine. The scientific computing library NumPy is used for mathematical operations, and the matplotlib library is used for plotting model output. -Step 2. Defining the model domain -````````````````````````````````` +### Step 2. Defining the model domain As previously stated, the algorithm used in the OverlandFlow component was derived to work on remotely-sensed data and, as such, only works on the RasterModelGrid instance in Landlab (e.g. Bates et al., 2010, de Almeida et al., 2012). Shown here is an example of a Landlab raster grid: -.. image:: images/RasterGrid_Directions.png - :width: 300px - :align: center +```{image} images/RasterGrid_Directions.png +:align: center +:width: 300px +``` **Figure** 1: Example of a Landlab RasterModelGrid instance. Each RasterModelGrid is composed of 3 core elements: nodes, which are points in (x, y) space; cells, a polygon with an area around a node; and links, ordered lines which connect neighboring pairs of node that store directionality. -There are two ways to implement a RasterModelGrid that work with Landlab: reading in remotely-sensed data from a DEM with ``read_esri_ascii()``, or manually setting a generic structured grid using the RasterModelGrid library. Both of these methods are described in detail below. +There are two ways to implement a RasterModelGrid that work with Landlab: reading in remotely-sensed data from a DEM with `read_esri_ascii()`, or manually setting a generic structured grid using the RasterModelGrid library. Both of these methods are described in detail below. -Reading in a watershed DEM -.......................... +#### Reading in a watershed DEM Landlab can easily interact with DEM data output by ESRI's ArcGIS software. In this example, the DEM 'Square_TestBasin.asc' represents a single watershed. Reading in the data takes two lines of code, outlined here: -.. code-block:: python +```python +watershed_dem = "Square_TestBasin.asc" +(rmg, z) = read_esri_ascii(watershed_dem, name="topographic__elevation") +``` - watershed_dem = "Square_TestBasin.asc" - (rmg, z) = read_esri_ascii(watershed_dem, name="topographic__elevation") +In this example, the watershed DEM is read in by the `read_esri_ascii()` method, and the elevation data from the DEM is automatically assigned to the Landlab data field `topographic__elevation`, for use by the components. -In this example, the watershed DEM is read in by the ``read_esri_ascii()`` method, and the elevation data from the DEM is automatically assigned to the Landlab data field ``topographic__elevation``, for use by the components. - -Setting up a generic RasterModelGrid -.................................... +#### Setting up a generic RasterModelGrid The alternative to reading in a watershed DEM is to set the RasterModelGrid instance manually: -.. code-block:: python - - rmg = RasterModelGrid((number_of_node_rows, number_of_node_columns), dx) - z = user_defined_elevation_data # length of number_of_nodes - rmg["node"]["topographic__elevation"] = z +```python +rmg = RasterModelGrid((number_of_node_rows, number_of_node_columns), dx) +z = user_defined_elevation_data # length of number_of_nodes +rmg["node"]["topographic__elevation"] = z +``` -This example assumes that the model users knows the following information: the number of grid rows (``number_of_grid_rows``), the number of grid columns (``number_of_grid_columns``), the grid resolution (``dx``) and some elevation data for each node. Here, the user must manually set the elevation data. When passing elevation data to the ``topographic__elevation`` field, the length of ``user_defined_elevation_data`` **must** be equal to the number of nodes in the grid (which can be found using a command such as: ``rmg.number_of_nodes``. +This example assumes that the model users knows the following information: the number of grid rows (`number_of_grid_rows`), the number of grid columns (`number_of_grid_columns`), the grid resolution (`dx`) and some elevation data for each node. Here, the user must manually set the elevation data. When passing elevation data to the `topographic__elevation` field, the length of `user_defined_elevation_data` **must** be equal to the number of nodes in the grid (which can be found using a command such as: `rmg.number_of_nodes`. -Step 3. Setting the boundary conditions -``````````````````````````````````````` +### Step 3. Setting the boundary conditions Landlab contains several methods which can set and update boundary conditions at *node* and *link* grid elements. When modeling water flow across a grid, a @@ -131,16 +121,16 @@ reads in a single watershed DEM, (as described in **Step 2**), there is a utility within Landlab that can handle the specific boundary conditions needed to control flow: -.. code-block:: python - - rmg.set_watershed_boundary_condition(z, nodata_values=-9999.0) +```python +rmg.set_watershed_boundary_condition(z, nodata_values=-9999.0) +``` By definition, a watershed has only one outlet, or open boundary location, and therefore all other nodes surrounding the watershed will be closed, or no flux, boundaries. -The ``set_watershed_boundary_condition()`` method reads the gridded elevation -data, (``z``), identifies the watershed outlet and sets it to an open boundary -(identified by the grid attribute ``grid.BC_NODE_IS_FIXED_VALUE`` in Landlab). +The `set_watershed_boundary_condition()` method reads the gridded elevation +data, (`z`), identifies the watershed outlet and sets it to an open boundary +(identified by the grid attribute `grid.BC_NODE_IS_FIXED_VALUE` in Landlab). An open boundary allows flux to leave the modeling domain. Additionally, this methods also identifies all NODATA nodes (given a default value of -9999) and sets them to closed, or no flux, boundaries. @@ -149,249 +139,228 @@ sets them to closed, or no flux, boundaries. watersheds, and so assumes that the watershed has been clipped in ArcGIS and has only one outlet point. -Other boundary condition options -................................ +#### Other boundary condition options There are other options for boundary condition handling that are more appropriate for non-DEM modeling domains. (For a complete review of boundary condition handling in Landlab, review Hobley et al., in submission for *Earth Surface Dynamics* or Landlab -:ref:`boundary ` condition documentation +{ref}`boundary ` condition documentation -Here, the ``FIXED_GRADIENT`` boundary condition is described. The -``set_nodata_nodes_to_fixed_gradient()`` method sets all NODATA nodes to -``FIXED_GRADIENT``, and all boundary links (links that connect core nodes -within the model domain to a fixed gradient nodes) are set to ``FIXED_LINK`` +Here, the `FIXED_GRADIENT` boundary condition is described. The +`set_nodata_nodes_to_fixed_gradient()` method sets all NODATA nodes to +`FIXED_GRADIENT`, and all boundary links (links that connect core nodes +within the model domain to a fixed gradient nodes) are set to `FIXED_LINK` status. Then, boundary links can be updated with some input discharge value: -.. code-block:: python - - rmg.set_nodata_nodes_to_fixed_gradient(z) - rmg.fixed_links = input_discharge_value +```python +rmg.set_nodata_nodes_to_fixed_gradient(z) +rmg.fixed_links = input_discharge_value +``` This boundary condition can be useful because of how the underlying algorithm in OverlandFlow (de Almeida et al., 2012) updates discharge at each time step. In this model, discharge is calculated as a function of the neighboring discharge values: -.. image:: images/deAlmeidaGridExample.png - :width: 300px - :align: center +```{image} images/deAlmeidaGridExample.png +:align: center +:width: 300px +``` **Figure 2**: The algorithm from de Almeida et al., (2012) uses discharge information on neighboring links to calculate discharge. Fixed link boundary conditions allow the user to set discharge on links along the boundary, so that the interior discharges can be updated using those manually-set fluxes. -In this example, calculating discharge on q\ :sub:`x` requires discharge values q\ :sub:`x-1` and q\ :sub:`x+1`. If a link is along the boundary of the domain, the default value is 0. Fixed link boundary statuses allow the user to manually update the discharge value at a boundary link, to simulate some influx of water discharge into the model domain. +In this example, calculating discharge on q{sub}`x` requires discharge values q{sub}`x-1` and q{sub}`x+1`. If a link is along the boundary of the domain, the default value is 0. Fixed link boundary statuses allow the user to manually update the discharge value at a boundary link, to simulate some influx of water discharge into the model domain. -If the user desires, these fixed links can also be updated to contain flux value of their nearest interior neighbor. Following the earlier example, if discharge q\ :sub:`x-1` is at on a fixed boundary link, it can be updated to contain the value of its neighboring discharge q\ :sub:`x`. This is done exclusively in the OverlandFlow component. The user simply needs to call ``default_fixed_links = True`` when initializing the ``OverlandFlow`` component, as described in **Step 5**. This method prevents flow from exiting the edge of the watershed onto NODATA nodes, and does not set an outlet node by default. If the user wants to set an outlet node to an open boundary, that must be done manually, not described here. +If the user desires, these fixed links can also be updated to contain flux value of their nearest interior neighbor. Following the earlier example, if discharge q{sub}`x-1` is at on a fixed boundary link, it can be updated to contain the value of its neighboring discharge q{sub}`x`. This is done exclusively in the OverlandFlow component. The user simply needs to call `default_fixed_links = True` when initializing the `OverlandFlow` component, as described in **Step 5**. This method prevents flow from exiting the edge of the watershed onto NODATA nodes, and does not set an outlet node by default. If the user wants to set an outlet node to an open boundary, that must be done manually, not described here. -Step 4. Pre-processing the DEM (*Optional*) -``````````````````````````````````````````` +### Step 4. Pre-processing the DEM (*Optional*) When modeling surface flow across a DEM and the user wants to ensure all water drains out of the system (that is, water is not trapped in pits or holes on the DEM surface), there must be a continuous flow path. In many applications, flow is allowed to exit a node in 8 directions ('D8'): the cardinal directions (East, North, West, South) and the diagonal directions (Northeast, Northwest, Southwest, Southeast). However, this model restricts flow to only the cardinal directions ('D4'). To create a continuous flow network, GIS applications often include a pit-filling regime to remove divots in the DEM surface so water can exit the pit and travel to the outlet. In ArcGIS, this pit-filling regime operates in 'D8': -.. image:: images/D8_vs_D4.png - :width: 300px - :align: center +```{image} images/D8_vs_D4.png +:align: center +:width: 300px +``` **Figure 3**: Comparison of 'D8' and 'D4' flow routing methods. The key difference: in 'D8' methods, flow can move diagonally out of a given node. However, in Landlab version 1.0.0., the OverlandFlow component is limited to the 'D4' regime. If a watershed DEM has been processed in ArcGIS, the flow network most likely follows a 'D8' path. When using the OverlandFlow component on a 'D8' network, the flow path may not be continuous. -To address this discrepancy, the SinkFiller component in Landlab has been developed to accommodate both 'D8' or 'D4' pit-filling on a DEM. Running this component can take some time, particularly on large grids, so it is *optional* to run the OverlandFlow component. This component can be applied to our DEM in two lines of code, initializing the SinkFiller component and running the ``fill_pits()`` method: - -.. code-block:: python +To address this discrepancy, the SinkFiller component in Landlab has been developed to accommodate both 'D8' or 'D4' pit-filling on a DEM. Running this component can take some time, particularly on large grids, so it is *optional* to run the OverlandFlow component. This component can be applied to our DEM in two lines of code, initializing the SinkFiller component and running the `fill_pits()` method: - sf = SinkFiller(rmg, routing="D4", apply_slope=True, fill_slope=1.0e-5) - sf.fill_pits() +```python +sf = SinkFiller(rmg, routing="D4", apply_slope=True, fill_slope=1.0e-5) +sf.fill_pits() +``` +**Note**: For more information about the SinkFiller {py:class}`component `. -**Note**: For more information about the SinkFiller :py:class:`component `. - -Step 5. Initializing the OverlandFlow component -``````````````````````````````````````````````` +### Step 5. Initializing the OverlandFlow component Most Landlab components are structured as a Python class. These classes are imported (as seen in **Step 1**) and then the user must create an instance of the class: -.. code-block:: python - - of = OverlandFlow(rmg, mannings_n=0.03, steep_slopes=True) +```python +of = OverlandFlow(rmg, mannings_n=0.03, steep_slopes=True) +``` -When the instance of the class is created, parameters are passed as keywords to the class. All Landlab components take a grid as their first argument. All subsequent keywords are parameters used to control model behavior. Each Landlab component has documentation which lists the parameters. The OverlandFlow documentation is linked in the **Model description** section above. The example script shown here includes parameters *Manning's n*, which takes a numerical value, and the stability criterion ``steep_slopes`` flag, which is passed a Boolean (``True`` or ``False``) value. Details about the stability criterion are provided in the next subsection. +When the instance of the class is created, parameters are passed as keywords to the class. All Landlab components take a grid as their first argument. All subsequent keywords are parameters used to control model behavior. Each Landlab component has documentation which lists the parameters. The OverlandFlow documentation is linked in the **Model description** section above. The example script shown here includes parameters *Manning's n*, which takes a numerical value, and the stability criterion `steep_slopes` flag, which is passed a Boolean (`True` or `False`) value. Details about the stability criterion are provided in the next subsection. -Stability criteria -.................. +#### Stability criteria -The OverlandFlow component is built off the de Almeida et al., (2012) algorithm for urban flood inundation, and is most stable in flat environments. Because of this, instabilities can arise when trying to apply the algorithm to steep landscapes. To adapt this model for use across a variety of terrains, stability criteria (following Coulthard et al., 2013) is implemented to using the ``steep_slopes`` flag. This method reduces flow discharge to keep flow subcritical according to the Froude number less than or equal to 1.0. For more information, see Adams et al., (in prep for *Geoscientific Model Development*). +The OverlandFlow component is built off the de Almeida et al., (2012) algorithm for urban flood inundation, and is most stable in flat environments. Because of this, instabilities can arise when trying to apply the algorithm to steep landscapes. To adapt this model for use across a variety of terrains, stability criteria (following Coulthard et al., 2013) is implemented to using the `steep_slopes` flag. This method reduces flow discharge to keep flow subcritical according to the Froude number less than or equal to 1.0. For more information, see Adams et al., (in prep for *Geoscientific Model Development*). -Step 6. Precipitation inputs -```````````````````````````` +### Step 6. Precipitation inputs Often, the user will want to route a precipitation event or a series of precipitation events across a watershed.There are two methods for setting precipitation parameters in the OverlandFlow component. **Note**: At the moment, only uniform precipitation events have been tested using this component. -Constant precipitation input -............................ - -This is the simplest method, and is used when a constant precipitation intensity is routed for the entirety of a model run (model_run_time). In this example, rainfall__intensity (units [m s\ :sup:`-1`]) is passed when the OverlandFlow component is initialized (**Step 5**): +#### Constant precipitation input -.. code-block:: python +This is the simplest method, and is used when a constant precipitation intensity is routed for the entirety of a model run (model_run_time). In this example, rainfall\_\_intensity (units \[m s{sup}`-1`\]) is passed when the OverlandFlow component is initialized (**Step 5**): - elapsed_time = 0.0 - model_run_time = 86400.0 - of = OverlandFlow( - rmg, steep_slopes=True, rainfall_intensity=1.38889 * (10**-6) - ) # m/s +```python +elapsed_time = 0.0 +model_run_time = 86400.0 +of = OverlandFlow( + rmg, steep_slopes=True, rainfall_intensity=1.38889 * (10**-6) +) # m/s +``` -Single storm event -.................. +#### Single storm event Alternatively, a user may decide to route an event where rainfall stops, and water drains from the system. The simplest case is a single storm event, presented here: -.. code-block:: python +```python +elapsed_time = 0.0 +model_run_time = 86400.0 - elapsed_time = 0.0 - model_run_time = 86400.0 +storm_duration = 7200.0 +rainfall_mmhr = 5.0 +``` - storm_duration = 7200.0 - rainfall_mmhr = 5.0 +In this example, storm characteristics (duration and intensity) are set separately from the OverlandFlow component initialization. These characteristics are used in a time loop within the model driver (seen in **Step 7**). While elapsed_time in a model is less than storm duration, the precipitation intensity is input across all nodes in the model domain. When the storm event ends, the precipitation intensity is reset to 0 \[m s{sup}`-1`\], allowing the water remaining in the system to drain out. -In this example, storm characteristics (duration and intensity) are set separately from the OverlandFlow component initialization. These characteristics are used in a time loop within the model driver (seen in **Step 7**). While elapsed_time in a model is less than storm duration, the precipitation intensity is input across all nodes in the model domain. When the storm event ends, the precipitation intensity is reset to 0 [m s\ :sup:`-1`], allowing the water remaining in the system to drain out. - -Step 7. Iterate through time -```````````````````````````` +### Step 7. Iterate through time The key part of any Landlab model driver is the time loop, where components recalculate the processes, and update their necessary data values. In the OverlandFlow component, during a time loop, at each time step, surface water discharge and surface water depth are recalculated. A simple example of an OverlandFlow time loop is presented here: -.. code-block:: python - - while elapsed_time < model_run_time: - of.dt = of.calc_time_step() # Adaptive time step +```python +while elapsed_time < model_run_time: + of.dt = of.calc_time_step() # Adaptive time step - if elapsed_time < (storm_duration): - of.rainfall_intensity = rainfall_mmhr * (2.777778 * 10**-7) - else: - of.rainfall_intensity = 0.0 + if elapsed_time < (storm_duration): + of.rainfall_intensity = rainfall_mmhr * (2.777778 * 10**-7) + else: + of.rainfall_intensity = 0.0 - of.overland_flow() + of.overland_flow() - rmg.at_node["surface_water__discharge"] = of.discharge_mapper( - of.q, convert_to_volume=True - ) + rmg.at_node["surface_water__discharge"] = of.discharge_mapper( + of.q, convert_to_volume=True + ) - elapsed_time += of.dt + elapsed_time += of.dt +``` This code snippet is described here: -- This OverlandFlow example loops through time as a ``while`` loop. After each time loop, ``elapsed_time`` is increased until it exceeds ``model_run_time``. - +- This OverlandFlow example loops through time as a `while` loop. After each time loop, `elapsed_time` is increased until it exceeds `model_run_time`. - An adaptive time step is recommended, and is calculated here at the start of each time loop. (See the next subsection for more information about the adaptive time step). - -- Inside the time loop, there is a test to see if the ``elapsed_time`` is less than the ``storm_duration``. If so, the rainfall intensity property of OverlandFlow is updated to the rainfall intensity (here converted from [mm hr\ :sup:`-1` to [m s\ :sup:`-1`). - -- If the ``elapsed_time`` is greater than the ``storm_duration``, the rainfall intensity parameter of the OverlandFlow component is reset to 0 [m s\ :sup:`-1`]. - -- After the rainfall intensity is set, the actual process method ``overland_flow()`` is called. This method calculate discharge as a function of the de Almeida et al., (2012) algorithm and updates the Landlab data fields for ``surface_water__discharge`` and ``surface_water__depth`` on links and nodes respectively. - -- To translate the discharge values calculated on Landlab links to nodes, values on links (``of.q``) are summed and mapped to their node neighbors using the method ``of.discharge_mapper``. Using the ``convert_to_volume`` flag, these discharge values are converted from units of [m\ :sup:`2` s\ :sup:`-1`] to [m\ :sup:`3` s\ :sup:`-1`]. - -- At the end of each loop, ``elapsed_time`` is updated with the adaptive time step. +- Inside the time loop, there is a test to see if the `elapsed_time` is less than the `storm_duration`. If so, the rainfall intensity property of OverlandFlow is updated to the rainfall intensity (here converted from \[mm hr{sup}`-1` to \[m s{sup}`-1`). +- If the `elapsed_time` is greater than the `storm_duration`, the rainfall intensity parameter of the OverlandFlow component is reset to 0 \[m s{sup}`-1`\]. +- After the rainfall intensity is set, the actual process method `overland_flow()` is called. This method calculate discharge as a function of the de Almeida et al., (2012) algorithm and updates the Landlab data fields for `surface_water__discharge` and `surface_water__depth` on links and nodes respectively. +- To translate the discharge values calculated on Landlab links to nodes, values on links (`of.q`) are summed and mapped to their node neighbors using the method `of.discharge_mapper`. Using the `convert_to_volume` flag, these discharge values are converted from units of \[m{sup}`2` s{sup}`-1`\] to \[m{sup}`3` s{sup}`-1`\]. +- At the end of each loop, `elapsed_time` is updated with the adaptive time step. **Note**: If using the adaptive time step, it may be possible that both the storm duration and model run time may be exceeded if the calculated time step is too large. It is recommended the use add additional logic tests to ensure both the storm_duration and model_run_time are not exceeded. during the time loop. -Adaptive time step -.................. +#### Adaptive time step -de Almeida et al., (2012) implement an adaptive time step to maintain model stability and computational efficiency. This adaptive time step follows Hunter et al., (2005). By default, the OverlandFlow component calculates this adaptive time step. It is listed explicitly the **Step 7** code for clarity. If that lines was removed from that code, the component would still call ``calc_time_step()`` every time the ``overland_flow()`` method is called. +de Almeida et al., (2012) implement an adaptive time step to maintain model stability and computational efficiency. This adaptive time step follows Hunter et al., (2005). By default, the OverlandFlow component calculates this adaptive time step. It is listed explicitly the **Step 7** code for clarity. If that lines was removed from that code, the component would still call `calc_time_step()` every time the `overland_flow()` method is called. -Alternatively, an explicit time step can be passed to the ``overland_flow()`` method. However, this method cannot guarantee model stability. Numerical instability in the model can drive surface water depth 'checkerboarding' patterns. Additionally, water mass imbalances can be linked to model instability. If an explicit time step must be used, a small time step is recommended to maintain model stability. +Alternatively, an explicit time step can be passed to the `overland_flow()` method. However, this method cannot guarantee model stability. Numerical instability in the model can drive surface water depth 'checkerboarding' patterns. Additionally, water mass imbalances can be linked to model instability. If an explicit time step must be used, a small time step is recommended to maintain model stability. **Note**: Model behavior can vary across different parameter space and grid resolution. Stability testing is always recommended. -Plotting and visualization --------------------------- +## Plotting and visualization -Hydrographs -``````````` +### Hydrographs -Before time loop: -................. +#### Before time loop: To plot a hydrograph, the user simply needs to save the discharge value at a given link at each time step. This can be achieved using a Python list object. Before the time loop starts, the user initializes at least two loops, one to save the model time, and one to save the discharge value. **Note**: Currently, this plotting solution assumes the user has identified a link to sample on. In this example, the active link connecting outlet node to its neighbor core node is selected. If, in other DEMs, more than one active link is identified on the outlet node, the link with the steepest topographic slope is recommended. -.. code-block:: python - - hydrograph_time = [] - discharge_at_outlet = [] +```python +hydrograph_time = [] +discharge_at_outlet = [] +``` -During time loop: -................. +#### During time loop: -The OverlandFlow component calculates discharge in units of [m\ :sup:`2` s\ :sup:`-1`]. In this example (and in Adams et al., *in prep. for Geoscientific Model Development*), discharge is plotted as a volumetric flux. To convert the calculated discharge (*q*) to a volumetric discharge (*Q*), it can be multiplied by the fact width, or grid resolution (*dx*) of the model grid. Similarly, time is converted from units of seconds (*s*) to hours (*hr*) +The OverlandFlow component calculates discharge in units of \[m{sup}`2` s{sup}`-1`\]. In this example (and in Adams et al., *in prep. for Geoscientific Model Development*), discharge is plotted as a volumetric flux. To convert the calculated discharge (*q*) to a volumetric discharge (*Q*), it can be multiplied by the fact width, or grid resolution (*dx*) of the model grid. Similarly, time is converted from units of seconds (*s*) to hours (*hr*) -.. code-block:: python +```python +hydrograph_time.append(elapsed_time / 3600.0) # convert seconds to hours +discharge_at_outlet.append( + np.abs(of.q[outlet_link]) * rmg.dx +) # append discharge in m^3/s +``` - hydrograph_time.append(elapsed_time / 3600.0) # convert seconds to hours - discharge_at_outlet.append( - np.abs(of.q[outlet_link]) * rmg.dx - ) # append discharge in m^3/s +#### After model run: -After model run: -................ +Once the model is done running, the hydrograph can be plotted using the matplotlib library. This is a simple example, for more customization options, we recommend the matplotlib [documentation]. -Once the model is done running, the hydrograph can be plotted using the matplotlib library. This is a simple example, for more customization options, we recommend the matplotlib documentation_. +```python +plt.plot(hydrograph_time, discharge_at_outlet) +plt.ylabel("Time (hr)") +plt.xlabel("Discharge, (cms)") +plt.title("Outlet Hydrograph, Rainfall: 5 mm/hr in 2 hr") +``` -.. _documentation: https://matplotlib.org//api/pyplot_api.html - -.. code-block:: python - - plt.plot(hydrograph_time, discharge_at_outlet) - plt.ylabel("Time (hr)") - plt.xlabel("Discharge, (cms)") - plt.title("Outlet Hydrograph, Rainfall: 5 mm/hr in 2 hr") - -.. image:: images/OverlandFlow_Manual_Hydrograph.png - :width: 300px - :align: center +```{image} images/OverlandFlow_Manual_Hydrograph.png +:align: center +:width: 300px +``` **Figure 4**: Sample hydrograph from the test basin, after a storm with intensity of 5 mm/hr for a duration of 2 hr. -Water depth maps -```````````````` +### Water depth maps -The Landlab plotting library includes a utility ``imshow__grid`` which can easily take a grid instance and plot data values from the grid in map view. This method also allows for customization of the plots. An example plotting water depth is shown here: +The Landlab plotting library includes a utility `imshow__grid` which can easily take a grid instance and plot data values from the grid in map view. This method also allows for customization of the plots. An example plotting water depth is shown here: -.. code-block:: python +```python +imshow_grid( + rmg, + "surface_water__depth", + plot_name="Water depth at time = 2 hr", + var_name="Water Depth", + var_units="m", + grid_units=("m", "m"), + cmap="Blues", +) +``` - imshow_grid( - rmg, - "surface_water__depth", - plot_name="Water depth at time = 2 hr", - var_name="Water Depth", - var_units="m", - grid_units=("m", "m"), - cmap="Blues", - ) - -.. image:: images/OverlandFlow_Manual_WaterDepth.png - :width: 300px - :align: center +```{image} images/OverlandFlow_Manual_WaterDepth.png +:align: center +:width: 300px +``` **Figure 5**: Map of water depths at time = 2 hr, for the sample storm on the square basin (5 mm/hr over duration of 2 hr). In this example, the water depths are plotted after 2 hours of model run time -``model_run_time`` = 7200 s in **Step 6**). The method ``imshow__grid`` takes a +`model_run_time` = 7200 s in **Step 6**). The method `imshow__grid` takes a grid instance and data field by default. Optional methods displayed here -include plot title, color bar title (``var__name``), color bar units -(``var__units``), grid dimension units (``grid_units``), and -matplotlib color map (``cmap``). +include plot title, color bar title (`var__name`), color bar units +(`var__units`), grid dimension units (`grid_units`), and +matplotlib color map (`cmap`). -**Note**: As of right now, ``imshow__grid`` plots data on nodes and cells. +**Note**: As of right now, `imshow__grid` plots data on nodes and cells. If the user wants to plot data from link elements, a mapper from link to cell or link to node must be used first. An extensive list of Landlab -:ref:`mapper ` methods is available in the documentation. +{ref}`mapper ` methods is available in the documentation. -References ----------- +## References Adams, J. M., Gasparini, N. M., Hobley, D. E. J., Tucker, G. E., Hutton, E. W. H., Nudurupati, S. S. and Istanbulluoglu, E. (2017) The Landlab OverlandFlow component: a Python library for modeling the shallow water equations across watersheds, in press. @@ -406,3 +375,5 @@ de Almeida, G. A., Bates, P., Freer, J. E., & Souvignet, M. (2012). Improving th Hobley, D. E. J., Adams, J. M., Nudurupati, S. S., Gasparini, N. M., Hutton, E. W. H., Istanbulluoglu, E. and Tucker, G. E. (2017) Landlab: a new, open-source, modular, Python-based tool for modelling Earth surface dynamics. *Earth Surface Dynamics*, 5(1), 21–46. Hunter, N. M., Horritt, M. S., Bates, P. D., Wilson, M. D., & Werner, M. G. (2005). An adaptive time step solution for raster-based storage cell modelling of floodplain inundation. *Advances in Water Resources*, 28(9), 975-991. + +[documentation]: https://matplotlib.org//api/pyplot_api.html diff --git a/docs/source/user_guide/python_numpy_intro.rst b/docs/source/user_guide/python_numpy_intro.rst deleted file mode 100644 index c2627c7451..0000000000 --- a/docs/source/user_guide/python_numpy_intro.rst +++ /dev/null @@ -1,171 +0,0 @@ -.. _python_intro: - -====================== -Introduction to Python -====================== - -Why Python? ------------ - -Landlab is coded in Python and includes as dependencies a number -of widely used scientific Python packages—in particular, NumPy and SciPy. The -decision to code in Python was explicitly made to lower the bar to entry for -Landlab; to increase the flexibility and reusability of the code base; and to -increase development speed both for the core development team and for future -users. The choice of Python also means that developers using Landlab can take -advantage of that language's affinity for rapid development timescales. - -Other advantages of this choice include high portability between platforms, -open source language, numerous existing scientific libraries that prevent -developers having to "reinvent the wheel," and support for selective -optimization of time-critical parts of the code base in Cython -(see :ref:`Cython `). - -Getting to know Python ----------------------- - -We recommend you approach Landlab with a basic working knowledge of the Python -coding language. A good, concise, complete beginner's guide that will get you -to enough knowledge to be able to get started can be found -`at interactivepython `_. -We like `the Software Carpentry intro `_ -and -`these Python notebooks `_ -as more comprehensive introductions to Python. - -Landlab is also written in an object-oriented coding style. Many of the -elements of Landlab that you will interact with—grids, components, -utilities—are Python objects, which means they contain both data that describe -the object and functions that you can call that operate on the object. Think -of the object as a container in which everything relevant to that part of the -code is stored, so that it can be accessed easily. You can read a bit more -about Python objects `on this page `_ -for general information. There is more detail on what this means in terms of -running our code on the :ref:`Build a Model page `. - -If you know MatLab… -``````````````````` - -If you're already familiar with Matlab, you will probably feel at home with -Python fairly quickly. However, there are some critical differences. Important -things to remember include: - -Python's indexing is inclusive at the start and exclusive at the end (in -contrast to Matlab). For example, in Python - -.. code-block:: python - - numpy.arange(0, 100) - -will give an array of 100 numbers, starting at 0 and ending at 99. - -Python doesn't use parentheses or brackets to delimit code blocks (functions, -loops, if statements, etc.). Instead it uses a colon to declare the start of a -code block, then consistent indenting (normally 4 spaces) to for the rest of -the block. e.g., - -.. code-block:: python - - def myfunction(input_param): - if type(input_param) is str: - print("The input to the function said: ", input_param) - else: - print("The input parameter wasn't a string.") - print("It was actually " + str(type(input_param))) - -Lines don't need to end with the semicolon to suppress output; Python won't -print output unless you explicitly call ``print``. - -Finally, but importantly, Python doesn't use the hat ``^`` as its -raise-to-the-power symbol. Instead, it uses a double star ``**``. Simple, but -typically very frustrating for a day or two during transition! There's also the -NumPy method, ``np.square``, which if you're using arrays typically outperforms -the ``**`` operator. - -We have a very short tutorial on Python and NumPy from the point of view of -Landlab (and the key differences with Matlab) -`here `_. - -NumPy, SciPy, and Efficient Coding Style ----------------------------------------- - -NumPy and SciPy are the workhorse scientific computing packages of Python. -They provide fast, efficient, and surprisingly comprehensive data structures -and numerical methods that we (and you) can exploit to make coding in Landlab -faster and easier. - -In particular, Landlab makes extensive use of the NumPy array data structure. -Almost all data input and output from Landlab is in the form of an array (see -:ref:`Landlab Fields ` for more information). -These arrays allow operations to happen much faster on the data than would be -possible in a pure Python data structure like a list or a dictionary. (This is -possible because NumPy arrays suppress some of Python's inbuilt type checking -and memory management and impose a more ordered structure on the way raw data -is held in your computer's memory). - -In order to exploit the speed gains that NumPy can give you, you'll need to -adopt a coding style quite different to what would be natural in, say, C++ (or -likely, Matlab). A typical bottleneck in Python code occurs when looping over -data, and NumPy arrays let you avoid doing this. So if you find yourself about -to write something like: - -.. code-block:: python - - for i in range(len(myarray)): - myoutputarray[i] = myoutputarray[i] + myarray[i] - -Don't! Try instead to develop a coding style where each line operates on the - whole array at once. For example: - -.. code-block:: python - - myoutputarray += myarray - -In particular, it can be very tempting to use loops to apply a condition over a -whole array. Try not to do this! Instead of - -.. code-block:: python - - for i in myarray: - if i < 0: - i = 0 - -which will be really slow. Do this: - -.. code-block:: python - - myarray[myarray < 0] = 0 - -There is much more information about writing efficient NumPy code online. - -We also strongly recommend the book "High Performance Python" by Gorelick and -Ozsvald, published by O'Reilly, if you're looking for a more comprehensive -treatment. - -.. _cython: - -Cython ------- - -If you explore the Landlab source code, you will discover that not all of -Landlab is written in pure Python. Some of it is written in Cython. Cython is a -programming language closely related to Python, and indeed, all code written in -pure Python is automatically also Cython code. Cython is probably best thought -of as a cross between C++ and Python, which aims to combine the flexibility of -Python with the brute power and granular control that C++ provides. For -example, if there are sections of code where looping through an array is -unavoidable, Cython provides a way to significantly accelerate the speed of -this code. Cython code largely looks like straightforward Python, but may have -type declarations or other C++-like features. - -From the user's perspective, the most important thing to note is that Cython is -a compiled language. (This isn't true of Python, which is an -interpreted—compiled at run time—language.) We provide the pre-compiled -executables you will need to run Landlab when you install, and this should be -sufficient for the vast majority of users. - -However if, as a developer, you intend to modify any of the sections of code -that we provide to you, you will probably need to recompile that code on your -machine before the changes take effect. See the -:ref:`developer installation instructions ` -for more information on this. diff --git a/docs/source/user_guide/reference/components.md b/docs/source/user_guide/reference/components.md new file mode 100644 index 0000000000..683ee1d52c --- /dev/null +++ b/docs/source/user_guide/reference/components.md @@ -0,0 +1,178 @@ +(api-components)= + +# Components + +This section contains documentation and API reference information for the +following categories of components: + +## Hillslope geomorphology + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.diffusion +/generated/api/landlab.components.nonlinear_diffusion +/generated/api/landlab.components.depth_dependent_diffusion +/generated/api/landlab.components.transport_length_diffusion +/generated/api/landlab.components.taylor_nonlinear_hillslope_flux +/generated/api/landlab.components.depth_dependent_taylor_soil_creep +/generated/api/landlab.components.threshold_eroder +/generated/api/landlab.components.concentration_tracker +``` + +## Fluvial geomorphology + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.stream_power +/generated/api/landlab.components.detachment_ltd_erosion +/generated/api/landlab.components.erosion_deposition +/generated/api/landlab.components.space +/generated/api/landlab.components.network_sediment_transporter +/generated/api/landlab.components.gravel_river_transporter +/generated/api/landlab.components.area_slope_transporter +/generated/api/landlab.components.gravel_bedrock_eroder +``` + +## Flow routing + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.flow_director +/generated/api/landlab.components.flow_accum +/generated/api/landlab.components.depression_finder +/generated/api/landlab.components.lake_fill +/generated/api/landlab.components.priority_flood_flow_router +/generated/api/landlab.components.sink_fill +``` + +## Shallow water hydrodynamics + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.overland_flow +/generated/api/landlab.components.tidal_flow +``` + +## Land surface hydrology + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.radiation +/generated/api/landlab.components.pet +/generated/api/landlab.components.soil_moisture +``` + +## Groundwater hydrology + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.groundwater +``` + +## Landslides + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.bedrock_landslider +/generated/api/landlab.components.landslides +/generated/api/landlab.components.dimensionless_discharge +``` + +## Vegetation + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.vegetation_dynamics +/generated/api/landlab.components.plant_competition_ca +``` + +## Biota + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.species_evolution +``` + +## Precipitation + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.uniform_precip +/generated/api/landlab.components.spatial_precip +``` + +## Weathering + +```{toctree} +:maxdepth: 2 + +/generated/api/landlab.components.weathering +``` + +## Subaqueous / Submarine Processes + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.carbonate +/generated/api/landlab.components.marine_sediment_transport +``` + +## Generic numerical components + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.advection +``` + +## Terrain Analysis + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.steepness_index +/generated/api/landlab.components.chi_index +/generated/api/landlab.components.drainage_density +/generated/api/landlab.components.profiler.channel_profiler +/generated/api/landlab.components.profiler.trickle_down_profiler +/generated/api/landlab.components.hack_calculator +/generated/api/landlab.components.hand_calculator +``` + +## Tectonics + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.flexure +/generated/api/landlab.components.gflex +/generated/api/landlab.components.normal_fault +/generated/api/landlab.components.tectonics +``` + +## Fire + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.fire_generator +``` + +## Fracture Generation + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.fracture_grid +``` diff --git a/docs/source/user_guide/reference/grid.md b/docs/source/user_guide/reference/grid.md new file mode 100644 index 0000000000..4f375bce75 --- /dev/null +++ b/docs/source/user_guide/reference/grid.md @@ -0,0 +1,60 @@ +(api-grid)= + +# Landlab Grids + +## Grid types + +Landlab presently supports multiple grid types. The base class for all of these +grid types is {class}`~.ModelGrid`. + +The following is an introduction to their properties and methods: + +```{jinja} llcats +{% for name in grids|sort %} +* {{"{"}}class{{"}"}}`~.{{name}}` +{% endfor %} +``` + +## Additional Methods and Properties + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.grid.base +/generated/api/landlab.grid.create +/generated/api/landlab.grid.decorators +/generated/api/landlab.grid.diagonals +/generated/api/landlab.grid.divergence +/generated/api/landlab.grid.gradients +/generated/api/landlab.grid.grid_funcs +/generated/api/landlab.grid.linkstatus +/generated/api/landlab.grid.mappers +/generated/api/landlab.grid.nodestatus +/generated/api/landlab.grid.raster_aspect +/generated/api/landlab.grid.raster_funcs +/generated/api/landlab.grid.raster_gradients +/generated/api/landlab.grid.raster_mappers +/generated/api/landlab.grid.raster_set_status +/generated/api/landlab.grid.warnings +``` + +## API for each grid type + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.grid.base +/generated/api/landlab.grid.raster +/generated/api/landlab.grid.voronoi +/generated/api/landlab.grid.framed_voronoi +/generated/api/landlab.grid.hex +/generated/api/landlab.grid.radial +/generated/api/landlab.grid.network +/generated/api/landlab.grid.icosphere +``` + +## Additional Grid Base Classes + +```{toctree} +/generated/api/landlab.grid.unstructured +``` diff --git a/docs/source/user_guide/reference/index.md b/docs/source/user_guide/reference/index.md new file mode 100644 index 0000000000..cc699c4c73 --- /dev/null +++ b/docs/source/user_guide/reference/index.md @@ -0,0 +1,68 @@ +(api)= + +# API reference + +This page gives an overview of all public Landlab objects, functions and +methods. + +## Grids + +```{toctree} +:maxdepth: 2 + +grid +``` + +## Layers + +```{toctree} +:maxdepth: 2 + +layers +``` + +## Lithology + +Two objects based on the EventLayers object exist to make it easier to deal +with spatially variable lithology and associated properties. The Lithology +components contain information about spatially variable lithology and connect +with the Landlab model grid so that when rock is eroded or advected upward by +rock uplift the values of rock propeties at the topographic surface are updated. + +First is the Lithology component which is a generic object for variable +lithology. + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.lithology.lithology +``` + +Second is LithoLayers which makes it easy to make layered rock. + +```{toctree} +:maxdepth: 1 + +/generated/api/landlab.components.lithology.litholayers +``` + +## Values + +```{toctree} +:maxdepth: 2 + +values +``` + +## Components + +```{toctree} +:maxdepth: 2 + +components +``` + +## References + +- {ref}`modindex` +- {ref}`search` diff --git a/docs/source/reference/layers/index.rst b/docs/source/user_guide/reference/layers.md similarity index 82% rename from docs/source/reference/layers/index.rst rename to docs/source/user_guide/reference/layers.md index 39d675a506..cbf0e9e3e6 100644 --- a/docs/source/reference/layers/index.rst +++ b/docs/source/user_guide/reference/layers.md @@ -1,8 +1,6 @@ -.. _api.layers: +(api-layers)= -====== -Layers -====== +# Layers Landlab has the ability to add layers to the grid. Two types of layers are currently supported. First is EventLayers in which each event is preserved as @@ -12,8 +10,8 @@ Second is MaterialLayers, in which each layer must contain some material. If an entire layer is eroded in MaterialLayers, the layer is removed. MaterialLayers will likely use less memory than EventLayers. - .. toctree:: - :maxdepth: 2 +```{toctree} +:maxdepth: 2 - eventlayers - materiallayers +/generated/api/landlab.layers +``` diff --git a/docs/source/reference/values/index.rst b/docs/source/user_guide/reference/values.md similarity index 64% rename from docs/source/reference/values/index.rst rename to docs/source/user_guide/reference/values.md index 0c60befb0e..04bd207941 100644 --- a/docs/source/reference/values/index.rst +++ b/docs/source/user_guide/reference/values.md @@ -1,13 +1,12 @@ -.. _api.values: +(api-values)= -====== -Values -====== +# Values Landlab includes a number of ways to create values for model grid fields. As with the rest of Landlab, we welcome contributions to this package. -.. toctree:: - :maxdepth: 2 +```{toctree} +:maxdepth: 2 - synthetic +/generated/api/landlab.values +``` diff --git a/docs/source/reference/components/river_flow_dynamics.rst b/docs/source/user_guide/river_flow_dynamics.rst similarity index 100% rename from docs/source/reference/components/river_flow_dynamics.rst rename to docs/source/user_guide/river_flow_dynamics.rst diff --git a/docs/source/user_guide/standard_name_changes.rst b/docs/source/user_guide/standard_name_changes.rst deleted file mode 100644 index 7abea4a17e..0000000000 --- a/docs/source/user_guide/standard_name_changes.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. _standard_name_changes: - -Changes to standard names from Landlab 0.x to 1.x -================================================= - -As part of our push to version 1 of Landlab, the standard names have been overhauled to enhance -internal consistency. Most of this work happened before our beta launch at the CSDMS meeting, so -should not cause too many problems. However, if in doubt interrogate the most current input and -output names for the component you're currently using with `[component].input_var_names` and -`[component].output_var_names`. - -However, a few standard names have had to change since the version 1 beta. To our best knowledge -most of these were not widely used or public-facing. The list is as follows:: - - 'water__discharge' is now 'surface_water__discharge' - 'water__depth' is now 'surface_water__depth' - 'unit_flux' is now 'hillslope_sediment__unit_volume_flux' - 'lithosphere__vertical_displacement' is now 'lithosphere_surface__elevation_increment' - 'rainfall__daily' is now 'rainfall__daily_depth' - -Of these, `'water__depth'` is most likely to impact people, as it formed an input to the -`StreamPowerEroder`. However, for back compatibility, you should still find that that component -is still able to handle both the old and new names. diff --git a/docs/source/user_guide/time_steps.rst b/docs/source/user_guide/time_steps.md similarity index 92% rename from docs/source/user_guide/time_steps.rst rename to docs/source/user_guide/time_steps.md index 9335f53c9a..73a5364786 100644 --- a/docs/source/user_guide/time_steps.rst +++ b/docs/source/user_guide/time_steps.md @@ -1,15 +1,13 @@ -.. _time_steps: +(time-steps)= -Time steps -========== +# Time steps Anyone who has taken a numerical computing course knows the importance of time-step size: choose too small a step and your calculation takes forever to run; choose too big a step and it goes unstable. The details depend, of course, on the particular equations and the numerical method used to solve them. -Components and time steps -_________________________ +## Components and time steps Landlab components are responsible for ensuring their own stability. This means, for example, that if your code asks a component to run for 10 years, the @@ -36,5 +34,5 @@ to identify a time step that is small enough not to impact the solution in a significant way. To learn more about time steps, numerical stability, and solution accuracy, a -good source is `Numerical Recipes by Press et al `_. +good source is [Numerical Recipes by Press et al](http://numerical.recipes/). There are also plenty of textbooks on numerical computing available. diff --git a/docs/source/user_guide/tutorials.rst b/docs/source/user_guide/tutorials.rst deleted file mode 100644 index 715ec8117e..0000000000 --- a/docs/source/user_guide/tutorials.rst +++ /dev/null @@ -1,143 +0,0 @@ -.. _tutorials: - -Tutorials -========= - -The Landlab Tutorials provide examples of Landlab core concepts and component -introductions. Tutorials exist as interactive Jupyter notebooks that contain -alternating cells of computer code and text that explain the code. In addition -to Landlab Tutorials that exemplify Landlab, notebooks intended to teach and -learn surface dynamics are the -:ref:`Landlab Teaching Tutorials `. - -Launch notebooks online ------------------------ - -Landlab Notebooks can be accessed online with the following link: -`Binder `_. -Here the notebooks are provided within a binder online environment that -includes Landlab. - -The welcome page on Binder provides onward links to most of our tutorials. -If you're a newbie you might want to skip directly to a recommended syllabus -for learning Landlab -`here `_. - -.. _tutorials_EarthscapeHub: - -Launch notebooks on EarthscapeHub ---------------------------------- - -Landlab notebooks can also be run on `EarthscapeHub`_. - -If you have a *lab* login for class, -start the Landlab welcome notebook `here`__. -Likewise, -if you have a *jupyter* login associated with your CSDMS membership, -start the welcome notebook `here`__. - -To directly access the recommended syllabus for learning Landlab -on *lab*, start `here`__, and for *jupyter*, start `here`__. - -Note that software is grouped into kernels on EarthscapeHub. -Landlab is installed in the kernel titled "CSDMS"; -select this kernel to run the tutorial notebooks. - -.. _EarthscapeHub: https://csdms.colorado.edu/wiki/JupyterHub -.. __: https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fwelcome.ipynb%3Fautodecode&branch=master -.. __: https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Fwelcome.ipynb%3Fautodecode&branch=master -.. __: https://lab.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Ftutorials%2Fsyllabus.ipynb%3Fautodecode&branch=master -.. __: https://jupyter.openearthscape.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Flandlab%2Flandlab&urlpath=lab%2Ftree%2Flandlab%2Fnotebooks%2Ftutorials%2Fsyllabus.ipynb%3Fautodecode&branch=master - -Launch notebooks locally ------------------------- - -To run the tutorials locally, you will first need to install *landlab* -on your computer. If you have not already done so, please see the *landlab* -:ref:`installation guide`. -Because several of the notebooks depend on packages that cannot be -installed using *pip*, we recommend you use *conda* to install the -tutorial notebook requirements. - -Get the notebooks -````````````````` - -If you have the *landlab* source code, you already have the notebooks (they are -in the *notebooks/* folder). - -If you don't have a copy of the source code, you can run the `notebooks.py`_ -script to fetch the set of notebooks that matches your version of *landlab*. -This can be done either by running, - -.. code-block:: bash - - curl -L https://raw.githubusercontent.com/landlab/landlab/master/notebooks.py | python - - -or by downloading the script and running the following from the terminal, - -.. code-block:: bash - - python -m notebooks - -The download script will create a folder called *landlab-*, where ** -is the version of the notebooks you have requested (e.g. *master* or *2.5.0*). If -you would like to get a specific version of the notebooks, which may not match your -version of *Landlab*, you can specify that as a command line argument. For example, - -.. code-block:: bash - - curl -L https://raw.githubusercontent.com/landlab/landlab/master/notebooks.py | python - 2.4.1 - -.. _notebooks.py: https://github.com/landlab/landlab/blob/master/notebooks.py - -Install dependencies -```````````````````` - -Within the downloaded folder is a file named *requirements-notebooks.txt* that -contains a list of requirements needed to run the notebook tutorials. - -.. important:: - - The following will install the requirements into your current environment. Although - not necessary, we **highly recommend** you install these into a separate - :ref:`virtual environment `. - -Use *mamba* or *conda* to install the requirements. - -.. tab:: mamba - - .. code-block:: bash - - mamba install --file=requirements-notebooks.txt - -.. tab:: conda - - .. code-block:: bash - - conda install --file=requirements-notebooks.txt - - -Run the tutorials -````````````````` - -It's now time to run the tutorials. Opening the welcome page is a good place to start -but you can also open individual notebooks as well. - -.. code-block:: bash - - $ jupyter notebook notebooks/welcome.ipynb - - -Contributing new or modified tutorials --------------------------------------- - -If you write a Landlab Tutorial or Gist, please contribute it via a pull request -to the master branch of the Landlab repository. See this -:ref:`page ` about contributing to Landlab, and -:ref:`reach out for help ` when needed. - -Landlab clinics and workshops ------------------------------ - -For more examples and tutorials, see also our :ref:`Clinics & workshops -page `. diff --git a/docs/source/user_guide/units.rst b/docs/source/user_guide/units.md similarity index 80% rename from docs/source/user_guide/units.rst rename to docs/source/user_guide/units.md index 101537d1b0..a4d233ffc7 100644 --- a/docs/source/user_guide/units.rst +++ b/docs/source/user_guide/units.md @@ -1,7 +1,6 @@ -.. _unit_agnostic: +(unit-agnostic)= -How Landlab Is/Is Not Unit Agnostic ------------------------------------ +# How Landlab Is/Is Not Unit Agnostic This page describes how Landlab handles units. Our approach is intended to balance usability, effective communication of component expectations to users, @@ -13,7 +12,7 @@ functions. All components require that a user is consistent between the space/time/mass units used within one and across multiple components. For example, if you were -to couple a ``StreamPowerEroder`` and a ``LinearDiffuser`` your x, y, and z +to couple a `StreamPowerEroder` and a `LinearDiffuser` your x, y, and z coordinates, the field `topographic__elevation` and all input parameters would need to share a common length unit. Further, input parameters with units that include time and your time step would need to share a common time unit. @@ -21,7 +20,7 @@ include time and your time step would need to share a common time unit. Components that require that you are consistent with units but do not care whether you use feet or meters for your length unit are called "unit agnostic". You can find out if a component is unit agnostic by querying the attribute: -``Component.unit_agnostic`` which will return ``True`` or ``False``. +`Component.unit_agnostic` which will return `True` or `False`. Unit agnostic components will provide specific units in the field and parameter metadata. However, no computation within a unit agnostic component assumes a @@ -39,10 +38,10 @@ When it doubt, the best approach is to open a GitHub issue. Below is a list of non-unit agnostic components: -.. jinja:: llcats - - {% for name, component in components |dictsort %} - {% if not component['unit_agnostic'] %} - * :class:`{{name}} <{{ component['name'] }}>` - {% endif %} - {% endfor %} +```{jinja} llcats +{% for name, component in components |dictsort %} +{% if not component['unit_agnostic'] %} +* {{"{"}}class{{"}"}}`{{name}} <{{ component['name'] }}>` +{% endif %} +{% endfor %} +``` diff --git a/landlab/_version.py b/landlab/_version.py deleted file mode 100644 index 71617bbc12..0000000000 --- a/landlab/_version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "2.8.1.dev2" diff --git a/landlab/components/erosion_deposition/__init__.py b/landlab/components/erosion_deposition/__init__.py deleted file mode 100644 index fdcf46bce4..0000000000 --- a/landlab/components/erosion_deposition/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from .erosion_deposition import ErosionDeposition - -__all__ = ["ErosionDeposition"] diff --git a/landlab/components/network_sediment_transporter/__init__.py b/landlab/components/network_sediment_transporter/__init__.py deleted file mode 100644 index 31f65166c7..0000000000 --- a/landlab/components/network_sediment_transporter/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -from .bed_parcel_initializers import BedParcelInitializerArea -from .bed_parcel_initializers import BedParcelInitializerDepth -from .bed_parcel_initializers import BedParcelInitializerDischarge -from .bed_parcel_initializers import BedParcelInitializerUserD50 -from .network_sediment_transporter import NetworkSedimentTransporter -from .sediment_pulser_at_links import SedimentPulserAtLinks -from .sediment_pulser_each_parcel import SedimentPulserEachParcel - -__all__ = [ - "NetworkSedimentTransporter", - "BedParcelInitializerDischarge", - "BedParcelInitializerDepth", - "BedParcelInitializerArea", - "BedParcelInitializerUserD50", - "SedimentPulserAtLinks", - "SedimentPulserEachParcel", -] diff --git a/landlab/utils/ext/jaggedarray.pyx b/landlab/utils/ext/jaggedarray.pyx deleted file mode 100644 index 226e1fde09..0000000000 --- a/landlab/utils/ext/jaggedarray.pyx +++ /dev/null @@ -1,37 +0,0 @@ -import numpy as np - -cimport cython -cimport numpy as np -from libc.stdint cimport int64_t -from libc.string cimport memcpy - - -cdef void _pad_jaggedarray( - void * data, - int64_t * offset, - size_t n_rows, - size_t size, - void * buff, - size_t n_cols, -) noexcept nogil: - cdef int row - cdef void * dst = buff - cdef void * src = data - - for row in range(n_rows): - dst = buff + n_cols * row * size - src = data + offset[row] * size - - memcpy(dst, src, size * (offset[row + 1] - offset[row])) - - -@cython.boundscheck(False) -@cython.wraparound(False) -def unravel( - np.ndarray data, - np.ndarray[int64_t, ndim=1, mode="c"] offset, - np.ndarray out, -): - _pad_jaggedarray( - data.data, &offset[0], len(offset) - 1, data.itemsize, out.data, out.shape[1] - ) diff --git a/news/1660.misc b/news/1660.misc deleted file mode 100644 index be780ce95f..0000000000 --- a/news/1660.misc +++ /dev/null @@ -1,2 +0,0 @@ - -Speed up the Flexure component through parallelism using openmp. diff --git a/news/1940.feature b/news/1940.feature deleted file mode 100644 index d5d0e7eb15..0000000000 --- a/news/1940.feature +++ /dev/null @@ -1,3 +0,0 @@ - -Improved perfomance when creating graphs by using openmp for -parallelism. diff --git a/news/1945.misc b/news/1945.misc deleted file mode 100644 index f0d59cc7b7..0000000000 --- a/news/1945.misc +++ /dev/null @@ -1,2 +0,0 @@ - -Require numpy<2 temporarily while we upgrade to support numpy 2. diff --git a/news/1948.feature b/news/1948.feature deleted file mode 100644 index 5b58cb0d4d..0000000000 --- a/news/1948.feature +++ /dev/null @@ -1,3 +0,0 @@ - -Added `esri_ascii.dump` and `esri_ascii.load` functions for reading and writing -grids to/from ESRI ASCII format. diff --git a/news/1956.misc b/news/1956.misc deleted file mode 100644 index 263521f7f4..0000000000 --- a/news/1956.misc +++ /dev/null @@ -1,2 +0,0 @@ - -Updated *Landlab* to be compatible with *numpy* v2. diff --git a/news/1971.misc b/news/1971.misc deleted file mode 100644 index db0ee5e1a4..0000000000 --- a/news/1971.misc +++ /dev/null @@ -1,3 +0,0 @@ - -Enhanced the continuous integration workflows to automatically -cancel any ongoing tests when new changes are pushed to the same branch. diff --git a/news/1986.misc b/news/1986.misc new file mode 100644 index 0000000000..19254d66ca --- /dev/null +++ b/news/1986.misc @@ -0,0 +1 @@ +Minor improvements to plot_network_and_parcels to allow straightforward compatability with imshowgrid. diff --git a/news/1999.misc b/news/1999.misc new file mode 100644 index 0000000000..51a5a037ba --- /dev/null +++ b/news/1999.misc @@ -0,0 +1,3 @@ + +Deprecated passing the `at` keyword as the first argument to +functions like, for example, :meth:`~.GraphFields.add_ones`. diff --git a/news/2018.bugfix b/news/2018.bugfix new file mode 100644 index 0000000000..90864e53ce --- /dev/null +++ b/news/2018.bugfix @@ -0,0 +1,2 @@ +Fixed an issue that caused a `TypeError` to be raised when printing numpy arrays using +older versions of numpy. diff --git a/news/changelog_template.jinja b/news/changelog_template.jinja new file mode 100644 index 0000000000..0cf429a3b1 --- /dev/null +++ b/news/changelog_template.jinja @@ -0,0 +1,15 @@ +{% if sections[""] %} +{% for category, val in definitions.items() if category in sections[""] %} + +### {{ definitions[category]['name'] }} + +{% for text, values in sections[""][category].items() %} +- {{ text }} {{ values|join(', ') }} +{% endfor %} + +{% endfor %} +{% else %} +No significant changes. + + +{% endif %} diff --git a/notebooks/teaching b/notebooks/teaching new file mode 120000 index 0000000000..12c1a3711c --- /dev/null +++ b/notebooks/teaching @@ -0,0 +1 @@ +../docs/source/teaching/ \ No newline at end of file diff --git a/notebooks/tutorials/syllabus.ipynb b/notebooks/tutorials/syllabus.ipynb deleted file mode 100644 index 749167404c..0000000000 --- a/notebooks/tutorials/syllabus.ipynb +++ /dev/null @@ -1,96 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Recommended order for Landlab tutorials\n", - "\n", - "Note, a paper has been written describing Landlab. It is Open Access, and a link to the PDF is [here](https://www.earth-surf-dynam.net/5/21/2017/esurf-5-21-2017.pdf) \n", - "\n", - "**We highly recommend reading it before starting on the steps below.**\n", - "\n", - "Before starting the syllabus, consider reading our very basic [introduction to Python](python_intro/python_intro.ipynb) if you think of yourself as a Python novice.\n", - "## 1. Format and Outline\n", - "You will alternate between reading documentation on the [User Guide](https://landlab.readthedocs.io/en/latest/user_guide/index.html), finding information in the [Reference Manual](https://landlab.readthedocs.io/en/latest/reference/index.html), and working through the tutorials.\n", - "\n", - "The tutorials are presented as Jupyter notebooks, which contain a mixture of text, images, and code blocks. When you look at the tutorials, don't just read them. Start by clearing the results by selecting \"Kernel ==> Restart & Clear Output,\" then go ahead and try running each code block as you come to it.\n", - "\n", - "### 1.1 A motivating example\n", - "\n", - "- [Notebook: Introduction to Landlab: example model of fault-scarp degradation](fault_scarp/landlab-fault-scarp.ipynb)\n", - "\n", - "### 1.2 Using the Documentation\n", - "\n", - "The Landlab Reference Manual contains documentation for most functions in the Landlab package. It is the comprehensive counterpart to the anecdotal tutorials.\n", - "\n", - "- [Notebook: Where to get info](where_to_get_info.ipynb) Then spend some time clicking around in the rest of the [User Guide](https://landlab.readthedocs.io/en/latest/user_guide/index.html) and [Reference Manual](https://landlab.readthedocs.io/en/latest/reference/index.html) to get a sense for what is there. Tip: to find a particular command, click on Index and use your browser's search function to search for a command by name or keyword. For example, look at the [documentation for the LinearDiffuser](https://landlab.readthedocs.io/en/latest/reference/components/diffusion.html) which you just used in the prior tutorial.\n", - "\n", - "### 1.3 Introduction to the Landlab Grid and Fields\n", - "\n", - "First, lets look at the [User Guide page on Landlab grids](https://landlab.readthedocs.io/en/latest/user_guide/grid.html). \n", - "\n", - "- [Notebook: Introduction to the model grid object](grid_object_demo/grid_object_demo.ipynb) Grid topology; how landlab represents data; connectivity of grid elements.\n", - "- [Notebook: Introduction to Landlab data fields](fields/working_with_fields.ipynb) How Landlab stores spatial data on the grid; a little on naming conventions.\n", - "\n", - "Extra credit: Go back to the [Hobley et al. 2017 publication](https://www.earth-surf-dynam.net/5/21/2017/esurf-5-21-2017.html) and identify the ordering conventions of nodes, links, and other grid elements.\n", - "\n", - "### 1.4 Working with Digital Elevtion Models (DEMs)\n", - "\n", - "- [Notebook: Reading DEMs into Landlab](reading_dem_into_landlab/reading_dem_into_landlab.ipynb) Getting an ARC ESRI ASCII into Landlab; getting the boundary conditions set right.\n", - "\n", - "### 1.5 Plotting\n", - "\n", - "- [Notebook: Introduction to plotting output with Landlab](plotting/landlab-plotting.ipynb) The basics of plotting with Landlab; combining matplotlib and out plots; the all-powerful [``imshow_grid()``](https://landlab.readthedocs.io/en/latest/reference/plot/index.html#landlab.plot.imshow_grid) function.\n", - "\n", - "### 1.6 Boundary conditions\n", - "\n", - "- Setting boundary conditions on Landlab grids (several tutorials): How Landlab conceptualises boundary conditions; various ways to interact and work with them.\n", - " - [Notebook: Raster perimeter](boundary_conds/set_BCs_on_raster_perimeter.ipynb)\n", - " - [Notebook: Based on X-Y values](boundary_conds/set_BCs_from_xy.ipynb)\n", - " - [Notebook: Watersheds](boundary_conds/set_watershed_BCs_raster.ipynb)\n", - " - [Notebook: Voronoi](boundary_conds/set_BCs_on_voronoi.ipynb)\n", - "\n", - "### 1.7 Introduction to Components\n", - "\n", - "- Read the [Task: Component page in the User Guide](https://landlab.readthedocs.io/en/latest/user_guide/components.html)\n", - "- [Notebook: Introduction to using the Landlab component library](component_tutorial/component_tutorial.ipynb) The basics of working with and coupling components, using *diffusion*, *stream power*, and a *storm generator* as examples.\n", - "\n", - "### 1.8 Advanced Grid and Fields: Gradients, Flux-Divergence, Mapping\n", - "\n", - "In addition to having lots of important information about adjacency of nodes, links, and other grid elements, the Landlab Grid object has a number of built-in functions for calculating quantities like gradients and flux-divergence, and for mapping quantities from nodes to links and so forth. Work through these tutorials to get a sense of this functionality:\n", - "\n", - "- [Notebook: Using the gradient and flux-divergence functions](gradient_and_divergence/gradient_and_divergence.ipynb) Landlab as solving environment for staggered grid finite difference differential approximations; functions available to help you do this.\n", - "- [Notebook: Mapping values from nodes to links](mappers/mappers.ipynb) Options for getting data on links to nodes, nodes to links, etc.; min, max, and mean; upwinding and downwinding schemes; one-to-one, one-to-many, and many-to-one mappings.\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/tutorials/tutorial_template.ipynb b/notebooks/tutorials/tutorial_template.ipynb deleted file mode 100644 index 21463ab211..0000000000 --- a/notebooks/tutorials/tutorial_template.ipynb +++ /dev/null @@ -1,81 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Using the Landlab such-and-such component\n", - "\n", - "\n", - "In this tutorial we will:\n", - "* do this\n", - "* do that\n", - "* do the other thing\n", - "\n", - "*(by W.E. Coyote, 2019)*" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## This\n", - "\n", - "Here we will do this." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## That\n", - "\n", - "Now we will do that." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## The other thing\n", - "\n", - "Finally we will do the other thing." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Click here to learn about Landlab tutorials" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.12" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/notebooks/tutorials/where_to_get_info.ipynb b/notebooks/tutorials/where_to_get_info.ipynb deleted file mode 100644 index 3977d771a4..0000000000 --- a/notebooks/tutorials/where_to_get_info.ipynb +++ /dev/null @@ -1,118 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Where to find information about Landlab\n", - "\n", - "The core Landlab development team and community members have worked to create documentation for Landlab. \n", - "\n", - "The purpose of this notebook is to point you to the resources avalible regarding Landlab. \n", - "\n", - "First, Landlab's documentation is hosted on a ReadTheDocs (RTFD) website. \n", - "\n", - "[**The Landlab Documentation**](https://landlab.readthedocs.io/en/latest/)\n", - "\n", - "Within it, you will find information about installation, use, and development. Two parts of the documentation to highlight are:\n", - "\n", - " a. The [User Guide](https://landlab.readthedocs.io/en/latest/user_guide/index.html)\n", - " \n", - " b. [The Reference Manual (API)](https://landlab.readthedocs.io/en/latest/reference/index.html)\n", - "\n", - "Second, much of the documentation is accesible to you from the command line (or the jupyter notebook cell) via the `?` operator." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from landlab import RasterModelGrid\n", - "from landlab.components import LinearDiffuser" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "?RasterModelGrid" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you look at the RTFD section on [RasterModelGrid](https://landlab.readthedocs.io/en/latest/reference/grid/raster_api.html#module-landlab.grid.raster) you'll notice that it contains the same information. \n", - "\n", - "Now try the LinearDiffuser." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "help(LinearDiffuser)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note also that the `?` works for attributes of classes (assuming they have some documentation)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "grid = RasterModelGrid((10, 10), xy_spacing=(3, 4))\n", - "?grid.add_ones" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A good python trick is to type the name of a class, then a `.`, and press tab. In most computation environments this will show you a list of all the functions or attributes avaliable. \n", - "\n", - "Try it below with `grid`. " - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.0" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/tutorials~c617ac9822c28f1990fd7af5189492dfbee0c7fb b/notebooks/tutorials~c617ac9822c28f1990fd7af5189492dfbee0c7fb new file mode 120000 index 0000000000..8bfcbc5fe0 --- /dev/null +++ b/notebooks/tutorials~c617ac9822c28f1990fd7af5189492dfbee0c7fb @@ -0,0 +1 @@ +../docs/source/tutorials/ \ No newline at end of file diff --git a/noxfile.py b/noxfile.py index 06b32ef7a8..f96b7f534f 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1,8 +1,9 @@ +import difflib +import glob import json import os import pathlib import shutil -import sys import nox from packaging.requirements import Requirement @@ -20,40 +21,57 @@ @nox.session(python=PYTHON_VERSION, venv_backend="conda") -def test(session: nox.Session) -> None: - """Run the tests.""" +def build(session: nox.Session) -> None: + """Build sdist and wheel dists.""" os.environ["WITH_OPENMP"] = "1" session.log(f"CC = {os.environ.get('CC', 'NOT FOUND')}") + if session.virtualenv.venv_backend != "none": + session.install( + "build", + *("-r", PATH["requirements"] / "required.txt"), + ) - if sys.platform.startswith("darwin") and session.python == "3.12": - session.log("installing multidict from conda-forge.") - session.conda_install("multidict") + session.run("python", "-m", "build", "--outdir", "./build/wheelhouse") - session.install( - "-r", - PATH["requirements"] / "required.txt", - "-r", - PATH["requirements"] / "testing.txt", - ) - session.conda_install("richdem", channel=["nodefaults", "conda-forge"]) - session.install("-e", ".", "--no-deps") +@nox.session(python=PYTHON_VERSION, venv_backend="conda") +def test(session: nox.Session) -> None: + """Run the tests.""" + path_args, pytest_args = pop_option(session.posargs, "--path") + + if session.virtualenv.venv_backend != "none": + os.environ["WITH_OPENMP"] = "1" + session.log(f"CC = {os.environ.get('CC', 'NOT FOUND')}") + session.install( + *("-r", PATH["requirements"] / "required.txt"), + *("-r", PATH["requirements"] / "testing.txt"), + ) + session.conda_install("richdem", channel=["nodefaults", "conda-forge"]) + + arg = path_args[0] if path_args else None + if arg is None: + session.install(".", "--no-deps") + elif os.path.isdir(arg): + session.install("landlab", f"--find-links={arg}", "--no-deps", "--no-index") + elif os.path.isfile(arg): + session.install(arg, "--no-deps") + else: + session.error("--path must be either a wheel for a wheelhouse folder") check_package_versions(session, files=["required.txt", "testing.txt"]) args = [ - "-n", - "auto", - "--cov", - PROJECT, + "pytest", + *("-n", "auto"), + *("--cov", PROJECT), "-vvv", - # "--dist", "worksteal", # this is not available quite yet - ] + session.posargs + # *("--dist", "worksteal"), + ] + pytest_args if "CI" in os.environ: args.append(f"--cov-report=xml:{ROOT.absolute()!s}/coverage.xml") - session.run("pytest", *args) + session.run(*args) if "CI" not in os.environ: session.run("coverage", "report", "--ignore-errors", "--show-missing") @@ -62,34 +80,37 @@ def test(session: nox.Session) -> None: @nox.session(name="test-notebooks", python=PYTHON_VERSION, venv_backend="conda") def test_notebooks(session: nox.Session) -> None: """Run the notebooks.""" + path_args, pytest_args = pop_option(session.posargs, "--path") + args = [ "pytest", "notebooks", "--nbmake", "--nbmake-kernel=python3", "--nbmake-timeout=3000", - "-n", - "auto", + *("-n", "auto"), "-vvv", - ] + session.posargs - - os.environ["WITH_OPENMP"] = "1" + ] + pytest_args + + if session.virtualenv.venv_backend != "none": + os.environ["WITH_OPENMP"] = "1" + session.conda_install("richdem", channel=["nodefaults", "conda-forge"]) + session.install( + "git+https://github.com/mcflugen/nbmake.git@v1.5.4-markers", + *("-r", PATH["requirements"] / "required.txt"), + *("-r", PATH["requirements"] / "testing.txt"), + *("-r", PATH["requirements"] / "notebooks.txt"), + ) - if sys.platform.startswith("darwin") and session.python == "3.12": - session.log("installing multidict from conda-forge") - session.conda_install("multidict") - - session.install( - "-r", - PATH["requirements"] / "required.txt", - "-r", - PATH["requirements"] / "testing.txt", - "-r", - PATH["requirements"] / "notebooks.txt", - ) - session.conda_install("richdem", channel=["nodefaults", "conda-forge"]) - session.install("git+https://github.com/mcflugen/nbmake.git@mcflugen/add-markers") - session.install("-e", ".", "--no-deps") + arg = path_args[0] if path_args else "." + if arg is None: + session.install(".", "--no-deps") + elif os.path.isdir(arg): + session.install("landlab", f"--find-links={arg}", "--no-deps", "--no-index") + elif os.path.isfile(arg): + session.install(arg, "--no-deps") + else: + session.error("--path must be either a wheel for a wheelhouse folder") check_package_versions( session, files=["required.txt", "testing.txt", "notebooks.txt"] @@ -98,6 +119,18 @@ def test_notebooks(session: nox.Session) -> None: session.run(*args) +def pop_option(args: list[str], opt: str): + the_rest = [] + opts = [] + for arg in args: + if arg.startswith(f"{opt}="): + _, value = arg.split("=", maxsplit=1) + opts += glob.glob(value) + else: + the_rest.append(arg) + return opts, the_rest + + @nox.session(name="test-cli") def test_cli(session: nox.Session) -> None: """Test the command line interface.""" @@ -118,7 +151,9 @@ def lint(session: nox.Session) -> None: """Look for lint.""" skip_hooks = [] if "--no-skip" in session.posargs else ["check-manifest", "pyroma"] - session.install("pre-commit") + if session.virtualenv.venv_backend != "none": + session.install("pre-commit") + session.run("pre-commit", "run", "--all-files", env={"SKIP": ",".join(skip_hooks)}) @@ -148,26 +183,23 @@ def build_index(session: nox.Session) -> None: session.log(f"generated index at {index_file!s}") -@nox.session(name="build-docs") -def build_docs(session: nox.Session) -> None: +@nox.session(name="docs-build") +def docs_build(session: nox.Session) -> None: """Build the docs.""" + docs_build_api(session) + docs_build_notebook_index(session) - session.install( - "-r", - PATH["requirements"] / "docs.txt", - "-r", - PATH["requirements"] / "required.txt", - ) - session.install("-e", ".", "--no-deps") + if session.virtualenv.venv_backend != "none": + session.install("-r", PATH["requirements"] / "docs.txt") check_package_versions(session, files=["required.txt", "docs.txt"]) PATH["build"].mkdir(exist_ok=True) session.run( "sphinx-build", - "-b", - "html", - "-W", + *("-j", "auto"), + *("-b", "html"), + # "-W", "--keep-going", PATH["docs"] / "source", PATH["build"] / "html", @@ -175,6 +207,92 @@ def build_docs(session: nox.Session) -> None: session.log(f"generated docs at {PATH['build'] / 'html'!s}") +@nox.session(name="docs-build-api") +def docs_build_api(session: nox.Session) -> None: + docs_dir = PATH["docs"] / "source" + + generated_dir = os.path.join(docs_dir, "generated", "api") + + if session.virtualenv.venv_backend != "none": + session.install("-r", PATH["requirements"] / "docs.txt") + + session.log(f"generating api docs in {generated_dir}") + session.run( + "sphinx-apidoc", + "-e", + "-force", + "--no-toc", + "--module-first", + *("-d", "2"), + f"--templatedir={docs_dir / '_templates'}", + *("-o", generated_dir), + "src/landlab", + "*.pyx", + "*.so", + ) + + +@nox.session(name="docs-build-gallery-index", python=None) +def docs_build_notebook_index(session: nox.Session) -> None: + docs_dir = PATH["docs"] / "source" + + for gallery in ("tutorials", "teaching"): + gallery_index = docs_dir / "generated" / gallery / "index.md" + os.makedirs(os.path.dirname(gallery_index), exist_ok=True) + + sections = [ + os.path.abspath(f.path) + for f in os.scandir(docs_dir / gallery) + if f.is_dir() + ] + + content = ( + [ + f"""\ +({gallery}-gallery)= + +# {gallery.title()} Gallery +""" + ] + + [ + format_nbgallery(section, str(docs_dir), level=2) + for section in sorted(sections) + ] + ) + + with open(gallery_index, "w") as fp: + print((2 * os.linesep).join(content), file=fp) + + session.log(gallery_index) + + +def format_nbgallery(path, start, level=1): + title = pathlib.Path(path).stem.replace("_", " ").title() + + p = os.path.relpath(path, start) + + files = [] + if glob.glob(os.path.join(path, "*.ipynb")): + files += [f"/{p}/*"] + if glob.glob(os.path.join(path, "**/*.ipynb")): + files += [f"/{p}/**"] + + body = "\n".join(files) + return ( + f"""\ +{'#' * level} {title} + +```{{nbgallery}} +:glob: + +{body} +``` +""" + if files + else "" + ) + + @nox.session(name="check-versions") def check_package_versions(session, files=("required.txt",)): output_lines = session.run("pip", "list", "--format=json", silent=True).splitlines() @@ -250,14 +368,25 @@ def sync_requirements(session: nox.Session) -> None: ) -@nox.session -def build(session: nox.Session) -> None: - """Build sdist and wheel dists.""" - session.install("pip") - session.install("build") - session.run("python", "--version") - session.run("pip", "--version") - session.run("python", "-m", "build", "--outdir", "./build/wheelhouse") +@nox.session(python=False, name="check-cython-files") +def check_cython_files(session: nox.Session) -> None: + """Find cython files for extension modules.""" + cython_files = { + str(p.relative_to(PATH["root"])) + for p in pathlib.Path(PATH["root"] / "src" / "landlab").rglob("**/*.pyx") + } + print(os.linesep.join(sorted(cython_files))) + + with open("cython-files.txt") as fp: + actual = [line.rstrip() for line in fp.readlines()] + + diff = list( + difflib.unified_diff( + actual, sorted(cython_files), fromfile="old", tofile="new", lineterm="" + ) + ) + if diff: + session.error("\n".join([""] + diff + ["cython-files.txt needs updating"])) @nox.session @@ -301,7 +430,7 @@ def clean(session): with session.chdir(folder): shutil.rmtree("build", ignore_errors=True) shutil.rmtree("build/wheelhouse", ignore_errors=True) - shutil.rmtree(f"{PROJECT}.egg-info", ignore_errors=True) + shutil.rmtree(f"src/{PROJECT}.egg-info", ignore_errors=True) shutil.rmtree(".pytest_cache", ignore_errors=True) shutil.rmtree(".venv", ignore_errors=True) diff --git a/pyproject.toml b/pyproject.toml index 19851e70a8..58d2084875 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["cython~=3.0.0b3", "numpy", "setuptools", "wheel"] +requires = ["cython", "numpy>=2.0,<3", "setuptools", "wheel"] build-backend = "setuptools.build_meta" [project] @@ -58,7 +58,7 @@ text = "MIT" homepage = "https://github.com/landlab" documentation = "https://landlab.readthedocs.io" repository = "https://github.com/landlab" -changelog = "https://github.com/landlab/landlab/blob/develop/CHANGES.rst" +changelog = "https://github.com/landlab/landlab/blob/develop/CHANGES.md" [project.optional-dependencies] dev = ["nox"] @@ -76,6 +76,7 @@ landlab = "landlab.cmd.landlab:landlab" [tool.setuptools] include-package-data = true +package-dir = { "" = "src" } [tool.setuptools.package-data] landlab = [ @@ -91,13 +92,15 @@ landlab = [ ] [tool.setuptools.packages.find] -where = ["."] -include = ["landlab*"] +where = ["src"] [tool.setuptools.dynamic] -readme = {file = ["README.rst", "AUTHORS.rst"]} version = {attr = "landlab._version.__version__"} +[tool.setuptools.dynamic.readme] +file = ["README.md", "AUTHORS.md"] +content-type = "text/markdown" + [tool.pytest.ini_options] minversion = "6.0" testpaths = ["notebooks", "landlab", "tests"] @@ -138,26 +141,20 @@ ignore = [".nox", "build"] build = "cp310-* cp311-* cp312-*" skip = "*-musllinux_* *-win32*" archs = "x86_64,aarch64,arm64,AMD64,x86" -test-command = "python -c \"import landlab; print(landlab.__version__)\"" +test-command = [ + "python -c \"import landlab; print(landlab.__version__)\"", + "python -c \"from landlab import RasterModelGrid; print(RasterModelGrid((3, 3)))\"", +] -[tool.cibuildwheel.macos] -before-all = "brew install libomp" -# before-all = "brew install llvm libomp" +[tool.cibuildwheel.linux.environment] +CPPFLAGS = "-fopenmp" [tool.cibuildwheel.macos.environment] -LANDLAB_WITHOUT_OPENMP = "1" -LDFLAGS = "-Wl,-rpath,/opt/homebrew/opt/libomp/lib -L/opt/homebrew/opt/libomp/lib -L/opt/homebrew/opt/llvm/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm/lib/c++ -lomp" -CPPFLAGS = "-Xpreprocessor -fopenmp -I/opt/homebrew/opt/libomp/include" -CFLAGS = "-Wno-implicit-function-declaration -I/opt/homebrew/opt/libomp/include" -CXXFLAGS = "-I/opt/homebrew/opt/libomp/include" -# PATH = "/opt/homebrew/opt/llvm/bin:$PATH" - -[[tool.cibuildwheel.overrides]] -select = "*x86_64*" -environment = {"LANDLAB_WITHOUT_OPENMP"="1"} - -[tool.cibuildwheel.windows.environment] -LANDLAB_WITHOUT_OPENMP = "1" +MACOSX_DEPLOYMENT_TARGET = "12.0" +CC = "clang" +CXX = "clang++" +# CPPFLAGS = "-Xclang -fopenmp" +# LDFLAGS = "-lomp" [tool.cython-lint] max-line-length = 88 @@ -169,19 +166,28 @@ platforms = ["osx-arm64", "linux-64", "osx-64", "win-64"] [tool.towncrier] directory = "news" -package = "landlab" -filename = "CHANGES.rst" +name = "landlab" +filename = "CHANGES.md" +create_add_extension = false single_file = true -underlines = "-`^" -issue_format = "`#{issue} `_" -title_format = "{version} ({project_date})" +underlines = [ + "", + "", + "", +] +start_string = """ + +""" +template = "news/changelog_template.jinja" +issue_format = "[#{issue}](https://github.com/landlab/landlab/issues/{issue})" +title_format = "## {version} ({project_date})" type = [ - {name="New Components", directory="component", showcontent=true}, - {name="New Tutorial Notebooks", directory="notebook", showcontent=true}, - {name="New Features", directory="feature", showcontent=true}, - {name="Bug Fixes", directory="bugfix", showcontent=true}, - {name="Documentation Enhancements", directory="docs", showcontent=true}, - {name="Other Changes and Additions", directory="misc", showcontent=true}, + {name="✨ New Components", directory="component", showcontent=true}, + {name="📚 New Tutorial Notebooks", directory="notebook", showcontent=true}, + {name="🍰 New Features", directory="feature", showcontent=true}, + {name="🛠️ Bug Fixes", directory="bugfix", showcontent=true}, + {name="📖 Documentation Enhancements", directory="docs", showcontent=true}, + {name="🔩 Other Changes and Additions", directory="misc", showcontent=true}, ] [tool.landlab.credits] @@ -192,5 +198,6 @@ exclude = ''' .*\[bot\] # ignore all bots ) ''' -authors_file = "AUTHORS.rst" -author_format = "* `{name} `_" +authors_file = "AUTHORS.md" +author_format = "- [{name}](https://github.com/{github})" +start_string = "" diff --git a/requirements/docs.txt b/requirements/docs.txt index b8d063e003..1dada383b5 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -2,6 +2,7 @@ furo==2023.9.10 ipython==8.17.1 myst-parser==2.0.0 nbsphinx==0.9.3 +numpy==2.0.0 pandoc==2.3 sphinx-copybutton==0.5.2 sphinx-inline-tabs==2023.4.21 diff --git a/setup.cfg b/setup.cfg index 9cee348dd0..7ad2000c8d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -7,7 +7,7 @@ select = B,C,E,F,W,T4,B9 [zest.releaser] tag-format = v{version} -python-file-with-version = landlab/_version.py +python-file-with-version = src/landlab/_version.py [coverage:run] relative_files = True diff --git a/setup.py b/setup.py index 2d61c4fe5a..9d8bcaf981 100644 --- a/setup.py +++ b/setup.py @@ -1,68 +1,17 @@ #! /usr/bin/env python - -import os - import numpy as np from Cython.Build import cythonize from setuptools import Extension from setuptools import setup -compile_args = [] if "LANDLAB_WITHOUT_OPENMP" in os.environ else ["-fopenmp"] - -cython_files = ( - "landlab/ca/cfuncs.pyx", - "landlab/components/bedrock_landslider/cfuncs.pyx", - "landlab/components/depression_finder/cfuncs.pyx", - "landlab/components/drainage_density/cfuncs.pyx", - "landlab/components/erosion_deposition/cfuncs.pyx", - "landlab/components/flexure/_ext/flexure1d.pyx", - "landlab/components/flexure/_ext/flexure2d.pyx", - "landlab/components/flexure/_ext/flexure2d_slow.pyx", - "landlab/components/flow_accum/cfuncs.pyx", - "landlab/components/flow_director/cfuncs.pyx", - "landlab/components/flow_router/ext/single_flow/priority_routing/breach.pyx", - "landlab/components/overland_flow/_neighbors_at_link.pyx", - "landlab/components/priority_flood_flow_router/cfuncs.pyx", - "landlab/components/space/ext/calc_qs.pyx", - "landlab/components/space/ext/calc_sequential_ero_depo.pyx", - "landlab/components/stream_power/cfuncs.pyx", - "landlab/components/threshold_eroder/cfuncs.pyx", - "landlab/graph/hex/ext/hex.pyx", - "landlab/graph/hex/ext/perimeternodes.pyx", - "landlab/graph/matrix/ext/at_patch.pyx", - "landlab/graph/matrix/ext/matrix.pyx", - "landlab/graph/object/ext/at_node.pyx", - "landlab/graph/object/ext/at_patch.pyx", - "landlab/graph/quantity/ext/of_element.pyx", - "landlab/graph/quantity/ext/of_link.pyx", - "landlab/graph/quantity/ext/of_patch.pyx", - "landlab/graph/sort/ext/_deprecated_sparse.pyx", - "landlab/graph/sort/ext/argsort.pyx", - "landlab/graph/sort/ext/intpair.pyx", - "landlab/graph/sort/ext/remap_element.pyx", - "landlab/graph/sort/ext/spoke_sort.pyx", - "landlab/graph/structured_quad/ext/at_cell.pyx", - "landlab/graph/structured_quad/ext/at_face.pyx", - "landlab/graph/structured_quad/ext/at_link.pyx", - "landlab/graph/structured_quad/ext/at_node.pyx", - "landlab/graph/structured_quad/ext/at_patch.pyx", - "landlab/graph/voronoi/ext/delaunay.pyx", - "landlab/graph/voronoi/ext/voronoi.pyx", - "landlab/grid/ext/raster_divergence.pyx", - "landlab/grid/ext/raster_gradient.pyx", - "landlab/layers/ext/eventlayers.pyx", - "landlab/utils/_matrix.pyx", - "landlab/utils/ext/jaggedarray.pyx", - "tests/components/flow_router/ext/single_flow/priority_routing/test_breach_c.pyx", -) +with open("cython-files.txt") as fp: + cython_files = {fname.strip() for fname in fp.readlines()} ext_modules = cythonize( [ Extension( - path[:-4].replace("/", "."), + path[4:-4].replace("/", "."), [path], - extra_compile_args=compile_args, - extra_link_args=compile_args, define_macros=[("NPY_NO_DEPRECATED_API", "1")], ) for path in cython_files diff --git a/landlab/__init__.py b/src/landlab/__init__.py similarity index 97% rename from landlab/__init__.py rename to src/landlab/__init__.py index 3e52da0039..91bb5874d5 100644 --- a/landlab/__init__.py +++ b/src/landlab/__init__.py @@ -9,8 +9,6 @@ :URL: https://landlab.readthedocs.io/en/release/ :License: MIT """ -import numpy as np - from landlab._registry import registry from landlab._version import __version__ from landlab.core.errors import MissingKeyError @@ -35,8 +33,6 @@ from landlab.plot.imshowhs import imshowhs_grid from landlab.plot.imshowhs import imshowhs_grid_at_node -np.set_printoptions(legacy="1.25") - cite_as = registry.format_citations __all__ = [ diff --git a/landlab/_info.py b/src/landlab/_info.py similarity index 100% rename from landlab/_info.py rename to src/landlab/_info.py diff --git a/landlab/_registry.py b/src/landlab/_registry.py similarity index 100% rename from landlab/_registry.py rename to src/landlab/_registry.py diff --git a/src/landlab/_version.py b/src/landlab/_version.py new file mode 100644 index 0000000000..c4de82bc7c --- /dev/null +++ b/src/landlab/_version.py @@ -0,0 +1 @@ +__version__ = "2.9.2.dev0" diff --git a/landlab/bmi/__init__.py b/src/landlab/bmi/__init__.py similarity index 100% rename from landlab/bmi/__init__.py rename to src/landlab/bmi/__init__.py diff --git a/landlab/bmi/bmi_bridge.py b/src/landlab/bmi/bmi_bridge.py similarity index 92% rename from landlab/bmi/bmi_bridge.py rename to src/landlab/bmi/bmi_bridge.py index b196431b8c..239fa931b1 100644 --- a/landlab/bmi/bmi_bridge.py +++ b/src/landlab/bmi/bmi_bridge.py @@ -1,16 +1,13 @@ -""" -======================================================================================== -Wrap landlab component with the Basic Modeling Interface (:mod:`landlab.bmi.bmi_bridge`) -======================================================================================== +"""Wrap landlab component with the Basic Modeling Interface -.. sectionauthor:: Eric Hutton +The `wrap_as_bmi` function wraps a landlab component class so that it +exposes a Basic Modeling Interface. -Function reference ------------------- +.. autosummary:: -The `wrap_as_bmi` function wraps a landlab component class so that it -exposes a Basic Modelling Interface. + ~landlab.bmi.bmi_bridge.wrap_as_bmi +.. sectionauthor:: Eric Hutton """ import inspect @@ -18,12 +15,12 @@ import numpy as np from bmipy import Bmi -from ..core import load_params -from ..core.model_component import Component -from ..framework.decorators import snake_case -from ..grid import HexModelGrid -from ..grid import RasterModelGrid -from ..grid.create import create_grid +from landlab.core import load_params +from landlab.core.model_component import Component +from landlab.framework.decorators import snake_case +from landlab.grid.create import create_grid +from landlab.grid.hex import HexModelGrid +from landlab.grid.raster import RasterModelGrid BMI_LOCATION = { "node": "node", @@ -145,10 +142,10 @@ def wrap_as_bmi(cls): are a number of differences that may cause some confusion to landlab users. - 1. Because BMI doesn't have a concept of a dual grid, it only - defines *nodes* (points), *edges* (vectors), and *faces* - (areas). The dual-graph of landlab is considered as two - separate grids by BMI. + 1. Because BMI doesn't have a concept of a dual grid, it only + defines *nodes* (points), *edges* (vectors), and *faces* + (areas). The dual-graph of landlab is considered as two + separate grids by BMI. 2. It is important to note that BMI has only three grid elements (*node*, *edge*, and *face*) while landlab has 6. The names @@ -161,28 +158,28 @@ def wrap_as_bmi(cls): refer to grid elements by different names. The mapping from landlab to BMI nomenclature is the following: - Grid 0: - * *node*: *node* - * *link*: *edge* - * *patch*: *face* - - Grid 1: - * *corner*: *node* - * *face*: *edge* - * *cell*: *face* - - 3. In BMI, the *initialize* method requires an input file that is - used to create and setup the model for time-stepping. landlab - components generally do not have anything like this; instead - this task is usually done programmatically. Thus, the - input file that is used by the BMI *initialize* method is - a standard landlab input file as used by the landlab *create_grid* - function. + ======= ======= ======= ====== + Grid 0 (Primal) Grid 1 (Dual) + --------------- -------------- + Landlab BMI Landlab BMI + ======= ======= ======= ====== + node node corner node + link edge face edge + patch face cell face + ======= ======= ======= ====== + + 3. In BMI, the *initialize* method requires an input file that is + used to create and setup the model for time-stepping. landlab + components generally do not have anything like this; instead + this task is usually done programmatically. Thus, the + input file that is used by the BMI *initialize* method is + a standard landlab input file as used by the landlab :func:`~.create_grid` + function. Parameters ---------- cls : class - A landlab class that inherits from `Component`. + A landlab class that inherits from :class:`Component`. Returns ------- diff --git a/landlab/bmi/components.py b/src/landlab/bmi/components.py similarity index 100% rename from landlab/bmi/components.py rename to src/landlab/bmi/components.py diff --git a/landlab/bmi/standard_names.py b/src/landlab/bmi/standard_names.py similarity index 100% rename from landlab/bmi/standard_names.py rename to src/landlab/bmi/standard_names.py diff --git a/landlab/ca/__init__.py b/src/landlab/ca/__init__.py similarity index 100% rename from landlab/ca/__init__.py rename to src/landlab/ca/__init__.py diff --git a/landlab/ca/boundaries/__init__.py b/src/landlab/ca/boundaries/__init__.py similarity index 100% rename from landlab/ca/boundaries/__init__.py rename to src/landlab/ca/boundaries/__init__.py diff --git a/landlab/ca/boundaries/hex_lattice_tectonicizer.py b/src/landlab/ca/boundaries/hex_lattice_tectonicizer.py similarity index 99% rename from landlab/ca/boundaries/hex_lattice_tectonicizer.py rename to src/landlab/ca/boundaries/hex_lattice_tectonicizer.py index bfe3212368..76c8b2fe91 100644 --- a/landlab/ca/boundaries/hex_lattice_tectonicizer.py +++ b/src/landlab/ca/boundaries/hex_lattice_tectonicizer.py @@ -126,7 +126,9 @@ def __init__( # If needed, create node-state grid if node_state is None: - self.node_state = self.grid.add_zeros("node", "node_state_map", dtype=int) + self.node_state = self.grid.add_zeros( + "node_state_map", at="node", dtype=int + ) else: self.node_state = node_state @@ -586,7 +588,7 @@ def shift_scheduled_transitions(self, ca, current_time): >>> xnlist.append(Transition((0, 0, 0), (1, 1, 0), 1.0, "test")) >>> xnlist.append(Transition((0, 0, 1), (1, 1, 1), 1.0, "test")) >>> xnlist.append(Transition((0, 0, 2), (1, 1, 2), 1.0, "test")) - >>> nsg = mg.add_zeros("node", "node_state_grid") + >>> nsg = mg.add_zeros("node_state_grid", at="node") >>> pid = np.arange(25, dtype=int) >>> pdata = np.arange(25) >>> ohcts = OrientedHexCTS(mg, nsd, xnlist, nsg) @@ -633,7 +635,7 @@ def shift_link_states(self, ca, current_time): >>> xnlist.append(Transition((1, 0, 0), (1, 1, 0), 1.0, "frogging")) >>> xnlist.append(Transition((1, 0, 1), (1, 1, 1), 1.0, "frogging")) >>> xnlist.append(Transition((1, 0, 2), (1, 1, 2), 1.0, "frogging")) - >>> nsg = mg.add_zeros("node", "node_state_grid") + >>> nsg = mg.add_zeros("node_state_grid", at="node") >>> nsg[:10] = 1 >>> pid = np.arange(25, dtype=int) >>> pdata = np.arange(25) @@ -894,7 +896,7 @@ def _get_new_base_nodes(self, rock_state): ... >>> xnlist = [] >>> xnlist.append(Transition((0, 0, 0), (1, 1, 0), 1.0, "frogging")) - >>> nsg = mg.add_zeros("node", "node_state_grid") + >>> nsg = mg.add_zeros("node_state_grid", at="node") >>> ca = HexCTS(mg, nsd, xnlist, nsg) >>> lu = LatticeUplifter(opt_block_layer=True) @@ -1061,9 +1063,9 @@ def uplift_interior_nodes(self, ca, current_time, rock_state=1): ... >>> xnlist = [] >>> xnlist.append(Transition((0, 0, 0), (1, 1, 0), 1.0, "frogging", True)) - >>> nsg = mg.add_zeros("node", "node_state_grid") + >>> nsg = mg.add_zeros("node_state_grid", at="node") >>> ca = HexCTS(mg, nsd, xnlist, nsg) - >>> pd = mg.add_zeros("node", "propdata") + >>> pd = mg.add_zeros("propdata", at="node") >>> lu = LatticeUplifter(propid=ca.propid, prop_data=pd) >>> lu.node_state[:] = np.arange(len(lu.node_state)) >>> lu.uplift_interior_nodes(ca, rock_state=25, current_time=0.0) diff --git a/landlab/ca/celllab_cts.py b/src/landlab/ca/celllab_cts.py similarity index 99% rename from landlab/ca/celllab_cts.py rename to src/landlab/ca/celllab_cts.py index d3b1171654..4cc407420e 100644 --- a/landlab/ca/celllab_cts.py +++ b/src/landlab/ca/celllab_cts.py @@ -430,7 +430,7 @@ def __init__( last_type = this_type # Create priority queue for events and next_update array for links - self.next_update = self.grid.add_zeros("link", "next_update_time") + self.next_update = self.grid.add_zeros("next_update_time", at="link") self.priority_queue = PriorityQueue() self.next_trn_id = -np.ones(self.grid.number_of_links, dtype=int) diff --git a/landlab/ca/cfuncs.pyx b/src/landlab/ca/cfuncs.pyx similarity index 100% rename from landlab/ca/cfuncs.pyx rename to src/landlab/ca/cfuncs.pyx diff --git a/landlab/ca/hex_cts.py b/src/landlab/ca/hex_cts.py similarity index 98% rename from landlab/ca/hex_cts.py rename to src/landlab/ca/hex_cts.py index 9d3126dc6a..3c1fb9f0d6 100644 --- a/landlab/ca/hex_cts.py +++ b/src/landlab/ca/hex_cts.py @@ -47,7 +47,7 @@ class HexCTS(CellLabCTSModel): >>> nsd = {0: "yes", 1: "no"} >>> xnlist = [] >>> xnlist.append(Transition((0, 1, 0), (1, 1, 0), 1.0, "frogging")) - >>> nsg = mg.add_zeros("node", "node_state_grid") + >>> nsg = mg.add_zeros("node_state_grid", at="node") >>> hcts = HexCTS(mg, nsd, xnlist, nsg) """ diff --git a/landlab/ca/oriented_hex_cts.py b/src/landlab/ca/oriented_hex_cts.py similarity index 98% rename from landlab/ca/oriented_hex_cts.py rename to src/landlab/ca/oriented_hex_cts.py index 246c67e334..d025af4d05 100644 --- a/landlab/ca/oriented_hex_cts.py +++ b/src/landlab/ca/oriented_hex_cts.py @@ -51,7 +51,7 @@ class OrientedHexCTS(CellLabCTSModel): >>> nsd = {0: "yes", 1: "no"} >>> xnlist = [] >>> xnlist.append(Transition((0, 1, 0), (1, 1, 0), 1.0, "frogging")) - >>> nsg = mg.add_zeros("node", "node_state_grid") + >>> nsg = mg.add_zeros("node_state_grid", at="node") >>> ohcts = OrientedHexCTS(mg, nsd, xnlist, nsg) """ diff --git a/landlab/ca/oriented_raster_cts.py b/src/landlab/ca/oriented_raster_cts.py similarity index 98% rename from landlab/ca/oriented_raster_cts.py rename to src/landlab/ca/oriented_raster_cts.py index b3ea25e247..ab3aabd35d 100644 --- a/landlab/ca/oriented_raster_cts.py +++ b/src/landlab/ca/oriented_raster_cts.py @@ -54,7 +54,7 @@ class OrientedRasterCTS(CellLabCTSModel): >>> nsd = {0: "yes", 1: "no"} >>> xnlist = [] >>> xnlist.append(Transition((0, 1, 0), (1, 1, 0), 1.0, "frogging")) - >>> nsg = mg.add_zeros("node", "node_state_grid") + >>> nsg = mg.add_zeros("node_state_grid", at="node") >>> orcts = OrientedRasterCTS(mg, nsd, xnlist, nsg) """ diff --git a/landlab/ca/raster_cts.py b/src/landlab/ca/raster_cts.py similarity index 98% rename from landlab/ca/raster_cts.py rename to src/landlab/ca/raster_cts.py index 92eb3c36ba..7d089f0640 100644 --- a/landlab/ca/raster_cts.py +++ b/src/landlab/ca/raster_cts.py @@ -49,7 +49,7 @@ class RasterCTS(CellLabCTSModel): >>> nsd = {0: "yes", 1: "no"} >>> xnlist = [] >>> xnlist.append(Transition((0, 1, 0), (1, 1, 0), 1.0, "frogging")) - >>> nsg = mg.add_zeros("node", "node_state_grid") + >>> nsg = mg.add_zeros("node_state_grid", at="node") >>> rcts = RasterCTS(mg, nsd, xnlist, nsg) """ diff --git a/landlab/cmd/__init__.py b/src/landlab/cmd/__init__.py similarity index 100% rename from landlab/cmd/__init__.py rename to src/landlab/cmd/__init__.py diff --git a/landlab/cmd/authors.py b/src/landlab/cmd/authors.py similarity index 99% rename from landlab/cmd/authors.py rename to src/landlab/cmd/authors.py index 6056a12a13..94f4bd1fd8 100644 --- a/landlab/cmd/authors.py +++ b/src/landlab/cmd/authors.py @@ -22,6 +22,7 @@ class AuthorsConfig(UserDict): "ignore": (), "author_format": "{name}", "credits_file": ".credits.toml", + "start_string": ".. credits-roll start-author-list", } def __init__(self, *args, **kwds): diff --git a/landlab/cmd/landlab.py b/src/landlab/cmd/landlab.py similarity index 99% rename from landlab/cmd/landlab.py rename to src/landlab/cmd/landlab.py index c282b5c7c1..b8b13c615f 100644 --- a/landlab/cmd/landlab.py +++ b/src/landlab/cmd/landlab.py @@ -223,6 +223,7 @@ def build(ctx): authors_file = pathlib.Path(ctx.parent.params["authors_file"]) author_format = ctx.parent.params["author_format"] credits_file = pathlib.Path(ctx.parent.params["credits_file"]) + start_string = ctx.parent.params["start_string"] git_log = GitLog("%aN") try: @@ -235,9 +236,7 @@ def build(ctx): out(f"{git_log}") intro = ( - _read_until(authors_file, until=".. credits-roll start-author-list") - if authors_file.is_file() - else "" + _read_until(authors_file, until=start_string) if authors_file.is_file() else "" ) if len(intro) == 0: err(f"empty or missing authors file ({authors_file})") diff --git a/landlab/components/__init__.py b/src/landlab/components/__init__.py similarity index 98% rename from landlab/components/__init__.py rename to src/landlab/components/__init__.py index 632b7b24e1..6a63465c45 100644 --- a/landlab/components/__init__.py +++ b/src/landlab/components/__init__.py @@ -14,6 +14,7 @@ from .discharge_diffuser import DischargeDiffuser from .drainage_density import DrainageDensity from .erosion_deposition import ErosionDeposition +from .erosion_deposition import SharedStreamPower from .fire_generator import FireGenerator from .flexure import Flexure from .flexure import Flexure1D @@ -157,6 +158,7 @@ SedDepEroder, SedimentPulserAtLinks, SedimentPulserEachParcel, + SharedStreamPower, SimpleSubmarineDiffuser, SinkFiller, SinkFillerBarnes, diff --git a/landlab/components/advection/__init__.py b/src/landlab/components/advection/__init__.py similarity index 100% rename from landlab/components/advection/__init__.py rename to src/landlab/components/advection/__init__.py diff --git a/landlab/components/advection/advection_solver_tvd.py b/src/landlab/components/advection/advection_solver_tvd.py similarity index 100% rename from landlab/components/advection/advection_solver_tvd.py rename to src/landlab/components/advection/advection_solver_tvd.py diff --git a/landlab/components/advection/flux_limiters.py b/src/landlab/components/advection/flux_limiters.py similarity index 85% rename from landlab/components/advection/flux_limiters.py rename to src/landlab/components/advection/flux_limiters.py index ec0112fe72..9478a8753b 100644 --- a/landlab/components/advection/flux_limiters.py +++ b/src/landlab/components/advection/flux_limiters.py @@ -2,7 +2,7 @@ """Flux limiter functions for advection solver. There are many flux-limiter functions. For second-order TVD -schemes, there is an envelope of acceptable values of phi(r): +schemes, there is an envelope of acceptable values of ``phi(r)``:: r <= phi(r) <= 2r, (0 <= r <= 1) phi(1) = 1 diff --git a/landlab/components/area_slope_transporter/__init__.py b/src/landlab/components/area_slope_transporter/__init__.py similarity index 100% rename from landlab/components/area_slope_transporter/__init__.py rename to src/landlab/components/area_slope_transporter/__init__.py diff --git a/landlab/components/area_slope_transporter/area_slope_transporter.py b/src/landlab/components/area_slope_transporter/area_slope_transporter.py similarity index 100% rename from landlab/components/area_slope_transporter/area_slope_transporter.py rename to src/landlab/components/area_slope_transporter/area_slope_transporter.py diff --git a/landlab/components/bedrock_landslider/__init__.py b/src/landlab/components/bedrock_landslider/__init__.py similarity index 100% rename from landlab/components/bedrock_landslider/__init__.py rename to src/landlab/components/bedrock_landslider/__init__.py diff --git a/landlab/components/bedrock_landslider/bedrock_landslider.py b/src/landlab/components/bedrock_landslider/bedrock_landslider.py similarity index 100% rename from landlab/components/bedrock_landslider/bedrock_landslider.py rename to src/landlab/components/bedrock_landslider/bedrock_landslider.py diff --git a/landlab/components/bedrock_landslider/cfuncs.pyx b/src/landlab/components/bedrock_landslider/cfuncs.pyx similarity index 100% rename from landlab/components/bedrock_landslider/cfuncs.pyx rename to src/landlab/components/bedrock_landslider/cfuncs.pyx diff --git a/landlab/components/carbonate/__init__.py b/src/landlab/components/carbonate/__init__.py similarity index 100% rename from landlab/components/carbonate/__init__.py rename to src/landlab/components/carbonate/__init__.py diff --git a/landlab/components/carbonate/carbonate_producer.py b/src/landlab/components/carbonate/carbonate_producer.py similarity index 100% rename from landlab/components/carbonate/carbonate_producer.py rename to src/landlab/components/carbonate/carbonate_producer.py diff --git a/landlab/components/chi_index/__init__.py b/src/landlab/components/chi_index/__init__.py similarity index 100% rename from landlab/components/chi_index/__init__.py rename to src/landlab/components/chi_index/__init__.py diff --git a/landlab/components/chi_index/channel_chi.py b/src/landlab/components/chi_index/channel_chi.py similarity index 98% rename from landlab/components/chi_index/channel_chi.py rename to src/landlab/components/chi_index/channel_chi.py index 8a52a071a4..703aa2600f 100644 --- a/landlab/components/chi_index/channel_chi.py +++ b/src/landlab/components/chi_index/channel_chi.py @@ -49,7 +49,7 @@ class ChiFinder(Component): ... mg2.nodes_at_top_edge, ... ): ... mg2.status_at_node[nodes] = mg2.BC_NODE_IS_CLOSED - >>> _ = mg2.add_zeros("node", "topographic__elevation") + >>> _ = mg2.add_zeros("topographic__elevation", at="node") >>> mg2.at_node["topographic__elevation"][mg2.core_nodes] = ( ... mg2.node_x[mg2.core_nodes] / 1000.0 ... ) @@ -226,8 +226,10 @@ def __init__( self._set_up_reference_area(reference_area) self._use_true_dx = use_true_dx - self._chi = self._grid.add_zeros("node", "channel__chi_index", clobber=clobber) - self._mask = self._grid.ones("node", dtype=bool) + self._chi = self._grid.add_zeros( + "channel__chi_index", at="node", clobber=clobber + ) + self._mask = self._grid.ones(at="node", dtype=bool) self._elev = self._grid.at_node["topographic__elevation"] def _set_up_reference_area(self, reference_area): @@ -270,7 +272,7 @@ def calculate_chi(self): valid_upstr_order, chi_integrand, self._chi, mean_dx ) else: - chi_integrand = self._grid.zeros("node") + chi_integrand = self._grid.zeros(at="node") chi_integrand[valid_upstr_order] = ( self._A0 / valid_upstr_areas ) ** reftheta @@ -394,7 +396,7 @@ def integrate_chi_each_dx( ... mg2.nodes_at_top_edge, ... ): ... mg2.status_at_node[nodes] = mg2.BC_NODE_IS_CLOSED - >>> _ = mg2.add_zeros("node", "topographic__elevation") + >>> _ = mg2.add_zeros("topographic__elevation", at="node") >>> mg2.at_node["topographic__elevation"][mg2.core_nodes] = ( ... mg2.node_x[mg2.core_nodes] / 1000.0 ... ) @@ -684,7 +686,7 @@ def masked_chi_indices(self): ... mg.nodes_at_top_edge, ... ): ... mg.status_at_node[nodes] = mg.BC_NODE_IS_CLOSED - >>> _ = mg.add_zeros("node", "topographic__elevation") + >>> _ = mg.add_zeros("topographic__elevation", at="node") >>> mg.at_node["topographic__elevation"][mg.core_nodes] = ( ... mg.node_x[mg.core_nodes] / 1000.0 ... ) diff --git a/landlab/components/concentration_tracker/__init__.py b/src/landlab/components/concentration_tracker/__init__.py similarity index 100% rename from landlab/components/concentration_tracker/__init__.py rename to src/landlab/components/concentration_tracker/__init__.py diff --git a/landlab/components/concentration_tracker/concentration_tracker_for_diffusion.py b/src/landlab/components/concentration_tracker/concentration_tracker_for_diffusion.py similarity index 81% rename from landlab/components/concentration_tracker/concentration_tracker_for_diffusion.py rename to src/landlab/components/concentration_tracker/concentration_tracker_for_diffusion.py index 159daf52a0..e4dc13902e 100644 --- a/landlab/components/concentration_tracker/concentration_tracker_for_diffusion.py +++ b/src/landlab/components/concentration_tracker/concentration_tracker_for_diffusion.py @@ -30,12 +30,14 @@ class ConcentrationTrackerForDiffusion(Component): .. note:: This component requires a soil flux field calculated by a hillslope diffusion - component and must be run after every diffusion step. Currently, this component - WILL ONLY WORK IF COUPLED with the :class:`~.DepthDependentDiffuser` or the - :class:`~.DepthDependentTaylorDiffuser` (without the dynamic timestep option). + component. This component is implemented by applying a :meth:`start_tracking` + method immediately before every diffusion step and a :meth:`stop_tracking` + method immediately after every diffusion step. These methods are applied instead + of the typical :meth:`run_one_step` method. See the docstring examples below. - In-situ production and decay of the material property are handled by - the ConcentrationTrackerProductionDecay component. + Currently, this component will only work if coupled with the + :class:`~.DepthDependentDiffuser` or the :class:`~.DepthDependentTaylorDiffuser` + (without the dynamic timestep option). Examples -------- @@ -75,8 +77,9 @@ class ConcentrationTrackerForDiffusion(Component): >>> ddd = DepthDependentDiffuser(mg) >>> ct = ConcentrationTrackerForDiffusion(mg) + >>> ct.start_tracking() >>> ddd.run_one_step(1.0) - >>> ct.run_one_step(1.0) + >>> ct.stop_tracking(1.0) >>> mg.at_node["topographic__elevation"].reshape(mg.shape) array([[ 0. , 4. , 8. , 12. , 16. ], @@ -91,8 +94,11 @@ class ConcentrationTrackerForDiffusion(Component): >>> mg = RasterModelGrid((5, 5), xy_spacing=2.0) - >>> c = mg.add_zeros("sediment_property__concentration", at="node") - >>> c[12] = 1.0 + >>> mg.at_node["sediment_property__concentration"] = [ + ... [0.0, 0.0, 0.0, 0.0, 0.0], + ... [0.0, 0.0, 0.0, 0.0, 0.0], + ... [0.0, 0.0, 1.0, 0.0, 0.0], + ... ] >>> h = mg.add_full("soil__depth", 2.0, at="node") >>> z_br = mg.add_field( ... "bedrock__elevation", @@ -104,8 +110,9 @@ class ConcentrationTrackerForDiffusion(Component): >>> ddd = DepthDependentDiffuser(mg) >>> ct = ConcentrationTrackerForDiffusion(mg) + >>> ct.start_tracking() >>> ddd.run_one_step(1.0) - >>> ct.run_one_step(1.0) + >>> ct.stop_tracking(1.0) >>> mg.at_node["topographic__elevation"][mg.core_nodes].reshape((3, 3)) array([[6. , 7.13533528, 6. ], @@ -118,8 +125,9 @@ class ConcentrationTrackerForDiffusion(Component): And running one more step. + >>> ct.start_tracking() >>> ddd.run_one_step(1.0) - >>> ct.run_one_step(1.0) + >>> ct.stop_tracking(1.0) >>> mg.at_node["topographic__elevation"][mg.core_nodes].reshape((3, 3)) array([[5.52060315, 6.62473963, 5.52060315], @@ -130,19 +138,22 @@ class ConcentrationTrackerForDiffusion(Component): [0.44750673, 1. , 0.44750673], [0.09648071, 0.44750673, 0.09648071]]) - Finally, the same 2D hillslope now using the DepthDependentTaylorDiffuser. - Note that the timestep must be smaller than 1 to maintain stability in the - diffusion calculation. Typically, one could use the dynamic timestepping - option. However, here it will provide incorrect soil flux values to the - ConcentrationTrackerForDiffusion, which cannot do sub-timestep calculations. - Use the if_unstable="warn" flag when instantiating the Taylor diffuser and - pick a timestep that is stable. + Finally, the same 2D hillslope now using the + :class:`~.DepthDependentTaylorDiffuser`. Note that the timestep must be smaller + than 1 to maintain stability in the diffusion calculation. Typically, one could + use the dynamic timestepping option. However, here it will provide incorrect + soil flux values to the :class:`~.ConcentrationTrackerForDiffusion`, which + cannot do sub-timestep calculations. Use the ``if_unstable="warn"`` flag when + instantiating the Taylor diffuser and pick a timestep that is stable. >>> from landlab.components import DepthDependentTaylorDiffuser >>> mg = RasterModelGrid((5, 5), xy_spacing=2.0) - >>> c = mg.add_zeros("sediment_property__concentration", at="node") - >>> c[12] = 1.0 + >>> mg.at_node["sediment_property__concentration"] = [ + ... [0.0, 0.0, 0.0, 0.0, 0.0], + ... [0.0, 0.0, 0.0, 0.0, 0.0], + ... [0.0, 0.0, 1.0, 0.0, 0.0], + ... ] >>> h = mg.add_full("soil__depth", 2.0, at="node") >>> z_br = mg.add_field( ... "bedrock__elevation", @@ -154,8 +165,9 @@ class ConcentrationTrackerForDiffusion(Component): >>> ddtd = DepthDependentTaylorDiffuser(mg, if_unstable="warn") >>> ct = ConcentrationTrackerForDiffusion(mg) + >>> ct.start_tracking() >>> ddtd.run_one_step(0.4) - >>> ct.run_one_step(0.4) + >>> ct.stop_tracking(0.4) >>> mg.at_node["topographic__elevation"][mg.core_nodes].reshape((3, 3)) array([[6. , 7.30826823, 6. ], @@ -165,22 +177,13 @@ class ConcentrationTrackerForDiffusion(Component): array([[0. , 0.26436925, 0. ], [0.26436925, 1. , 0.26436925], [0. , 0.26436925, 0. ]]) - - References - ---------- - **Required Software Citation(s) Specific to this Component** - - CITATION - """ _name = "ConcentrationTrackerForDiffusion" _unit_agnostic = True - _cite_as = """ - CITATION - """ + _cite_as = "" _info = { "soil__depth": { @@ -254,7 +257,7 @@ def __init__( concentration_from_weathering: float or array, optional Concentration generated during the weathering process, -/m^3. Defaults to ``None``, which causes all weathered bedrock to retain its - original parent material concentration (``concentration_in_bedrock``) + original parent material concentration (`concentration_in_bedrock`) as it weathers to soil. Use this parameter to differentiate between the concentration in weathered material compared to its parent bedrock. """ @@ -328,7 +331,14 @@ def conc_w(self, new_val): raise ValueError("Concentration cannot be negative") self._conc_w = new_val - def calc_concentration(self, dt): + def _copy_old_soil_depth(self): + """Store a copy of soil depth. This is used as the old soil depth when + calculating changes in concentration. + """ + + self._soil__depth_old = self._soil__depth.copy() + + def _calc_concentration(self, dt): """Calculate change in concentration for a time period 'dt'. Parameters @@ -341,7 +351,6 @@ def calc_concentration(self, dt): conc_old = self._concentration.copy() # Map concentration from nodes to links (following soil flux direction) - # Does this overwrite fixed-value/gradient links? self._conc_at_links = map_value_at_max_node_to_link( self._grid, "topographic__elevation", "sediment_property__concentration" ) @@ -377,11 +386,19 @@ def calc_concentration(self, dt): self._concentration[~is_soil] = 0.0 - # Update old soil depth to new value - self._soil__depth_old = self._soil__depth.copy() + def start_tracking(self): + """Stores values necessary for calculating changes in concentration. + This method must be called prior to running the sediment flux component + that changes physical properties of bedrock, soil, and/or topography. + """ - def run_one_step(self, dt): - """Run for a time step. + self._copy_old_soil_depth() + + def stop_tracking(self, dt): + """Calculate changes in concentration that have occurred in the timestep + since tracking was started. This method must be called after running the + sediment flux component that changes physical properties of bedrock, + soil, and/or topography. Parameters ---------- @@ -389,4 +406,8 @@ def run_one_step(self, dt): The imposed timestep. """ - self.calc_concentration(dt) + self._calc_concentration(dt) + + def run_one_step(self): + """run_one_step is not implemented for this component.""" + raise NotImplementedError("run_one_step") diff --git a/landlab/components/depression_finder/__init__.py b/src/landlab/components/depression_finder/__init__.py similarity index 100% rename from landlab/components/depression_finder/__init__.py rename to src/landlab/components/depression_finder/__init__.py diff --git a/landlab/components/depression_finder/cfuncs.pyx b/src/landlab/components/depression_finder/cfuncs.pyx similarity index 100% rename from landlab/components/depression_finder/cfuncs.pyx rename to src/landlab/components/depression_finder/cfuncs.pyx diff --git a/landlab/components/depression_finder/floodstatus.py b/src/landlab/components/depression_finder/floodstatus.py similarity index 100% rename from landlab/components/depression_finder/floodstatus.py rename to src/landlab/components/depression_finder/floodstatus.py diff --git a/landlab/components/depression_finder/lake_mapper.py b/src/landlab/components/depression_finder/lake_mapper.py similarity index 99% rename from landlab/components/depression_finder/lake_mapper.py rename to src/landlab/components/depression_finder/lake_mapper.py index 56ca1c4c82..3b53d2ba33 100644 --- a/landlab/components/depression_finder/lake_mapper.py +++ b/src/landlab/components/depression_finder/lake_mapper.py @@ -760,7 +760,7 @@ def find_depression_from_pit(self, pit_node, reroute_flow=True): max_count = self._grid.number_of_nodes + 1 # Place pit_node at top of depression list - nodes_this_depression = self.grid.zeros("node", dtype=int) + nodes_this_depression = self.grid.zeros(at="node", dtype=int) nodes_this_depression[0] = pit_node pit_count = 1 diff --git a/landlab/components/depth_dependent_diffusion/__init__.py b/src/landlab/components/depth_dependent_diffusion/__init__.py similarity index 100% rename from landlab/components/depth_dependent_diffusion/__init__.py rename to src/landlab/components/depth_dependent_diffusion/__init__.py diff --git a/landlab/components/depth_dependent_diffusion/hillslope_depth_dependent_linear_flux.py b/src/landlab/components/depth_dependent_diffusion/hillslope_depth_dependent_linear_flux.py similarity index 100% rename from landlab/components/depth_dependent_diffusion/hillslope_depth_dependent_linear_flux.py rename to src/landlab/components/depth_dependent_diffusion/hillslope_depth_dependent_linear_flux.py diff --git a/landlab/components/depth_dependent_taylor_soil_creep/__init__.py b/src/landlab/components/depth_dependent_taylor_soil_creep/__init__.py similarity index 100% rename from landlab/components/depth_dependent_taylor_soil_creep/__init__.py rename to src/landlab/components/depth_dependent_taylor_soil_creep/__init__.py diff --git a/landlab/components/depth_dependent_taylor_soil_creep/hillslope_depth_dependent_taylor_flux.py b/src/landlab/components/depth_dependent_taylor_soil_creep/hillslope_depth_dependent_taylor_flux.py similarity index 95% rename from landlab/components/depth_dependent_taylor_soil_creep/hillslope_depth_dependent_taylor_flux.py rename to src/landlab/components/depth_dependent_taylor_soil_creep/hillslope_depth_dependent_taylor_flux.py index f7d228b8c0..aa07281377 100644 --- a/landlab/components/depth_dependent_taylor_soil_creep/hillslope_depth_dependent_taylor_flux.py +++ b/src/landlab/components/depth_dependent_taylor_soil_creep/hillslope_depth_dependent_taylor_flux.py @@ -48,9 +48,9 @@ class DepthDependentTaylorDiffuser(Component): >>> from landlab.components import ExponentialWeatherer >>> from landlab.components import DepthDependentTaylorDiffuser >>> mg = RasterModelGrid((5, 5)) - >>> soilTh = mg.add_zeros("node", "soil__depth") - >>> z = mg.add_zeros("node", "topographic__elevation") - >>> BRz = mg.add_zeros("node", "bedrock__elevation") + >>> soilTh = mg.add_zeros("soil__depth", at="node") + >>> z = mg.add_zeros("topographic__elevation", at="node") + >>> BRz = mg.add_zeros("bedrock__elevation", at="node") >>> expweath = ExponentialWeatherer(mg) >>> DDdiff = DepthDependentTaylorDiffuser(mg) >>> expweath.calc_soil_prod_rate() @@ -67,9 +67,9 @@ class DepthDependentTaylorDiffuser(Component): Now a more complicated example with a slope. >>> mg = RasterModelGrid((3, 5)) - >>> soilTh = mg.add_zeros("node", "soil__depth") - >>> z = mg.add_zeros("node", "topographic__elevation") - >>> BRz = mg.add_zeros("node", "bedrock__elevation") + >>> soilTh = mg.add_zeros("soil__depth", at="node") + >>> z = mg.add_zeros("topographic__elevation", at="node") + >>> BRz = mg.add_zeros("bedrock__elevation", at="node") >>> z += mg.node_x.copy() >>> BRz += mg.node_x / 2.0 >>> soilTh[:] = z - BRz @@ -142,9 +142,9 @@ class DepthDependentTaylorDiffuser(Component): Next, lets do an example with dynamic timestepping. >>> mg = RasterModelGrid((3, 5)) - >>> soilTh = mg.add_zeros("node", "soil__depth") - >>> z = mg.add_zeros("node", "topographic__elevation") - >>> BRz = mg.add_zeros("node", "bedrock__elevation") + >>> soilTh = mg.add_zeros("soil__depth", at="node") + >>> z = mg.add_zeros("topographic__elevation", at="node") + >>> BRz = mg.add_zeros("bedrock__elevation", at="node") We'll use a steep slope and very little soil. @@ -171,9 +171,9 @@ class DepthDependentTaylorDiffuser(Component): Now, we'll re-build the grid and do the same example with dynamic timesteps. >>> mg = RasterModelGrid((3, 5)) - >>> soilTh = mg.add_zeros("node", "soil__depth") - >>> z = mg.add_zeros("node", "topographic__elevation") - >>> BRz = mg.add_zeros("node", "bedrock__elevation") + >>> soilTh = mg.add_zeros("soil__depth", at="node") + >>> z = mg.add_zeros("topographic__elevation", at="node") + >>> BRz = mg.add_zeros("bedrock__elevation", at="node") >>> z += mg.node_x.copy() ** 2 >>> BRz = z.copy() - 1.0 >>> soilTh[:] = z - BRz @@ -187,9 +187,9 @@ class DepthDependentTaylorDiffuser(Component): Now, we'll test that changing the transport decay depth behaves as expected. >>> mg = RasterModelGrid((3, 5)) - >>> soilTh = mg.add_zeros("node", "soil__depth") - >>> z = mg.add_zeros("node", "topographic__elevation") - >>> BRz = mg.add_zeros("node", "bedrock__elevation") + >>> soilTh = mg.add_zeros("soil__depth", at="node") + >>> z = mg.add_zeros("topographic__elevation", at="node") + >>> BRz = mg.add_zeros("bedrock__elevation", at="node") >>> z += mg.node_x.copy() ** 0.5 >>> BRz = z.copy() - 1.0 >>> soilTh[:] = z - BRz diff --git a/landlab/components/detachment_ltd_erosion/__init__.py b/src/landlab/components/detachment_ltd_erosion/__init__.py similarity index 100% rename from landlab/components/detachment_ltd_erosion/__init__.py rename to src/landlab/components/detachment_ltd_erosion/__init__.py diff --git a/landlab/components/detachment_ltd_erosion/generate_detachment_ltd_erosion.py b/src/landlab/components/detachment_ltd_erosion/generate_detachment_ltd_erosion.py similarity index 100% rename from landlab/components/detachment_ltd_erosion/generate_detachment_ltd_erosion.py rename to src/landlab/components/detachment_ltd_erosion/generate_detachment_ltd_erosion.py diff --git a/landlab/components/detachment_ltd_erosion/generate_erosion_by_depth_slope.py b/src/landlab/components/detachment_ltd_erosion/generate_erosion_by_depth_slope.py similarity index 100% rename from landlab/components/detachment_ltd_erosion/generate_erosion_by_depth_slope.py rename to src/landlab/components/detachment_ltd_erosion/generate_erosion_by_depth_slope.py diff --git a/landlab/components/diffusion/__init__.py b/src/landlab/components/diffusion/__init__.py similarity index 100% rename from landlab/components/diffusion/__init__.py rename to src/landlab/components/diffusion/__init__.py diff --git a/landlab/components/diffusion/diffusion.py b/src/landlab/components/diffusion/diffusion.py similarity index 100% rename from landlab/components/diffusion/diffusion.py rename to src/landlab/components/diffusion/diffusion.py diff --git a/landlab/components/dimensionless_discharge/__init__.py b/src/landlab/components/dimensionless_discharge/__init__.py similarity index 100% rename from landlab/components/dimensionless_discharge/__init__.py rename to src/landlab/components/dimensionless_discharge/__init__.py diff --git a/landlab/components/dimensionless_discharge/dimensionless_discharge.py b/src/landlab/components/dimensionless_discharge/dimensionless_discharge.py similarity index 100% rename from landlab/components/dimensionless_discharge/dimensionless_discharge.py rename to src/landlab/components/dimensionless_discharge/dimensionless_discharge.py diff --git a/landlab/components/discharge_diffuser/__init__.py b/src/landlab/components/discharge_diffuser/__init__.py similarity index 100% rename from landlab/components/discharge_diffuser/__init__.py rename to src/landlab/components/discharge_diffuser/__init__.py diff --git a/landlab/components/discharge_diffuser/diffuse_by_discharge.py b/src/landlab/components/discharge_diffuser/diffuse_by_discharge.py similarity index 98% rename from landlab/components/discharge_diffuser/diffuse_by_discharge.py rename to src/landlab/components/discharge_diffuser/diffuse_by_discharge.py index 624aa8e99a..3dda5b93df 100644 --- a/landlab/components/discharge_diffuser/diffuse_by_discharge.py +++ b/src/landlab/components/discharge_diffuser/diffuse_by_discharge.py @@ -134,10 +134,10 @@ def __init__(self, grid, slope=0.25, flat_thresh=1.0e-4): ni = grid.number_of_node_rows nj = grid.number_of_node_columns - self._K = grid.zeros("node", dtype=float) - self._Knew = grid.zeros("node", dtype=float) - self._prevK = grid.zeros("node", dtype=float) - self._znew = grid.zeros("node", dtype=float) + self._K = grid.zeros(at="node", dtype=float) + self._Knew = grid.zeros(at="node", dtype=float) + self._prevK = grid.zeros(at="node", dtype=float) + self._znew = grid.zeros(at="node", dtype=float) # discharge across north, south, west, and east face of control volume self._Qn = np.zeros((ni, nj), dtype="float") self._Qs = np.zeros((ni, nj), dtype="float") diff --git a/landlab/components/drainage_density/__init__.py b/src/landlab/components/drainage_density/__init__.py similarity index 100% rename from landlab/components/drainage_density/__init__.py rename to src/landlab/components/drainage_density/__init__.py diff --git a/landlab/components/drainage_density/cfuncs.pyx b/src/landlab/components/drainage_density/cfuncs.pyx similarity index 100% rename from landlab/components/drainage_density/cfuncs.pyx rename to src/landlab/components/drainage_density/cfuncs.pyx diff --git a/landlab/components/drainage_density/drainage_density.py b/src/landlab/components/drainage_density/drainage_density.py similarity index 100% rename from landlab/components/drainage_density/drainage_density.py rename to src/landlab/components/drainage_density/drainage_density.py diff --git a/src/landlab/components/erosion_deposition/__init__.py b/src/landlab/components/erosion_deposition/__init__.py new file mode 100644 index 0000000000..bb059f56ed --- /dev/null +++ b/src/landlab/components/erosion_deposition/__init__.py @@ -0,0 +1,7 @@ +from .erosion_deposition import ErosionDeposition +from .shared_stream_power import SharedStreamPower + +__all__ = [ + "ErosionDeposition", + "SharedStreamPower", +] diff --git a/landlab/components/erosion_deposition/cfuncs.pyx b/src/landlab/components/erosion_deposition/cfuncs.pyx similarity index 59% rename from landlab/components/erosion_deposition/cfuncs.pyx rename to src/landlab/components/erosion_deposition/cfuncs.pyx index d151b22c96..214ebee593 100644 --- a/landlab/components/erosion_deposition/cfuncs.pyx +++ b/src/landlab/components/erosion_deposition/cfuncs.pyx @@ -10,29 +10,29 @@ cdef extern from "math.h": double exp(double x) nogil -def calculate_qs_in( - id_t [:] stack_flip_ud, - id_t [:] flow_receivers, +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef void calculate_qs_in( + const id_t [:] stack_flip_ud, + const id_t [:] flow_receivers, const cython.floating [:] cell_area_at_node, - cython.floating [:] q, + const cython.floating [:] q, cython.floating [:] qs, cython.floating [:] qs_in, - cython.floating [:] Es, - double v_s, - double F_f, -): - + const cython.floating [:] Es, + const cython.floating [:] v_s, + const double F_f, +) noexcept nogil: """Calculate and qs and qs_in.""" - # define internal variables - cdef unsigned int n_nodes = stack_flip_ud.shape[0] - cdef unsigned int node_id + cdef unsigned int n_nodes = len(stack_flip_ud) + cdef unsigned int node cdef unsigned int i # iterate top to bottom through the stack, calculate qs and adjust qs_in for i in range(n_nodes): # choose the node id - node_id = stack_flip_ud[i] + node = stack_flip_ud[i] # If q at current node is greather than zero, calculate qs based on a # local analytical solution. This local analytical solution depends on @@ -44,16 +44,19 @@ def calculate_qs_in( # # there is water flux (q) and this node is not a pit then calculate qs. - if q[node_id] > 0 and (flow_receivers[node_id] != node_id): - qs[node_id] = ((qs_in[node_id] - + ((1.0 - F_f) * Es[node_id]) * cell_area_at_node[node_id]) - / (1.0 + (v_s * cell_area_at_node[node_id] / (q[node_id])))) + if q[node] > 0 and flow_receivers[node] != node: + qs[node] = ( + ( + qs_in[node] + + (1.0 - F_f) * Es[node] * cell_area_at_node[node] + ) / (1.0 + v_s[node] * cell_area_at_node[node] / q[node]) + ) # finally, add this node's qs to recieiving nodes qs_in. - # if qs[node_id] == 0, then there is no need for this line to be + # if qs[node] == 0, then there is no need for this line to be # evaluated. - qs_in[flow_receivers[node_id]] += qs[node_id] + qs_in[flow_receivers[node]] += qs[node] else: # if q at the current node is zero, set qs at that node is zero. - qs[node_id] = 0 + qs[node] = 0 diff --git a/landlab/components/erosion_deposition/erosion_deposition.py b/src/landlab/components/erosion_deposition/erosion_deposition.py similarity index 61% rename from landlab/components/erosion_deposition/erosion_deposition.py rename to src/landlab/components/erosion_deposition/erosion_deposition.py index 3127755cbf..614e32b325 100644 --- a/landlab/components/erosion_deposition/erosion_deposition.py +++ b/src/landlab/components/erosion_deposition/erosion_deposition.py @@ -1,21 +1,20 @@ import numpy as np +from landlab.components.erosion_deposition.cfuncs import calculate_qs_in from landlab.components.erosion_deposition.generalized_erosion_deposition import ( DEFAULT_MINIMUM_TIME_STEP, ) from landlab.components.erosion_deposition.generalized_erosion_deposition import ( _GeneralizedErosionDeposition, ) -from landlab.utils.return_array import return_array_at_node - -from .cfuncs import calculate_qs_in ROOT2 = np.sqrt(2.0) # syntactic sugar for precalculated square root of 2 TIME_STEP_FACTOR = 0.5 # factor used in simple subdivision solver class ErosionDeposition(_GeneralizedErosionDeposition): - r""" + """Erosion-Deposition model in the style of Davy and Lague (2009). + Erosion-Deposition model in the style of Davy and Lague (2009). It uses a mass balance approach across the total sediment mass both in the bed and in transport coupled with explicit representation of the sediment @@ -25,33 +24,29 @@ class ErosionDeposition(_GeneralizedErosionDeposition): This implementation is close to the Davy & Lague scheme, with a few deviations: - - A fraction of the eroded sediment is permitted to enter the wash load, - and lost to the mass balance (`F_f`). - - - Here an incision threshold :math:`\omega` is permitted, where it was not by Davy & - Lague. It is implemented with an exponentially smoothed form to prevent - discontinuities in the parameter space. See the - :py:class:`~landlab.components.StreamPowerSmoothThresholdEroder` - for more documentation. + * A fraction of the eroded sediment is permitted to enter the wash load, + and lost to the mass balance (``F_f``). + * Here an incision threshold ``omega`` is permitted, where it was not by Davy & + Lague. It is implemented with an exponentially smoothed form to prevent + discontinuities in the parameter space. See the + :py:class:`~landlab.components.StreamPowerSmoothThresholdEroder` + for more documentation. + * This component uses an "effective" settling velocity, ``v_s``, as one of its + inputs. This parameter is simply equal to Davy & Lague's ``d_star * V`` + dimensionless number. - - This component uses an "effective" settling velocity, v_s, as one of its - inputs. This parameter is simply equal to Davy & Lague's `d_star * V` - dimensionless number. + Erosion of the bed follows a stream power formulation, i.e.:: - Erosion of the bed follows a stream power formulation, i.e., - - .. math: - - E = K * q ** m_{sp} * S ** {n_sp} - \omega + E = K * q**m_sp * S**n_sp - omega Note that the transition between transport-limited and detachment-limited - behavior is controlled by the dimensionless ratio (v_s/r) where r is the - runoff ratio (Q=Ar). r can be changed in the flow accumulation component - but is not changed within ErosionDeposition. Because the runoff ratio r - is not changed within the ErosionDeposition component, v_s becomes the - parameter that fundamentally controls response style. Very small v_s will - lead to a detachment-limited response style, very large v_s will lead to a - transport-limited response style. v_s == 1 means equal contributions from + behavior is controlled by the dimensionless ratio (``v_s / r``) where ``r`` is the + runoff ratio (``Q=Ar``). ``r`` can be changed in the flow accumulation component + but is not changed within ErosionDeposition. Because the runoff ratio ``r`` + is not changed within the ErosionDeposition component, ``v_s`` becomes the + parameter that fundamentally controls response style. Very small ``v_s`` will + lead to a detachment-limited response style, very large ``v_s`` will lead to a + transport-limited response style. ``v_s == 1`` means equal contributions from transport and erosion, and a hybrid response as described by Davy & Lague. Unlike other some other fluvial erosion componets in Landlab, in this @@ -59,17 +54,11 @@ class ErosionDeposition(_GeneralizedErosionDeposition): in depressions or in areas with adverse slopes. There is no ability to pass a keyword argument ``erode_flooded_nodes``. - If a depressions are handled (as indicated by the presence of the field - "flood_status_code" at nodes), then deposition occurs throughout the + If depressions are handled (as indicated by the presence of the field + ``"flood_status_code"`` at nodes), then deposition occurs throughout the depression and sediment is passed out of the depression. Where pits are encountered, then all sediment is deposited at that node only. - A note about sediment porosity: Prior to Landlab v2.0 this component took a - porositiy keyworkd argument ``phi``. For an explaination of why it no - longer does (including a mathematical derivation), see - `Pull Request 1186 `_. - If ``phi`` is passed to this component a value error will be raised. - Component written by C. Shobe, K. Barnhart, and G. Tucker. References @@ -87,6 +76,93 @@ class ErosionDeposition(_GeneralizedErosionDeposition): evolution models revisited Journal of Geophysical Research 114(F3), F03007. https://dx.doi.org/10.1029/2008jf001146 + Examples + --------- + >>> import numpy as np + >>> from landlab import RasterModelGrid + >>> from landlab.components import FlowAccumulator + >>> from landlab.components import DepressionFinderAndRouter + >>> from landlab.components import ErosionDeposition + >>> from landlab.components import FastscapeEroder + >>> np.random.seed(seed=5000) + + Define grid and initial topography: + + * 5x5 grid with baselevel in the lower left corner + * All other boundary nodes closed + * Initial topography is plane tilted up to the upper right + noise + + >>> nr = 5 + >>> nc = 5 + >>> dx = 10 + >>> grid = RasterModelGrid((nr, nc), xy_spacing=10.0) + >>> grid.at_node["topographic__elevation"] = ( + ... grid.node_y / 10 + ... + grid.node_x / 10 + ... + np.random.rand(grid.number_of_nodes) / 10 + ... ) + >>> grid.set_closed_boundaries_at_grid_edges( + ... bottom_is_closed=True, + ... left_is_closed=True, + ... right_is_closed=True, + ... top_is_closed=True, + ... ) + >>> grid.set_watershed_boundary_condition_outlet_id( + ... 0, grid.at_node["topographic__elevation"], -9999.0 + ... ) + >>> fsc_dt = 100.0 + >>> ed_dt = 1.0 + + Check initial topography + + >>> grid.at_node["topographic__elevation"].reshape(grid.shape) + array([[0.02290479, 1.03606698, 2.0727653 , 3.01126678, 4.06077707], + [1.08157495, 2.09812694, 3.00637448, 4.07999597, 5.00969486], + [2.04008677, 3.06621577, 4.09655859, 5.04809001, 6.02641123], + [3.05874171, 4.00585786, 5.0595697 , 6.04425233, 7.05334077], + [4.05922478, 5.0409473 , 6.07035008, 7.0038935 , 8.01034357]]) + + Instantiate Fastscape eroder, flow router, and depression finder + + >>> fr = FlowAccumulator(grid, flow_director="D8") + >>> df = DepressionFinderAndRouter(grid) + >>> fsc = FastscapeEroder(grid, K_sp=0.001, m_sp=0.5, n_sp=1) + + Burn in an initial drainage network using the Fastscape eroder: + + >>> for _ in range(100): + ... fr.run_one_step() + ... df.map_depressions() + ... flooded = np.where(df.flood_status == 3)[0] + ... fsc.run_one_step(dt=fsc_dt) + ... grid.at_node["topographic__elevation"][0] -= 0.001 # uplift + ... + + Instantiate the E/D component: + + >>> ed = ErosionDeposition( + ... grid, K=0.00001, v_s=0.001, m_sp=0.5, n_sp=1.0, sp_crit=0 + ... ) + + Now run the E/D component for 2000 short timesteps: + + >>> for _ in range(2000): # E/D component loop + ... fr.run_one_step() + ... df.map_depressions() + ... ed.run_one_step(dt=ed_dt) + ... grid.at_node["topographic__elevation"][0] -= 2e-4 * ed_dt + ... + + Now we test to see if topography is right: + + >>> np.around(grid.at_node["topographic__elevation"], decimals=3).reshape( + ... grid.shape + ... ) + array([[-0.477, 1.036, 2.073, 3.011, 4.061], + [ 1.082, -0.08 , -0.065, -0.054, 5.01 ], + [ 2.04 , -0.065, -0.065, -0.053, 6.026], + [ 3.059, -0.054, -0.053, -0.035, 7.053], + [ 4.059, 5.041, 6.07 , 7.004, 8.01 ]]) """ _name = "ErosionDeposition" @@ -187,7 +263,6 @@ def __init__( discharge_field="surface_water__discharge", solver="basic", dt_min=DEFAULT_MINIMUM_TIME_STEP, - **kwds, ): """Initialize the ErosionDeposition model. @@ -195,139 +270,37 @@ def __init__( ---------- grid : ModelGrid Landlab ModelGrid object - K : float, field name, or array + K : str or array_like, optional Erodibility for substrate (units vary). - v_s : float + v_s : str or array_like, optional Effective settling velocity for chosen grain size metric [L/T]. - m_sp : float + m_sp : float, optional Discharge exponent (units vary) - n_sp : float + n_sp : float, optional Slope exponent (units vary) - sp_crit : float, field name, or array + sp_crit : str or array_like, optional Critical stream power to erode substrate [E/(TL^2)] - F_f : float + F_f : float, optional Fraction of eroded material that turns into "fines" that do not contribute to (coarse) sediment load. Defaults to zero. - discharge_field : float, field name, or array + discharge_field : str or array_like, optional Discharge [L^2/T]. The default is to use the grid field 'surface_water__discharge', which is simply drainage area multiplied by the default rainfall rate (1 m/yr). To use custom spatially/temporally varying rainfall, use 'water__unit_flux_in' to specify water input to the FlowAccumulator. - solver : string + solver : {"basic", "adaptive"}, optional Solver to use. Options at present include: - (1) 'basic' (default): explicit forward-time extrapolation. - Simple but will become unstable if time step is too large. - (2) 'adaptive': adaptive time-step solver that estimates a - stable step size based on the shortest time to "flattening" - among all upstream-downstream node pairs. - - Examples - --------- - >>> import numpy as np - >>> from landlab import RasterModelGrid - >>> from landlab.components import FlowAccumulator - >>> from landlab.components import DepressionFinderAndRouter - >>> from landlab.components import ErosionDeposition - >>> from landlab.components import FastscapeEroder - >>> np.random.seed(seed=5000) - - Define grid and initial topography: - -5x5 grid with baselevel in the lower left corner - -all other boundary nodes closed - -Initial topography is plane tilted up to the upper right + noise - - >>> nr = 5 - >>> nc = 5 - >>> dx = 10 - >>> mg = RasterModelGrid((nr, nc), xy_spacing=10.0) - >>> _ = mg.add_zeros("node", "topographic__elevation") - >>> mg.at_node["topographic__elevation"] += ( - ... mg.node_y / 10 + mg.node_x / 10 + np.random.rand(len(mg.node_y)) / 10 - ... ) - >>> mg.set_closed_boundaries_at_grid_edges( - ... bottom_is_closed=True, - ... left_is_closed=True, - ... right_is_closed=True, - ... top_is_closed=True, - ... ) - >>> mg.set_watershed_boundary_condition_outlet_id( - ... 0, mg.at_node["topographic__elevation"], -9999.0 - ... ) - >>> fsc_dt = 100.0 - >>> ed_dt = 1.0 - - Check initial topography - - >>> mg.at_node["topographic__elevation"].reshape(mg.shape) - array([[0.02290479, 1.03606698, 2.0727653 , 3.01126678, 4.06077707], - [1.08157495, 2.09812694, 3.00637448, 4.07999597, 5.00969486], - [2.04008677, 3.06621577, 4.09655859, 5.04809001, 6.02641123], - [3.05874171, 4.00585786, 5.0595697 , 6.04425233, 7.05334077], - [4.05922478, 5.0409473 , 6.07035008, 7.0038935 , 8.01034357]]) - - Instantiate Fastscape eroder, flow router, and depression finder - - >>> fr = FlowAccumulator(mg, flow_director="D8") - >>> df = DepressionFinderAndRouter(mg) - >>> fsc = FastscapeEroder(mg, K_sp=0.001, m_sp=0.5, n_sp=1) - - Burn in an initial drainage network using the Fastscape eroder: - - >>> for x in range(100): - ... fr.run_one_step() - ... df.map_depressions() - ... flooded = np.where(df.flood_status == 3)[0] - ... fsc.run_one_step(dt=fsc_dt) - ... mg.at_node["topographic__elevation"][0] -= 0.001 # uplift - ... - - Instantiate the E/D component: - - >>> ed = ErosionDeposition( - ... mg, K=0.00001, v_s=0.001, m_sp=0.5, n_sp=1.0, sp_crit=0 - ... ) - - Now run the E/D component for 2000 short timesteps: - - >>> for x in range(2000): # E/D component loop - ... fr.run_one_step() - ... df.map_depressions() - ... ed.run_one_step(dt=ed_dt) - ... mg.at_node["topographic__elevation"][0] -= 2e-4 * ed_dt - ... - - Now we test to see if topography is right: - - >>> np.around(mg.at_node["topographic__elevation"], decimals=3).reshape( - ... mg.shape - ... ) - array([[-0.477, 1.036, 2.073, 3.011, 4.061], - [ 1.082, -0.08 , -0.065, -0.054, 5.01 ], - [ 2.04 , -0.065, -0.065, -0.053, 6.026], - [ 3.059, -0.054, -0.053, -0.035, 7.053], - [ 4.059, 5.041, 6.07 , 7.004, 8.01 ]]) + + 1. "basic" (default): explicit forward-time extrapolation. + Simple but will become unstable if time step is too large. + 2. "adaptive": adaptive time-step solver that estimates a + stable step size based on the shortest time to "flattening" + among all upstream-downstream node pairs. """ - if grid.at_node["flow__receiver_node"].size != grid.size("node"): - raise NotImplementedError( - "A route-to-multiple flow director has been " - "run on this grid. The landlab development team has not " - "verified that ErosionDeposition is compatible with " - "route-to-multiple methods. Please open a GitHub Issue " - "to start this process." - ) + if solver not in {"basic", "adaptive"}: + raise ValueError(f"unknown solver ({solver} not one of 'basic', 'adaptive'") - if "phi" in kwds: - raise ValueError( - "As of Landlab v2 ErosionDeposition no longer takes the keyword " - "argument phi. The sediment flux is considered to represent bulk " - "deposit volume rather than mineral volume, and therefore porosity " - "does not impact the dynamics. The following pull request explains " - "the math behind this: https://github.com/landlab/landlab/pull/1186." - ) - elif len(kwds) > 0: - kwdstr = " ".join(list(kwds.keys())) - raise ValueError(f"Extra kwds passed to ErosionDeposition:{kwdstr}") super().__init__( grid, m_sp=m_sp, @@ -338,12 +311,21 @@ def __init__( discharge_field=discharge_field, ) + if grid.at_node["flow__receiver_node"].size != grid.size("node"): + raise NotImplementedError( + "A route-to-multiple flow director has been" + " run on this grid. The landlab development team has not" + " verified that ErosionDeposition is compatible with" + " route-to-multiple methods. Please open a GitHub Issue" + " to start this process." + ) + # E/D specific inits. # K's and critical values can be floats, grid fields, or arrays # use setter for K defined below - self.K = K - self._sp_crit = return_array_at_node(grid, sp_crit) + self._K = K + self._sp_crit = sp_crit # Handle option for solver if solver == "basic": @@ -351,28 +333,31 @@ def __init__( elif solver == "adaptive": self.run_one_step = self.run_with_adaptive_time_step_solver self._time_to_flat = np.zeros(grid.number_of_nodes) - else: - raise ValueError( - "Parameter 'solver' must be one of: " + "'basic', 'adaptive'" - ) @property def K(self): - """Erodibility (units depend on m_sp).""" - return self._K + """Erodibility of substrate (units depend on m_sp).""" + if isinstance(self._K, str): + return self.grid.at_node[self._K] + else: + return self._K - @K.setter - def K(self, new_val): - self._K = return_array_at_node(self._grid, new_val) + @property + def sp_crit(self): + """Critical stream power to erode substrate [E/(TL^2)]""" + if isinstance(self._sp_crit, str): + return self.grid.at_node[self._sp_crit] + else: + return self._sp_crit def _calc_erosion_rates(self): """Calculate erosion rates.""" - omega = self._K * self._Q_to_the_m * np.power(self._slope, self._n_sp) + omega = self.K * self._Q_to_the_m * np.power(self._slope, self._n_sp) omega_over_sp_crit = np.divide( - omega, self._sp_crit, out=np.zeros_like(omega), where=self._sp_crit != 0 + omega, self.sp_crit, out=np.zeros_like(omega), where=self.sp_crit != 0 ) - self._erosion_term = omega - self._sp_crit * (1.0 - np.exp(-omega_over_sp_crit)) + self._erosion_term = omega - self.sp_crit * (1.0 - np.exp(-omega_over_sp_crit)) def _calc_qs_in_and_depo_rate(self): self._calc_hydrology() @@ -384,6 +369,8 @@ def _calc_qs_in_and_depo_rate(self): self.sediment_influx[:] = 0.0 self._depo_rate[:] = 0.0 + v_s = np.broadcast_to(self.v_s, self._q.shape) + # iterate top to bottom through the stack, calculate qs # cythonized version of calculating qs_in calculate_qs_in( @@ -394,12 +381,14 @@ def _calc_qs_in_and_depo_rate(self): self._qs, self.sediment_influx, self._erosion_term, - self._v_s, + v_s, self._F_f, ) - self._depo_rate[self._q > 0] = self._qs[self._q > 0] * ( - self._v_s / self._q[self._q > 0] + positive_q = self._q > 0.0 + + self._depo_rate[positive_q] = self._qs[positive_q] * ( + v_s[positive_q] / self._q[positive_q] ) if not self._depressions_are_handled(): # all sed dropped here self._depo_rate[is_flooded_core_node] = ( @@ -424,9 +413,7 @@ def run_one_step_basic(self, dt=1.0): self._topographic__elevation[cores] += dzdt[cores] * dt def run_with_adaptive_time_step_solver(self, dt=1.0): - """CHILD-like solver that adjusts time steps to prevent slope - flattening. - + """CHILD-like solver that adjusts time steps to prevent slope flattening. Parameters ---------- diff --git a/landlab/components/erosion_deposition/generalized_erosion_deposition.py b/src/landlab/components/erosion_deposition/generalized_erosion_deposition.py similarity index 91% rename from landlab/components/erosion_deposition/generalized_erosion_deposition.py rename to src/landlab/components/erosion_deposition/generalized_erosion_deposition.py index b1646551bb..1fcdef54bd 100644 --- a/landlab/components/erosion_deposition/generalized_erosion_deposition.py +++ b/src/landlab/components/erosion_deposition/generalized_erosion_deposition.py @@ -109,7 +109,7 @@ def __init__( F_f : float Fraction of eroded material that turns into "fines" that do not contribute to (coarse) sediment load. Defaults to zero. - v_s : float + v_s : array_like of float Effective settling velocity for chosen grain size metric [L/T]. discharge_field : float, field name, or array Discharge [L^2/T]. @@ -118,6 +118,9 @@ def __init__( adaptive solver will use when subdividing unstable timesteps. Default values is 0.001. [T]. """ + if F_f > 1.0 or F_f < 0.0: + raise ValueError(f"fraction of fines must be between 0.0 and 1.0 ({F_f})") + super().__init__(grid) self._flow_receivers = grid.at_node["flow__receiver_node"] @@ -147,21 +150,33 @@ def __init__( # store other constants self._m_sp = float(m_sp) self._n_sp = float(n_sp) - self._v_s = float(v_s) + self._v_s = v_s self._dt_min = dt_min self._F_f = float(F_f) - if F_f > 1.0: - raise ValueError("Fraction of fines must be <= 1.0") - - if F_f < 0.0: - raise ValueError("Fraction of fines must be > 0.0") + @property + def v_s(self): + """Effective settling velocity for chosen grain size metric [L/T].""" + if isinstance(self._v_s, str): + return self.grid.at_node[self._v_s] + else: + return self._v_s @property def sediment_influx(self): """Volumetric sediment influx to each node.""" return self.grid.at_node["sediment__influx"] + @property + def m_sp(self): + """Discharge exponent (units vary).""" + return self._m_sp + + @property + def n_sp(self): + """Slope exponent (units vary).""" + return self._n_sp + def _update_flow_link_slopes(self): """Updates gradient between each core node and its receiver. diff --git a/src/landlab/components/erosion_deposition/shared_stream_power.py b/src/landlab/components/erosion_deposition/shared_stream_power.py new file mode 100644 index 0000000000..c3682f5341 --- /dev/null +++ b/src/landlab/components/erosion_deposition/shared_stream_power.py @@ -0,0 +1,304 @@ +import numpy as np + +from landlab.components.erosion_deposition.erosion_deposition import ErosionDeposition +from landlab.components.erosion_deposition.generalized_erosion_deposition import ( + DEFAULT_MINIMUM_TIME_STEP, +) +from landlab.utils import return_array_at_node + +TIME_STEP_FACTOR = 0.5 + + +class SharedStreamPower(ErosionDeposition): + """Shared Stream Power Model in the style of Hergarten (2021). + + Implements the Shared Stream Power Model in the style of Hergarten (2021). + Designed to simultaneously model + river incision and sediment transport in order to seamlessly + transition between detachment limited to transport limited erosion. + Mathematically equivalent to the linear decline model from Davy and Lague (2009), + which is used by the base class, ErosionDeposition. In addition, this component is + designed to work with varying runoff rates, and can update the discharge + and other parameters effected by discharge with each timestep. + + Here is the equation for erosion without a threshold:: + + E = k_bedrock * A**m_sp * S**n_sp - k_bedrock / k_transport * Qs / A + + where ``Q`` is water discharge, ``Qs`` is sediment flux, ``S`` is slope, ``m_sp`` + and ``n_sp`` are scaling exponents, coefficient ``k_bedrock`` is the erodibility of + the bedrock and coefficient ``k_transport`` is the ability to transport sediment. + + The first term, ``k_bedrock * A**m_sp * S**n_sp``, is the incision term, and the + second term, ``k_bedrock / k_transport * Qs / A``, is the transport term. Note that + ``k_bedrock / k_transport`` determines the relative amount of incision and + sediment transport. ``k_bedrock`` modifies the incision term. + + The equivalent equation used by ErosionDeposition from Davy & Lague (2009) is:: + + E = K * q**m_sp * S**n_sp - v_s * Qs / q + + where ``K`` is sediment erodibility, ``v_s`` is the settling velocity for sediment, + and ``q`` is the water discharge. + + To translate the shared stream power input for ErosionDeposition, we use the + equations:: + + q = Ar + K = k_bedrock / r**m_sp + v_s = k_bedrock / k_transport + + It is important to note that the second two equations were derived only + for calibrating the model, and do not necessarily correlate to landscape evolution + in nature. + + To write the final equation we define the incision term as omega:: + + omega = k_bedrock * A**m_sp * S**n_sp + + and incorporate ``sp_crit``, the critical stream power needed to erode bedrock, + giving:: + + E = omega * (1 - exp(omega / sp_crit) ) - k_bedrock / k_transport * Qs / A + + + Written by A. Thompson. + + References + ---------- + **Required Software Citation(s) Specific to this Component** + + Hergarten, S. (2021). The influence of sediment transport on stationary + and mobile knickpoints in river profiles. Journal of Geophysical Research: + Earth Surface, 126, e2021JF006218. https://doi.org/10.1029/2021JF006218 + + **Additional References** + + Barnhart, K., Glade, R., Shobe, C., Tucker, G. (2019). Terrainbento 1.0: a + Python package for multi-model analysis in long-term drainage basin + evolution. Geoscientific Model Development 12(4), 1267--1297. + https://dx.doi.org/10.5194/gmd-12-1267-2019 + + Davy, P., Lague, D. (2009). Fluvial erosion/transport equation of landscape + evolution models revisited Journal of Geophysical Research 114(F3), + F03007. https://dx.doi.org/10.1029/2008jf001146 + + Examples + --------- + >>> import numpy as np + >>> from landlab import RasterModelGrid + >>> from landlab.components import FlowAccumulator + >>> from landlab.components import DepressionFinderAndRouter + >>> from landlab.components import ErosionDeposition + >>> from landlab.components import FastscapeEroder + >>> np.random.seed(seed=5000) + + Define grid and initial topography: + + * 5x5 grid with baselevel in the lower left corner + * All other boundary nodes closed + * Initial topography is plane tilted up to the upper right + noise + + >>> grid = RasterModelGrid((5, 5), xy_spacing=10.0) + >>> grid.at_node["topographic__elevation"] = ( + ... grid.y_of_node / 10 + ... + grid.x_of_node / 10 + ... + np.random.rand(grid.number_of_nodes) / 10 + ... ) + >>> grid.set_closed_boundaries_at_grid_edges( + ... bottom_is_closed=True, + ... left_is_closed=True, + ... right_is_closed=True, + ... top_is_closed=True, + ... ) + >>> grid.set_watershed_boundary_condition_outlet_id( + ... 0, grid.at_node["topographic__elevation"], -9999.0 + ... ) + >>> fsc_dt = 100.0 + >>> ed_dt = 1.0 + + Check initial topography + + >>> grid.at_node["topographic__elevation"].reshape(grid.shape) + array([[0.02290479, 1.03606698, 2.0727653 , 3.01126678, 4.06077707], + [1.08157495, 2.09812694, 3.00637448, 4.07999597, 5.00969486], + [2.04008677, 3.06621577, 4.09655859, 5.04809001, 6.02641123], + [3.05874171, 4.00585786, 5.0595697 , 6.04425233, 7.05334077], + [4.05922478, 5.0409473 , 6.07035008, 7.0038935 , 8.01034357]]) + + Instantiate Fastscape eroder, flow router, and depression finder + + >>> fr = FlowAccumulator(grid, flow_director="D8") + >>> df = DepressionFinderAndRouter(grid) + >>> fsc = FastscapeEroder(grid, K_sp=0.001, m_sp=0.5, n_sp=1) + + Burn in an initial drainage network using the Fastscape eroder: + + >>> for _ in range(100): + ... fr.run_one_step() + ... df.map_depressions() + ... flooded = np.where(df.flood_status == 3)[0] + ... fsc.run_one_step(dt=fsc_dt) + ... grid.at_node["topographic__elevation"][0] -= 0.001 # uplift + ... + + Instantiate the SharedStreamPower component: + + >>> ssp = SharedStreamPower( + ... grid, + ... k_bedrock=0.00001, + ... k_transport=0.001, + ... m_sp=0.5, + ... n_sp=1.0, + ... sp_crit=0, + ... ) + + Now run the E/D component for 2000 short timesteps: + + >>> for _ in range(2000): # E/D component loop + ... fr.run_one_step() + ... df.map_depressions() + ... ssp.run_one_step(dt=ed_dt) + ... grid.at_node["topographic__elevation"][0] -= 2e-4 * ed_dt + ... + + Now we test to see if topography is right: + + >>> np.around(grid.at_node["topographic__elevation"], decimals=3).reshape( + ... grid.shape + ... ) + array([[-0.477, 1.036, 2.073, 3.011, 4.061], + [ 1.082, -0.08 , -0.065, -0.054, 5.01 ], + [ 2.04 , -0.065, -0.065, -0.053, 6.026], + [ 3.059, -0.054, -0.053, -0.035, 7.053], + [ 4.059, 5.041, 6.07 , 7.004, 8.01 ]]) + """ + + _name = "SharedStreamPower" + + _unit_agnostic = True + + def __init__( + self, + grid, + k_bedrock=0.001, + k_transport=0.001, + runoff_rate=1.0, + m_sp=0.5, + n_sp=1.0, + sp_crit=0.0, + F_f=0.0, + discharge_field="surface_water__discharge", + solver="basic", + ): + """Initialize the Shared Stream Power model. + + Parameters + ---------- + grid : ModelGrid + Landlab ModelGrid object + k_bedrock : str, or array_like, optional + Erodibility for bedrock (units vary). + k_transport : str, or array_like, optional + Ability to transport sediment (units vary). + runoff_rate : float, optional + Runoff rate. Scales Q = Ar. [m/yr] + m_sp : float, optional + Discharge exponent (units vary). + n_sp : float, optional + Slope exponent (units vary). + sp_crit : str or array_like + Critical stream power to erode substrate [E/(TL^2)] + F_f : float, optional + Fraction of eroded material that turns into "fines" that do not + contribute to (coarse) sediment load. + discharge_field : str or array_like, optional + Discharge [L^2/T]. The default is to use the grid field + ``"surface_water__discharge"``, which is simply drainage area + multiplied by the default rainfall rate (1 m/yr). To use custom + spatially/temporally varying rainfall, use 'water__unit_flux_in' + to specify water input to the FlowAccumulator. + solver : {"basic", "adaptive"}, optional + Solver to use. Options at present include: + + 1. ``"basic"`` (default): explicit forward-time extrapolation. + Simple but will become unstable if time step is too large. + 2. ``"adaptive"``: adaptive time-step solver that estimates a + stable step size based on the shortest time to "flattening" + among all upstream-downstream node pairs. + """ + self._discharge_field = discharge_field + self._runoff_rate = runoff_rate + self._k_bedrock = k_bedrock + self._k_transport = k_transport + + # convert shared stream power inputs to erosion deposition inputs + v_s = self.k_bedrock * self.runoff_rate / self.k_transport + K_s = self.k_bedrock / self.runoff_rate**m_sp + + # instantiate ErosionDeposition + super().__init__( + grid, + K=K_s, + v_s=v_s, + m_sp=m_sp, + n_sp=n_sp, + sp_crit=sp_crit, + F_f=F_f, + discharge_field=discharge_field, + solver=solver, + dt_min=DEFAULT_MINIMUM_TIME_STEP, + ) + + @property + def k_bedrock(self): + """Erodibility for bedrock (units vary).""" + if isinstance(self._k_bedrock, str): + return self.grid.at_node[self._k_bedrock] + else: + return self._k_bedrock + + @property + def k_transport(self): + """Ability to transport sediment (units vary).""" + if isinstance(self._k_transport, str): + return self.grid.at_node[self._k_transport] + else: + return self._k_transport + + @property + def runoff_rate(self): + """Runoff rate. Scales Q = Ar. [m/yr]""" + if isinstance(self._runoff_rate, str): + return self.grid.at_node[self._runoff_rate] + else: + return self._runoff_rate + + def update_runoff(self, new_runoff=1.0): + """Update runoff variables. + + Updates ``runoff_rate``, ``K``, ``v_s``, and ``"water__unit_flux_in"`` for a new + runoff rate. Works only if discharge field is set to ``"water__unit_flux_in"``. + + Parameters + ---------- + new_runoff : str or array_like + New runoff rate. + """ + if self._discharge_field != "water__unit_flux_in": + ValueError( + "The SharedStreamPower's update_runoff method can only be used" + "when discharge field is set to water__unit_flux_in (got" + f" {self._discharge_field})" + ) + + self._runoff_rate = new_runoff + + self._K = self.k_bedrock / self.runoff_rate**self.m_sp + self._v_s = self.k_bedrock * self.runoff_rate / self.k_transport + np.multiply( + self.runoff_rate, + self._grid.at_node["drainage_area"], + out=self._grid.at_node["water__unit_flux_in"], + ) + self._q = return_array_at_node(self._grid, self._discharge_field) diff --git a/landlab/components/fire_generator/__init__.py b/src/landlab/components/fire_generator/__init__.py similarity index 100% rename from landlab/components/fire_generator/__init__.py rename to src/landlab/components/fire_generator/__init__.py diff --git a/landlab/components/fire_generator/generate_fire.py b/src/landlab/components/fire_generator/generate_fire.py similarity index 100% rename from landlab/components/fire_generator/generate_fire.py rename to src/landlab/components/fire_generator/generate_fire.py diff --git a/landlab/components/flexure/__init__.py b/src/landlab/components/flexure/__init__.py similarity index 100% rename from landlab/components/flexure/__init__.py rename to src/landlab/components/flexure/__init__.py diff --git a/landlab/components/flexure/_ext/__init__.py b/src/landlab/components/flexure/_ext/__init__.py similarity index 100% rename from landlab/components/flexure/_ext/__init__.py rename to src/landlab/components/flexure/_ext/__init__.py diff --git a/landlab/components/flexure/_ext/flexure1d.pyx b/src/landlab/components/flexure/_ext/flexure1d.pyx similarity index 100% rename from landlab/components/flexure/_ext/flexure1d.pyx rename to src/landlab/components/flexure/_ext/flexure1d.pyx diff --git a/landlab/components/flexure/_ext/flexure2d.pyx b/src/landlab/components/flexure/_ext/flexure2d.pyx similarity index 100% rename from landlab/components/flexure/_ext/flexure2d.pyx rename to src/landlab/components/flexure/_ext/flexure2d.pyx diff --git a/landlab/components/flexure/_ext/flexure2d_slow.pyx b/src/landlab/components/flexure/_ext/flexure2d_slow.pyx similarity index 100% rename from landlab/components/flexure/_ext/flexure2d_slow.pyx rename to src/landlab/components/flexure/_ext/flexure2d_slow.pyx diff --git a/landlab/components/flexure/flexure.py b/src/landlab/components/flexure/flexure.py similarity index 100% rename from landlab/components/flexure/flexure.py rename to src/landlab/components/flexure/flexure.py diff --git a/landlab/components/flexure/flexure_1d.py b/src/landlab/components/flexure/flexure_1d.py similarity index 100% rename from landlab/components/flexure/flexure_1d.py rename to src/landlab/components/flexure/flexure_1d.py diff --git a/landlab/components/flexure/funcs.py b/src/landlab/components/flexure/funcs.py similarity index 100% rename from landlab/components/flexure/funcs.py rename to src/landlab/components/flexure/funcs.py diff --git a/landlab/components/flow_accum/__init__.py b/src/landlab/components/flow_accum/__init__.py similarity index 100% rename from landlab/components/flow_accum/__init__.py rename to src/landlab/components/flow_accum/__init__.py diff --git a/landlab/components/flow_accum/cfuncs.pyx b/src/landlab/components/flow_accum/cfuncs.pyx similarity index 100% rename from landlab/components/flow_accum/cfuncs.pyx rename to src/landlab/components/flow_accum/cfuncs.pyx diff --git a/landlab/components/flow_accum/flow_accum_bw.py b/src/landlab/components/flow_accum/flow_accum_bw.py similarity index 100% rename from landlab/components/flow_accum/flow_accum_bw.py rename to src/landlab/components/flow_accum/flow_accum_bw.py diff --git a/landlab/components/flow_accum/flow_accum_to_n.py b/src/landlab/components/flow_accum/flow_accum_to_n.py similarity index 100% rename from landlab/components/flow_accum/flow_accum_to_n.py rename to src/landlab/components/flow_accum/flow_accum_to_n.py diff --git a/landlab/components/flow_accum/flow_accumulator.py b/src/landlab/components/flow_accum/flow_accumulator.py similarity index 100% rename from landlab/components/flow_accum/flow_accumulator.py rename to src/landlab/components/flow_accum/flow_accumulator.py diff --git a/landlab/components/flow_accum/lossy_flow_accumulator.py b/src/landlab/components/flow_accum/lossy_flow_accumulator.py similarity index 99% rename from landlab/components/flow_accum/lossy_flow_accumulator.py rename to src/landlab/components/flow_accum/lossy_flow_accumulator.py index 1481653a7c..cf365ffc00 100644 --- a/landlab/components/flow_accum/lossy_flow_accumulator.py +++ b/src/landlab/components/flow_accum/lossy_flow_accumulator.py @@ -380,7 +380,7 @@ def __init__( # add the new loss discharge field if necessary: if "surface_water__discharge_loss" not in grid.at_node: grid.add_zeros( - "node", "surface_water__discharge_loss", dtype=float, clobber=True + "surface_water__discharge_loss", at="node", dtype=float, clobber=True ) super().__init__( diff --git a/landlab/components/flow_director/__init__.py b/src/landlab/components/flow_director/__init__.py similarity index 100% rename from landlab/components/flow_director/__init__.py rename to src/landlab/components/flow_director/__init__.py diff --git a/landlab/components/flow_director/cfuncs.pyx b/src/landlab/components/flow_director/cfuncs.pyx similarity index 100% rename from landlab/components/flow_director/cfuncs.pyx rename to src/landlab/components/flow_director/cfuncs.pyx diff --git a/landlab/components/flow_director/flow_direction_DN.py b/src/landlab/components/flow_director/flow_direction_DN.py similarity index 100% rename from landlab/components/flow_director/flow_direction_DN.py rename to src/landlab/components/flow_director/flow_direction_DN.py diff --git a/landlab/components/flow_director/flow_direction_dinf.py b/src/landlab/components/flow_director/flow_direction_dinf.py similarity index 100% rename from landlab/components/flow_director/flow_direction_dinf.py rename to src/landlab/components/flow_director/flow_direction_dinf.py diff --git a/landlab/components/flow_director/flow_direction_mfd.py b/src/landlab/components/flow_director/flow_direction_mfd.py similarity index 100% rename from landlab/components/flow_director/flow_direction_mfd.py rename to src/landlab/components/flow_director/flow_direction_mfd.py diff --git a/landlab/components/flow_director/flow_director.py b/src/landlab/components/flow_director/flow_director.py similarity index 100% rename from landlab/components/flow_director/flow_director.py rename to src/landlab/components/flow_director/flow_director.py diff --git a/landlab/components/flow_director/flow_director_d8.py b/src/landlab/components/flow_director/flow_director_d8.py similarity index 100% rename from landlab/components/flow_director/flow_director_d8.py rename to src/landlab/components/flow_director/flow_director_d8.py diff --git a/landlab/components/flow_director/flow_director_dinf.py b/src/landlab/components/flow_director/flow_director_dinf.py similarity index 100% rename from landlab/components/flow_director/flow_director_dinf.py rename to src/landlab/components/flow_director/flow_director_dinf.py diff --git a/landlab/components/flow_director/flow_director_mfd.py b/src/landlab/components/flow_director/flow_director_mfd.py similarity index 100% rename from landlab/components/flow_director/flow_director_mfd.py rename to src/landlab/components/flow_director/flow_director_mfd.py diff --git a/landlab/components/flow_director/flow_director_steepest.py b/src/landlab/components/flow_director/flow_director_steepest.py similarity index 100% rename from landlab/components/flow_director/flow_director_steepest.py rename to src/landlab/components/flow_director/flow_director_steepest.py diff --git a/landlab/components/flow_director/flow_director_to_many.py b/src/landlab/components/flow_director/flow_director_to_many.py similarity index 100% rename from landlab/components/flow_director/flow_director_to_many.py rename to src/landlab/components/flow_director/flow_director_to_many.py diff --git a/landlab/components/flow_director/flow_director_to_one.py b/src/landlab/components/flow_director/flow_director_to_one.py similarity index 100% rename from landlab/components/flow_director/flow_director_to_one.py rename to src/landlab/components/flow_director/flow_director_to_one.py diff --git a/landlab/components/flow_router/__init__.py b/src/landlab/components/flow_router/__init__.py similarity index 100% rename from landlab/components/flow_router/__init__.py rename to src/landlab/components/flow_router/__init__.py diff --git a/landlab/components/flow_router/ext/__init__.py b/src/landlab/components/flow_router/ext/__init__.py similarity index 100% rename from landlab/components/flow_router/ext/__init__.py rename to src/landlab/components/flow_router/ext/__init__.py diff --git a/landlab/components/flow_router/ext/single_flow/__init__.py b/src/landlab/components/flow_router/ext/single_flow/__init__.py similarity index 100% rename from landlab/components/flow_router/ext/single_flow/__init__.py rename to src/landlab/components/flow_router/ext/single_flow/__init__.py diff --git a/landlab/components/flow_router/ext/single_flow/priority_routing/__init__.py b/src/landlab/components/flow_router/ext/single_flow/priority_routing/__init__.py similarity index 100% rename from landlab/components/flow_router/ext/single_flow/priority_routing/__init__.py rename to src/landlab/components/flow_router/ext/single_flow/priority_routing/__init__.py diff --git a/landlab/components/flow_router/ext/single_flow/priority_routing/_priority_queue.hpp b/src/landlab/components/flow_router/ext/single_flow/priority_routing/_priority_queue.hpp similarity index 100% rename from landlab/components/flow_router/ext/single_flow/priority_routing/_priority_queue.hpp rename to src/landlab/components/flow_router/ext/single_flow/priority_routing/_priority_queue.hpp diff --git a/tests/components/flow_router/ext/single_flow/priority_routing/test_breach_c.pxd b/src/landlab/components/flow_router/ext/single_flow/priority_routing/_test_breach_c.pxd similarity index 100% rename from tests/components/flow_router/ext/single_flow/priority_routing/test_breach_c.pxd rename to src/landlab/components/flow_router/ext/single_flow/priority_routing/_test_breach_c.pxd diff --git a/tests/components/flow_router/ext/single_flow/priority_routing/test_breach_c.pyx b/src/landlab/components/flow_router/ext/single_flow/priority_routing/_test_breach_c.pyx similarity index 100% rename from tests/components/flow_router/ext/single_flow/priority_routing/test_breach_c.pyx rename to src/landlab/components/flow_router/ext/single_flow/priority_routing/_test_breach_c.pyx diff --git a/landlab/components/flow_router/ext/single_flow/priority_routing/breach.pxd b/src/landlab/components/flow_router/ext/single_flow/priority_routing/breach.pxd similarity index 100% rename from landlab/components/flow_router/ext/single_flow/priority_routing/breach.pxd rename to src/landlab/components/flow_router/ext/single_flow/priority_routing/breach.pxd diff --git a/landlab/components/flow_router/ext/single_flow/priority_routing/breach.pyx b/src/landlab/components/flow_router/ext/single_flow/priority_routing/breach.pyx similarity index 100% rename from landlab/components/flow_router/ext/single_flow/priority_routing/breach.pyx rename to src/landlab/components/flow_router/ext/single_flow/priority_routing/breach.pyx diff --git a/landlab/components/fracture_grid/__init__.py b/src/landlab/components/fracture_grid/__init__.py similarity index 100% rename from landlab/components/fracture_grid/__init__.py rename to src/landlab/components/fracture_grid/__init__.py diff --git a/landlab/components/fracture_grid/fracture_grid.py b/src/landlab/components/fracture_grid/fracture_grid.py similarity index 99% rename from landlab/components/fracture_grid/fracture_grid.py rename to src/landlab/components/fracture_grid/fracture_grid.py index 2fa48aeaad..15ac60db38 100644 --- a/landlab/components/fracture_grid/fracture_grid.py +++ b/src/landlab/components/fracture_grid/fracture_grid.py @@ -297,7 +297,7 @@ def __init__(self, grid, frac_spacing=10.0, seed=0): raise TypeError("grid must be RasterModelGrid or HexModelGrid") if "fracture_at_node" not in grid.at_node: - grid.add_zeros("node", "fracture_at_node", dtype=np.int8) + grid.add_zeros("fracture_at_node", at="node", dtype=np.int8) np.random.seed(seed) diff --git a/landlab/components/gflex/__init__.py b/src/landlab/components/gflex/__init__.py similarity index 100% rename from landlab/components/gflex/__init__.py rename to src/landlab/components/gflex/__init__.py diff --git a/landlab/components/gflex/flexure.py b/src/landlab/components/gflex/flexure.py similarity index 100% rename from landlab/components/gflex/flexure.py rename to src/landlab/components/gflex/flexure.py diff --git a/landlab/components/gravel_bedrock_eroder/__init__.py b/src/landlab/components/gravel_bedrock_eroder/__init__.py similarity index 100% rename from landlab/components/gravel_bedrock_eroder/__init__.py rename to src/landlab/components/gravel_bedrock_eroder/__init__.py diff --git a/landlab/components/gravel_bedrock_eroder/gravel_bedrock_eroder.py b/src/landlab/components/gravel_bedrock_eroder/gravel_bedrock_eroder.py similarity index 100% rename from landlab/components/gravel_bedrock_eroder/gravel_bedrock_eroder.py rename to src/landlab/components/gravel_bedrock_eroder/gravel_bedrock_eroder.py diff --git a/landlab/components/gravel_river_transporter/__init__.py b/src/landlab/components/gravel_river_transporter/__init__.py similarity index 100% rename from landlab/components/gravel_river_transporter/__init__.py rename to src/landlab/components/gravel_river_transporter/__init__.py diff --git a/landlab/components/gravel_river_transporter/gravel_river_transporter.py b/src/landlab/components/gravel_river_transporter/gravel_river_transporter.py similarity index 100% rename from landlab/components/gravel_river_transporter/gravel_river_transporter.py rename to src/landlab/components/gravel_river_transporter/gravel_river_transporter.py diff --git a/landlab/components/groundwater/README.md b/src/landlab/components/groundwater/README.md similarity index 100% rename from landlab/components/groundwater/README.md rename to src/landlab/components/groundwater/README.md diff --git a/landlab/components/groundwater/__init__.py b/src/landlab/components/groundwater/__init__.py similarity index 100% rename from landlab/components/groundwater/__init__.py rename to src/landlab/components/groundwater/__init__.py diff --git a/landlab/components/groundwater/dupuit_percolator.py b/src/landlab/components/groundwater/dupuit_percolator.py similarity index 99% rename from landlab/components/groundwater/dupuit_percolator.py rename to src/landlab/components/groundwater/dupuit_percolator.py index ca51ee4b53..30bc15ed07 100644 --- a/landlab/components/groundwater/dupuit_percolator.py +++ b/src/landlab/components/groundwater/dupuit_percolator.py @@ -74,7 +74,7 @@ class GroundwaterDupuitPercolator(Component): capillary fringe is small, such that the water table can be modeled as a free surface. Please consider the applicability of these assumptions when using this model. For more details, see component documentation - :ref:`here `. + :ref:`here `. Examples -------- @@ -141,7 +141,7 @@ class GroundwaterDupuitPercolator(Component): ----- Below is a summary of the theory and numerical implementation of the ``GroundwaterDupuitPercolator``. A complete description can be found - :ref:`here `. + :ref:`here `. Groundwater discharge per unit length, :math:`q`, is calculated as: diff --git a/landlab/components/hack_calculator/__init__.py b/src/landlab/components/hack_calculator/__init__.py similarity index 100% rename from landlab/components/hack_calculator/__init__.py rename to src/landlab/components/hack_calculator/__init__.py diff --git a/landlab/components/hack_calculator/hack_calculator.py b/src/landlab/components/hack_calculator/hack_calculator.py similarity index 100% rename from landlab/components/hack_calculator/hack_calculator.py rename to src/landlab/components/hack_calculator/hack_calculator.py diff --git a/landlab/components/hand_calculator/__init__.py b/src/landlab/components/hand_calculator/__init__.py similarity index 100% rename from landlab/components/hand_calculator/__init__.py rename to src/landlab/components/hand_calculator/__init__.py diff --git a/landlab/components/hand_calculator/hand_calculator.py b/src/landlab/components/hand_calculator/hand_calculator.py similarity index 100% rename from landlab/components/hand_calculator/hand_calculator.py rename to src/landlab/components/hand_calculator/hand_calculator.py diff --git a/landlab/components/lake_fill/__init__.py b/src/landlab/components/lake_fill/__init__.py similarity index 100% rename from landlab/components/lake_fill/__init__.py rename to src/landlab/components/lake_fill/__init__.py diff --git a/landlab/components/lake_fill/lake_fill_barnes.py b/src/landlab/components/lake_fill/lake_fill_barnes.py similarity index 99% rename from landlab/components/lake_fill/lake_fill_barnes.py rename to src/landlab/components/lake_fill/lake_fill_barnes.py index 3e4b10b184..771627e028 100644 --- a/landlab/components/lake_fill/lake_fill_barnes.py +++ b/src/landlab/components/lake_fill/lake_fill_barnes.py @@ -337,7 +337,7 @@ def __init__( ) self._pit = [] - self._closed = self._grid.zeros("node", dtype=bool) + self._closed = self._grid.zeros(at="node", dtype=bool) self._gridclosednodes = ( self._grid.status_at_node == self._grid.BC_NODE_IS_CLOSED ) @@ -1168,7 +1168,7 @@ def _redirect_flowdirs(self, surface, lake_dict, openq): ... ) True """ - closedq = self._grid.ones("node", dtype=int) + closedq = self._grid.ones(at="node", dtype=int) # Using a slightly different approach. We recognise three types: lake # (0), lake margin (1), and closed (2). This lets us work the # perimeter too. Open each lake as needed. diff --git a/landlab/components/landslides/__init__.py b/src/landlab/components/landslides/__init__.py similarity index 100% rename from landlab/components/landslides/__init__.py rename to src/landlab/components/landslides/__init__.py diff --git a/landlab/components/landslides/landslide_probability.py b/src/landlab/components/landslides/landslide_probability.py similarity index 100% rename from landlab/components/landslides/landslide_probability.py rename to src/landlab/components/landslides/landslide_probability.py diff --git a/landlab/components/lateral_erosion/__init__.py b/src/landlab/components/lateral_erosion/__init__.py similarity index 100% rename from landlab/components/lateral_erosion/__init__.py rename to src/landlab/components/lateral_erosion/__init__.py diff --git a/landlab/components/lateral_erosion/lateral_erosion.py b/src/landlab/components/lateral_erosion/lateral_erosion.py similarity index 100% rename from landlab/components/lateral_erosion/lateral_erosion.py rename to src/landlab/components/lateral_erosion/lateral_erosion.py diff --git a/landlab/components/lateral_erosion/node_finder.py b/src/landlab/components/lateral_erosion/node_finder.py similarity index 100% rename from landlab/components/lateral_erosion/node_finder.py rename to src/landlab/components/lateral_erosion/node_finder.py diff --git a/landlab/components/lithology/README.md b/src/landlab/components/lithology/README.md similarity index 100% rename from landlab/components/lithology/README.md rename to src/landlab/components/lithology/README.md diff --git a/landlab/components/lithology/__init__.py b/src/landlab/components/lithology/__init__.py similarity index 100% rename from landlab/components/lithology/__init__.py rename to src/landlab/components/lithology/__init__.py diff --git a/landlab/components/lithology/litholayers.py b/src/landlab/components/lithology/litholayers.py similarity index 100% rename from landlab/components/lithology/litholayers.py rename to src/landlab/components/lithology/litholayers.py diff --git a/landlab/components/lithology/lithology.py b/src/landlab/components/lithology/lithology.py similarity index 100% rename from landlab/components/lithology/lithology.py rename to src/landlab/components/lithology/lithology.py diff --git a/landlab/components/marine_sediment_transport/__init__.py b/src/landlab/components/marine_sediment_transport/__init__.py similarity index 100% rename from landlab/components/marine_sediment_transport/__init__.py rename to src/landlab/components/marine_sediment_transport/__init__.py diff --git a/landlab/components/marine_sediment_transport/simple_submarine_diffuser.py b/src/landlab/components/marine_sediment_transport/simple_submarine_diffuser.py similarity index 100% rename from landlab/components/marine_sediment_transport/simple_submarine_diffuser.py rename to src/landlab/components/marine_sediment_transport/simple_submarine_diffuser.py diff --git a/landlab/components/mass_wasting_runout/__init__.py b/src/landlab/components/mass_wasting_runout/__init__.py similarity index 100% rename from landlab/components/mass_wasting_runout/__init__.py rename to src/landlab/components/mass_wasting_runout/__init__.py diff --git a/landlab/components/mass_wasting_runout/mass_wasting_runout.py b/src/landlab/components/mass_wasting_runout/mass_wasting_runout.py similarity index 99% rename from landlab/components/mass_wasting_runout/mass_wasting_runout.py rename to src/landlab/components/mass_wasting_runout/mass_wasting_runout.py index abca3533a7..d6f2062cd2 100644 --- a/landlab/components/mass_wasting_runout/mass_wasting_runout.py +++ b/src/landlab/components/mass_wasting_runout/mass_wasting_runout.py @@ -55,7 +55,7 @@ class MassWastingRunout(Component): >>> fd.run_one_step() >>> nn = mg.number_of_nodes >>> depth = np.ones(nn) * 1 - >>> _ = mg.add_field("node", "soil__thickness", depth) + >>> _ = mg.add_field("soil__thickness", depth, at="node") Define the initial landslide. Any mass_wasting_id value >1 is considered a landslide. The landslide extent is defined by assigining all nodes withing diff --git a/landlab/components/mass_wasting_runout/mass_wasting_saver.py b/src/landlab/components/mass_wasting_runout/mass_wasting_saver.py similarity index 100% rename from landlab/components/mass_wasting_runout/mass_wasting_saver.py rename to src/landlab/components/mass_wasting_runout/mass_wasting_saver.py diff --git a/landlab/components/network_sediment_transporter/README.md b/src/landlab/components/network_sediment_transporter/README.md similarity index 100% rename from landlab/components/network_sediment_transporter/README.md rename to src/landlab/components/network_sediment_transporter/README.md diff --git a/src/landlab/components/network_sediment_transporter/__init__.py b/src/landlab/components/network_sediment_transporter/__init__.py new file mode 100644 index 0000000000..2dff35071d --- /dev/null +++ b/src/landlab/components/network_sediment_transporter/__init__.py @@ -0,0 +1,31 @@ +from landlab.components.network_sediment_transporter.bed_parcel_initializers import ( + BedParcelInitializerArea, +) +from landlab.components.network_sediment_transporter.bed_parcel_initializers import ( + BedParcelInitializerDepth, +) +from landlab.components.network_sediment_transporter.bed_parcel_initializers import ( + BedParcelInitializerDischarge, +) +from landlab.components.network_sediment_transporter.bed_parcel_initializers import ( + BedParcelInitializerUserD50, +) +from landlab.components.network_sediment_transporter.network_sediment_transporter import ( + NetworkSedimentTransporter, +) +from landlab.components.network_sediment_transporter.sediment_pulser_at_links import ( + SedimentPulserAtLinks, +) +from landlab.components.network_sediment_transporter.sediment_pulser_each_parcel import ( + SedimentPulserEachParcel, +) + +__all__ = [ + "NetworkSedimentTransporter", + "BedParcelInitializerDischarge", + "BedParcelInitializerDepth", + "BedParcelInitializerArea", + "BedParcelInitializerUserD50", + "SedimentPulserAtLinks", + "SedimentPulserEachParcel", +] diff --git a/landlab/components/network_sediment_transporter/bed_parcel_initializers.py b/src/landlab/components/network_sediment_transporter/bed_parcel_initializers.py similarity index 99% rename from landlab/components/network_sediment_transporter/bed_parcel_initializers.py rename to src/landlab/components/network_sediment_transporter/bed_parcel_initializers.py index b0dd11576c..0cdc71bccd 100644 --- a/landlab/components/network_sediment_transporter/bed_parcel_initializers.py +++ b/src/landlab/components/network_sediment_transporter/bed_parcel_initializers.py @@ -12,8 +12,8 @@ import numpy as np import scipy.constants -from landlab import Component -from landlab.data_record import DataRecord +from landlab.core.model_component import Component +from landlab.data_record.data_record import DataRecord from landlab.grid.network import NetworkModelGrid _OUT_OF_NETWORK = -2 diff --git a/landlab/components/network_sediment_transporter/network_sediment_transporter.py b/src/landlab/components/network_sediment_transporter/network_sediment_transporter.py similarity index 79% rename from landlab/components/network_sediment_transporter/network_sediment_transporter.py rename to src/landlab/components/network_sediment_transporter/network_sediment_transporter.py index 9b5d3b0293..3da410041e 100644 --- a/landlab/components/network_sediment_transporter/network_sediment_transporter.py +++ b/src/landlab/components/network_sediment_transporter/network_sediment_transporter.py @@ -1,4 +1,5 @@ -""" +"""Simulate transport of bed material through a 1-D river network. + Landlab component that simulates the transport of bed material sediment through a 1-D river network, while tracking the resulting changes in bed material grain size and river bed elevation. Model framework @@ -8,29 +9,39 @@ .. codeauthor:: Allison Pfeiffer, Katy Barnhart, Jon Czuba, Eric Hutton """ +from __future__ import annotations + import warnings +from typing import Literal import numpy as np import scipy.constants -import xarray as xr - -from landlab import Component -from landlab.components import FlowDirectorSteepest -from landlab.data_record import DataRecord +from numpy.typing import ArrayLike +from numpy.typing import NDArray + +from landlab.components.flow_director.flow_director_steepest import FlowDirectorSteepest +from landlab.core.model_component import Component +from landlab.data_record.aggregators import aggregate_items_as_mean +from landlab.data_record.aggregators import aggregate_items_as_sum +from landlab.data_record.data_record import DataRecord from landlab.grid.network import NetworkModelGrid -_SUPPORTED_TRANSPORT_METHODS = ["WilcockCrowe"] -_SUPPORTED_ACTIVE_LAYER_METHODS = ["WongParker", "GrainSizeDependent", "Constant10cm"] - -_REQUIRED_PARCEL_ATTRIBUTES = [ - "time_arrival_in_link", - "abrasion_rate", - "density", - "active_layer", - "location_in_link", - "D", - "volume", -] +_SUPPORTED_TRANSPORT_METHODS = frozenset(("WilcockCrowe",)) +_SUPPORTED_ACTIVE_LAYER_METHODS = frozenset( + ("WongParker", "GrainSizeDependent", "Constant10cm") +) + +_REQUIRED_PARCEL_ATTRIBUTES = frozenset( + ( + "time_arrival_in_link", + "abrasion_rate", + "density", + "active_layer", + "location_in_link", + "D", + "volume", + ) +) _ACTIVE = 1 _INACTIVE = 0 @@ -45,7 +56,7 @@ class NetworkSedimentTransporter(Component): Landlab component that simulates the transport of bed material sediment through a 1-D river network, while tracking the resulting changes in bed material grain size and river bed elevation. Model framework - described in Czuba (2018). Additions include: particle abrasion, variable + described in Czuba (2018). Additions include: particle abrasion, and variable active layer thickness (Wong et al., 2007). This component cares about units. Its time, length, and mass units are @@ -56,7 +67,7 @@ class NetworkSedimentTransporter(Component): There is a function that assists in plotting the output of this component. It is called :func:`~.plot.plot_network_and_parcels`. Examples of its usage - can be found in the NetworkSedimentTransporter notebooks (located in the + can be found in the `NetworkSedimentTransporter` notebooks (located in the "notebooks" folder). Examples @@ -158,7 +169,7 @@ class NetworkSedimentTransporter(Component): Run the model - >>> for t in range(0, (timesteps * dt), dt): + >>> for _ in range(timesteps): ... nst.run_one_step(dt) ... @@ -251,17 +262,20 @@ class NetworkSedimentTransporter(Component): def __init__( self, - grid, - parcels, - flow_director, - bed_porosity=0.3, - g=scipy.constants.g, - fluid_density=1000.0, - transport_method="WilcockCrowe", - active_layer_method="WongParker", - active_layer_d_multiplier=2, - slope_threshold=1e-4, - ): + grid: NetworkModelGrid, + parcels: DataRecord, + flow_director: FlowDirectorSteepest, + bed_porosity: float = 0.3, + g: float = scipy.constants.g, + fluid_density: float = 1000.0, + transport_method: Literal["WilcockCrowe"] = "WilcockCrowe", + active_layer_method: Literal[ + "WongParker", "GrainSizeDependent", "Constant10cm" + ] = "WongParker", + active_layer_d_multiplier: int = 2, + slope_threshold: float = 1e-4, + k_transp_dep_abr: float | None = None, + ) -> None: """ Parameters ---------- @@ -295,6 +309,9 @@ def __init__( slope_threshold: float, optional Minimum channel slope at any given link. Slopes lower than this value will default to the threshold. + k_transp_dep_abr: float, optional + Coefficient of enhanced abrasion at high bedload transport stage, as in + Pfeiffer et al. (2022) """ if not isinstance(grid, NetworkModelGrid): raise ValueError("grid must be NetworkModelGrid") @@ -314,13 +331,9 @@ def __init__( # save key information about the parcels. self._parcels = parcels self._num_parcels = self._parcels.number_of_items - self._time_variable_parcel_attributes = [ - "time_arrival_in_link", - "active_layer", - "location_in_link", - "D", - "volume", - ] + self._time_variable_parcel_attributes = frozenset( + ("time_arrival_in_link", "active_layer", "location_in_link", "D", "volume") + ) # assert that the flow director is a component and is of type # FlowDirectorSteepest @@ -331,7 +344,7 @@ def __init__( self._fd = flow_director # verify and save the bed porosity. - if not 0 <= bed_porosity < 1: + if bed_porosity < 0.0 or bed_porosity > 1: raise ValueError(f"bed_porosity must be between 0 and 1 ({bed_porosity})") self._bed_porosity = bed_porosity @@ -342,6 +355,7 @@ def __init__( self._time = 0.0 self._distance_traveled_cumulative = np.zeros(self._num_parcels) self._slope_threshold = slope_threshold + self._k_transp_dep_abr = k_transp_dep_abr # check the transport method is valid. if transport_method in _SUPPORTED_TRANSPORT_METHODS: @@ -387,21 +401,21 @@ def __init__( self._update_channel_slopes() @property - def time(self): + def time(self) -> float: """Return current time.""" return self._time @property - def d_mean_active(self): + def d_mean_active(self) -> float: """Mean parcel grain size of active parcels aggregated at link.""" return self._d_mean_active @property - def rhos_mean_active(self): + def rhos_mean_active(self) -> float: """Mean parcel density of active parcels aggregated at link.""" return self._rhos_mean_active - def _create_new_parcel_time(self): + def _create_new_parcel_time(self) -> None: """If we are going to track parcels through time in :class:`~.DataRecord`, we need to add a new time column to the parcels dataframe. This method simply copies over the attributes of the parcels @@ -433,7 +447,7 @@ def _create_new_parcel_time(self): self._num_parcels = self._parcels.number_of_items # ^ needs to run just in case we've added more parcels - def _update_channel_slopes(self): + def _update_channel_slopes(self) -> None: """Re-calculate channel slopes during each timestep.""" for i in range(self._grid.number_of_links): @@ -447,54 +461,30 @@ def _update_channel_slopes(self): self._slope_threshold, ) - def _calculate_mean_D_and_rho(self): + def _calculate_mean_D_and_rho(self) -> None: """Calculate mean grain size and density on each link""" - - current_parcels = self._parcels.dataset.isel(time=self._time_idx) - - # In the first full timestep, we need to calc grain size & rho_sed. - # Assume all parcels are in the active layer for the purposes of - # grain size and mean sediment density calculations - - # FUTURE: make it possible to circumvent this if mean grain size - # has already been calculated (e.g. during 'zeroing' runs) - - # Calculate mean values for density and grain size (weighted by volume). - sel_parcels = current_parcels.where( - current_parcels.element_id != self.OUT_OF_NETWORK + self._rhos_mean_active = aggregate_items_as_mean( + self._parcels.dataset["element_id"].values[:, -1].astype(int), + self._parcels.dataset["density"].values.reshape(-1), + weights=self._parcels.dataset["volume"].values[:, -1], + size=self._grid.number_of_links, ) - - d_weighted = sel_parcels.D * sel_parcels.volume - rho_weighted = sel_parcels.density * sel_parcels.volume - d_weighted.name = "d_weighted" - rho_weighted.name = "rho_weighted" - - grouped_by_element = xr.merge( - (sel_parcels.element_id, sel_parcels.volume, d_weighted, rho_weighted) - ).groupby("element_id") - - d_avg = grouped_by_element.sum().d_weighted / grouped_by_element.sum().volume - rho_avg = ( - grouped_by_element.sum().rho_weighted / grouped_by_element.sum().volume + self._d_mean_active = aggregate_items_as_mean( + self._parcels.dataset["element_id"].values[:, -1].astype(int), + self._parcels.dataset["D"].values.reshape(-1), + weights=self._parcels.dataset["volume"].values[:, -1], + size=self._grid.number_of_links, ) - self._d_mean_active = np.zeros(self._grid.size("link")) - self._d_mean_active[d_avg.element_id.values.astype(int)] = d_avg.values - - self._rhos_mean_active = np.zeros(self._grid.size("link")) - self._rhos_mean_active[rho_avg.element_id.values.astype(int)] = rho_avg.values - - def _partition_active_and_storage_layers(self, **kwds): + def _partition_active_and_storage_layers(self) -> None: """For each parcel in the network, determines whether it is in the active or storage layer during this timestep, then updates node elevations. """ - self._vol_tot = self._parcels.calc_aggregate_value( - xr.Dataset.sum, - "volume", - at="link", - filter_array=self._this_timesteps_parcels, - fill_value=0.0, + self._vol_tot = aggregate_items_as_sum( + self._parcels.dataset["element_id"].values[:, -1].astype(int), + self._parcels.dataset["volume"].values[:, -1], + size=self._grid.number_of_links, ) if self._active_layer_method == "WongParker": @@ -514,11 +504,6 @@ def _partition_active_and_storage_layers(self, **kwds): ) # calcuate taustar - # taustar = tau / ( - # (self._rhos_mean_active - self._fluid_density) - # * self._g - # * self._d_mean_active - # ) taustar = np.zeros_like(tau) np.divide( tau, @@ -529,12 +514,12 @@ def _partition_active_and_storage_layers(self, **kwds): out=taustar, ) - # calculate active layer thickness + # calculate active layer thickness (in units of m) self._active_layer_thickness = ( 0.515 * self._d_mean_active * (3.09 * (taustar - 0.0549).clip(0.0, None) ** 0.56) - ) # in units of m + ) elif self._active_layer_method == "GrainSizeDependent": # Set all active layers to a multiple of the lnk mean grain size @@ -570,9 +555,8 @@ def _partition_active_and_storage_layers(self, **kwds): volumes = self._parcels.dataset.volume.values[:, -1] for i in range(self._grid.number_of_links): - if ( - self._vol_tot[i] > 0 - ): # only do this check capacity if parcels are in link + if self._vol_tot[i] > 0: + # only do this check capacity if parcels are in link # First In Last Out. # Find parcels on this link. @@ -603,17 +587,20 @@ def _partition_active_and_storage_layers(self, **kwds): self._parcels.dataset.active_layer == _ACTIVE ) * (self._this_timesteps_parcels) - self._vol_act = self._parcels.calc_aggregate_value( - xr.Dataset.sum, - "volume", - at="link", - filter_array=self._active_parcel_records, - fill_value=0.0, + parcel_volumes = self._parcels.dataset.volume.values[:, -1].copy() + parcel_volumes[~self._active_parcel_records.values[:, -1].astype(bool)] = 0.0 + + self._vol_act = aggregate_items_as_sum( + self._parcels.dataset["element_id"].values[:, -1].astype(int), + parcel_volumes, + size=self._grid.number_of_links, ) - self._vol_stor = (self._vol_tot - self._vol_act) / (1 - self._bed_porosity) + self._vol_stor = ( + self._vol_tot - self._vol_act + ) # stored parcel rock volume (bug fix AP 4/25/24) - def _adjust_node_elevation(self): + def _adjust_node_elevation(self) -> None: """Adjusts slope for each link based on parcel motions from last timestep and additions from this timestep. """ @@ -622,9 +609,7 @@ def _adjust_node_elevation(self): self._fd.flow_link_incoming_at_node() == 1, axis=1 ) downstream_link_id = self._fd.link_to_flow_receiving_node - # USED TO BE downstream_link_id = self._fd.link_to_flow_receiving_node[ - # self._fd.downstream_node_at_link() - # ] + upstream_contributing_links_at_node = np.where( self._fd.flow_link_incoming_at_node() == 1, self._grid.links_at_node, -1 ) @@ -643,17 +628,8 @@ def _adjust_node_elevation(self): real_upstream_links ] - # ALERT: Moved this to the "else" statement below. AP 11/11/19 - # length_of_downstream_link = self._grid.at_link["reach_length"][ - # downstream_link_id - # ][n] - # width_of_downstream_link = self._grid.at_link["channel_width"][ - # downstream_link_id - # ][n] - - if ( - downstream_link_id[n] == self._grid.BAD_INDEX - ): # I'm sure there's a better way to do this, but... + if downstream_link_id[n] == self._grid.BAD_INDEX: + # I'm sure there's a better way to do this, but... length_of_downstream_link = 0 width_of_downstream_link = 0 else: @@ -677,7 +653,7 @@ def _adjust_node_elevation(self): self._grid.at_node["bedrock__elevation"][n] + alluvium__depth ) - def _calc_transport_wilcock_crowe(self): + def _calc_transport_wilcock_crowe(self) -> None: """Method to determine the transport time for each parcel in the active layer using a sediment transport equation. @@ -693,9 +669,8 @@ def _calc_transport_wilcock_crowe(self): Activearray = self._parcels.dataset.active_layer[:, self._time_idx].values Rhoarray = self._parcels.dataset.density.values Volarray = self._parcels.dataset.volume[:, self._time_idx].values - Linkarray = self._parcels.dataset.element_id[ - :, self._time_idx - ].values # link that the parcel is currently in + # link that the parcel is currently in + Linkarray = self._parcels.dataset.element_id[:, self._time_idx].values R = (Rhoarray - self._fluid_density) / self._fluid_density @@ -705,14 +680,10 @@ def _calc_transport_wilcock_crowe(self): Sarray = np.zeros(self._num_parcels) Harray = np.zeros(self._num_parcels) Larray = np.zeros(self._num_parcels) - # D_mean_activearray = np.zeros(self._num_parcels) * (np.nan) - # active_layer_thickness_array = np.zeros(self._num_parcels) * np.nan + D_mean_activearray = np.full(self._num_parcels, np.nan) active_layer_thickness_array = np.full(self._num_parcels, np.nan) - # rhos_mean_active = np.zeros(self._num_parcels) - # rhos_mean_active.fill(np.nan) - # find active sand # since find active already sets all prior timesteps to False, we # can use D for all timesteps here. @@ -720,12 +691,13 @@ def _calc_transport_wilcock_crowe(self): self._parcels.dataset.D < _SAND_SIZE ) * self._active_parcel_records - vol_act_sand = self._parcels.calc_aggregate_value( - xr.Dataset.sum, - "volume", - at="link", - filter_array=findactivesand, - fill_value=0.0, + parcel_volumes = self._parcels.dataset.volume.values[:, -1].copy() + parcel_volumes[~findactivesand[:, -1].astype(bool)] = 0.0 + + vol_act_sand = aggregate_items_as_sum( + self._parcels.dataset["element_id"].values[:, -1].astype(int), + parcel_volumes, + size=self._grid.number_of_links, ) frac_sand = np.zeros_like(self._vol_act) @@ -742,7 +714,7 @@ def _calc_transport_wilcock_crowe(self): d_act_i = Darray[active_here] vol_act_i = Volarray[active_here] rhos_act_i = Rhoarray[active_here] - vol_act_tot_i = np.sum(vol_act_i) + vol_act_tot_i: float = np.sum(vol_act_i) self._d_mean_active[i] = np.sum(d_act_i * vol_act_i) / (vol_act_tot_i) if vol_act_tot_i > 0: @@ -773,11 +745,11 @@ def _calc_transport_wilcock_crowe(self): b = 0.67 / (1.0 + np.exp(1.5 - Darray / D_mean_activearray)) - tau = self._fluid_density * self._g * Harray * Sarray - tau = np.atleast_1d(tau) + tau = np.atleast_1d(self._fluid_density * self._g * Harray * Sarray) taur = taursg * (Darray / D_mean_activearray) ** b tautaur = tau / taur + self._tautaur = tautaur.copy() # use below for xport dependent abrasion tautaur_cplx = tautaur.astype(np.complex128) # ^ work around needed b/c np fails with non-integer powers of negative numbers @@ -803,7 +775,8 @@ def _calc_transport_wilcock_crowe(self): if np.max(self._pvelocity) > 1: warnings.warn( - "NetworkSedimentTransporter: Maximum parcel virtual velocity exceeds 1 m/s", + "NetworkSedimentTransporter: Maximum parcel virtual velocity" + f" exceeds 1 m/s ({np.max(self._pvelocity)})", stacklevel=2, ) @@ -812,8 +785,9 @@ def _calc_transport_wilcock_crowe(self): self._grid.at_link["sediment__active__volume"] = self._vol_act self._grid.at_link["sediment__active__sand_fraction"] = frac_sand - def _move_parcel_downstream(self, dt): - """Method to update parcel location for each parcel in the active layer.""" + def _move_parcel_downstream(self, dt: float) -> None: + """Update parcel location for each parcel in the active layer.""" + # determine where parcels are starting current_link = self._parcels.dataset.element_id.values[:, -1].astype(int) self.current_link = current_link @@ -922,11 +896,25 @@ def _move_parcel_downstream(self, dt): # Step 2: Parcel is at rest... Now update its information. + # transport dependent abrasion - update alphas for xport dependence + if self._k_transp_dep_abr is not None: + self._abrasion_rate_xport_dep = _calculate_transport_dep_abrasion_rate( + self._parcels.dataset.abrasion_rate, + self._k_transp_dep_abr, + self._parcels.dataset.density.values, + self._fluid_density, + self._parcels.dataset.D.values[:, self._time_idx], + self._tautaur, + ) + abrasion_now = self._abrasion_rate_xport_dep.copy() + else: + abrasion_now = self._parcels.dataset.abrasion_rate.copy() + # reduce D and volume due to abrasion vol = _calculate_parcel_volume_post_abrasion( self._parcels.dataset.volume[active_parcel_ids, self._time_idx], distance_to_travel_this_timestep[active_parcel_ids], - self._parcels.dataset.abrasion_rate[active_parcel_ids], + abrasion_now[active_parcel_ids], ) D = _calculate_parcel_grain_diameter_post_abrasion( @@ -955,13 +943,14 @@ def _move_parcel_downstream(self, dt): self._parcels.dataset.D[active_parcel_ids, self._time_idx] = D self._parcels.dataset.volume[active_parcel_ids, self._time_idx] = vol - def run_one_step(self, dt): + def run_one_step(self, dt: float) -> None: """Run :class:`~.NetworkSedimentTransporter` forward in time. - When the :class:`~.NetworkSedimentTransporter` runs forward in time the following - steps occur: + When the :class:`~.NetworkSedimentTransporter` runs forward in time + the following steps occur: - 1. A new set of records is created in the Parcels that corresponds to the new time + 1. A new set of records is created in the Parcels that corresponds to + the new time 2. If parcels are on the network then: a. Active parcels are identified based on entrainment critera. @@ -998,7 +987,9 @@ def run_one_step(self, dt): # %% Methods referenced above, separated for purposes of testing -def _recalculate_channel_slope(z_up, z_down, dx, threshold): +def _recalculate_channel_slope( + z_up: float, z_down: float, dx: float, threshold: float +) -> float: """Recalculate channel slope based on elevation. Parameters @@ -1014,15 +1005,11 @@ def _recalculate_channel_slope(z_up, z_down, dx, threshold): Examples -------- - >>> import pytest - >>> _recalculate_channel_slope(10.0, 0.0, 10.0, 0.0001) 1.0 >>> _recalculate_channel_slope(0.0, 0.0, 10.0, 0.0001) 0.0001 - >>> with pytest.warns(UserWarning): - ... _recalculate_channel_slope(0.0, 10.0, 10.0, 0.0001) - ... + >>> _recalculate_channel_slope(0.0, 10.0, 10.0, 0.0001) 0.0 """ chan_slope = (z_up - z_down) / dx @@ -1030,7 +1017,8 @@ def _recalculate_channel_slope(z_up, z_down, dx, threshold): if chan_slope < 0.0: chan_slope = 0.0 warnings.warn( - "NetworkSedimentTransporter: Negative channel slope encountered.", + "NetworkSedimentTransporter: Negative channel slope" + f" encountered ({chan_slope})", UserWarning, stacklevel=2, ) @@ -1042,13 +1030,13 @@ def _recalculate_channel_slope(z_up, z_down, dx, threshold): def _calculate_alluvium_depth( - stored_volume, - width_of_upstream_links, - length_of_upstream_links, - width_of_downstream_link, - length_of_downstream_link, - porosity, -): + stored_volume: float, + width_of_upstream_links: ArrayLike, + length_of_upstream_links: ArrayLike, + width_of_downstream_link: float, + length_of_downstream_link: float, + porosity: float, +) -> float: """Calculate alluvium depth based on adjacent link inactive parcel volumes. Parameters @@ -1068,21 +1056,18 @@ def _calculate_alluvium_depth( Examples -------- - >>> import pytest - >>> _calculate_alluvium_depth( - ... 100, np.array([0.5, 1]), np.array([10, 10]), 1, 10, 0.2 - ... ) + >>> _calculate_alluvium_depth(100, [0.5, 1], [10, 10], 1, 10, 0.2) 10.0 >>> _calculate_alluvium_depth(24, np.array([0.1, 3]), np.array([10, 10]), 1, 1, 0.5) 3.0 - >>> with pytest.raises(ValueError): - ... _calculate_alluvium_depth( - ... 24, np.array([0.1, 3]), np.array([10, 10]), 1, 1, 2 - ... ) - ... + >>> _calculate_alluvium_depth(24, np.array([0.1, 3]), np.array([10, 10]), 1, 1, 2) + Traceback (most recent call last): + ValueError: negative alluvium depth (-1.5) """ + width_of_upstream_links = np.asarray(width_of_upstream_links) + length_of_upstream_links = np.asarray(length_of_upstream_links) - alluvium__depth = ( + alluvium_depth = ( 2 * stored_volume / ( @@ -1092,15 +1077,19 @@ def _calculate_alluvium_depth( / (1 - porosity) ) - if alluvium__depth < 0.0: - raise ValueError("NST Alluvium Depth Negative") + if alluvium_depth < 0.0: + raise ValueError(f"negative alluvium depth ({alluvium_depth})") - return alluvium__depth + return alluvium_depth def _calculate_reference_shear_stress( - fluid_density, R, g, mean_active_grain_size, frac_sand -): + fluid_density: float, + R: ArrayLike, + g: float, + mean_active_grain_size: ArrayLike, + frac_sand: ArrayLike, +) -> float: """Calculate reference Shields stress (taursg) using the sand content of the bed surface, as per Wilcock and Crowe (2003). @@ -1109,7 +1098,7 @@ def _calculate_reference_shear_stress( fluid_density : float Density of fluid (generally, water). R: float - Specific weight..? + Excess density ratio ``(sediment_density - fluid_density) / fluid_density`` g: float Gravitational acceleration. mean_active_grain_size: float @@ -1119,23 +1108,19 @@ def _calculate_reference_shear_stress( Examples -------- - >>> from numpy.testing import assert_almost_equal - >>> assert_almost_equal( - ... _calculate_reference_shear_stress(1, 1, 1, 1, 0), 0.036, decimal=2 - ... ) - >>> assert_almost_equal( - ... _calculate_reference_shear_stress(1000, 1.65, 9.8, 0.1, 0.9), - ... 33.957, - ... decimal=2, - ... ) - """ + >>> import numpy as np + >>> np.isclose(_calculate_reference_shear_stress(1, 1, 1, 1, 0), 0.036) + True + >>> np.isclose(_calculate_reference_shear_stress(1000, 1.65, 9.8, 0.1, 0.9), 33.957) + True + """ taursg = ( fluid_density - * R + * np.asarray(R) * g - * mean_active_grain_size - * (0.021 + 0.015 * np.exp(-20.0 * frac_sand)) + * np.asarray(mean_active_grain_size) + * (0.021 + 0.015 * np.exp(-20.0 * np.asarray(frac_sand))) ) if np.any(np.asarray(taursg < 0)): @@ -1146,9 +1131,83 @@ def _calculate_reference_shear_stress( return taursg +def _calculate_transport_dep_abrasion_rate( + alpha: ArrayLike, + k: ArrayLike, + rhos: ArrayLike, + rhow: ArrayLike, + D: ArrayLike, + tautaur: ArrayLike, +) -> NDArray[float]: + """Calculate abrasion rate for each parcel in the network, accounting for + increases in abrasion due to high bedload transport rates. + + Parameters + ---------- + alpha : array + Baseline abrasion rate for each parcel. + k : float + Transport-dependent coefficient. 0 = no transport-dependence. Standard + values ~15-45. + rhos : array + Sediment density for each parcel + rhow : float + density of fluid + D : array + Grain diameter for each parcel + tautaur : array + Ratio of the Shields stress to reference (critical) Shields stress for + each pacel. + + Returns + ------- + ndarray of float + Abrasion rate of parcels. + + Examples + -------- + >>> _calculate_transport_dep_abrasion_rate( + ... [1, 1, 1, 1, 1], + ... 55, + ... [1, 1, 1, 1, 1], + ... 1000.0, + ... [1, 1, 1, 1, 1], + ... [1, 1, 1, 1, 1], + ... ) + array([1., 1., 1., 1., 1.]) + >>> _calculate_transport_dep_abrasion_rate(0, 55, 1, 1000.0, 1, 1) + array([0.]) + >>> _calculate_transport_dep_abrasion_rate(1, 8, [2.0], 1, 1, [4.3]) + array([9.]) + >>> _calculate_transport_dep_abrasion_rate(1, -8, [2.0], 1, 1, 4.3) + Traceback (most recent call last): + ValueError: transport dependent abrasion decreased abrasion rate (should increase) + """ + alpha = np.atleast_1d(alpha) + rhos = np.atleast_1d(rhos) + D = np.atleast_1d(D) + tautaur = np.atleast_1d(tautaur) + + abrasion_rate_xport_dep = np.asarray(alpha, dtype=float).copy() + abrasion_rate_xport_dep[tautaur > 3.3] = alpha[tautaur > 3.3] * ( + 1 + + k + * ((rhos[tautaur > 3.3] - rhow) / rhow) + * D[tautaur > 3.3] + * (tautaur[tautaur > 3.3] - 3.3) + ) + + if np.any(alpha > abrasion_rate_xport_dep): + raise ValueError( + "transport dependent abrasion decreased abrasion rate (should increase)" + ) + + return abrasion_rate_xport_dep + + def _calculate_parcel_volume_post_abrasion( - starting_volume, travel_distance, abrasion_rate -): + starting_volume: ArrayLike, travel_distance: ArrayLike, abrasion_rate: ArrayLike +) -> NDArray[float]: """Calculate parcel volumes after abrasion, according to Sternberg exponential abrasion. @@ -1163,28 +1222,31 @@ def _calculate_parcel_volume_post_abrasion( Examples -------- - >>> import pytest >>> _calculate_parcel_volume_post_abrasion(10, 100, 0.003) 7.4081822068171785 >>> _calculate_parcel_volume_post_abrasion(10, 300, 0.1) 9.357622968840175e-13 - >>> with pytest.raises(ValueError): - ... _calculate_parcel_volume_post_abrasion(10, 300, -3) - ... - + >>> _calculate_parcel_volume_post_abrasion(10, 300, -3) + Traceback (most recent call last): + ValueError: parcel volume has increased due to abrasion """ + starting_volume = np.asarray(starting_volume) + travel_distance = np.asarray(travel_distance) + abrasion_rate = np.asarray(abrasion_rate) volume = starting_volume * np.exp(travel_distance * (-abrasion_rate)) if np.any(volume > starting_volume): - raise ValueError("NST parcel volume *increases* due to abrasion") + raise ValueError("parcel volume has increased due to abrasion") return volume def _calculate_parcel_grain_diameter_post_abrasion( - starting_diameter, pre_abrasion_volume, post_abrasion_volume -): + starting_diameter: ArrayLike, + pre_abrasion_volume: ArrayLike, + post_abrasion_volume: ArrayLike, +) -> NDArray[float]: """Calculate parcel grain diameters after abrasion, according to Sternberg exponential abrasion. @@ -1220,8 +1282,10 @@ def _calculate_parcel_grain_diameter_post_abrasion( >>> assert_almost_equal( ... _calculate_parcel_grain_diameter_post_abrasion(10, 2, 1), expected_value ... ) - """ + starting_diameter = np.asarray(starting_diameter) + post_abrasion_volume = np.asarray(post_abrasion_volume) + pre_abrasion_volume = np.asarray(pre_abrasion_volume) abraded_grain_diameter = starting_diameter * ( post_abrasion_volume / pre_abrasion_volume diff --git a/landlab/components/network_sediment_transporter/sediment_pulser_at_links.py b/src/landlab/components/network_sediment_transporter/sediment_pulser_at_links.py similarity index 95% rename from landlab/components/network_sediment_transporter/sediment_pulser_at_links.py rename to src/landlab/components/network_sediment_transporter/sediment_pulser_at_links.py index 5de4118819..04c60645bf 100644 --- a/landlab/components/network_sediment_transporter/sediment_pulser_at_links.py +++ b/src/landlab/components/network_sediment_transporter/sediment_pulser_at_links.py @@ -1,8 +1,9 @@ import numpy as np -from landlab.data_record import DataRecord - -from .sediment_pulser_base import SedimentPulserBase +from landlab.components.network_sediment_transporter.sediment_pulser_base import ( + SedimentPulserBase, +) +from landlab.data_record.data_record import DataRecord _OUT_OF_NETWORK = -2 diff --git a/landlab/components/network_sediment_transporter/sediment_pulser_base.py b/src/landlab/components/network_sediment_transporter/sediment_pulser_base.py similarity index 95% rename from landlab/components/network_sediment_transporter/sediment_pulser_base.py rename to src/landlab/components/network_sediment_transporter/sediment_pulser_base.py index 303ae10df2..b2ef93c6df 100644 --- a/landlab/components/network_sediment_transporter/sediment_pulser_base.py +++ b/src/landlab/components/network_sediment_transporter/sediment_pulser_base.py @@ -1,4 +1,4 @@ -from landlab import Component +from landlab.core.model_component import Component from landlab.grid.network import NetworkModelGrid diff --git a/landlab/components/network_sediment_transporter/sediment_pulser_each_parcel.py b/src/landlab/components/network_sediment_transporter/sediment_pulser_each_parcel.py similarity index 96% rename from landlab/components/network_sediment_transporter/sediment_pulser_each_parcel.py rename to src/landlab/components/network_sediment_transporter/sediment_pulser_each_parcel.py index c5e135dc82..772bde1b96 100644 --- a/landlab/components/network_sediment_transporter/sediment_pulser_each_parcel.py +++ b/src/landlab/components/network_sediment_transporter/sediment_pulser_each_parcel.py @@ -5,7 +5,7 @@ from landlab.components.network_sediment_transporter.sediment_pulser_base import ( SedimentPulserBase, ) -from landlab.data_record import DataRecord +from landlab.data_record.data_record import DataRecord _OUT_OF_NETWORK = -2 diff --git a/landlab/components/nonlinear_diffusion/Perron_nl_diffuse.py b/src/landlab/components/nonlinear_diffusion/Perron_nl_diffuse.py similarity index 100% rename from landlab/components/nonlinear_diffusion/Perron_nl_diffuse.py rename to src/landlab/components/nonlinear_diffusion/Perron_nl_diffuse.py diff --git a/landlab/components/nonlinear_diffusion/__init__.py b/src/landlab/components/nonlinear_diffusion/__init__.py similarity index 100% rename from landlab/components/nonlinear_diffusion/__init__.py rename to src/landlab/components/nonlinear_diffusion/__init__.py diff --git a/landlab/components/normal_fault/__init__.py b/src/landlab/components/normal_fault/__init__.py similarity index 100% rename from landlab/components/normal_fault/__init__.py rename to src/landlab/components/normal_fault/__init__.py diff --git a/landlab/components/normal_fault/normal_fault.py b/src/landlab/components/normal_fault/normal_fault.py similarity index 100% rename from landlab/components/normal_fault/normal_fault.py rename to src/landlab/components/normal_fault/normal_fault.py diff --git a/landlab/components/overland_flow/__init__.py b/src/landlab/components/overland_flow/__init__.py similarity index 100% rename from landlab/components/overland_flow/__init__.py rename to src/landlab/components/overland_flow/__init__.py diff --git a/landlab/components/overland_flow/_links.py b/src/landlab/components/overland_flow/_links.py similarity index 100% rename from landlab/components/overland_flow/_links.py rename to src/landlab/components/overland_flow/_links.py diff --git a/landlab/components/overland_flow/_neighbors_at_link.pyx b/src/landlab/components/overland_flow/_neighbors_at_link.pyx similarity index 100% rename from landlab/components/overland_flow/_neighbors_at_link.pyx rename to src/landlab/components/overland_flow/_neighbors_at_link.pyx diff --git a/landlab/components/overland_flow/generate_overland_flow_Bates.py b/src/landlab/components/overland_flow/generate_overland_flow_Bates.py similarity index 100% rename from landlab/components/overland_flow/generate_overland_flow_Bates.py rename to src/landlab/components/overland_flow/generate_overland_flow_Bates.py diff --git a/landlab/components/overland_flow/generate_overland_flow_deAlmeida.py b/src/landlab/components/overland_flow/generate_overland_flow_deAlmeida.py similarity index 100% rename from landlab/components/overland_flow/generate_overland_flow_deAlmeida.py rename to src/landlab/components/overland_flow/generate_overland_flow_deAlmeida.py diff --git a/landlab/components/overland_flow/generate_overland_flow_implicit_kinwave.py b/src/landlab/components/overland_flow/generate_overland_flow_implicit_kinwave.py similarity index 99% rename from landlab/components/overland_flow/generate_overland_flow_implicit_kinwave.py rename to src/landlab/components/overland_flow/generate_overland_flow_implicit_kinwave.py index 16e8e3f9bd..ee993e1246 100644 --- a/landlab/components/overland_flow/generate_overland_flow_implicit_kinwave.py +++ b/src/landlab/components/overland_flow/generate_overland_flow_implicit_kinwave.py @@ -246,11 +246,11 @@ def __init__( # This array holds, for each node, the sum of sqrt(slope) x face width # for each link/face. - self._grad_width_sum = grid.zeros("node") + self._grad_width_sum = grid.zeros(at="node") # This array holds the prefactor in the algebraic equation that we # will find a solution for. - self._alpha = grid.zeros("node") + self._alpha = grid.zeros(at="node") # Instantiate flow router self._flow_accum = FlowAccumulator( diff --git a/landlab/components/overland_flow/generate_overland_flow_kinwave.py b/src/landlab/components/overland_flow/generate_overland_flow_kinwave.py similarity index 100% rename from landlab/components/overland_flow/generate_overland_flow_kinwave.py rename to src/landlab/components/overland_flow/generate_overland_flow_kinwave.py diff --git a/landlab/components/overland_flow/kinematic_wave_rengers.py b/src/landlab/components/overland_flow/kinematic_wave_rengers.py similarity index 98% rename from landlab/components/overland_flow/kinematic_wave_rengers.py rename to src/landlab/components/overland_flow/kinematic_wave_rengers.py index 9a27eb8065..70aae729b2 100644 --- a/landlab/components/overland_flow/kinematic_wave_rengers.py +++ b/src/landlab/components/overland_flow/kinematic_wave_rengers.py @@ -176,8 +176,8 @@ def __init__( vert_grads = self.grid.map_mean_of_vertical_active_links_to_node(all_grads) self._hozslopept5 = np.fabs(hoz_grads[active]) ** 0.5 self._vertslopept5 = np.fabs(vert_grads[active]) ** 0.5 - self._velx = self.grid.zeros("node", dtype=float) - self._vely = self.grid.zeros("node", dtype=float) + self._velx = self.grid.zeros(at="node", dtype=float) + self._vely = self.grid.zeros(at="node", dtype=float) self._qy = np.zeros(grid.number_of_nodes + 1, dtype=float) self._qx = np.zeros(grid.number_of_nodes + 1, dtype=float) self._poshozgrads = hoz_grads > 0.0 @@ -200,7 +200,7 @@ def __init__( # ^add this value to the anchor nodes to update the BCs # these also need to be mapped to active_IDs: - blank_nodes = self.grid.zeros("node", dtype=bool) + blank_nodes = self.grid.zeros(at="node", dtype=bool) blank_nodes[fixed_grad_nodes] = True self._fixed_grad_nodes_active = np.where(blank_nodes[active])[0] blank_nodes.fill(False) @@ -355,7 +355,7 @@ def update_topographic_params(self): fixed_grad_anchors = self.grid.fixed_gradient_boundary_node_anchor_node # ^add this value to the anchor nodes to update the BCs # these also need to be mapped to active_IDs: - blank_nodes = self.grid.zeros("node", dtype=bool) + blank_nodes = self.grid.zeros(at="node", dtype=bool) blank_nodes[fixed_grad_nodes] = True self._fixed_grad_nodes_active = np.where(blank_nodes[active])[0] blank_nodes.fill(False) diff --git a/landlab/components/overland_flow/linear_diffusion_overland_flow_router.py b/src/landlab/components/overland_flow/linear_diffusion_overland_flow_router.py similarity index 100% rename from landlab/components/overland_flow/linear_diffusion_overland_flow_router.py rename to src/landlab/components/overland_flow/linear_diffusion_overland_flow_router.py diff --git a/landlab/components/pet/__init__.py b/src/landlab/components/pet/__init__.py similarity index 100% rename from landlab/components/pet/__init__.py rename to src/landlab/components/pet/__init__.py diff --git a/landlab/components/pet/potential_evapotranspiration_field.py b/src/landlab/components/pet/potential_evapotranspiration_field.py similarity index 100% rename from landlab/components/pet/potential_evapotranspiration_field.py rename to src/landlab/components/pet/potential_evapotranspiration_field.py diff --git a/landlab/components/plant_competition_ca/__init__.py b/src/landlab/components/plant_competition_ca/__init__.py similarity index 100% rename from landlab/components/plant_competition_ca/__init__.py rename to src/landlab/components/plant_competition_ca/__init__.py diff --git a/landlab/components/plant_competition_ca/plant_competition_ca.py b/src/landlab/components/plant_competition_ca/plant_competition_ca.py similarity index 100% rename from landlab/components/plant_competition_ca/plant_competition_ca.py rename to src/landlab/components/plant_competition_ca/plant_competition_ca.py diff --git a/landlab/components/potentiality_flowrouting/__init__.py b/src/landlab/components/potentiality_flowrouting/__init__.py similarity index 100% rename from landlab/components/potentiality_flowrouting/__init__.py rename to src/landlab/components/potentiality_flowrouting/__init__.py diff --git a/landlab/components/potentiality_flowrouting/route_flow_by_boundary.py b/src/landlab/components/potentiality_flowrouting/route_flow_by_boundary.py similarity index 99% rename from landlab/components/potentiality_flowrouting/route_flow_by_boundary.py rename to src/landlab/components/potentiality_flowrouting/route_flow_by_boundary.py index 86b488e7d4..786f043c33 100644 --- a/landlab/components/potentiality_flowrouting/route_flow_by_boundary.py +++ b/src/landlab/components/potentiality_flowrouting/route_flow_by_boundary.py @@ -196,7 +196,7 @@ def __init__( if self._route_on_diagonals and self._raster: self._discharges_at_link = np.empty(grid.number_of_d8) else: - self._discharges_at_link = self._grid.empty("link") + self._discharges_at_link = self._grid.empty(at="link") def run_one_step(self): """Route surface-water flow over a landscape. diff --git a/landlab/components/priority_flood_flow_router/README.md b/src/landlab/components/priority_flood_flow_router/README.md similarity index 100% rename from landlab/components/priority_flood_flow_router/README.md rename to src/landlab/components/priority_flood_flow_router/README.md diff --git a/landlab/components/priority_flood_flow_router/__init__.py b/src/landlab/components/priority_flood_flow_router/__init__.py similarity index 100% rename from landlab/components/priority_flood_flow_router/__init__.py rename to src/landlab/components/priority_flood_flow_router/__init__.py diff --git a/landlab/components/priority_flood_flow_router/cfuncs.pyx b/src/landlab/components/priority_flood_flow_router/cfuncs.pyx similarity index 100% rename from landlab/components/priority_flood_flow_router/cfuncs.pyx rename to src/landlab/components/priority_flood_flow_router/cfuncs.pyx diff --git a/landlab/components/priority_flood_flow_router/priority_flood_flow_router.py b/src/landlab/components/priority_flood_flow_router/priority_flood_flow_router.py similarity index 100% rename from landlab/components/priority_flood_flow_router/priority_flood_flow_router.py rename to src/landlab/components/priority_flood_flow_router/priority_flood_flow_router.py diff --git a/landlab/components/profiler/__init__.py b/src/landlab/components/profiler/__init__.py similarity index 100% rename from landlab/components/profiler/__init__.py rename to src/landlab/components/profiler/__init__.py diff --git a/landlab/components/profiler/base_profiler.py b/src/landlab/components/profiler/base_profiler.py similarity index 100% rename from landlab/components/profiler/base_profiler.py rename to src/landlab/components/profiler/base_profiler.py diff --git a/landlab/components/profiler/channel_profiler.py b/src/landlab/components/profiler/channel_profiler.py similarity index 100% rename from landlab/components/profiler/channel_profiler.py rename to src/landlab/components/profiler/channel_profiler.py diff --git a/landlab/components/profiler/profiler.py b/src/landlab/components/profiler/profiler.py similarity index 100% rename from landlab/components/profiler/profiler.py rename to src/landlab/components/profiler/profiler.py diff --git a/landlab/components/profiler/trickle_down_profiler.py b/src/landlab/components/profiler/trickle_down_profiler.py similarity index 100% rename from landlab/components/profiler/trickle_down_profiler.py rename to src/landlab/components/profiler/trickle_down_profiler.py diff --git a/landlab/components/radiation/__init__.py b/src/landlab/components/radiation/__init__.py similarity index 100% rename from landlab/components/radiation/__init__.py rename to src/landlab/components/radiation/__init__.py diff --git a/landlab/components/radiation/radiation.py b/src/landlab/components/radiation/radiation.py similarity index 100% rename from landlab/components/radiation/radiation.py rename to src/landlab/components/radiation/radiation.py diff --git a/src/landlab/components/river_flow_dynamics/__init__.py b/src/landlab/components/river_flow_dynamics/__init__.py new file mode 100644 index 0000000000..ba4d1f1711 --- /dev/null +++ b/src/landlab/components/river_flow_dynamics/__init__.py @@ -0,0 +1,3 @@ +from .river_flow_dynamics import river_flow_dynamics + +__all__ = ["river_flow_dynamics"] diff --git a/src/landlab/components/river_flow_dynamics/river_flow_dynamics.py b/src/landlab/components/river_flow_dynamics/river_flow_dynamics.py new file mode 100644 index 0000000000..d15b4a3d70 --- /dev/null +++ b/src/landlab/components/river_flow_dynamics/river_flow_dynamics.py @@ -0,0 +1,1937 @@ +"""Simulate surface fluid flow based on Casulli and Cheng (1992). + +This component implements a semi-implicit, semi-Lagrangian finite-volume approximation of +the depth-averaged shallow water equations originally proposed by Casulli and Cheng in 1992, +and subsequent related work. + +Written by Sebastian Bernal and Angel Monsalve. + +Last updated: October 18, 2023 + +Examples +-------- + +River Flow Dynamics Simulation Example + +This example demonstrates how to simulate river flow dynamics using the Landlab library. + +First, import necessary libraries such as NumPy, Matplotlib, and Landlab components. + +>>> import numpy as np +>>> import matplotlib.pyplot as plt +>>> from landlab import RasterModelGrid +>>> from landlab.components import river_flow_dynamics +>>> from landlab.io import read_esri_ascii +>>> from landlab.plot.imshow import imshow_grid + +Create a rectangular grid for flow dynamics calculations with specified dimensions +and cell size. + +>>> nRows = 20 +>>> nCols = 60 +>>> cellSize = 0.1 +>>> grid = RasterModelGrid((nRows, nCols), xy_spacing=(cellSize, cellSize)) + +Defining the Topography: Set up the initial topographic elevation for the grid, +creating a basic rectangular channel with a slope of 0.01. + +>>> te = grid.add_zeros("topographic__elevation", at="node") +>>> te += 0.059 - 0.01 * grid.x_of_node +>>> te[grid.y_of_node > 1.5] = 1.0 +>>> te[grid.y_of_node < 0.5] = 1.0 + +We could visualize the elevation profile using 'imshow_grid'. +imshow_grid(grid, "topographic__elevation") +Explore the grid's middle longitudinal section. + +>>> middleBedProfile = np.reshape(te, (nRows, nCols))[10, :] +>>> np.round(middleBedProfile, 3) +array([ 0.059, 0.058, 0.057, 0.056, 0.055, 0.054, 0.053, 0.052, + 0.051, 0.05 , 0.049, 0.048, 0.047, 0.046, 0.045, 0.044, + 0.043, 0.042, 0.041, 0.04 , 0.039, 0.038, 0.037, 0.036, + 0.035, 0.034, 0.033, 0.032, 0.031, 0.03 , 0.029, 0.028, + 0.027, 0.026, 0.025, 0.024, 0.023, 0.022, 0.021, 0.02 , + 0.019, 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.012, + 0.011, 0.01 , 0.009, 0.008, 0.007, 0.006, 0.005, 0.004, + 0.003, 0.002, 0.001, -0. ]) + +Instantiating the Component: Initialize the river_flow_dynamics component with +specified parameters, including the time step and Manning's roughness coefficient. +The grid will need some data to run the river_flow_dynamics component. +To check the names of the required inputs, use the 'input_var_names' class property. + +>>> river_flow_dynamics.input_var_names +('surface_water__depth', + 'surface_water__elevation', + 'surface_water__velocity', + 'topographic__elevation') + +To determine where these fields are mapped, use 'var_mapping'. + +>>> river_flow_dynamics.var_mapping +(('surface_water__depth', 'node'), + ('surface_water__elevation', 'node'), + ('surface_water__velocity', 'link'), + ('topographic__elevation', 'node')) + +Create fields of data for each of these input variables. The channel is initially empty, +so we create the water depth field. + +>>> h = grid.add_zeros("surface_water__depth", at="node") + +Water velocity is zero everywhere since there is no water yet. + +>>> vel = grid.add_zeros("surface_water__velocity", at="link") + +Calculate the initial water surface elevation from water depth and topographic elevation. + +>>> wse = grid.add_zeros("surface_water__elevation", at="node") +>>> wse += h + te + +Specify the nodes at which water enters the domain, and also the associated links. +These will serve as the inlet boundary conditions for water depth and velocity. +In this case, water flows from left to right at a depth of 0.5 meters with a velocity +of 0.45 m/s. + +>>> fixed_entry_nodes = np.arange(300, 910, 60) +>>> fixed_entry_links = grid.links_at_node[fixed_entry_nodes][:, 0] + +Set the fixed values for these entry nodes/links. + +>>> entry_nodes_h_values = np.full(11, 0.5) +>>> entry_links_vel_values = np.full(11, 0.45) + +Instantiate 'river_flow_dynamics' with the previously defined arguments. + +>>> rfd = river_flow_dynamics( +... grid, +... dt=0.1, +... mannings_n=0.012, +... fixed_entry_nodes=fixed_entry_nodes, +... fixed_entry_links=fixed_entry_links, +... entry_nodes_h_values=entry_nodes_h_values, +... entry_links_vel_values=entry_links_vel_values, +... ) + +Run the simulation for 100 timesteps (equivalent to 10 seconds). + +>>> n_timesteps = 100 +>>> for timestep in range(n_timesteps): +... rfd.run_one_step() +... + +Examine the flow depth at the center of the channel after 10 seconds. + +The expected flow depth is: + +>>> flow_depth_expected = np.array( +... [ +... 0.5, +... 0.491, +... 0.48, +... 0.473, +... 0.467, +... 0.464, +... 0.46, +... 0.458, +... 0.455, +... 0.454, +... 0.452, +... 0.45, +... 0.449, +... 0.448, +... 0.446, +... 0.445, +... 0.443, +... 0.442, +... 0.441, +... 0.439, +... 0.438, +... 0.437, +... 0.435, +... 0.434, +... 0.433, +... 0.431, +... 0.43, +... 0.428, +... 0.427, +... 0.425, +... 0.424, +... 0.422, +... 0.421, +... 0.419, +... 0.418, +... 0.416, +... 0.415, +... 0.413, +... 0.412, +... 0.41, +... 0.409, +... 0.407, +... 0.405, +... 0.404, +... 0.402, +... 0.401, +... 0.399, +... 0.397, +... 0.396, +... 0.394, +... 0.393, +... 0.391, +... 0.389, +... 0.388, +... 0.386, +... 0.384, +... 0.383, +... 0.381, +... 0.379, +... 0.378, +... ] +... ) + +The calculated flow_depth is: + +>>> flow_depth = np.reshape(grid["node"]["surface_water__depth"], (nRows, nCols))[10, :] + +The average (absolute) difference between predited and expected in percentage is: + +>>> np.round(np.abs(np.mean(flow_depth_expected - flow_depth)) * 100, 0) +0.0 + +And the velocity at links along the center of the channel. + +The expected flow velocity is: + +>>> flow_velocity_expected = np.array( +... [ +... 0.45, +... 0.595, +... 0.694, +... 0.754, +... 0.795, +... 0.821, +... 0.838, +... 0.848, +... 0.855, +... 0.858, +... 0.86, +... 0.86, +... 0.858, +... 0.857, +... 0.858, +... 0.86, +... 0.864, +... 0.866, +... 0.866, +... 0.866, +... 0.866, +... 0.867, +... 0.869, +... 0.872, +... 0.874, +... 0.875, +... 0.876, +... 0.878, +... 0.88, +... 0.881, +... 0.882, +... 0.884, +... 0.885, +... 0.886, +... 0.888, +... 0.889, +... 0.89, +... 0.892, +... 0.893, +... 0.894, +... 0.896, +... 0.898, +... 0.898, +... 0.901, +... 0.901, +... 0.9, +... 0.904, +... 0.906, +... 0.902, +... 0.904, +... 0.91, +... 0.907, +... 0.904, +... 0.911, +... 0.911, +... 0.907, +... 0.909, +... 0.913, +... 0.914, +... ] +... ) + +The calculated flow velocity is: + +>>> linksAtCenter = grid.links_at_node[np.array(np.arange(600, 660))][:-1, 0] +>>> flow_velocity = grid["link"]["surface_water__velocity"][linksAtCenter] +>>> flow_velocity = np.round(flow_velocity, 3) + +The average (absolute) difference between predited and expected +flow velocity in percentage is: + +>>> np.round(np.abs(np.mean(flow_velocity_expected - flow_velocity)) * 100, 0) +0.0 +""" + +import numpy as np +import scipy as sp + +from landlab import Component + + +class river_flow_dynamics(Component): + """Simulate surface fluid flow based on Casulli and Cheng (1992). + + This Landlab component simulates surface fluid flow using the approximations of the + 2D shallow water equations developed by Casulli and Cheng in 1992. It calculates water + depth and velocity across the raster grid, given a specific input discharge. + + References + ---------- + **Required Software Citation(s) Specific to this Component** + + None Listed + + **Additional References** + + Casulli, V., Cheng, R.T. (1992). “Semi-implicit finite difference methods for + three-dimensional shallow water flow”. International Journal for Numerical Methods + in Fluids. 15: 629-648. + https://doi.org/10.1002/fld.1650150602 + """ + + _name = "river_flow_dynamics" + + _unit_agnostic = False + + _info = { + "surface_water__depth": { + "dtype": float, + "intent": "inout", + "optional": False, + "units": "m", + "mapping": "node", + "doc": "Depth of water on the surface", + }, + "surface_water__velocity": { + "dtype": float, + "intent": "inout", + "optional": False, + "units": "m/s", + "mapping": "link", + "doc": "Speed of water flow above the surface", + }, + "surface_water__elevation": { + "dtype": float, + "intent": "inout", + "optional": False, + "units": "m", + "mapping": "node", + "doc": "Water surface elevation at time N", + }, + "topographic__elevation": { + "dtype": float, + "intent": "in", + "optional": False, + "units": "m", + "mapping": "node", + "doc": "Land surface topographic elevation", + }, + } + + def __init__( + self, + grid, + dt=0.01, # Sets the time step (s) + eddy_viscosity=1e-4, # ddy viscosity coefficient + mannings_n=0.012, # Manning's n + threshold_depth=0.01, # Sets the wet/dry threshold + theta=0.5, # Degree of 'implicitness' of the solution + fixed_entry_nodes=None, # Node IDs where flow enters the domain + fixed_entry_links=None, # Link IDs where flow enters the domain + entry_nodes_h_values=None, # Water depth at nodes where flow enters the domain + entry_links_vel_values=None, # Water velocity at links where flow enters the domain + pcg_tolerance=1e-05, # Preconditioned Conjugate Gradient convergence tolerance + pcg_max_iterations=None, # Preconditioned Conjugate Gradient max iterations + surface_water__elevation_at_N_1=0.0, # Surf water elev at prev. time + surface_water__elevation_at_N_2=0.0, # Surf water elev at prev prev time + surface_water__velocity_at_N_1=0.0, # Speed of water at prev time + ): + """Simulate the vertical-averaged surface fluid flow + + Simulate vertical-averaged surface fluid flow using the Casulli and Cheng (1992) + approximations of the 2D shallow water equations. This Landlab component calculates + water depth and velocity across the raster grid based on a given input discharge. + + Parameters + ---------- + grid : RasterModelGrid + A grid. + dt : float, optional + Time step in seconds. If not provided, it is calculated from the CFL condition. + eddy_viscosity : float, optional + Eddy viscosity coefficient. Default = 1e-4 :math:`m^2 / s` + mannings_n : float or array_like, optional + Manning's roughness coefficient. Default = 0.012 :math:`s / m^1/3` + threshold_depth : float, optional + Threshold at which a cell is considered wet. Default = 0.01 m + theta : float, optional + Degree of 'implicitness' of the solution, ranging between 0.5 and 1.0. + Default: 0.5. When set to 0.5, the approximation is centered in time; + when set to 1.0, it is fully implicit. + fixed_entry_nodes : array_like or None, optional + Node IDs where flow enters the domain (Dirichlet boundary condition). + If not provided, existing water in the domain is not renewed. + fixed_entry_links : array_like or None, optional + Link IDs where flow enters the domain (Dirichlet boundary condition). + If not provided, existing water in the domain is not renewed. + entry_nodes_h_values : array_like, optional + Water depth values at nodes where flow enters the domain + (Dirichlet boundary condition). + If not provided, existing water in the domain is not renewed. + entry_links_vel_values : array_like, optional + Water velocity values at links where flow enters the domain + (Dirichlet boundary condition). + If not provided, existing water in the domain is not renewed. + pcg_tolerance : float, optional + Tolerance for convergence in the Preconditioned Conjugate Gradient + method. Default: 1e-05. + pcg_max_iterations : integer, optional + Maximum number of iterations for the Preconditioned Conjugate Gradient + method. Iteration stops after maxiter steps, even if the specified + tolerance is not achieved. Default: None. + surface_water__elevation_at_N_1: array_like of float, optional + Water surface elevation at nodes at time N-1 [m]. + surface_water__elevation_at_N_2: array_like of float, optional + Water surface elevation at nodes at time N-2 [m]. + surface_water__velocity_at_N_1: array_like of float, optional + Speed of water flow at links above the surface at time N-1 [m/s]. + """ + super().__init__(grid) + + # User inputs + self._dt = dt + self._eddy_viscosity = eddy_viscosity + self._g = sp.constants.g + self._mannings_n = mannings_n + self._threshold_depth = threshold_depth + self._theta = theta + self._pcg_tolerance = pcg_tolerance + self._pcg_max_iterations = pcg_max_iterations + + # Getting topography for further calculations + self._additional_z = 10 # To set the virtual reference elevation (z=0) + self._max_elevation = self._grid.at_node["topographic__elevation"].max() + self._z = ( + self._max_elevation + + self._additional_z + - self._grid.at_node["topographic__elevation"] + ) + + self._fixed_entry_nodes = [] if fixed_entry_nodes is None else fixed_entry_nodes + self._fixed_entry_links = [] if fixed_entry_links is None else fixed_entry_links + self._entry_nodes_h_values = ( + [] if entry_nodes_h_values is None else entry_nodes_h_values + ) + self._entry_links_vel_values = ( + [] if entry_links_vel_values is None else entry_links_vel_values + ) + + # Creating fields if they don't exist + if "surface_water__depth" not in self.grid.at_node: + grid.add_zeros( + "surface_water__depth", + at="node", + units=self._info["surface_water__depth"]["units"], + ) + + if "surface_water__velocity" not in self.grid.at_link: + grid.add_zeros( + "surface_water__velocity", + at="link", + units=self._info["surface_water__velocity"]["units"], + ) + + if "surface_water__elevation" not in self.grid.at_node: + grid.add_field( + "surface_water__elevation", + self.grid.at_node["surface_water__depth"] - self._z, + at="node", + units=self._info["surface_water__elevation"]["units"], + ) + + self._surface_water__elevation_at_N_1 = np.broadcast_to( + np.asarray(surface_water__elevation_at_N_1).flat, grid.number_of_nodes + ) + + self._surface_water__elevation_at_N_2 = np.broadcast_to( + np.asarray(surface_water__elevation_at_N_2).flat, grid.number_of_nodes + ) + + self._surface_water__velocity_at_N_1 = np.broadcast_to( + np.asarray(surface_water__velocity_at_N_1).flat, grid.number_of_links + ) + + # Assigning a class variable to the fields + self._h = self._grid.at_node["surface_water__depth"] + self._vel = self._grid.at_link["surface_water__velocity"] + self._vel_at_N_1 = self._surface_water__velocity_at_N_1 + self._eta = self._grid.at_node["surface_water__elevation"] - ( + self._max_elevation + self._additional_z + ) + self._eta_at_N_1 = self._surface_water__elevation_at_N_1 - ( + self._max_elevation + self._additional_z + ) + self._eta_at_N_2 = self._surface_water__elevation_at_N_2 - ( + self._max_elevation + self._additional_z + ) + + # Open boundary conditions + # water can leave the domain at everywhere, only limited by topography + self.grid.status_at_node[self.grid.nodes_at_left_edge] = ( + self._grid.BC_NODE_IS_FIXED_VALUE + ) + self.grid.status_at_node[self.grid.nodes_at_right_edge] = ( + self._grid.BC_NODE_IS_FIXED_VALUE + ) + self.grid.status_at_node[self.grid.nodes_at_bottom_edge] = ( + self._grid.BC_NODE_IS_FIXED_VALUE + ) + self.grid.status_at_node[self.grid.nodes_at_top_edge] = ( + self._grid.BC_NODE_IS_FIXED_VALUE + ) + + self._adjacent_nodes_at_corner_nodes = np.array( + [ + # Top right + [self.grid.nodes_at_top_edge[-2], self.grid.nodes_at_right_edge[-2]], + # Top left + [self.grid.nodes_at_top_edge[1], self.grid.nodes_at_left_edge[-2]], + # Bottom left + [self.grid.nodes_at_left_edge[1], self.grid.nodes_at_bottom_edge[1]], + # Bottom right + [self.grid.nodes_at_right_edge[1], self.grid.nodes_at_bottom_edge[-2]], + ] + ) + + # Updating open boundary nodes/links + self._open_boundary_nodes = self._grid.boundary_nodes + self._open_boundary_links = np.unique( + self._grid.links_at_node[self._open_boundary_nodes] + ) + + self._open_boundary_nodes = np.setdiff1d( + self._open_boundary_nodes, self._fixed_entry_nodes + ) + self._open_boundary_links = np.setdiff1d( + self._open_boundary_links, self._fixed_entry_links + ) + + self._fixed_corner_nodes = np.setdiff1d( + self.grid.corner_nodes, self._open_boundary_nodes + ) + self._open_corner_nodes = np.setdiff1d( + self.grid.corner_nodes, self._fixed_corner_nodes + ) + + self._open_boundary_nodes = np.setdiff1d( + self._open_boundary_nodes, self._open_corner_nodes + ) + + # Using fixed entry nodes/links only when they exist + self._fixed_nodes_exist = len(self._fixed_entry_nodes) > 0 + self._fixed_links_exist = len(self._fixed_entry_links) > 0 + + # Updating grid fixed values according to the user input + if self._fixed_nodes_exist: + self._h[self._fixed_entry_nodes] = entry_nodes_h_values + self._eta[self._fixed_entry_nodes] = ( + entry_nodes_h_values - self._z[self._fixed_entry_nodes] + ) + if self._fixed_links_exist: + self._vel[self._fixed_entry_links] = entry_links_vel_values + + # Mapping node values at links + self._z_at_links = self._grid.map_mean_of_link_nodes_to_link(self._z) + self._h_at_links = self._grid.map_mean_of_link_nodes_to_link(self._h) + self._eta_at_links = self._h_at_links - self._z_at_links + + # Passing values to the time step N + self._h_at_N = self._h.copy() + self._h_at_N_at_links = self._grid.map_mean_of_link_nodes_to_link(self._h_at_N) + + self._vel_at_N = self._vel.copy() + self._eta_at_N = self._eta.copy() + + # Boolean for wet nodes/links + self._wet_nodes = np.where(self._h_at_N >= self._threshold_depth, True, False) + self._wet_links = np.where( + self._h_at_N_at_links >= self._threshold_depth, True, False + ) + + # Defining some functions + def find_nearest_link(self, x_coordinates, y_coordinates, objective_links="all"): + """Link nearest a point. + + Find the index to the link nearest the given x, y coordinates. + Returns the indices of the links nearest the given coordinates. + + """ + # Defining the set of links that are going to be used + if objective_links == "all": + objective_links = np.arange(self._grid.number_of_links) + elif objective_links == "horizontal": + objective_links = self.grid.horizontal_links + elif objective_links == "vertical": + objective_links = self.grid.vertical_links + # if (objective_links == "all") END + + # Coordinates of all the RasterModelGrid links + x_of_objective_links = np.unique(self._grid.xy_of_link[objective_links][:, 0]) + y_of_objective_links = np.unique(self._grid.xy_of_link[objective_links][:, 1]) + + # Getting the closest link-coordinate to the exit point + tempCalc1 = np.repeat(x_coordinates, len(x_of_objective_links)).reshape( + len(x_coordinates), len(x_of_objective_links) + ) + tempCalc2 = np.tile(x_of_objective_links, len(x_coordinates)).reshape( + len(x_coordinates), len(x_of_objective_links) + ) + indices = abs(tempCalc2 - tempCalc1).argmin(axis=1) + nearest_x = x_of_objective_links[indices] + + tempCalc1 = np.repeat(y_coordinates, len(y_of_objective_links)).reshape( + len(y_coordinates), len(y_of_objective_links) + ) + tempCalc2 = np.tile(y_of_objective_links, len(y_coordinates)).reshape( + len(y_coordinates), len(y_of_objective_links) + ) + indices = abs(tempCalc2 - tempCalc1).argmin(axis=1) + nearest_y = y_of_objective_links[indices] + + # Getting the closest link to link + tempCalc1 = np.repeat( + nearest_x, len(self._grid.xy_of_link[objective_links][:, 0]) + ).reshape(len(nearest_x), len(self._grid.xy_of_link[objective_links][:, 0])) + tempCalc2 = np.tile( + self._grid.xy_of_link[objective_links][:, 0], len(x_coordinates) + ).reshape(len(x_coordinates), len(self._grid.xy_of_link[objective_links][:, 0])) + tempB1 = tempCalc1 == tempCalc2 + + tempCalc1 = np.repeat( + nearest_y, len(self._grid.xy_of_link[objective_links][:, 1]) + ).reshape(len(nearest_y), len(self._grid.xy_of_link[objective_links][:, 1])) + tempCalc2 = np.tile( + self._grid.xy_of_link[objective_links][:, 1], len(y_coordinates) + ).reshape(len(y_coordinates), len(self._grid.xy_of_link[objective_links][:, 1])) + tempB2 = tempCalc1 == tempCalc2 + + tempCalc3 = ( + np.repeat(objective_links, len(x_coordinates)) + .reshape((len(objective_links), len(y_coordinates))) + .T + ) + nearest_link = tempCalc3[tempB1 * tempB2] + + return nearest_link.astype(int) + + def find_adjacent_links_at_link(self, current_link, objective_links="horizontal"): + """Get adjacent links to the link. + + This function finds the links at right, above, left and below the given link. + Similar purpose to the "adjacent_nodes_at_node" function. + Return the adjacent links in as many rows as given links. + Link IDs are returned as columns in clock-wise order starting from East (E, N, W, S). + + """ + + # Defining the set of links that are going to be used + if objective_links == "horizontal": + objective_links = self.grid.horizontal_links + reshape_pair = (self.grid.shape[0], self.grid.shape[1] - 1) + elif objective_links == "vertical": + objective_links = self.grid.vertical_links + reshape_pair = (self.grid.shape[0] - 1, self.grid.shape[1]) + # if (objective_links == "horizontal") END + + # Coordinates of the current link + x_of_current_links = self._grid.xy_of_link[current_link][:, 0] + y_of_current_links = self._grid.xy_of_link[current_link][:, 1] + + # Coordinates of all the RasterModelGrid links + x_of_objective_links = np.unique(self._grid.xy_of_link[objective_links][:, 0]) + y_of_objective_links = np.unique(self._grid.xy_of_link[objective_links][:, 1]) + + # Getting links that share the same y-coordinates + # The following matrices are built to be compared to each other. + # tempCalc1 repeats "y_of_current_links" for every x-coordinate in + # "objective_links": cols = "y_of_current_links" + # tempCalc2 repeats "y_of_objective_links" for every x-coordinate in + # the "current_link": rows = "y_of_objective_links" + # tempCalc3 give us the index to extract all the objective links that + # are located in the same row than the current link: rows = [0, 1, 2, ...] + tempCalc1 = np.repeat(y_of_current_links, len(y_of_objective_links)).reshape( + len(y_of_current_links), len(y_of_objective_links) + ) + tempCalc2 = np.tile(y_of_objective_links, len(y_of_current_links)).reshape( + len(y_of_current_links), len(y_of_objective_links) + ) + tempCalc3 = ( + np.repeat(np.arange(len(y_of_objective_links)), len(y_of_current_links)) + .reshape(len(y_of_objective_links), len(y_of_current_links)) + .T + ) + + indices = tempCalc3[tempCalc1 == tempCalc2] + links_at_same_rows = objective_links.reshape(reshape_pair)[indices, :] + links_at_same_rows = np.append( + np.array([-np.ones_like(current_link)]).T, links_at_same_rows, axis=1 + ) + links_at_same_rows = np.append( + links_at_same_rows, np.array([-np.ones_like(current_link)]).T, axis=1 + ) + + # Getting links that share the same x-coordinates + # The following matrices are built to be compared to each other. + # tempCalc1 repeats "x_of_current_links" for every x-coordinate in + # "objective_links": cols = "x_of_current_links" + # tempCalc2 repeats "x_of_objective_links" for every x-coordinate in + # the "current_link": rows = "x_of_objective_links" + # tempCalc3 give us the index to extract all the objective links that + # are located in the same row than the current link: rows = [0, 1, 2, ...] + tempCalc1 = np.repeat(x_of_current_links, len(x_of_objective_links)).reshape( + len(x_of_current_links), len(x_of_objective_links) + ) + tempCalc2 = np.tile(x_of_objective_links, len(x_of_current_links)).reshape( + len(x_of_current_links), len(x_of_objective_links) + ) + tempCalc3 = ( + np.repeat(np.arange(len(x_of_objective_links)), len(x_of_current_links)) + .reshape(len(x_of_objective_links), len(x_of_current_links)) + .T + ) + + indices = tempCalc3[tempCalc1 == tempCalc2] + links_at_same_cols = objective_links.reshape(reshape_pair)[:, indices].T + links_at_same_cols = np.append( + np.array([-np.ones_like(current_link)]).T, links_at_same_cols, axis=1 + ) + links_at_same_cols = np.append( + links_at_same_cols, np.array([-np.ones_like(current_link)]).T, axis=1 + ) + + # Extracing the adjacent links to current link (E,N,W,S) + adjacent_links_at_link = np.zeros((current_link.shape[0], 4)) + + # Rows (E,W) + tempCalc1 = np.repeat(current_link, links_at_same_rows.shape[1]).reshape( + current_link.shape[0], links_at_same_rows.shape[1] + ) + tempCalc2 = ( + np.repeat(np.arange(links_at_same_rows.shape[1]), current_link.shape[0]) + .reshape(links_at_same_rows.shape[1], current_link.shape[0]) + .T + ) + tempCalc3 = tempCalc2[tempCalc1 == links_at_same_rows] + + adjacent_links_at_link[:, 0] = links_at_same_rows[ + (range(links_at_same_rows.shape[0])), (tempCalc3 + 1) + ] + adjacent_links_at_link[:, 2] = links_at_same_rows[ + (range(links_at_same_rows.shape[0])), (tempCalc3 - 1) + ] + + # Cols (N,S) + tempCalc1 = np.repeat(current_link, links_at_same_cols.shape[1]).reshape( + current_link.shape[0], links_at_same_cols.shape[1] + ) + tempCalc2 = ( + np.repeat(np.arange(links_at_same_cols.shape[1]), current_link.shape[0]) + .reshape(links_at_same_cols.shape[1], current_link.shape[0]) + .T + ) + tempCalc3 = tempCalc2[tempCalc1 == links_at_same_cols] + + adjacent_links_at_link[:, 1] = links_at_same_cols[ + (range(links_at_same_cols.shape[0])), (tempCalc3 + 1) + ] + adjacent_links_at_link[:, 3] = links_at_same_cols[ + (range(links_at_same_cols.shape[0])), (tempCalc3 - 1) + ] + + return adjacent_links_at_link.astype(int) + + def path_line_tracing(self): + """ " Path line tracing algorithm. + + This function implements the semi-analytical path line tracing method + of Pollock (1988). + + The semi-analytical path line tracing method was developed for particle + tracking in ground water flow models. The assumption that each directional + velocity component varies linearly in its coordinate directions within + each computational volume or cell underlies the method. + Linear variation allows the derivation of an analytical expression for + the path line of a particle across a volume. + + Given an initial point located at each volume faces of the domain, particle + trayectories are traced backwards on time. Then, this function returns + the departure point of the particle at the beginning of the time step. + """ + dx, dy = self.grid.dx, self.grid.dy + + # Calculating the partial time-step TAUx, TAUy, dt - sum_partial_times + sum_partial_times = np.zeros_like(self._u_vel_of_particle) + remaining_time = self._dt - sum_partial_times + keep_tracing = np.where(remaining_time > 0, True, False) + + while np.any(remaining_time > 0): + # Using the previous exit point as the new entry point + self._x_of_particle = np.where( + keep_tracing, self._x_at_exit_point, self._x_of_particle + ) + self._y_of_particle = np.where( + keep_tracing, self._y_at_exit_point, self._y_of_particle + ) + + # Checking if the particles departs (backwards) from a link position (True) + tempBx = np.isin( + self._x_of_particle, self._grid.xy_of_link[self.grid.active_links][:, 0] + ) # Particles located on horizontal-links/vertical-faces + tempBy = np.isin( + self._y_of_particle, self._grid.xy_of_link[self.grid.active_links][:, 1] + ) # Particles located on vertical-links/horizontal-faces + + # True, particles depart from link positions. + # False, particles depart from random locations inside a cell + tempBxy = tempBx + tempBy + + # Getting surrounding links for particles located inside a cell + tempCalc1 = np.append( + np.array([self._x_of_particle]), np.array([self._y_of_particle]), axis=0 + ) + tempCalc2 = self._grid.find_nearest_node(tempCalc1, mode="raise") + temp_links_from_node = self._grid.links_at_node[tempCalc2] + nodes_from_particle = tempCalc2 + + # Getting surrounding links for particles located at link positions + tempCalc1 = np.where( + self._u_vel_of_particle >= 0, + np.array([self._x_of_particle]) - dx / 10, + np.array([self._x_of_particle]) + dx / 10, + ) + tempCalc2 = np.where( + self._v_vel_of_particle >= 0, + np.array([self._y_of_particle]) - dy / 10, + np.array([self._y_of_particle]) + dy / 10, + ) + tempCalc3 = np.append(tempCalc1, tempCalc2, axis=0) + tempCalc4 = self._grid.find_nearest_node(tempCalc3, mode="raise") + temp_links_from_link = self._grid.links_at_node[tempCalc4] + nodes_from_particle = np.where(tempBxy, tempCalc4, nodes_from_particle) + + # Getting links around particle + tempBxy = np.tile(tempBxy, 4).reshape(4, len(tempBxy)).T + links_at_particle = np.where( + tempBxy, temp_links_from_link, temp_links_from_node + ) + + # Defining links based on velocity direction + link_at_x2 = np.where( + self._u_vel_of_particle >= 0, + links_at_particle[:, 0], + links_at_particle[:, 2], + ) + link_at_x1 = np.where( + self._u_vel_of_particle >= 0, + links_at_particle[:, 2], + links_at_particle[:, 0], + ) + link_at_y2 = np.where( + self._v_vel_of_particle >= 0, + links_at_particle[:, 1], + links_at_particle[:, 3], + ) + link_at_y1 = np.where( + self._v_vel_of_particle >= 0, + links_at_particle[:, 3], + links_at_particle[:, 1], + ) + + x_at_x2 = np.where( + self._u_vel_of_particle >= 0, + self._grid.x_of_node[nodes_from_particle] + dx / 2, + self._grid.x_of_node[nodes_from_particle] - dx / 2, + ) + x_at_x1 = np.where( + self._u_vel_of_particle >= 0, + self._grid.x_of_node[nodes_from_particle] - dx / 2, + self._grid.x_of_node[nodes_from_particle] + dx / 2, + ) + y_at_y2 = np.where( + self._v_vel_of_particle >= 0, + self._grid.y_of_node[nodes_from_particle] + dy / 2, + self._grid.y_of_node[nodes_from_particle] - dy / 2, + ) + y_at_y1 = np.where( + self._v_vel_of_particle >= 0, + self._grid.y_of_node[nodes_from_particle] - dy / 2, + self._grid.y_of_node[nodes_from_particle] + dy / 2, + ) + + # Getting velocity around the particle + u_vel_at_x2 = np.where( + link_at_x2 >= 0, self._vel_at_N[link_at_x2], self._vel_at_N[link_at_x1] + ) + u_vel_at_x1 = np.where( + link_at_x1 >= 0, self._vel_at_N[link_at_x1], self._vel_at_N[link_at_x2] + ) + v_vel_at_y2 = np.where( + link_at_y2 >= 0, self._vel_at_N[link_at_y2], self._vel_at_N[link_at_y1] + ) + v_vel_at_y1 = np.where( + link_at_y1 >= 0, self._vel_at_N[link_at_y1], self._vel_at_N[link_at_y2] + ) + + # Calculating gradients for path line tracing + gradient_x_direction = (u_vel_at_x2 - u_vel_at_x1) / dx + gradient_y_direction = (v_vel_at_y2 - v_vel_at_y1) / dy + + # Calculating entry velocity for each particle + self._u_vel_of_particle = u_vel_at_x2 - gradient_x_direction * ( + x_at_x2 - self._x_of_particle + ) + self._v_vel_of_particle = v_vel_at_y2 - gradient_y_direction * ( + y_at_y2 - self._y_of_particle + ) + self._u_vel_of_particle = np.where( + self._u_vel_of_particle < 1e-10, 0, self._u_vel_of_particle + ) + self._v_vel_of_particle = np.where( + self._v_vel_of_particle < 1e-10, 0, self._v_vel_of_particle + ) + + ### Calculation accoss x-direction + # Avoiding divisions by zero + tempCalc1 = np.where( + self._u_vel_of_particle == 0, 9999, self._u_vel_of_particle + ) + tempCalc2 = np.where(u_vel_at_x1 == 0, 9999, u_vel_at_x1) + tempCalc3 = np.where(gradient_x_direction == 0, 9999, gradient_x_direction) + TAUx = (1 / tempCalc3) * np.log(abs(tempCalc1 / tempCalc2)) + + # Calculation when gradient is equal to zero + tempCalc4 = abs((self._x_of_particle - x_at_x1) / tempCalc2) + TAUx = np.where(gradient_x_direction == 0, tempCalc4, TAUx) + + # Calculation when: + # a) Uxp/Ux1 = 1, + # b) Uxp,Vyp = 0, + # c) Ux1,Vy1 = 0, and + # d) Uxp/Ux1, Vxp/Vy1 = -1 + tempCalc5 = self._u_vel_of_particle / tempCalc2 + TAUx = np.where(tempCalc5 == 1, tempCalc4, TAUx) + TAUx = np.where(self._u_vel_of_particle == 0, remaining_time, TAUx) + TAUx = np.where(u_vel_at_x1 == 0, remaining_time, TAUx) + TAUx = np.where(tempCalc5 < 0, remaining_time, TAUx) + TAUx = np.where(TAUx > self._dt, self._dt, TAUx) + TAUx = np.where(TAUx < 0, 0, TAUx) + + ### Calculation across y-direction + # Avoiding divisions by zero + tempCalc1 = np.where( + self._v_vel_of_particle == 0, 9999, self._v_vel_of_particle + ) + tempCalc2 = np.where(v_vel_at_y1 == 0, 9999, v_vel_at_y1) + tempCalc3 = np.where(gradient_y_direction == 0, 9999, gradient_y_direction) + TAUy = (1 / tempCalc3) * np.log(abs(tempCalc1 / tempCalc2)) + + # Calculation when gradient is equal to zero + tempCalc4 = abs((self._y_of_particle - y_at_y1) / tempCalc2) + TAUy = np.where(gradient_y_direction == 0, tempCalc4, TAUy) + + # Calculation when + # a) Vyp/Vy1 = 1, + # b) Uxp,Vyp = 0, + # c) Ux1,Vy1 = 0, and + # d) Uxp/Ux1, Vxp/Vy1 = -1 + tempCalc5 = self._v_vel_of_particle / tempCalc2 + TAUy = np.where(tempCalc5 == 1, tempCalc4, TAUy) + TAUy = np.where(self._v_vel_of_particle == 0, remaining_time, TAUy) + TAUy = np.where(v_vel_at_y1 == 0, remaining_time, TAUy) + TAUy = np.where(tempCalc5 < 0, remaining_time, TAUy) + TAUy = np.where(TAUy > self._dt, self._dt, TAUy) + TAUy = np.where(TAUy < 0, 0, TAUy) + + # Obtaining TAU = min(TAUx, TAUy, (dt - sum_partial_times)) + TAUx = abs(TAUx) + TAUy = abs(TAUy) + TAU = np.array((TAUx, TAUy, remaining_time)).min(axis=0) + # TAU = np.where(TAU < 1e-10, 0, TAU) + + # Calculating exit point Xe, Ye + tempCalc1 = np.where(gradient_x_direction == 0, 9999, gradient_x_direction) + tempCalc2 = np.where(gradient_y_direction == 0, 9999, gradient_y_direction) + + # Exit point Xe (tempCalc3) and Ye (tempCalc4) + tempCalc3 = x_at_x2 - (1 / tempCalc1) * ( + u_vel_at_x2 + - self._u_vel_of_particle / np.exp(gradient_x_direction * TAU) + ) + tempCalc4 = y_at_y2 - (1 / tempCalc2) * ( + v_vel_at_y2 + - self._v_vel_of_particle / np.exp(gradient_y_direction * TAU) + ) + + tempCalc3 = np.where( + gradient_x_direction == 0, + self._x_of_particle - u_vel_at_x2 * TAU, + tempCalc3, + ) + tempCalc4 = np.where( + gradient_y_direction == 0, + self._y_of_particle - v_vel_at_y2 * TAU, + tempCalc4, + ) + + tempCalc3 = np.where( + self._u_vel_of_particle == 0, self._x_of_particle, tempCalc3 + ) + tempCalc4 = np.where( + self._v_vel_of_particle == 0, self._y_of_particle, tempCalc4 + ) + + self._x_at_exit_point = np.where( + keep_tracing, tempCalc3, self._x_at_exit_point + ) + self._y_at_exit_point = np.where( + keep_tracing, tempCalc4, self._y_at_exit_point + ) + + # Updating sum of partial time-steps, TAU + sum_partial_times = np.where( + keep_tracing, sum_partial_times + TAU, self._dt + ) + + # Checking remaining_time == 0 (dt = sum_partial_times) + remaining_time = np.where( + remaining_time == 0, 0, self._dt - sum_partial_times + ) + + # Correcting entry velocity + tempCalc1 = np.where(self._u_vel_of_particle == 0, 1, 0) + tempCalc2 = np.where(self._v_vel_of_particle == 0, 1, 0) + remaining_time = np.where((tempCalc1 * tempCalc2) == 1, 0, remaining_time) + + # Correction for static particles + remaining_time = np.where( + abs(self._x_of_particle - self._x_at_exit_point) < 1e-7, + 0, + remaining_time, + ) + remaining_time = np.where( + abs(self._y_of_particle - self._y_at_exit_point) < 1e-7, + 0, + remaining_time, + ) + + # Stop tracing if a particle hits the boundary + # Keep tracing for all particles + tempCalc1 = np.repeat(True, len(keep_tracing)) + # Particle hits the left edge? + tempCalc2 = np.isin( + self._x_at_exit_point, + self._grid.x_of_node[self.grid.nodes_at_left_edge], + ) + # If above True, stop tracing for that particle + tempCalc1 = np.where(tempCalc2, False, tempCalc1) + # Particle hits the right edge? + tempCalc2 = np.isin( + self._x_at_exit_point, + self._grid.x_of_node[self.grid.nodes_at_right_edge], + ) + # If above True, stop tracing for that particle + tempCalc1 = np.where(tempCalc2, False, tempCalc1) + # Particle hits the top edge? + tempCalc2 = np.isin( + self._y_at_exit_point, self._grid.y_of_node[self.grid.nodes_at_top_edge] + ) + # If above True, stop tracing for that particle + tempCalc1 = np.where(tempCalc2, False, tempCalc1) + # Particle hits the bottom edge? + tempCalc2 = np.isin( + self._y_at_exit_point, + self._grid.y_of_node[self.grid.nodes_at_bottom_edge], + ) + # If above True, stop tracing for that particle + tempCalc1 = np.where(tempCalc2, False, tempCalc1) + # Where particles reach the boundary, remaining time is equal to zero + # remaining_time = np.where(not tempCalc1, 0, remaining_time) + remaining_time = np.where(~tempCalc1, 0, remaining_time) + + # Updating on particles that need to traced backwards + keep_tracing = np.where(remaining_time > 0, True, False) + + # WHILE "np.any(remaining_time > 0)" END + # DEF "path_line_tracing(self)" END + + def run_one_step(self): + """Calculate water depth and water velocity for a time period dt.""" + dx, dy = self.grid.dx, self.grid.dy + + # Getting velocity as U,V components + self._u_vel = self._vel_at_N[self.grid.horizontal_links] + self._v_vel = self._vel_at_N[self.grid.vertical_links] + + # Calculating Chezy coefficient + self._chezy_at_nodes = self._h_at_N ** (1 / 6) / self._mannings_n + self._chezy_at_links = self._h_at_N_at_links ** (1 / 6) / self._mannings_n + + # Computing V-velocity (vertical links) at U-velocity positions (horizontal links) + tempCalc1 = self._grid.map_mean_of_horizontal_links_to_node(self._vel_at_N) + self._u_vel_at_v_links = np.mean( + tempCalc1[self._grid.nodes_at_link[self.grid.vertical_links]], axis=1 + ) + + # Computing U-velocity (horizontal links) at V-velocity positions (vertical links) + tempCalc1 = self._grid.map_mean_of_vertical_links_to_node(self._vel_at_N) + self._v_vel_at_u_links = np.mean( + tempCalc1[self._grid.nodes_at_link[self.grid.horizontal_links]], axis=1 + ) + + # Setting A-faces + self._a_links = np.zeros_like(self._vel_at_N) + + # Setting dry links equal to 1 to avoid divisions by zero + tempCalc1 = np.where(self._wet_links, self._chezy_at_links, 1) + + # Computing A-faces + self._a_links[self.grid.horizontal_links] = ( + self._h_at_N_at_links[self.grid.horizontal_links] + + self._g + * self._dt + * ( + self._vel_at_N[self.grid.horizontal_links] ** 2 + + self._v_vel_at_u_links**2 + ) + ** (1 / 2) + / tempCalc1[self.grid.horizontal_links] + ) + self._a_links[self.grid.vertical_links] = ( + self._h_at_N_at_links[self.grid.vertical_links] + + self._g + * self._dt + * ( + self._vel_at_N[self.grid.vertical_links] ** 2 + + self._u_vel_at_v_links**2 + ) + ** (1 / 2) + / tempCalc1[self.grid.vertical_links] + ) + + # Using only wet-link values, and setting dry links equal to 1 to avoid + # divisions by zero + self._a_links = np.where(self._wet_links, self._a_links, 1) + + # Path line tracing + # U-velocity, x-direction, horizontal links + # Getting the initial particle location at each volume faces + tempB1 = [i in self.grid.horizontal_links for i in self.grid.active_links] + self._x_of_particle = self._grid.xy_of_link[:, 0][self.grid.active_links][ + tempB1 + ] + self._y_of_particle = self._grid.xy_of_link[:, 1][self.grid.active_links][ + tempB1 + ] + + # Getting the initial particle velocity + tempB2 = [i in self.grid.active_links for i in self.grid.horizontal_links] + self._u_vel_of_particle = self._u_vel[tempB2] + self._v_vel_of_particle = self._v_vel_at_u_links[tempB2] + + # Getting a first 'exit' point to begin the loop + self._x_at_exit_point = self._x_of_particle + self._y_at_exit_point = self._y_of_particle + + # Calculating path line backwards on time + self.path_line_tracing() + + # Bicuatradic interpolation + # U-velocity, x-direction, around (p,q) location + self._UsL = np.zeros_like(self._u_vel) + + # Getting V-velocity at U-links + temp_Vvel = np.zeros_like(self._vel_at_N) + temp_Vvel[self.grid.horizontal_links] = self._v_vel_at_u_links + + # Getting links around the particle and defining downstream direction based on velocity + nearest_link_to_particle = self.find_nearest_link( + self._x_at_exit_point, self._y_at_exit_point, objective_links="horizontal" + ) + adjacent_links_to_particle = self.find_adjacent_links_at_link( + nearest_link_to_particle, objective_links="horizontal" + ) + + link_at_B2 = nearest_link_to_particle + link_at_A2 = adjacent_links_to_particle[:, 1] # 1: N, top + link_at_C2 = adjacent_links_to_particle[:, 3] # 3: S, bottom + link_at_A2 = np.where(temp_Vvel[link_at_B2] >= 0, link_at_A2, link_at_C2) + link_at_C2 = np.where(temp_Vvel[link_at_B2] >= 0, link_at_C2, link_at_A2) + # We avoid "-1" links close to the boundary + link_at_A2 = np.where(link_at_A2 >= 0, link_at_A2, link_at_B2) + link_at_C2 = np.where(link_at_C2 >= 0, link_at_C2, link_at_B2) + + # Getting the surrounding links to every particle from closest link + # 0: E, Right + # 2: W, Left + link_at_A1 = self.find_adjacent_links_at_link( + link_at_A2, objective_links="horizontal" + )[:, 0] + link_at_A3 = self.find_adjacent_links_at_link( + link_at_A2, objective_links="horizontal" + )[:, 2] + + # Selecting downstream link based on velocity direction + link_at_A1 = np.where(self._vel_at_N[link_at_B2] >= 0, link_at_A1, link_at_A3) + link_at_A3 = np.where(self._vel_at_N[link_at_B2] >= 0, link_at_A3, link_at_A1) + + link_at_B1 = self.find_adjacent_links_at_link( + link_at_B2, objective_links="horizontal" + )[ + :, 0 + ] # 0: E, Right + link_at_B3 = self.find_adjacent_links_at_link( + link_at_B2, objective_links="horizontal" + )[ + :, 2 + ] # 2: W, Left + + # Selecting downstream link based on velocity direction + link_at_B1 = np.where(self._vel_at_N[link_at_B2] >= 0, link_at_B1, link_at_B3) + link_at_B3 = np.where(self._vel_at_N[link_at_B2] >= 0, link_at_B3, link_at_B1) + + link_at_C1 = self.find_adjacent_links_at_link( + link_at_C2, objective_links="horizontal" + )[ + :, 0 + ] # 0: E, Right + link_at_C3 = self.find_adjacent_links_at_link( + link_at_C2, objective_links="horizontal" + )[ + :, 2 + ] # 2: W, Left + + # Selecting downstream link based on velocity direction + link_at_C1 = np.where(self._vel_at_N[link_at_B2] >= 0, link_at_C1, link_at_C3) + link_at_C3 = np.where(self._vel_at_N[link_at_B2] >= 0, link_at_C3, link_at_C1) + + # Getting velocity around the particle + vel_at_A1 = np.where( + link_at_A1 >= 0, self._vel_at_N[link_at_A1], self._vel_at_N[link_at_A2] + ) + vel_at_A2 = self._vel_at_N[link_at_A2] + vel_at_A3 = np.where( + link_at_A3 >= 0, self._vel_at_N[link_at_A3], self._vel_at_N[link_at_A2] + ) + + vel_at_B1 = np.where( + link_at_B1 >= 0, self._vel_at_N[link_at_B1], self._vel_at_N[link_at_B2] + ) + vel_at_B2 = self._vel_at_N[link_at_B2] + vel_at_B3 = np.where( + link_at_B3 >= 0, self._vel_at_N[link_at_B3], self._vel_at_N[link_at_B2] + ) + + vel_at_C1 = np.where( + link_at_C1 >= 0, self._vel_at_N[link_at_C1], self._vel_at_N[link_at_C2] + ) + vel_at_C2 = self._vel_at_N[link_at_C2] + vel_at_C3 = np.where( + link_at_C3 >= 0, self._vel_at_N[link_at_C3], self._vel_at_N[link_at_C2] + ) + + # Getting coordinates around the particle + x_at_2 = self._grid.xy_of_link[link_at_B2][:, 0] + x_at_1 = np.where(self._vel_at_N[link_at_B2] >= 0, x_at_2 + dx, x_at_2 - dx) + x_at_3 = np.where(self._vel_at_N[link_at_B2] >= 0, x_at_2 - dx, x_at_2 + dx) + + y_at_B = self._grid.xy_of_link[link_at_B2][:, 1] + y_at_A = np.where(temp_Vvel[link_at_B2] >= 0, y_at_B + dy, y_at_B - dy) + y_at_C = np.where(temp_Vvel[link_at_B2] >= 0, y_at_B - dy, y_at_B + dy) + + # Calculating the weights W(i,j) for k around x-direction + W1 = ( + (self._x_at_exit_point - x_at_2) + * (self._x_at_exit_point - x_at_3) + / ((x_at_1 - x_at_2) * (x_at_1 - x_at_3)) + ) + W2 = ( + (self._x_at_exit_point - x_at_1) + * (self._x_at_exit_point - x_at_3) + / ((x_at_2 - x_at_1) * (x_at_2 - x_at_3)) + ) + W3 = ( + (self._x_at_exit_point - x_at_1) + * (self._x_at_exit_point - x_at_2) + / ((x_at_3 - x_at_1) * (x_at_3 - x_at_2)) + ) + + # Interpolation by row around 'x_at_exit_point' + A = W1 * vel_at_A1 + W2 * vel_at_A2 + W3 * vel_at_A3 + B = W1 * vel_at_B1 + W2 * vel_at_B2 + W3 * vel_at_B3 + C = W1 * vel_at_C1 + W2 * vel_at_C2 + W3 * vel_at_C3 + + # Calculating the weghts W(i,j) for l around y-direction + W1 = ( + (self._y_at_exit_point - y_at_B) + * (self._y_at_exit_point - y_at_C) + / ((y_at_A - y_at_B) * (y_at_A - y_at_C)) + ) + W2 = ( + (self._y_at_exit_point - y_at_A) + * (self._y_at_exit_point - y_at_C) + / ((y_at_B - y_at_A) * (y_at_B - y_at_C)) + ) + W3 = ( + (self._y_at_exit_point - y_at_A) + * (self._y_at_exit_point - y_at_B) + / ((y_at_C - y_at_A) * (y_at_C - y_at_B)) + ) + + # Calculating UsL by bicuadratic interpolation + self._UsL[tempB2] = W1 * A + W2 * B + W3 * C + + # Computing viscous terms + # U-located particles + # Central difference scheme around x- and y- direction for U-located particles + self._Uvis = np.zeros_like(self._u_vel) + + tempCalc1 = ( + self._eddy_viscosity + * self._dt + * (vel_at_B3 - 2 * vel_at_B2 + vel_at_B1) + / (dx**2) + ) + tempCalc2 = ( + self._eddy_viscosity + * self._dt + * (vel_at_C2 - 2 * vel_at_B2 + vel_at_A2) + / (dy**2) + ) + + self._Uvis[tempB2] = tempCalc1 + tempCalc2 + + # Path line tracing + # V-velocity, y-direction, vertical links + # Getting the initial particle location at each volume faces + tempB1 = [j in self.grid.vertical_links for j in self.grid.active_links] + self._x_of_particle = self._grid.xy_of_link[:, 0][self.grid.active_links][ + tempB1 + ] + self._y_of_particle = self._grid.xy_of_link[:, 1][self.grid.active_links][ + tempB1 + ] + + # Getting the initial particle velocity + tempB2 = [j in self.grid.active_links for j in self.grid.vertical_links] + self._v_vel_of_particle = self._v_vel[tempB2] + self._u_vel_of_particle = self._u_vel_at_v_links[tempB2] + + # Getting a first 'exit' point to begin the loop + self._x_at_exit_point = self._x_of_particle + self._y_at_exit_point = self._y_of_particle + + # Calculating path line backwards on time + self.path_line_tracing() + + # Bicuatradic interpolation + # V-velocity, y-direction, around (p,q) location + self._VsL = np.zeros_like(self._v_vel) + + # Getting V-velocity at U-links + temp_Uvel = np.zeros_like(self._vel_at_N) + temp_Uvel[self.grid.vertical_links] = self._u_vel_at_v_links + + # Getting links around the particle and defining downstream direction based on velocity + nearest_link_to_particle = self.find_nearest_link( + self._x_at_exit_point, self._y_at_exit_point, objective_links="vertical" + ) + adjacent_links_to_particle = self.find_adjacent_links_at_link( + nearest_link_to_particle, objective_links="vertical" + ) + + link_at_B2 = nearest_link_to_particle + link_at_A2 = adjacent_links_to_particle[:, 1] # 1: N, top + link_at_C2 = adjacent_links_to_particle[:, 3] # 3: S, bottom + link_at_A2 = np.where(self._vel_at_N[link_at_B2] >= 0, link_at_A2, link_at_C2) + link_at_C2 = np.where(self._vel_at_N[link_at_B2] >= 0, link_at_C2, link_at_A2) + link_at_A2 = np.where(link_at_A2 >= 0, link_at_A2, link_at_B2) + link_at_C2 = np.where(link_at_C2 >= 0, link_at_C2, link_at_B2) + # We avoid "-1" links close to the boundary + + # Getting the surrounding links to every particle from closest link + link_at_A1 = self.find_adjacent_links_at_link( + link_at_A2, objective_links="vertical" + )[ + :, 0 + ] # 0: E, Left + link_at_A3 = self.find_adjacent_links_at_link( + link_at_A2, objective_links="vertical" + )[ + :, 2 + ] # 2: W, Right + + # Selecting downstream link based on velocity direction + link_at_A1 = np.where(temp_Uvel[link_at_B2] >= 0, link_at_A1, link_at_A3) + link_at_A3 = np.where(temp_Uvel[link_at_B2] >= 0, link_at_A3, link_at_A1) + + link_at_B1 = self.find_adjacent_links_at_link( + link_at_B2, objective_links="vertical" + )[ + :, 0 + ] # 0: E, Left + link_at_B3 = self.find_adjacent_links_at_link( + link_at_B2, objective_links="vertical" + )[ + :, 2 + ] # 2: W, Right + + # Selecting downstream link based on velocity direction + link_at_B1 = np.where(temp_Uvel[link_at_B2] >= 0, link_at_B1, link_at_B3) + link_at_B3 = np.where(temp_Uvel[link_at_B2] >= 0, link_at_B3, link_at_B1) + + link_at_C1 = self.find_adjacent_links_at_link( + link_at_C2, objective_links="vertical" + )[ + :, 0 + ] # 0: E, Left + link_at_C3 = self.find_adjacent_links_at_link( + link_at_C2, objective_links="vertical" + )[ + :, 2 + ] # 2: W, Right + + # Selecting downstream link based on velocity direction + link_at_C1 = np.where(temp_Uvel[link_at_B2] >= 0, link_at_C1, link_at_C3) + link_at_C3 = np.where(temp_Uvel[link_at_B2] >= 0, link_at_C3, link_at_C1) + + # Getting velocity around the particle + vel_at_A1 = np.where( + link_at_A1 >= 0, self._vel_at_N[link_at_A1], self._vel_at_N[link_at_A2] + ) + vel_at_A2 = self._vel_at_N[link_at_A2] + vel_at_A3 = np.where( + link_at_A3 >= 0, self._vel_at_N[link_at_A3], self._vel_at_N[link_at_A2] + ) + + vel_at_B1 = np.where( + link_at_B1 >= 0, self._vel_at_N[link_at_B1], self._vel_at_N[link_at_B2] + ) + vel_at_B2 = self._vel_at_N[link_at_B2] + vel_at_B3 = np.where( + link_at_B3 >= 0, self._vel_at_N[link_at_B3], self._vel_at_N[link_at_B2] + ) + + vel_at_C1 = np.where( + link_at_C1 >= 0, self._vel_at_N[link_at_C1], self._vel_at_N[link_at_C2] + ) + vel_at_C2 = self._vel_at_N[link_at_C2] + vel_at_C3 = np.where( + link_at_C3 >= 0, self._vel_at_N[link_at_C3], self._vel_at_N[link_at_C2] + ) + + # Getting coordinates around the particle + x_at_2 = self._grid.xy_of_link[link_at_B2][:, 0] + x_at_1 = np.where(temp_Uvel[link_at_B2] >= 0, x_at_2 + dx, x_at_2 - dx) + x_at_3 = np.where(temp_Uvel[link_at_B2] >= 0, x_at_2 - dx, x_at_2 + dx) + + y_at_B = self._grid.xy_of_link[link_at_B2][:, 1] + y_at_A = np.where(self._vel_at_N[link_at_B2] >= 0, y_at_B + dy, y_at_B - dy) + y_at_C = np.where(self._vel_at_N[link_at_B2] >= 0, y_at_B - dy, y_at_B + dy) + + # Calculating the weights W(i,j) for k around x-direction + W1 = ( + (self._x_at_exit_point - x_at_2) + * (self._x_at_exit_point - x_at_3) + / ((x_at_1 - x_at_2) * (x_at_1 - x_at_3)) + ) + W2 = ( + (self._x_at_exit_point - x_at_1) + * (self._x_at_exit_point - x_at_3) + / ((x_at_2 - x_at_1) * (x_at_2 - x_at_3)) + ) + W3 = ( + (self._x_at_exit_point - x_at_1) + * (self._x_at_exit_point - x_at_2) + / ((x_at_3 - x_at_1) * (x_at_3 - x_at_2)) + ) + + # Interpolation by row around 'y_at_exit_point' + A = W1 * vel_at_A1 + W2 * vel_at_A2 + W3 * vel_at_A3 + B = W1 * vel_at_B1 + W2 * vel_at_B2 + W3 * vel_at_B3 + C = W1 * vel_at_C1 + W2 * vel_at_C2 + W3 * vel_at_C3 + + # Calculating the weghts W(i,j) for l around y-direction + W1 = ( + (self._y_at_exit_point - y_at_B) + * (self._y_at_exit_point - y_at_C) + / ((y_at_A - y_at_B) * (y_at_A - y_at_C)) + ) + W2 = ( + (self._y_at_exit_point - y_at_A) + * (self._y_at_exit_point - y_at_C) + / ((y_at_B - y_at_A) * (y_at_B - y_at_C)) + ) + W3 = ( + (self._y_at_exit_point - y_at_A) + * (self._y_at_exit_point - y_at_B) + / ((y_at_C - y_at_A) * (y_at_C - y_at_B)) + ) + + # Calculating VsL by bicuadratic interpolation + self._VsL[tempB2] = W1 * A + W2 * B + W3 * C + + # Computing viscous terms + # V-located particles + # Central difference scheme around x- and y- direction for V-located particles + self._Vvis = np.zeros_like(self._v_vel) + + tempCalc1 = ( + self._eddy_viscosity + * self._dt + * (vel_at_B3 - 2 * vel_at_B2 + vel_at_B1) + / (dx**2) + ) + tempCalc2 = ( + self._eddy_viscosity + * self._dt + * (vel_at_C2 - 2 * vel_at_B2 + vel_at_A2) + / (dy**2) + ) + + self._Vvis[tempB2] = tempCalc1 + tempCalc2 + + # Computing advective terms (FU, FV) + self._f_vel = np.zeros_like(self._vel_at_N) + + # Adding semi-lagrangian and viscous terms + tempCalc1 = self._UsL + self._Uvis + tempCalc2 = self._VsL + self._Vvis + + # Including the results according with links directions + self._f_vel[self.grid.horizontal_links] = tempCalc1 + self._f_vel[self.grid.vertical_links] = tempCalc2 + + # Setting G-faces + self._g_links = np.zeros_like(self._vel_at_N) + + # Computing G-faces + self._g_links = self._h_at_N_at_links * self._f_vel - self._h_at_N_at_links * ( + 1 - self._theta + ) * self._g * self._dt / dx * self._grid.calc_diff_at_link(self._eta_at_N) + + # Using only wet-link values, and setting dry links equal to 0 to avoid + # using wrong values + self._g_links = np.where(self._wet_links, self._g_links, 0) + self._g_links = np.where( + self._grid.status_at_link == 4, 0, self._g_links + ) # link is active (0), fixed (2), inactive (4) + + # Solving semi-implicit scheme with PCG method + # Building the system of equations 'A*x=b' + # Full 'A' matrix with all nodes on it + A = np.zeros((self.grid.number_of_nodes, self.grid.number_of_nodes)) + b = self.grid.zeros(at="node") # Full 'b' vector with all nodes on it + + # Getting surrounding locations for core nodes + adjacent_nodes = self._grid.adjacent_nodes_at_node[ + self.grid.core_nodes + ] # East, North, West, South + adjacent_links = self._grid.links_at_node[ + self.grid.core_nodes + ] # East, North, West, South + nodes_location = np.append( + adjacent_nodes, np.array([self.grid.core_nodes]).T, axis=1 + ) # East, North, West, South, Center + + # Boolean to differentiate between core and boundary nodes + tempB1 = np.isin(nodes_location, self.grid.core_nodes) + # Core node if tempB1 == True, boundary node if tempB1 == False + tempB2 = ~tempB1 + # Boundary node if tempB2 == True, core node if tempB2 == False + + ## Building 'b' for the right-hand side of the system + # Calculating 'delta' to build 'b' + tempCalc1 = ( + self._h_at_N_at_links[adjacent_links] * self._vel_at_N[adjacent_links] + ) + tempCalc2 = ( + self._eta_at_N[self.grid.core_nodes] + - (1 - self._theta) * self._dt / dx * (tempCalc1[:, 0] - tempCalc1[:, 2]) + - (1 - self._theta) * self._dt / dy * (tempCalc1[:, 1] - tempCalc1[:, 3]) + ) + + tempCalc1 = ( + self._h_at_N_at_links[adjacent_links] + * self._g_links[adjacent_links] + / self._a_links[adjacent_links] + ) + b[self.grid.core_nodes] = ( + tempCalc2 + - self._theta * self._dt / dx * (tempCalc1[:, 0] - tempCalc1[:, 2]) + - self._theta * self._dt / dy * (tempCalc1[:, 1] - tempCalc1[:, 3]) + ) + + ## Building 'A' for the left-hand side of the system + # Calculating coefficients for the system of equations + tempCalc1 = ( + self._h_at_N_at_links[adjacent_links] ** 2 / self._a_links[adjacent_links] + ) + coefficients = [ + -tempCalc1[:, 0] * (self._g * self._theta * self._dt / dx) ** 2, + -tempCalc1[:, 1] * (self._g * self._theta * self._dt / dy) ** 2, + -tempCalc1[:, 2] * (self._g * self._theta * self._dt / dx) ** 2, + -tempCalc1[:, 3] * (self._g * self._theta * self._dt / dy) ** 2, + 1 + + (tempCalc1[:, 0] + tempCalc1[:, 2]) + * (self._g * self._theta * self._dt / dx) ** 2 + + (tempCalc1[:, 1] + tempCalc1[:, 3]) + * (self._g * self._theta * self._dt / dy) ** 2, + ] + coefficients = np.array(coefficients).T + + ## For loop iterates through every row of 'nodes_location' to: + # a) find the node number (row in A) and choose an equation, and + # b) find the columns associated with adjacent nodes + for row in range(nodes_location.shape[0]): + # Getting the current node + current_node = nodes_location[row, 4] + # Getting the row associated with the current node + current_rows_in_A = np.array([current_node]) + # Getting the columns associated with surrounding nodes + current_cols_in_A = nodes_location[row, :] + + # Filling A matrix with coefficients associated with surrounding nodes + A[np.ix_(current_rows_in_A, current_cols_in_A)] = ( + coefficients[row, :] * tempB1[row, :] + ) + + # Adding known terms (boundary nodes) to the right-hand side of the equation + b[current_rows_in_A] = b[current_rows_in_A] - sum( + self._eta_at_N[nodes_location[row, :]] + * coefficients[row, :] + * tempB2[row, :] + ) + # for END + + # Extracting only core nodes to be solved + left_hand_side = A[np.ix_(self.grid.core_nodes, self.grid.core_nodes)] + right_hand_side = b[self.grid.core_nodes] + + # Applying PCG method to 'LHS*eta=RHS' using np.diag() as a preconditioner for 'LHS' + # Preconditioned conjugated gradient output flag: + # 0 : successful exit + # >0 : convergence to tolerance not achieved, number of iterations + # <0 : illegal input or breakdown + # Alternative preconditiner: Li = np.linalg.cholesky(left_hand_side) + Mi = np.diag(np.diag(left_hand_side)) + pcg_results = sp.sparse.linalg.cg( + left_hand_side, + right_hand_side, + M=Mi, + rtol=self._pcg_tolerance, + maxiter=self._pcg_max_iterations, + atol=0, + ) + + # Getting the new water surface elevation + self._eta = np.zeros_like(self._eta_at_N) + self._eta[self.grid.core_nodes] = pcg_results[0] + + # Boundary conditions + # Radiation Boundary Conditions of Roed & Smedstad (1984) applied on open boundaries + # Water surface elevation + ## Updating the new WSE ('eta') with the fixed nodes values + if self._fixed_nodes_exist is True: + self._eta[self._fixed_entry_nodes] = ( + self._entry_nodes_h_values - self._z[self._fixed_entry_nodes] + ) + + ## Getting the 1-line-upstream nodes from boundary nodes + tempCalc1 = self._grid.active_adjacent_nodes_at_node[self._open_boundary_nodes] + open_boundary_nodes_1_backwards = np.extract(tempCalc1 >= 0, tempCalc1) + + ## Getting the 2-line-upstream nodes from boundary nodes + # Looking for these nodes + tempCalc1 = np.tile(self._open_boundary_nodes, (4, 1)).T + tempCalc2 = self._grid.active_adjacent_nodes_at_node[ + open_boundary_nodes_1_backwards + ] # Surrounding nodes to 1-line-upstream + + # Getting the node positions to extract them from all the surrounding nodes + tempB1 = np.tile([0, 1, 2, 3], (len(self._open_boundary_nodes), 1)) + tempB2 = tempB1[tempCalc1 == tempCalc2] + + # It gives me the node indices to extract + # folowing the face direction + tempB1 = np.where(tempB2 == 0, 2, tempB2) + tempB1 = np.where(tempB2 == 1, 3, tempB1) + tempB1 = np.where(tempB2 == 2, 0, tempB1) + tempB1 = np.where(tempB2 == 3, 1, tempB1) + + open_boundary_nodes_2_backwards = tempCalc2[ + [range(tempCalc2.shape[0])], tempB1 + ][0] + + ## Getting WSE at different locations + eta_at_N_at_B = self._eta_at_N[self._open_boundary_nodes] + eta_at_N_at_B_1 = self._eta_at_N[open_boundary_nodes_1_backwards] + eta_at_N_1_at_B_1 = self._eta_at_N_1[open_boundary_nodes_1_backwards] + eta_at_N_1_at_B_2 = self._eta_at_N_1[open_boundary_nodes_2_backwards] + + ## Computing boundary condition + tempCalc1 = eta_at_N_at_B_1 - eta_at_N_1_at_B_1 + tempCalc2 = eta_at_N_1_at_B_1 - eta_at_N_1_at_B_2 + tempCalc3 = np.where(tempCalc2 == 0, 1, tempCalc2) + + Ce = np.where(tempCalc2 == 0, 0, tempCalc1 / tempCalc3 * (-dx / self._dt)) + Ce = np.where(tempCalc2 == 0, 0, Ce) + + # eta[open_boundary_nodes] = tempCalc1/tempCalc2 + self._eta[self._open_boundary_nodes] = np.where( + Ce >= 0, eta_at_N_at_B_1, eta_at_N_at_B + ) + self._eta = np.where( + abs(self._eta) > abs(self._z), -self._z, self._eta + ) # Correcting WSE below topographic elevation + + self._eta_at_links = self._grid.map_mean_of_link_nodes_to_link(self._eta) + + # Corner nodes treatment + self._eta[self.grid.corner_nodes] = np.mean( + self._eta[self._adjacent_nodes_at_corner_nodes], axis=1 + ) + + # Updating water velocity + # tempB1 : Considering only wet cells + # tempB2 : Cells with elevation below the water surface elevation + tempB1 = np.where( + abs(self._eta[self._grid.node_at_link_head]) + <= abs(self._z[self._grid.node_at_link_head] - self._threshold_depth), + 1, + 0, + ) + tempB2 = np.where( + abs(self._z[self._grid.node_at_link_head]) + > abs(self._eta[self._grid.node_at_link_tail]), + 1, + 0, + ) + tempB1 = tempB1 + tempB2 + tempB1 = np.where(tempB1 > 1, 1, 0) + + # Updating water velocity + tempCalc1 = ( + self._theta + * self._g + * self._dt + / dx + * (self._grid.calc_diff_at_link(self._eta)) + * self._h_at_N_at_links + / self._a_links + ) + self._vel = self._g_links / self._a_links - tempCalc1 * tempB1 + + # Only updating velocity on wet cells + self._vel = np.where(self._wet_links, self._vel, 0) + + # Boundary conditions + # Radiation Boundary Conditions of Roed & Smedstad (1984) applied on open boundaries + # Water velocity + ## Updating the new Velocity with the fixed links values + if self._fixed_links_exist is True: + self._vel[self._fixed_entry_links] = self._entry_links_vel_values + + ## Getting the boundary links + tempB1 = [i in self._open_boundary_links for i in self.grid.active_links] + open_boundary_active_links = self._grid.active_links[tempB1] + + ## Getting the 1-line-upstream links from boundary links + tempCalc1 = np.tile(open_boundary_active_links, (4, 1)).T + tempCalc2 = self._grid.links_at_node[open_boundary_nodes_1_backwards] + + # Getting the link positions to extract them from all the surrounding nodes + tempB1 = np.tile([0, 1, 2, 3], (len(self._open_boundary_nodes), 1)) + tempB2 = tempB1[tempCalc1 == tempCalc2] + + # It gives me the link indices to extract + # folowing the face direction + tempB1 = np.where(tempB2 == 0, 2, tempB2) + tempB1 = np.where(tempB2 == 1, 3, tempB1) + # tempB1 is where the target link is located + tempB1 = np.where(tempB2 == 2, 0, tempB1) + # tempB2 is where the upstream link is located + tempB1 = np.where(tempB2 == 3, 1, tempB1) + + open_boundary_active_links_1_backwards = tempCalc2[ + [range(tempCalc2.shape[0])], tempB1 + ][0] + + ### Getting the 2-line-upstream links from boundary nodes + tempCalc1 = np.tile(open_boundary_active_links_1_backwards, (4, 1)).T + tempCalc2 = self._grid.links_at_node[open_boundary_nodes_2_backwards] + + # Getting the link positions to extract them from all the surrounding nodes + tempB1 = np.tile([0, 1, 2, 3], (len(self._open_boundary_nodes), 1)) + tempB2 = tempB1[(tempCalc1 == tempCalc2)] + + # It gives me the link indices to extract + # folowing the face direction + tempB1 = np.where(tempB2 == 0, 2, tempB2) + tempB1 = np.where(tempB2 == 1, 3, tempB1) + # tempB1 is where the target link is located + tempB1 = np.where(tempB2 == 2, 0, tempB1) + # tempB2 is where the upstream link is located + tempB1 = np.where(tempB2 == 3, 1, tempB1) + + open_boundary_active_links_2_backwards = tempCalc2[ + [range(tempCalc2.shape[0])], tempB1 + ][0] + + ## Getting water velocity at different locations + vel_at_N_at_B = self._vel_at_N[open_boundary_active_links] + vel_at_N_at_B_1 = self._vel_at_N[open_boundary_active_links_1_backwards] + vel_at_N_1_at_B_1 = self._vel_at_N_1[open_boundary_active_links_1_backwards] + vel_at_N_1_at_B_2 = self._vel_at_N_1[open_boundary_active_links_2_backwards] + + ## Computing boundary condition + tempCalc1 = vel_at_N_at_B_1 - vel_at_N_1_at_B_1 + tempCalc2 = vel_at_N_1_at_B_1 - vel_at_N_1_at_B_2 + tempCalc3 = np.where(tempCalc2 == 0, 1, tempCalc2) + + Ce = np.where(tempCalc2 == 0, 0, tempCalc1 / tempCalc3 * (-dx / self._dt)) + Ce = np.where(tempCalc2 == 0, 0, Ce) + + self._vel[open_boundary_active_links] = np.where( + Ce >= 0, vel_at_N_at_B_1, vel_at_N_at_B + ) + + # Updating water depth at links + # Using only values where the WSE is above the topographic elevation + tempB1 = np.where(abs(self._eta) <= abs(self._z - self._threshold_depth), 1, 0) + + # Updating water depth at links + tempCalc1 = ( + self._z_at_links + self._eta[self._grid.node_at_link_head] + ) * tempB1[self._grid.node_at_link_head] + tempCalc2 = ( + self._z_at_links + self._eta[self._grid.node_at_link_tail] + ) * tempB1[self._grid.node_at_link_tail] + tempCalc3 = np.zeros_like(self._h_at_N_at_links) + + self._h_at_links = np.array((tempCalc1, tempCalc2, tempCalc3)).max(axis=0) + + # Applying boundary condition at links + self._h_at_links[self._open_boundary_links] = ( + self._z_at_links[self._open_boundary_links] + + self._eta_at_links[self._open_boundary_links] + ) + + # Wet cells threshold + self._h_at_links = np.where( + self._h_at_links < self._threshold_depth, 0, self._h_at_links + ) + + # Updating wet links + self._wet_links = np.where( + self._h_at_links >= self._threshold_depth, True, False + ) + self._vel = self._vel * self._wet_links + + # Calculating average water depth at nodes + # If a node is dry, using only surrounding links such that 'WSE' is above 'z' + # If a node is wet, using all surrounding links even if 'WSE' is below 'z' (jumps) + + # Checking surrounding wet links + surrounding_links = self._grid.links_at_node[self.grid.core_nodes] + + # Checking whether the core node is wet (T) or dry (F) + tempB1 = abs(self._eta[self.grid.core_nodes]) < abs( + self._z[self.grid.core_nodes] - self._threshold_depth + ) + + # Checking whether surrounding links are wet (T) or dry (F) + tempB2 = self._wet_links[surrounding_links] + + # Checking whether surrounding 'WSE' links are above (T) or below (F) 'z' at nodes + tempB3 = ( + abs(self._eta_at_links[surrounding_links]) + < abs(self._z[self.grid.core_nodes] - self._threshold_depth)[:, None] + ) + + # Getting the number of wet links around each core node, satisfying tempB2, + # and avoiding divisions by zero + tempCalc2 = np.sum(tempB2 * 1, axis=1) + tempCalc2 = np.where(tempCalc2 == 0, -9999, tempCalc2) + + # Getting the number of wet links around each core node, satisfying tempB3, + # and avoiding divisions by zero + tempCalc3 = np.sum(tempB2 * tempB3 * 1, axis=1) + tempCalc3 = np.where(tempCalc3 == 0, -9999, tempCalc3) + + # Updating water depth + # h = h_at_N - rmg.calc_net_flux_at_node(h_at_links*vel) # (influx if negative) + self._h[self.grid.core_nodes] = np.where( + tempCalc3 > 0, + np.sum(self._h_at_links[surrounding_links] * tempB2 * tempB3, axis=1) + / tempCalc3, + 0, + ) # Dry nodes, tempB1 == False + + ### Updating boundary nodes + if self._fixed_nodes_exist is True: + self._h[self._fixed_entry_nodes] = self._entry_nodes_h_values + self._h[self._open_boundary_nodes] = ( + self._eta[self._open_boundary_nodes] + self._z[self._open_boundary_nodes] + ) + self._h = np.where(self._h < self._threshold_depth, 0, self._h) + + # Corner nodes treatment + self._h[self.grid.corner_nodes] = np.mean( + self._h[self._adjacent_nodes_at_corner_nodes], axis=1 + ) + + # Updating wet nodes + self._wet_nodes = np.where(self._h >= self._threshold_depth, True, False) + + # Storing values in the grid + self._grid.at_node["surface_water__depth"] = self._h + self._grid.at_link["surface_water__velocity"] = self._vel + self._grid.at_node["surface_water__elevation"] = self._eta + ( + self._max_elevation + self._additional_z + ) + + self._grid.at_link["surface_water__velocity_at_N-1"] = self._vel_at_N + self._grid.at_node["surface_water__elevation_at_N-1"] = self._eta_at_N + ( + self._max_elevation + self._additional_z + ) + self._grid.at_node["surface_water__elevation_at_N-2"] = self._eta_at_N_1 + ( + self._max_elevation + self._additional_z + ) + + # Storing values at previous time steps + self._eta_at_N = self._eta.copy() + self._eta_at_N_1 = self._eta_at_N.copy() + self._eta_at_N_2 = self._eta_at_N_1.copy() + + self._h_at_N = self._h.copy() + self._h_at_N_at_links = self._h_at_links.copy() + + self._vel_at_N = self._vel.copy() + self._vel_at_N_1 = self._vel_at_N.copy() diff --git a/landlab/components/sink_fill/__init__.py b/src/landlab/components/sink_fill/__init__.py similarity index 100% rename from landlab/components/sink_fill/__init__.py rename to src/landlab/components/sink_fill/__init__.py diff --git a/landlab/components/sink_fill/fill_sinks.py b/src/landlab/components/sink_fill/fill_sinks.py similarity index 99% rename from landlab/components/sink_fill/fill_sinks.py rename to src/landlab/components/sink_fill/fill_sinks.py index e797257762..5b563d68c0 100644 --- a/landlab/components/sink_fill/fill_sinks.py +++ b/src/landlab/components/sink_fill/fill_sinks.py @@ -181,7 +181,7 @@ def __init__(self, grid, routing="D8", apply_slope=False, fill_slope=1.0e-5): # create the only new output field: self._sed_fill_depth = self._grid.add_zeros( - "node", "sediment_fill__depth", clobber=True + "sediment_fill__depth", at="node", clobber=True ) self._lf = DepressionFinderAndRouter( diff --git a/landlab/components/sink_fill/sink_fill_barnes.py b/src/landlab/components/sink_fill/sink_fill_barnes.py similarity index 99% rename from landlab/components/sink_fill/sink_fill_barnes.py rename to src/landlab/components/sink_fill/sink_fill_barnes.py index 3f977ea481..d6200499d7 100644 --- a/landlab/components/sink_fill/sink_fill_barnes.py +++ b/src/landlab/components/sink_fill/sink_fill_barnes.py @@ -142,7 +142,7 @@ def __init__( self._supplied_surface = return_array_at_node(grid, surface).copy() # create the only new output field: self._sed_fill_depth = self._grid.add_zeros( - "node", "sediment_fill__depth", clobber=True + "sediment_fill__depth", at="node", clobber=True ) def run_one_step(self): diff --git a/landlab/components/soil_moisture/__init__.py b/src/landlab/components/soil_moisture/__init__.py similarity index 100% rename from landlab/components/soil_moisture/__init__.py rename to src/landlab/components/soil_moisture/__init__.py diff --git a/landlab/components/soil_moisture/infiltrate_soil_green_ampt.py b/src/landlab/components/soil_moisture/infiltrate_soil_green_ampt.py similarity index 100% rename from landlab/components/soil_moisture/infiltrate_soil_green_ampt.py rename to src/landlab/components/soil_moisture/infiltrate_soil_green_ampt.py diff --git a/landlab/components/soil_moisture/soil_moisture_dynamics.py b/src/landlab/components/soil_moisture/soil_moisture_dynamics.py similarity index 100% rename from landlab/components/soil_moisture/soil_moisture_dynamics.py rename to src/landlab/components/soil_moisture/soil_moisture_dynamics.py diff --git a/landlab/components/space/__init__.py b/src/landlab/components/space/__init__.py similarity index 100% rename from landlab/components/space/__init__.py rename to src/landlab/components/space/__init__.py diff --git a/landlab/components/space/ext/calc_qs.pyx b/src/landlab/components/space/ext/calc_qs.pyx similarity index 100% rename from landlab/components/space/ext/calc_qs.pyx rename to src/landlab/components/space/ext/calc_qs.pyx diff --git a/landlab/components/space/ext/calc_sequential_ero_depo.pyx b/src/landlab/components/space/ext/calc_sequential_ero_depo.pyx similarity index 85% rename from landlab/components/space/ext/calc_sequential_ero_depo.pyx rename to src/landlab/components/space/ext/calc_sequential_ero_depo.pyx index f201ddeabd..caf0adc4ce 100644 --- a/landlab/components/space/ext/calc_sequential_ero_depo.pyx +++ b/src/landlab/components/space/ext/calc_sequential_ero_depo.pyx @@ -25,14 +25,15 @@ def _sequential_ero_depo( const cython.floating [:] sed_erosion_term, const cython.floating [:] bed_erosion_term, const cython.floating [:] K_sed, - double v, - double phi, - double F_f, - double H_star, - double dt, - double thickness_lim, + cython.floating [:] ero_sed_effective, + cython.floating [:] depo_effective, + const double v, + const double phi, + const double F_f, + const double H_star, + const double dt, + const double thickness_lim, ): - """Calculate and qs and qs_in.""" # define internal variables cdef unsigned int node_id @@ -107,4 +108,10 @@ def _sequential_ero_depo( br[node_id] += -dt * ero_bed vol_SSY_riv += F_f*ero_bed* cell_area[node_id] + # Update deposition rate based on adjusted fluxes + Hd = H_loc - H_Before + depo_effective[node_id] = (v*qs_out_adj/q[node_id])/(1 - phi) + # Deposition should be larger or equal to increase in soil depth + depo_effective[node_id] = max(depo_effective[node_id], Hd/dt) + ero_sed_effective[node_id] = depo_effective[node_id] - Hd/dt return vol_SSY_riv diff --git a/landlab/components/space/space.py b/src/landlab/components/space/space.py similarity index 100% rename from landlab/components/space/space.py rename to src/landlab/components/space/space.py diff --git a/landlab/components/space/space_large_scale_eroder.py b/src/landlab/components/space/space_large_scale_eroder.py similarity index 79% rename from landlab/components/space/space_large_scale_eroder.py rename to src/landlab/components/space/space_large_scale_eroder.py index 07f9a75242..618bbd758d 100644 --- a/landlab/components/space/space_large_scale_eroder.py +++ b/src/landlab/components/space/space_large_scale_eroder.py @@ -7,68 +7,68 @@ from landlab import Component from landlab import RasterModelGrid +from landlab.components.depression_finder.lake_mapper import _FLOODED +from landlab.components.space.ext.calc_sequential_ero_depo import _sequential_ero_depo from landlab.grid.nodestatus import NodeStatus from landlab.utils.return_array import return_array_at_node -from ..depression_finder.lake_mapper import _FLOODED -from .ext.calc_sequential_ero_depo import _sequential_ero_depo - -ROOT2 = np.sqrt(2.0) # syntactic sugar for precalculated square root of 2 +ROOT2 = np.sqrt(2.0) TIME_STEP_FACTOR = 0.5 # factor used in simple subdivision solver class SpaceLargeScaleEroder(Component): - """Stream Power with Alluvium Conservation and Entrainment (SPACE) large scale eroder + """Stream Power with Alluvium Conservation and Entrainment large scale eroder. - The SPACE_large_Scale_eroder is based on the SPACE component and is designed - to be more robust against large time steps and coded in such a way that mass - conservation is explicitly conserved during calculation. + The :class:`~.SpaceLargeScaleEroder` is based on the SPACE component + and is designed to be more robust against large time steps and coded in + such a way that mass conservation is explicitly conserved during calculation. See the publication: - Shobe, C. M., Tucker, G. E., and Barnhart, K. R.: The SPACE 1.0 model: a - Landlab component for 2-D calculation of sediment transport, bedrock - erosion, and landscape evolution, Geosci. Model Dev., 10, 4577-4604, - `https://doi.org/10.5194/gmd-10-4577-2017 `_, 2017. + + Shobe, C. M., Tucker, G. E., and Barnhart, K. R.: The SPACE 1.0 model: a + Landlab component for 2-D calculation of sediment transport, bedrock + erosion, and landscape evolution, Geosci. Model Dev., 10, 4577-4604, + `https://doi.org/10.5194/gmd-10-4577-2017 + `_, 2017. Unlike other some other fluvial erosion componets in Landlab, in this - component (and :py:class:`~landlab.components.ErosionDeposition`) no + component (and class:`~landlab.components.ErosionDeposition`) no erosion occurs in depressions or in areas with adverse slopes. There is no ability to pass a keyword argument ``erode_flooded_nodes``. - If a depressions are handled (as indicated by the presence of the field - "flood_status_code" at nodes), then deposition occurs throughout the + If depressions are handled (as indicated by the presence of the field + ``"flood_status_code"`` at nodes), then deposition occurs throughout the depression and sediment is passed out of the depression. Where pits are encountered, then all sediment is deposited at that node only. - Note: In the current version, we do not provide an adaptive time stepper. - This will be addded in future versions of this component. + .. note:: + + In the current version, we do not provide an adaptive time stepper. + This will be addded in future versions of this component. - For more explanation and examples, - check out the correponding notebook of this component + For more explanation and examples, check out the correponding notebook of + this component. Examples --------- - >>> import numpy as np >>> from landlab import RasterModelGrid - >>> from landlab.components import PriorityFloodFlowRouter, SpaceLargeScaleEroder - >>> import matplotlib.pyplot as plt # For plotting results; optional - >>> from landlab import imshow_grid # For plotting results; optional - - >>> num_rows = 20 - >>> num_columns = 20 - >>> node_spacing = 100.0 - >>> mg = RasterModelGrid((num_rows, num_columns), xy_spacing=node_spacing) - >>> node_next_to_outlet = num_columns + 1 - >>> np.random.seed(seed=5000) - >>> _ = mg.add_zeros("topographic__elevation", at="node") - >>> _ = mg.add_zeros("soil__depth", at="node") - >>> mg.at_node["soil__depth"][mg.core_nodes] = 2.0 - >>> _ = mg.add_zeros("bedrock__elevation", at="node") - >>> mg.at_node["bedrock__elevation"] += ( - ... mg.node_y / 10.0 + mg.node_x / 10.0 + np.random.rand(len(mg.node_y)) / 10.0 + >>> from landlab.components import PriorityFloodFlowRouter + >>> from landlab.components import SpaceLargeScaleEroder + + >>> mg = RasterModelGrid((5, 4), xy_spacing=100.0) + + >>> mg.at_node["soil__depth"] = [ + ... [0.0, 0.0, 0.0, 0.0], + ... [0.0, 2.0, 2.0, 0.0], + ... [0.0, 2.0, 2.0, 0.0], + ... [0.0, 2.0, 2.0, 0.0], + ... [0.0, 0.0, 0.0, 0.0], + ... ] + >>> mg.at_node["bedrock__elevation"] = mg.y_of_node / 10.0 + mg.x_of_node / 10.0 + >>> mg.at_node["topographic__elevation"] = ( + ... mg.at_node["bedrock__elevation"] + mg.at_node["soil__depth"] ... ) - >>> mg.at_node["bedrock__elevation"][:] = mg.at_node["topographic__elevation"] - >>> mg.at_node["topographic__elevation"][:] += mg.at_node["soil__depth"] + >>> mg.set_closed_boundaries_at_grid_edges( ... bottom_is_closed=True, ... left_is_closed=True, @@ -93,49 +93,29 @@ class SpaceLargeScaleEroder(Component): ... sp_crit_sed=0, ... sp_crit_br=0, ... ) - >>> timestep = 10.0 - >>> elapsed_time = 0.0 - >>> count = 0 - >>> run_time = 1e4 - >>> sed_flux = np.zeros(int(run_time // timestep)) - >>> while elapsed_time < run_time: + + >>> node_next_to_outlet = mg.shape[1] + 1 + >>> sed_flux = [] + >>> for _ in range(500): ... fr.run_one_step() - ... _ = sp.run_one_step(dt=timestep) - ... sed_flux[count] = mg.at_node["sediment__flux"][node_next_to_outlet] - ... elapsed_time += timestep - ... count += 1 + ... _ = sp.run_one_step(dt=10.0) + ... sed_flux.append(mg.at_node["sediment__flux"][node_next_to_outlet]) ... - Plot the results. - - >>> fig = plt.figure() - >>> plot = plt.subplot() - >>> _ = imshow_grid( - ... mg, - ... "topographic__elevation", - ... plot_name="Sediment flux", - ... var_name="Sediment flux", - ... var_units=r"m$^3$/yr", - ... grid_units=("m", "m"), - ... cmap="terrain", - ... ) - >>> _ = plt.figure() - >>> _ = imshow_grid( - ... mg, - ... "sediment__flux", - ... plot_name="Sediment flux", - ... var_name="Sediment flux", - ... var_units=r"m$^3$/yr", - ... grid_units=("m", "m"), - ... cmap="terrain", - ... ) - >>> fig = plt.figure() - >>> sedfluxplot = plt.subplot() - >>> _ = sedfluxplot.plot( - ... np.arange(len(sed_flux)) * timestep, sed_flux, color="k", linewidth=1.0 - ... ) - >>> _ = sedfluxplot.set_xlabel("Time [yr]") - >>> _ = sedfluxplot.set_ylabel(r"Sediment flux [m$^3$/yr]") + Look at the results. + + >>> mg.at_node["sediment__flux"].reshape(mg.shape) # doctest: +SKIP + array([[0. , 0. , 0. , 0. ], + [0. , 0.26889843, 0.02719885, 0. ], + [0. , 0.09130624, 0.13962599, 0. ], + [0. , 0.06421368, 0.09527108, 0. ], + [0. , 0. , 0. , 0. ]]) + >>> sed_flux[::100] # doctest: +SKIP + [2053.1526698811363, + 601.0591808186842, + 405.95978528106235, + 272.8232194793999, + 176.63159183013272] References ---------- @@ -150,7 +130,7 @@ class SpaceLargeScaleEroder(Component): None Listed - """ # noqa: B950 + """ _name = "SpaceLargeScaleEroder" @@ -197,6 +177,39 @@ class SpaceLargeScaleEroder(Component): "mapping": "node", "doc": "Sediment flux (volume per unit time of sediment leaving each node)", }, + "sediment__erosion_flux": { + "dtype": float, + "intent": "out", + "optional": False, + "units": "m/s", + "mapping": "node", + "doc": ( + "Sediment erosion flux from bed to water column (depth eroded per" + " unit time)" + ), + }, + "sediment__deposition_flux": { + "dtype": float, + "intent": "out", + "optional": False, + "units": "m/s", + "mapping": "node", + "doc": ( + "Sediment deposition flux from water column to bed (depth deposited" + " per unit time)" + ), + }, + "bedrock__erosion_flux": { + "dtype": float, + "intent": "out", + "optional": False, + "units": "m/s", + "mapping": "node", + "doc": ( + "Bedrock erosion flux from bedrock to water column (depth eroded per" + " unit time)" + ), + }, "soil__depth": { "dtype": float, "intent": "inout", @@ -547,6 +560,9 @@ def run_one_step_basic(self, dt=10): K_sed_vector = np.broadcast_to(self._K_sed, self._q.shape) + ero_sed_effective = np.zeros_like(K_sed_vector) + depo_effective = np.zeros_like(K_sed_vector) + vol_SSY_riv = _sequential_ero_depo( stack_flip_ud_sel, r, @@ -563,6 +579,8 @@ def run_one_step_basic(self, dt=10): self._sed_erosion_term, self._br_erosion_term, K_sed_vector, + ero_sed_effective, + depo_effective, self._v_s, self._phi, self._F_f, @@ -576,8 +594,18 @@ def run_one_step_basic(self, dt=10): cores = self._grid.core_nodes z[cores] = br[cores] + H[cores] + self.grid.at_node["sediment__erosion_flux"][:] = ero_sed_effective + self.grid.at_node["sediment__deposition_flux"][:] = depo_effective + self.grid.at_node["bedrock__erosion_flux"][:] = self._Er + return vol_SSY_riv, V_leaving_riv def run_one_step(self, dt): - vol_SSY_riv, V_leaving_riv = self.run_one_step_basic(dt) + """ + Returns: + - vol_SSY_riv (float): Suspended sediment yield leaving the domain as wash load + - V_leaving_riv (float): Volume of bedload sediment leaving the domain. + """ + + (vol_SSY_riv, V_leaving_riv) = self.run_one_step_basic(dt) return vol_SSY_riv, V_leaving_riv diff --git a/landlab/components/spatial_precip/__init__.py b/src/landlab/components/spatial_precip/__init__.py similarity index 100% rename from landlab/components/spatial_precip/__init__.py rename to src/landlab/components/spatial_precip/__init__.py diff --git a/landlab/components/spatial_precip/generate_spatial_precip.py b/src/landlab/components/spatial_precip/generate_spatial_precip.py similarity index 97% rename from landlab/components/spatial_precip/generate_spatial_precip.py rename to src/landlab/components/spatial_precip/generate_spatial_precip.py index 25b5b66bae..290fd8399b 100644 --- a/landlab/components/spatial_precip/generate_spatial_precip.py +++ b/src/landlab/components/spatial_precip/generate_spatial_precip.py @@ -366,8 +366,8 @@ def __init__( self._maxy = self._grid.node_y[open_nodes].max() self._widthx = self._maxx - self._minx self._widthy = self._maxy - self._miny - self._running_total_rainfall_this_year = self._grid.zeros("node") - self._running_total_rainfall_this_season = self._grid.zeros("node") + self._running_total_rainfall_this_year = self._grid.zeros(at="node") + self._running_total_rainfall_this_season = self._grid.zeros(at="node") self._open_area = self._grid.cell_area_at_node[open_nodes].sum() self._scaling_to_WG = self._open_area / 275710702.0 @@ -1023,7 +1023,7 @@ def _run_the_process( # ^this property tracks the number of storms in the run that received # zero intensity (and thus didn't really exist) self._opennodes = self._grid.status_at_node != self._grid.BC_NODE_IS_CLOSED - self._total_rainfall_last_season = self._grid.zeros("node") + self._total_rainfall_last_season = self._grid.zeros(at="node") # safety check for init conds: if yield_storms: diff --git a/landlab/components/species_evolution/README.md b/src/landlab/components/species_evolution/README.md similarity index 100% rename from landlab/components/species_evolution/README.md rename to src/landlab/components/species_evolution/README.md diff --git a/landlab/components/species_evolution/__init__.py b/src/landlab/components/species_evolution/__init__.py similarity index 100% rename from landlab/components/species_evolution/__init__.py rename to src/landlab/components/species_evolution/__init__.py diff --git a/landlab/components/species_evolution/base_taxon.py b/src/landlab/components/species_evolution/base_taxon.py similarity index 100% rename from landlab/components/species_evolution/base_taxon.py rename to src/landlab/components/species_evolution/base_taxon.py diff --git a/landlab/components/species_evolution/record.py b/src/landlab/components/species_evolution/record.py similarity index 100% rename from landlab/components/species_evolution/record.py rename to src/landlab/components/species_evolution/record.py diff --git a/landlab/components/species_evolution/species_evolver.py b/src/landlab/components/species_evolution/species_evolver.py similarity index 100% rename from landlab/components/species_evolution/species_evolver.py rename to src/landlab/components/species_evolution/species_evolver.py diff --git a/landlab/components/species_evolution/zone.py b/src/landlab/components/species_evolution/zone.py similarity index 100% rename from landlab/components/species_evolution/zone.py rename to src/landlab/components/species_evolution/zone.py diff --git a/landlab/components/species_evolution/zone_controller.py b/src/landlab/components/species_evolution/zone_controller.py similarity index 100% rename from landlab/components/species_evolution/zone_controller.py rename to src/landlab/components/species_evolution/zone_controller.py diff --git a/landlab/components/species_evolution/zone_taxon.py b/src/landlab/components/species_evolution/zone_taxon.py similarity index 100% rename from landlab/components/species_evolution/zone_taxon.py rename to src/landlab/components/species_evolution/zone_taxon.py diff --git a/landlab/components/steepness_index/__init__.py b/src/landlab/components/steepness_index/__init__.py similarity index 100% rename from landlab/components/steepness_index/__init__.py rename to src/landlab/components/steepness_index/__init__.py diff --git a/landlab/components/steepness_index/channel_steepness.py b/src/landlab/components/steepness_index/channel_steepness.py similarity index 99% rename from landlab/components/steepness_index/channel_steepness.py rename to src/landlab/components/steepness_index/channel_steepness.py index fa59803f87..4784fa504f 100644 --- a/landlab/components/steepness_index/channel_steepness.py +++ b/src/landlab/components/steepness_index/channel_steepness.py @@ -190,7 +190,7 @@ def __init__( self._ksn = self._grid.add_zeros( "channel__steepness_index", at="node", clobber=True ) - self._mask = self._grid.ones("node", dtype=bool) + self._mask = self._grid.ones(at="node", dtype=bool) # this one needs modifying if smooth_elev self._elev = self._grid.at_node["topographic__elevation"] @@ -224,7 +224,7 @@ def calculate_steepnesses(self): )[::-1] # note elevs are guaranteed to be in order, UNLESS a fill # algorithm has been used. - nodes_incorporated = self._grid.zeros("node", dtype=bool) + nodes_incorporated = self._grid.zeros(at="node", dtype=bool) # now do each poss channel in turn # get the head of the first (longest!) channel: for dstr_order_index in range(valid_dstr_order.size): diff --git a/landlab/components/stream_power/__init__.py b/src/landlab/components/stream_power/__init__.py similarity index 100% rename from landlab/components/stream_power/__init__.py rename to src/landlab/components/stream_power/__init__.py diff --git a/landlab/components/stream_power/cfuncs.pyx b/src/landlab/components/stream_power/cfuncs.pyx similarity index 100% rename from landlab/components/stream_power/cfuncs.pyx rename to src/landlab/components/stream_power/cfuncs.pyx diff --git a/landlab/components/stream_power/fastscape_stream_power.py b/src/landlab/components/stream_power/fastscape_stream_power.py similarity index 100% rename from landlab/components/stream_power/fastscape_stream_power.py rename to src/landlab/components/stream_power/fastscape_stream_power.py diff --git a/landlab/components/stream_power/sed_flux_dep_incision.py b/src/landlab/components/stream_power/sed_flux_dep_incision.py similarity index 100% rename from landlab/components/stream_power/sed_flux_dep_incision.py rename to src/landlab/components/stream_power/sed_flux_dep_incision.py diff --git a/landlab/components/stream_power/stream_power.py b/src/landlab/components/stream_power/stream_power.py similarity index 99% rename from landlab/components/stream_power/stream_power.py rename to src/landlab/components/stream_power/stream_power.py index e83fd19251..3ecc647d3a 100644 --- a/landlab/components/stream_power/stream_power.py +++ b/src/landlab/components/stream_power/stream_power.py @@ -338,8 +338,8 @@ def __init__( # m and n will always be set, but care needs to be taken to include Q # and W directly if appropriate - self._stream_power_erosion = self._grid.zeros(centering="node") - self._alpha = self._grid.zeros("node") + self._stream_power_erosion = self._grid.zeros(at="node") + self._alpha = self._grid.zeros(at="node") @property def K(self): diff --git a/landlab/components/stream_power/stream_power_smooth_threshold.py b/src/landlab/components/stream_power/stream_power_smooth_threshold.py similarity index 100% rename from landlab/components/stream_power/stream_power_smooth_threshold.py rename to src/landlab/components/stream_power/stream_power_smooth_threshold.py diff --git a/landlab/components/taylor_nonlinear_hillslope_flux/__init__.py b/src/landlab/components/taylor_nonlinear_hillslope_flux/__init__.py similarity index 100% rename from landlab/components/taylor_nonlinear_hillslope_flux/__init__.py rename to src/landlab/components/taylor_nonlinear_hillslope_flux/__init__.py diff --git a/landlab/components/taylor_nonlinear_hillslope_flux/taylor_nonlinear_hillslope_flux.py b/src/landlab/components/taylor_nonlinear_hillslope_flux/taylor_nonlinear_hillslope_flux.py similarity index 100% rename from landlab/components/taylor_nonlinear_hillslope_flux/taylor_nonlinear_hillslope_flux.py rename to src/landlab/components/taylor_nonlinear_hillslope_flux/taylor_nonlinear_hillslope_flux.py diff --git a/landlab/components/tectonics/__init__.py b/src/landlab/components/tectonics/__init__.py similarity index 100% rename from landlab/components/tectonics/__init__.py rename to src/landlab/components/tectonics/__init__.py diff --git a/landlab/components/tectonics/listric_kinematic_extender.py b/src/landlab/components/tectonics/listric_kinematic_extender.py similarity index 100% rename from landlab/components/tectonics/listric_kinematic_extender.py rename to src/landlab/components/tectonics/listric_kinematic_extender.py diff --git a/landlab/components/threshold_eroder/__init__.py b/src/landlab/components/threshold_eroder/__init__.py similarity index 100% rename from landlab/components/threshold_eroder/__init__.py rename to src/landlab/components/threshold_eroder/__init__.py diff --git a/landlab/components/threshold_eroder/cfuncs.pyx b/src/landlab/components/threshold_eroder/cfuncs.pyx similarity index 100% rename from landlab/components/threshold_eroder/cfuncs.pyx rename to src/landlab/components/threshold_eroder/cfuncs.pyx diff --git a/landlab/components/threshold_eroder/threshold_eroder.py b/src/landlab/components/threshold_eroder/threshold_eroder.py similarity index 100% rename from landlab/components/threshold_eroder/threshold_eroder.py rename to src/landlab/components/threshold_eroder/threshold_eroder.py diff --git a/landlab/components/tidal_flow/__init__.py b/src/landlab/components/tidal_flow/__init__.py similarity index 100% rename from landlab/components/tidal_flow/__init__.py rename to src/landlab/components/tidal_flow/__init__.py diff --git a/landlab/components/tidal_flow/tidal_flow_calculator.py b/src/landlab/components/tidal_flow/tidal_flow_calculator.py similarity index 100% rename from landlab/components/tidal_flow/tidal_flow_calculator.py rename to src/landlab/components/tidal_flow/tidal_flow_calculator.py diff --git a/landlab/components/transport_length_diffusion/__init__.py b/src/landlab/components/transport_length_diffusion/__init__.py similarity index 100% rename from landlab/components/transport_length_diffusion/__init__.py rename to src/landlab/components/transport_length_diffusion/__init__.py diff --git a/landlab/components/transport_length_diffusion/transport_length_hillslope_diffusion.py b/src/landlab/components/transport_length_diffusion/transport_length_hillslope_diffusion.py similarity index 100% rename from landlab/components/transport_length_diffusion/transport_length_hillslope_diffusion.py rename to src/landlab/components/transport_length_diffusion/transport_length_hillslope_diffusion.py diff --git a/landlab/components/uniform_precip/__init__.py b/src/landlab/components/uniform_precip/__init__.py similarity index 100% rename from landlab/components/uniform_precip/__init__.py rename to src/landlab/components/uniform_precip/__init__.py diff --git a/landlab/components/uniform_precip/generate_uniform_precip.py b/src/landlab/components/uniform_precip/generate_uniform_precip.py similarity index 100% rename from landlab/components/uniform_precip/generate_uniform_precip.py rename to src/landlab/components/uniform_precip/generate_uniform_precip.py diff --git a/landlab/components/vegetation_dynamics/__init__.py b/src/landlab/components/vegetation_dynamics/__init__.py similarity index 100% rename from landlab/components/vegetation_dynamics/__init__.py rename to src/landlab/components/vegetation_dynamics/__init__.py diff --git a/landlab/components/vegetation_dynamics/vegetation_dynamics.py b/src/landlab/components/vegetation_dynamics/vegetation_dynamics.py similarity index 100% rename from landlab/components/vegetation_dynamics/vegetation_dynamics.py rename to src/landlab/components/vegetation_dynamics/vegetation_dynamics.py diff --git a/landlab/components/weathering/__init__.py b/src/landlab/components/weathering/__init__.py similarity index 100% rename from landlab/components/weathering/__init__.py rename to src/landlab/components/weathering/__init__.py diff --git a/landlab/components/weathering/exponential_weathering.py b/src/landlab/components/weathering/exponential_weathering.py similarity index 100% rename from landlab/components/weathering/exponential_weathering.py rename to src/landlab/components/weathering/exponential_weathering.py diff --git a/landlab/components/weathering/exponential_weathering_integrated.py b/src/landlab/components/weathering/exponential_weathering_integrated.py similarity index 100% rename from landlab/components/weathering/exponential_weathering_integrated.py rename to src/landlab/components/weathering/exponential_weathering_integrated.py diff --git a/landlab/core/__init__.py b/src/landlab/core/__init__.py similarity index 100% rename from landlab/core/__init__.py rename to src/landlab/core/__init__.py diff --git a/landlab/core/errors.py b/src/landlab/core/errors.py similarity index 100% rename from landlab/core/errors.py rename to src/landlab/core/errors.py diff --git a/landlab/core/messages.py b/src/landlab/core/messages.py similarity index 100% rename from landlab/core/messages.py rename to src/landlab/core/messages.py diff --git a/landlab/core/model_component.py b/src/landlab/core/model_component.py similarity index 99% rename from landlab/core/model_component.py rename to src/landlab/core/model_component.py index bf007a8a3f..ee5ccf63b8 100644 --- a/landlab/core/model_component.py +++ b/src/landlab/core/model_component.py @@ -432,7 +432,7 @@ def initialize_optional_output_fields(self): out_true = "out" in self._info[name]["intent"] if (out_true) and (optional) and (name not in self._grid[at]): type_in = self.var_type(name) - init_vals = self.grid.zeros(at, dtype=type_in) + init_vals = self.grid.zeros(at=at, dtype=type_in) units_in = self.var_units(name) self.grid.add_field(name, init_vals, at=at, units=units_in, copy=False) diff --git a/landlab/core/model_parameter_loader.py b/src/landlab/core/model_parameter_loader.py similarity index 100% rename from landlab/core/model_parameter_loader.py rename to src/landlab/core/model_parameter_loader.py diff --git a/landlab/core/utils.py b/src/landlab/core/utils.py similarity index 100% rename from landlab/core/utils.py rename to src/landlab/core/utils.py diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin.cpg b/src/landlab/data/io/shapefile/methow/MethowSubBasin.cpg similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin.cpg rename to src/landlab/data/io/shapefile/methow/MethowSubBasin.cpg diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin.dbf b/src/landlab/data/io/shapefile/methow/MethowSubBasin.dbf similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin.dbf rename to src/landlab/data/io/shapefile/methow/MethowSubBasin.dbf diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin.prj b/src/landlab/data/io/shapefile/methow/MethowSubBasin.prj similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin.prj rename to src/landlab/data/io/shapefile/methow/MethowSubBasin.prj diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin.sbn b/src/landlab/data/io/shapefile/methow/MethowSubBasin.sbn similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin.sbn rename to src/landlab/data/io/shapefile/methow/MethowSubBasin.sbn diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin.sbx b/src/landlab/data/io/shapefile/methow/MethowSubBasin.sbx similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin.sbx rename to src/landlab/data/io/shapefile/methow/MethowSubBasin.sbx diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin.shp b/src/landlab/data/io/shapefile/methow/MethowSubBasin.shp similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin.shp rename to src/landlab/data/io/shapefile/methow/MethowSubBasin.shp diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin.shp.xml b/src/landlab/data/io/shapefile/methow/MethowSubBasin.shp.xml similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin.shp.xml rename to src/landlab/data/io/shapefile/methow/MethowSubBasin.shp.xml diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin.shx b/src/landlab/data/io/shapefile/methow/MethowSubBasin.shx similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin.shx rename to src/landlab/data/io/shapefile/methow/MethowSubBasin.shx diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.CPG b/src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.CPG similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.CPG rename to src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.CPG diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.dbf b/src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.dbf similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.dbf rename to src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.dbf diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.prj b/src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.prj similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.prj rename to src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.prj diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.sbn b/src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.sbn similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.sbn rename to src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.sbn diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.sbx b/src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.sbx similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.sbx rename to src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.sbx diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shp b/src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shp similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shp rename to src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shp diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shp.xml b/src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shp.xml similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shp.xml rename to src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shp.xml diff --git a/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shx b/src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shx similarity index 100% rename from landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shx rename to src/landlab/data/io/shapefile/methow/MethowSubBasin_Nodes_4.shx diff --git a/landlab/data/io/shapefile/methow/Methow_Network.dbf b/src/landlab/data/io/shapefile/methow/Methow_Network.dbf similarity index 100% rename from landlab/data/io/shapefile/methow/Methow_Network.dbf rename to src/landlab/data/io/shapefile/methow/Methow_Network.dbf diff --git a/landlab/data/io/shapefile/methow/Methow_Network.shp b/src/landlab/data/io/shapefile/methow/Methow_Network.shp similarity index 100% rename from landlab/data/io/shapefile/methow/Methow_Network.shp rename to src/landlab/data/io/shapefile/methow/Methow_Network.shp diff --git a/landlab/data/io/shapefile/methow/Methow_Network.shx b/src/landlab/data/io/shapefile/methow/Methow_Network.shx similarity index 100% rename from landlab/data/io/shapefile/methow/Methow_Network.shx rename to src/landlab/data/io/shapefile/methow/Methow_Network.shx diff --git a/landlab/data/io/shapefile/redb/a001_network.cpg b/src/landlab/data/io/shapefile/redb/a001_network.cpg similarity index 100% rename from landlab/data/io/shapefile/redb/a001_network.cpg rename to src/landlab/data/io/shapefile/redb/a001_network.cpg diff --git a/landlab/data/io/shapefile/redb/a001_network.dbf b/src/landlab/data/io/shapefile/redb/a001_network.dbf similarity index 100% rename from landlab/data/io/shapefile/redb/a001_network.dbf rename to src/landlab/data/io/shapefile/redb/a001_network.dbf diff --git a/landlab/data/io/shapefile/redb/a001_network.prj b/src/landlab/data/io/shapefile/redb/a001_network.prj similarity index 100% rename from landlab/data/io/shapefile/redb/a001_network.prj rename to src/landlab/data/io/shapefile/redb/a001_network.prj diff --git a/landlab/data/io/shapefile/redb/a001_network.sbn b/src/landlab/data/io/shapefile/redb/a001_network.sbn similarity index 100% rename from landlab/data/io/shapefile/redb/a001_network.sbn rename to src/landlab/data/io/shapefile/redb/a001_network.sbn diff --git a/landlab/data/io/shapefile/redb/a001_network.sbx b/src/landlab/data/io/shapefile/redb/a001_network.sbx similarity index 100% rename from landlab/data/io/shapefile/redb/a001_network.sbx rename to src/landlab/data/io/shapefile/redb/a001_network.sbx diff --git a/landlab/data/io/shapefile/redb/a001_network.shp b/src/landlab/data/io/shapefile/redb/a001_network.shp similarity index 100% rename from landlab/data/io/shapefile/redb/a001_network.shp rename to src/landlab/data/io/shapefile/redb/a001_network.shp diff --git a/landlab/data/io/shapefile/redb/a001_network.shp.xml b/src/landlab/data/io/shapefile/redb/a001_network.shp.xml similarity index 100% rename from landlab/data/io/shapefile/redb/a001_network.shp.xml rename to src/landlab/data/io/shapefile/redb/a001_network.shp.xml diff --git a/landlab/data/io/shapefile/redb/a001_network.shx b/src/landlab/data/io/shapefile/redb/a001_network.shx similarity index 100% rename from landlab/data/io/shapefile/redb/a001_network.shx rename to src/landlab/data/io/shapefile/redb/a001_network.shx diff --git a/landlab/data/io/shapefile/redb/a001_nodes_att.CPG b/src/landlab/data/io/shapefile/redb/a001_nodes_att.CPG similarity index 100% rename from landlab/data/io/shapefile/redb/a001_nodes_att.CPG rename to src/landlab/data/io/shapefile/redb/a001_nodes_att.CPG diff --git a/landlab/data/io/shapefile/redb/a001_nodes_att.dbf b/src/landlab/data/io/shapefile/redb/a001_nodes_att.dbf similarity index 100% rename from landlab/data/io/shapefile/redb/a001_nodes_att.dbf rename to src/landlab/data/io/shapefile/redb/a001_nodes_att.dbf diff --git a/landlab/data/io/shapefile/redb/a001_nodes_att.prj b/src/landlab/data/io/shapefile/redb/a001_nodes_att.prj similarity index 100% rename from landlab/data/io/shapefile/redb/a001_nodes_att.prj rename to src/landlab/data/io/shapefile/redb/a001_nodes_att.prj diff --git a/landlab/data/io/shapefile/redb/a001_nodes_att.sbn b/src/landlab/data/io/shapefile/redb/a001_nodes_att.sbn similarity index 100% rename from landlab/data/io/shapefile/redb/a001_nodes_att.sbn rename to src/landlab/data/io/shapefile/redb/a001_nodes_att.sbn diff --git a/landlab/data/io/shapefile/redb/a001_nodes_att.sbx b/src/landlab/data/io/shapefile/redb/a001_nodes_att.sbx similarity index 100% rename from landlab/data/io/shapefile/redb/a001_nodes_att.sbx rename to src/landlab/data/io/shapefile/redb/a001_nodes_att.sbx diff --git a/landlab/data/io/shapefile/redb/a001_nodes_att.shp b/src/landlab/data/io/shapefile/redb/a001_nodes_att.shp similarity index 100% rename from landlab/data/io/shapefile/redb/a001_nodes_att.shp rename to src/landlab/data/io/shapefile/redb/a001_nodes_att.shp diff --git a/landlab/data/io/shapefile/redb/a001_nodes_att.shp.xml b/src/landlab/data/io/shapefile/redb/a001_nodes_att.shp.xml similarity index 100% rename from landlab/data/io/shapefile/redb/a001_nodes_att.shp.xml rename to src/landlab/data/io/shapefile/redb/a001_nodes_att.shp.xml diff --git a/landlab/data/io/shapefile/redb/a001_nodes_att.shx b/src/landlab/data/io/shapefile/redb/a001_nodes_att.shx similarity index 100% rename from landlab/data/io/shapefile/redb/a001_nodes_att.shx rename to src/landlab/data/io/shapefile/redb/a001_nodes_att.shx diff --git a/landlab/data/io/shapefile/soque/Soque_Links.cpg b/src/landlab/data/io/shapefile/soque/Soque_Links.cpg similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Links.cpg rename to src/landlab/data/io/shapefile/soque/Soque_Links.cpg diff --git a/landlab/data/io/shapefile/soque/Soque_Links.dbf b/src/landlab/data/io/shapefile/soque/Soque_Links.dbf similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Links.dbf rename to src/landlab/data/io/shapefile/soque/Soque_Links.dbf diff --git a/landlab/data/io/shapefile/soque/Soque_Links.prj b/src/landlab/data/io/shapefile/soque/Soque_Links.prj similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Links.prj rename to src/landlab/data/io/shapefile/soque/Soque_Links.prj diff --git a/landlab/data/io/shapefile/soque/Soque_Links.qmd b/src/landlab/data/io/shapefile/soque/Soque_Links.qmd similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Links.qmd rename to src/landlab/data/io/shapefile/soque/Soque_Links.qmd diff --git a/landlab/data/io/shapefile/soque/Soque_Links.shp b/src/landlab/data/io/shapefile/soque/Soque_Links.shp similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Links.shp rename to src/landlab/data/io/shapefile/soque/Soque_Links.shp diff --git a/landlab/data/io/shapefile/soque/Soque_Links.shx b/src/landlab/data/io/shapefile/soque/Soque_Links.shx similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Links.shx rename to src/landlab/data/io/shapefile/soque/Soque_Links.shx diff --git a/landlab/data/io/shapefile/soque/Soque_Nodes.cpg b/src/landlab/data/io/shapefile/soque/Soque_Nodes.cpg similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Nodes.cpg rename to src/landlab/data/io/shapefile/soque/Soque_Nodes.cpg diff --git a/landlab/data/io/shapefile/soque/Soque_Nodes.dbf b/src/landlab/data/io/shapefile/soque/Soque_Nodes.dbf similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Nodes.dbf rename to src/landlab/data/io/shapefile/soque/Soque_Nodes.dbf diff --git a/landlab/data/io/shapefile/soque/Soque_Nodes.prj b/src/landlab/data/io/shapefile/soque/Soque_Nodes.prj similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Nodes.prj rename to src/landlab/data/io/shapefile/soque/Soque_Nodes.prj diff --git a/landlab/data/io/shapefile/soque/Soque_Nodes.qmd b/src/landlab/data/io/shapefile/soque/Soque_Nodes.qmd similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Nodes.qmd rename to src/landlab/data/io/shapefile/soque/Soque_Nodes.qmd diff --git a/landlab/data/io/shapefile/soque/Soque_Nodes.shp b/src/landlab/data/io/shapefile/soque/Soque_Nodes.shp similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Nodes.shp rename to src/landlab/data/io/shapefile/soque/Soque_Nodes.shp diff --git a/landlab/data/io/shapefile/soque/Soque_Nodes.shx b/src/landlab/data/io/shapefile/soque/Soque_Nodes.shx similarity index 100% rename from landlab/data/io/shapefile/soque/Soque_Nodes.shx rename to src/landlab/data/io/shapefile/soque/Soque_Nodes.shx diff --git a/landlab/data_record/__init__.py b/src/landlab/data_record/__init__.py similarity index 100% rename from landlab/data_record/__init__.py rename to src/landlab/data_record/__init__.py diff --git a/src/landlab/data_record/_aggregators.pyx b/src/landlab/data_record/_aggregators.pyx new file mode 100644 index 0000000000..022c8e7929 --- /dev/null +++ b/src/landlab/data_record/_aggregators.pyx @@ -0,0 +1,99 @@ +cimport cython +from cython.parallel cimport prange +from libc.stdlib cimport free +from libc.stdlib cimport malloc + +ctypedef fused id_t: + cython.integral + long long + + +ctypedef fused integral_out_t: + cython.integral + long long + + +ctypedef fused float_or_int: + cython.integral + long long + cython.floating + + +ctypedef fused float_or_int_weights: + cython.integral + long long + cython.floating + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef void aggregate_items_as_count( + integral_out_t [:] out, + const id_t [:] element_of_item, +) noexcept nogil: + cdef long number_of_elements = len(out) + cdef long number_of_items = len(element_of_item) + cdef int item, element + + for element in prange(number_of_elements, nogil=True, schedule="static"): + out[element] = 0 + + for item in range(number_of_items): + element = element_of_item[item] + if element >= 0: + out[element] = out[element] + 1 + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef void aggregate_items_as_sum( + cython.floating [:] out, + const id_t [:] element_of_item, + const float_or_int [:] value_of_item, +) noexcept nogil: + cdef long number_of_elements = len(out) + cdef long number_of_items = len(element_of_item) + cdef int item, element + + for element in prange(number_of_elements, nogil=True, schedule="static"): + out[element] = 0 + + for item in range(number_of_items): + element = element_of_item[item] + if element >= 0: + out[element] = out[element] + value_of_item[item] + + +@cython.boundscheck(False) +@cython.wraparound(False) +cpdef void aggregate_items_as_mean( + cython.floating [:] out, + const id_t [:] element_of_item, + const float_or_int [:] value_of_item, + const float_or_int_weights [:] weight_of_item, +) noexcept nogil: + cdef long number_of_elements = len(out) + cdef long number_of_items = len(element_of_item) + cdef int item, element + cdef double * total_weight_at_element = malloc( + number_of_elements * sizeof(double) + ) + + try: + for element in prange(number_of_elements, nogil=True, schedule="static"): + out[element] = 0.0 + total_weight_at_element[element] = 0.0 + + for item in range(number_of_items): + element = element_of_item[item] + if element >= 0: + out[element] = out[element] + value_of_item[item] * weight_of_item[item] + total_weight_at_element[element] = ( + total_weight_at_element[element] + weight_of_item[item] + ) + + for element in range(number_of_elements): + if total_weight_at_element[element] > 0: + out[element] = out[element] / total_weight_at_element[element] + finally: + free(total_weight_at_element) diff --git a/src/landlab/data_record/aggregators.py b/src/landlab/data_record/aggregators.py new file mode 100644 index 0000000000..891b006d98 --- /dev/null +++ b/src/landlab/data_record/aggregators.py @@ -0,0 +1,166 @@ +from __future__ import annotations + +import numpy as np +from numpy.typing import ArrayLike +from numpy.typing import NDArray + +from landlab.data_record._aggregators import ( + aggregate_items_as_count as _aggregate_items_as_count, +) +from landlab.data_record._aggregators import ( + aggregate_items_as_mean as _aggregate_items_as_mean, +) +from landlab.data_record._aggregators import ( + aggregate_items_as_sum as _aggregate_items_as_sum, +) + + +def aggregate_items_as_sum( + ids: ArrayLike, values: ArrayLike, size: int | None = None +) -> NDArray[np.floating]: + """Find the sum of values associated with an id. + + Parameters + ---------- + ids : array_like of int + An array of ids. + values : array_like + The value associated with the corresponding id in the `id` array. + size : int, optional + The size of the output array. This is useful if the `ids` + array doesn't contain all possible ids. + + Returns + ------- + ndarray of int + The sum of the values at each id. + + Examples + -------- + >>> from landlab.data_record.aggregators import aggregate_items_as_sum + >>> aggregate_items_as_sum([0, 0, 1, 3, 4, 5], [1, 2, 3, 3, 1, 5]) + array([3., 3., 0., 3., 1., 5.]) + >>> aggregate_items_as_sum([0, 0, 1, 3, 4, 5], [1, 2, 3, 3, 1, 5], size=8) + array([3., 3., 0., 3., 1., 5., 0., 0.]) + + Negative ids are ignored. + + >>> aggregate_items_as_sum([0, -1, 1, 3, 4, 5], [1, 2, 3, 3, 1, 5]) + array([1., 3., 0., 3., 1., 5.]) + """ + values = np.asarray(values, dtype=float) + ids = np.asarray(ids, dtype=int) + + size = _validate_size(ids, size=size) + + out = np.empty(size, dtype=float) + + _aggregate_items_as_sum(out, ids, values) + + return out + + +def aggregate_items_as_mean( + ids: ArrayLike, + values: ArrayLike, + weights: ArrayLike | None = None, + size: int | None = None, +) -> NDArray[np.floating]: + """Find the mean of values associated with an id. + + Parameters + ---------- + ids : array_like of int + An array of ids. + values : array_like + The value associated with the corresponding id in the `id` array. + size : int, optional + The size of the output array. This is useful if the `ids` + array doesn't contain all possible ids. + + Returns + ------- + ndarray of int + The mean of the values at each id. + + Examples + -------- + >>> from landlab.data_record.aggregators import aggregate_items_as_mean + >>> aggregate_items_as_mean([0, 0, 1, 3, 4, 5], [1, 2, 3, 3, 1, 5]) + array([1.5, 3. , 0. , 3. , 1. , 5. ]) + >>> aggregate_items_as_mean([0, 0, 1, 3, 4, 5], [1, 2, 3, 3, 1, 5], size=8) + array([1.5, 3. , 0. , 3. , 1. , 5. , 0. , 0. ]) + + Negative ids are ignored. + + >>> aggregate_items_as_mean([0, -1, 1, 3, 4, 5], [1, 2, 3, 3, 1, 5]) + array([1., 3., 0., 3., 1., 5.]) + """ + values = np.asarray(values) + if weights is None: + weights = np.ones_like(values) + else: + weights = np.asarray(weights, dtype=values.dtype) + ids = np.asarray(ids, dtype=int) + + size = _validate_size(ids, size=size) + + out = np.empty(size, dtype=float) + + assert len(values) == len(weights) + + _aggregate_items_as_mean(out, ids, values, weights) + + return out + + +def aggregate_items_as_count( + ids: ArrayLike, size: int | None = None +) -> NDArray[np.int_]: + """Count the number of time an id appears in an array. + + Parameters + ---------- + ids : array_like of int + An array of ids. + size : int, optional + The size of the output array. This is useful if the `ids` + array doesn't contain all possible ids. + + Returns + ------- + ndarray of int + The number of times each id appears. + + Examples + -------- + >>> from landlab.data_record.aggregators import aggregate_items_as_count + >>> aggregate_items_as_count([1, 2, 3, 3, 1, 5]) + array([0, 2, 1, 2, 0, 1]) + >>> aggregate_items_as_count([1, 2, 3, 3, 1, 5], size=8) + array([0, 2, 1, 2, 0, 1, 0, 0]) + + Negative ids are ignored. + + >>> aggregate_items_as_count([1, 2, 3, 3, -1, 5]) + array([0, 1, 1, 2, 0, 1]) + """ + ids = np.asarray(ids, dtype=int) + + size = _validate_size(ids, size=size) + + out = np.empty(size, dtype=int) + + _aggregate_items_as_count(out, ids) + + return out + + +def _validate_size(ids: NDArray[np.int_], size: int | None = None): + if size is None: + size = ids.max() + 1 + else: + assert ( + size >= ids.max() + 1 + ), "size must be greater than or equal to the largest input id" + return size diff --git a/landlab/data_record/data_record.py b/src/landlab/data_record/data_record.py similarity index 100% rename from landlab/data_record/data_record.py rename to src/landlab/data_record/data_record.py diff --git a/landlab/field/__init__.py b/src/landlab/field/__init__.py similarity index 100% rename from landlab/field/__init__.py rename to src/landlab/field/__init__.py diff --git a/landlab/field/errors.py b/src/landlab/field/errors.py similarity index 100% rename from landlab/field/errors.py rename to src/landlab/field/errors.py diff --git a/landlab/field/graph_field.py b/src/landlab/field/graph_field.py similarity index 92% rename from landlab/field/graph_field.py rename to src/landlab/field/graph_field.py index 8e2c4b56ae..7992946e6b 100644 --- a/landlab/field/graph_field.py +++ b/src/landlab/field/graph_field.py @@ -2,11 +2,14 @@ :class:`~landlab.graph.graph.Graph`. """ +import inspect +import warnings + import numpy as np import xarray as xr -from .errors import FieldError -from .errors import GroupError +from landlab.field.errors import FieldError +from landlab.field.errors import GroupError def reshape_for_storage(array, field_size=None): @@ -658,14 +661,9 @@ def has_field(self, *args, **kwds): :meta landlab: info-field """ - if len(args) == 2: - group, field = args - elif len(args) == 1: - group, field = kwds.pop("at", self.default_group), args[0] - else: - raise ValueError("number of arguments must be 1 or 2") - if group is None: - raise ValueError("no group provided") + kwds.setdefault("at", self.default_group) + args, group = _parse_args_and_location(1, *args, **kwds) + field = args[0] try: return field in self[group] @@ -784,14 +782,9 @@ def field_values(self, *args, **kwds): :meta landlab: field-io """ - if len(args) == 2: - group, field = args - elif len(args) == 1: - group, field = kwds.pop("at", self.default_group), args[0] - else: - raise ValueError("number of arguments must be 1 or 2") - if group is None: - raise ValueError("no group provided") + kwds.setdefault("at", self.default_group) + args, group = _parse_args_and_location(1, *args, **kwds) + field = args[0] try: fields = self[group] @@ -883,17 +876,12 @@ def return_array_or_field_values(self, *args, **kwds): :meta landlab: field-io """ - if len(args) == 2: - group, field = args - elif len(args) == 1: - group, field = kwds.pop("at", self.default_group), args[0] - else: - raise ValueError("number of arguments must be 1 or 2") - if group is None: - raise ValueError("no group provided") + kwds.setdefault("at", self.default_group) + args, group = _parse_args_and_location(1, *args, **kwds) + field = args[0] if isinstance(field, str): - vals = self.field_values(group, field) + vals = self.field_values(field, at=group) else: vals = np.asarray(field) if vals.size != self[group].size: @@ -932,14 +920,9 @@ def field_units(self, *args, **kwds): :meta landlab: info-field """ - if len(args) == 2: - group, field = args - elif len(args) == 1: - group, field = kwds.pop("at", self.default_group), args[0] - else: - raise ValueError("number of arguments must be 1 or 2") - if group is None: - raise ValueError("no group provided") + kwds.setdefault("at", self.default_group) + args, group = _parse_args_and_location(1, *args, **kwds) + field = args[0] return self[group]._ds[field].attrs["units"] @@ -977,10 +960,9 @@ def empty(self, *args, **kwds): :meta landlab: field-add """ - if len(args) == 0: - group = kwds.pop("at", kwds.pop("centering", "node")) - else: - group = args[0] + kwds.setdefault("at", kwds.pop("centering", "node")) + args, group = _parse_args_and_location(0, *args, **kwds) + kwds.pop("at") if group == "grid": raise ValueError( @@ -1148,12 +1130,10 @@ def add_field(self, *args, **kwds): :meta landlab: field-add """ - if len(args) == 3: - at, name, value_array = args - elif len(args) == 2: - at, name, value_array = (kwds.pop("at", None), args[0], args[1]) - else: - raise ValueError("number of arguments must be 2 or 3") + kwds.setdefault("at", "node") + args, at = _parse_args_and_location(2, *args, **kwds) + name, value_array = args + kwds.pop("at") units = kwds.get("units", "?") copy = kwds.get("copy", False) @@ -1250,12 +1230,11 @@ def add_empty(self, *args, **kwds): :meta landlab: field-add """ - if len(args) == 2: - loc, name = args - elif len(args) == 1: - loc, name = kwds.pop("at"), args[0] - else: - raise ValueError("number of arguments must be 1 or 2") + kwds.setdefault("at", "node") + args, loc = _parse_args_and_location(1, *args, **kwds) + name = args[0] + kwds.pop("at") + units = kwds.pop("units", "?") copy = kwds.pop("copy", False) clobber = kwds.pop("clobber", False) @@ -1397,14 +1376,65 @@ def add_full(self, *args, **kwds): :meta landlab: field-add """ - if len(args) == 3: - at, name, fill_value = args - elif len(args) == 2: - at = kwds.pop("at", "node") - name, fill_value = args - else: - raise ValueError("number of arguments must be 2 or 3") + kwds.setdefault("at", "node") + args, at = _parse_args_and_location(2, *args, **kwds) + name, fill_value = args + kwds.pop("at") data = self.add_empty(name, at=at, **kwds) data.fill(fill_value) return data + + +def _parse_args_and_location(n_args: int, *args, **kwds) -> tuple[str, str]: + """Parse arguments for backward compatibility. + + Parameters + ---------- + n_args : int + The new number of expected arguments. + *args : tuple + The passed arguments. + **kwds : dict + The passed keyword arguments. + + Returns + ------- + tuple of tuple, str + The arguments as expect with the new signature followed by + the location string. + + Examples + -------- + >>> from landlab.field.graph_field import _parse_args_and_location + >>> _parse_args_and_location(0, "node") + ((), 'node') + >>> _parse_args_and_location(1, "node", "z") + (('z',), 'node') + >>> _parse_args_and_location(2, "cell", "z", [1, 2, 3]) + (('z', [1, 2, 3]), 'cell') + >>> _parse_args_and_location(2, "cell", "z", [1, 2, 3], at="node") + (('z', [1, 2, 3]), 'cell') + >>> _parse_args_and_location(2, "z", [1, 2, 3], at="node") + (('z', [1, 2, 3]), 'node') + """ + if len(args) == n_args: + return args, kwds.get("at", None) + elif len(args) == n_args + 1: + caller_name = inspect.stack()[1].function + sig = f"at={args[0]!r}" + if n_args > 0: + sig = ", ".join([f"arg{n}" for n in range(n_args)] + [sig]) + + warnings.warn( + f"Calling `{caller_name}` with the field location as the first argument" + " is deprecated and will be removed in future versions. Instead, please use" + " the `at` keyword to specify the location:" + f" {caller_name}({sig}).", + FutureWarning, + stacklevel=3, + ) + + return args[1:], args[0] + else: + raise ValueError(f"number of arguments must be {n_args} or {n_args + 1}") diff --git a/landlab/framework/__init__.py b/src/landlab/framework/__init__.py similarity index 100% rename from landlab/framework/__init__.py rename to src/landlab/framework/__init__.py diff --git a/landlab/framework/component.py b/src/landlab/framework/component.py similarity index 100% rename from landlab/framework/component.py rename to src/landlab/framework/component.py diff --git a/landlab/framework/decorators.py b/src/landlab/framework/decorators.py similarity index 100% rename from landlab/framework/decorators.py rename to src/landlab/framework/decorators.py diff --git a/landlab/framework/interfaces.py b/src/landlab/framework/interfaces.py similarity index 100% rename from landlab/framework/interfaces.py rename to src/landlab/framework/interfaces.py diff --git a/landlab/graph/__init__.py b/src/landlab/graph/__init__.py similarity index 100% rename from landlab/graph/__init__.py rename to src/landlab/graph/__init__.py diff --git a/landlab/graph/dual.py b/src/landlab/graph/dual.py similarity index 100% rename from landlab/graph/dual.py rename to src/landlab/graph/dual.py diff --git a/landlab/graph/ext/__init__.py b/src/landlab/graph/ext/__init__.py similarity index 100% rename from landlab/graph/ext/__init__.py rename to src/landlab/graph/ext/__init__.py diff --git a/landlab/graph/framed_voronoi/__init__.py b/src/landlab/graph/framed_voronoi/__init__.py similarity index 100% rename from landlab/graph/framed_voronoi/__init__.py rename to src/landlab/graph/framed_voronoi/__init__.py diff --git a/landlab/graph/framed_voronoi/dual_framed_voronoi.py b/src/landlab/graph/framed_voronoi/dual_framed_voronoi.py similarity index 100% rename from landlab/graph/framed_voronoi/dual_framed_voronoi.py rename to src/landlab/graph/framed_voronoi/dual_framed_voronoi.py diff --git a/landlab/graph/framed_voronoi/framed_voronoi.py b/src/landlab/graph/framed_voronoi/framed_voronoi.py similarity index 100% rename from landlab/graph/framed_voronoi/framed_voronoi.py rename to src/landlab/graph/framed_voronoi/framed_voronoi.py diff --git a/landlab/graph/graph.py b/src/landlab/graph/graph.py similarity index 100% rename from landlab/graph/graph.py rename to src/landlab/graph/graph.py diff --git a/landlab/graph/graph_convention.py b/src/landlab/graph/graph_convention.py similarity index 100% rename from landlab/graph/graph_convention.py rename to src/landlab/graph/graph_convention.py diff --git a/landlab/graph/hex/__init__.py b/src/landlab/graph/hex/__init__.py similarity index 100% rename from landlab/graph/hex/__init__.py rename to src/landlab/graph/hex/__init__.py diff --git a/landlab/graph/hex/dual_hex.py b/src/landlab/graph/hex/dual_hex.py similarity index 100% rename from landlab/graph/hex/dual_hex.py rename to src/landlab/graph/hex/dual_hex.py diff --git a/landlab/graph/hex/ext/__init__.py b/src/landlab/graph/hex/ext/__init__.py similarity index 100% rename from landlab/graph/hex/ext/__init__.py rename to src/landlab/graph/hex/ext/__init__.py diff --git a/landlab/graph/hex/ext/hex.pyx b/src/landlab/graph/hex/ext/hex.pyx similarity index 100% rename from landlab/graph/hex/ext/hex.pyx rename to src/landlab/graph/hex/ext/hex.pyx diff --git a/landlab/graph/hex/ext/perimeternodes.pyx b/src/landlab/graph/hex/ext/perimeternodes.pyx similarity index 100% rename from landlab/graph/hex/ext/perimeternodes.pyx rename to src/landlab/graph/hex/ext/perimeternodes.pyx diff --git a/landlab/graph/hex/hex.py b/src/landlab/graph/hex/hex.py similarity index 100% rename from landlab/graph/hex/hex.py rename to src/landlab/graph/hex/hex.py diff --git a/landlab/graph/matrix/__init__.py b/src/landlab/graph/matrix/__init__.py similarity index 100% rename from landlab/graph/matrix/__init__.py rename to src/landlab/graph/matrix/__init__.py diff --git a/landlab/graph/matrix/at_node.py b/src/landlab/graph/matrix/at_node.py similarity index 100% rename from landlab/graph/matrix/at_node.py rename to src/landlab/graph/matrix/at_node.py diff --git a/landlab/graph/matrix/at_patch.py b/src/landlab/graph/matrix/at_patch.py similarity index 100% rename from landlab/graph/matrix/at_patch.py rename to src/landlab/graph/matrix/at_patch.py diff --git a/landlab/graph/matrix/ext/__init__.py b/src/landlab/graph/matrix/ext/__init__.py similarity index 100% rename from landlab/graph/matrix/ext/__init__.py rename to src/landlab/graph/matrix/ext/__init__.py diff --git a/landlab/graph/matrix/ext/at_patch.pyx b/src/landlab/graph/matrix/ext/at_patch.pyx similarity index 100% rename from landlab/graph/matrix/ext/at_patch.pyx rename to src/landlab/graph/matrix/ext/at_patch.pyx diff --git a/landlab/graph/matrix/ext/matrix.pyx b/src/landlab/graph/matrix/ext/matrix.pyx similarity index 100% rename from landlab/graph/matrix/ext/matrix.pyx rename to src/landlab/graph/matrix/ext/matrix.pyx diff --git a/landlab/graph/object/__init__.py b/src/landlab/graph/object/__init__.py similarity index 100% rename from landlab/graph/object/__init__.py rename to src/landlab/graph/object/__init__.py diff --git a/landlab/graph/object/at_node.py b/src/landlab/graph/object/at_node.py similarity index 100% rename from landlab/graph/object/at_node.py rename to src/landlab/graph/object/at_node.py diff --git a/landlab/graph/object/at_patch.py b/src/landlab/graph/object/at_patch.py similarity index 100% rename from landlab/graph/object/at_patch.py rename to src/landlab/graph/object/at_patch.py diff --git a/landlab/graph/object/ext/__init__.py b/src/landlab/graph/object/ext/__init__.py similarity index 100% rename from landlab/graph/object/ext/__init__.py rename to src/landlab/graph/object/ext/__init__.py diff --git a/landlab/graph/object/ext/at_node.pyx b/src/landlab/graph/object/ext/at_node.pyx similarity index 100% rename from landlab/graph/object/ext/at_node.pyx rename to src/landlab/graph/object/ext/at_node.pyx diff --git a/landlab/graph/object/ext/at_patch.pyx b/src/landlab/graph/object/ext/at_patch.pyx similarity index 100% rename from landlab/graph/object/ext/at_patch.pyx rename to src/landlab/graph/object/ext/at_patch.pyx diff --git a/landlab/graph/quantity/__init__.py b/src/landlab/graph/quantity/__init__.py similarity index 100% rename from landlab/graph/quantity/__init__.py rename to src/landlab/graph/quantity/__init__.py diff --git a/landlab/graph/quantity/ext/__init__.py b/src/landlab/graph/quantity/ext/__init__.py similarity index 100% rename from landlab/graph/quantity/ext/__init__.py rename to src/landlab/graph/quantity/ext/__init__.py diff --git a/landlab/graph/quantity/ext/of_element.pyx b/src/landlab/graph/quantity/ext/of_element.pyx similarity index 100% rename from landlab/graph/quantity/ext/of_element.pyx rename to src/landlab/graph/quantity/ext/of_element.pyx diff --git a/landlab/graph/quantity/ext/of_link.pyx b/src/landlab/graph/quantity/ext/of_link.pyx similarity index 100% rename from landlab/graph/quantity/ext/of_link.pyx rename to src/landlab/graph/quantity/ext/of_link.pyx diff --git a/landlab/graph/quantity/ext/of_patch.pyx b/src/landlab/graph/quantity/ext/of_patch.pyx similarity index 100% rename from landlab/graph/quantity/ext/of_patch.pyx rename to src/landlab/graph/quantity/ext/of_patch.pyx diff --git a/landlab/graph/quantity/of_link.py b/src/landlab/graph/quantity/of_link.py similarity index 100% rename from landlab/graph/quantity/of_link.py rename to src/landlab/graph/quantity/of_link.py diff --git a/landlab/graph/quantity/of_patch.py b/src/landlab/graph/quantity/of_patch.py similarity index 100% rename from landlab/graph/quantity/of_patch.py rename to src/landlab/graph/quantity/of_patch.py diff --git a/landlab/graph/quasi_spherical/__init__.py b/src/landlab/graph/quasi_spherical/__init__.py similarity index 100% rename from landlab/graph/quasi_spherical/__init__.py rename to src/landlab/graph/quasi_spherical/__init__.py diff --git a/landlab/graph/quasi_spherical/dual_icosphere.py b/src/landlab/graph/quasi_spherical/dual_icosphere.py similarity index 100% rename from landlab/graph/quasi_spherical/dual_icosphere.py rename to src/landlab/graph/quasi_spherical/dual_icosphere.py diff --git a/landlab/graph/quasi_spherical/refinable_icosahedron.py b/src/landlab/graph/quasi_spherical/refinable_icosahedron.py similarity index 100% rename from landlab/graph/quasi_spherical/refinable_icosahedron.py rename to src/landlab/graph/quasi_spherical/refinable_icosahedron.py diff --git a/landlab/graph/radial/__init__.py b/src/landlab/graph/radial/__init__.py similarity index 100% rename from landlab/graph/radial/__init__.py rename to src/landlab/graph/radial/__init__.py diff --git a/landlab/graph/radial/dual_radial.py b/src/landlab/graph/radial/dual_radial.py similarity index 100% rename from landlab/graph/radial/dual_radial.py rename to src/landlab/graph/radial/dual_radial.py diff --git a/landlab/graph/radial/radial.py b/src/landlab/graph/radial/radial.py similarity index 100% rename from landlab/graph/radial/radial.py rename to src/landlab/graph/radial/radial.py diff --git a/landlab/graph/sort/__init__.py b/src/landlab/graph/sort/__init__.py similarity index 100% rename from landlab/graph/sort/__init__.py rename to src/landlab/graph/sort/__init__.py diff --git a/landlab/graph/sort/ext/__init__.py b/src/landlab/graph/sort/ext/__init__.py similarity index 100% rename from landlab/graph/sort/ext/__init__.py rename to src/landlab/graph/sort/ext/__init__.py diff --git a/landlab/graph/sort/ext/_deprecated_sparse.pyx b/src/landlab/graph/sort/ext/_deprecated_sparse.pyx similarity index 100% rename from landlab/graph/sort/ext/_deprecated_sparse.pyx rename to src/landlab/graph/sort/ext/_deprecated_sparse.pyx diff --git a/landlab/graph/sort/ext/argsort.pxd b/src/landlab/graph/sort/ext/argsort.pxd similarity index 100% rename from landlab/graph/sort/ext/argsort.pxd rename to src/landlab/graph/sort/ext/argsort.pxd diff --git a/landlab/graph/sort/ext/argsort.pyx b/src/landlab/graph/sort/ext/argsort.pyx similarity index 100% rename from landlab/graph/sort/ext/argsort.pyx rename to src/landlab/graph/sort/ext/argsort.pyx diff --git a/landlab/graph/sort/ext/intpair.pyx b/src/landlab/graph/sort/ext/intpair.pyx similarity index 100% rename from landlab/graph/sort/ext/intpair.pyx rename to src/landlab/graph/sort/ext/intpair.pyx diff --git a/landlab/graph/sort/ext/remap_element.pyx b/src/landlab/graph/sort/ext/remap_element.pyx similarity index 100% rename from landlab/graph/sort/ext/remap_element.pyx rename to src/landlab/graph/sort/ext/remap_element.pyx diff --git a/landlab/graph/sort/ext/spoke_sort.pyx b/src/landlab/graph/sort/ext/spoke_sort.pyx similarity index 100% rename from landlab/graph/sort/ext/spoke_sort.pyx rename to src/landlab/graph/sort/ext/spoke_sort.pyx diff --git a/landlab/graph/sort/intpair.py b/src/landlab/graph/sort/intpair.py similarity index 100% rename from landlab/graph/sort/intpair.py rename to src/landlab/graph/sort/intpair.py diff --git a/landlab/graph/sort/sort.py b/src/landlab/graph/sort/sort.py similarity index 100% rename from landlab/graph/sort/sort.py rename to src/landlab/graph/sort/sort.py diff --git a/landlab/graph/structured_quad/__init__.py b/src/landlab/graph/structured_quad/__init__.py similarity index 100% rename from landlab/graph/structured_quad/__init__.py rename to src/landlab/graph/structured_quad/__init__.py diff --git a/landlab/graph/structured_quad/dual_structured_quad.py b/src/landlab/graph/structured_quad/dual_structured_quad.py similarity index 100% rename from landlab/graph/structured_quad/dual_structured_quad.py rename to src/landlab/graph/structured_quad/dual_structured_quad.py diff --git a/landlab/graph/structured_quad/ext/__init__.py b/src/landlab/graph/structured_quad/ext/__init__.py similarity index 100% rename from landlab/graph/structured_quad/ext/__init__.py rename to src/landlab/graph/structured_quad/ext/__init__.py diff --git a/landlab/graph/structured_quad/ext/at_cell.pyx b/src/landlab/graph/structured_quad/ext/at_cell.pyx similarity index 100% rename from landlab/graph/structured_quad/ext/at_cell.pyx rename to src/landlab/graph/structured_quad/ext/at_cell.pyx diff --git a/landlab/graph/structured_quad/ext/at_face.pyx b/src/landlab/graph/structured_quad/ext/at_face.pyx similarity index 100% rename from landlab/graph/structured_quad/ext/at_face.pyx rename to src/landlab/graph/structured_quad/ext/at_face.pyx diff --git a/landlab/graph/structured_quad/ext/at_link.pyx b/src/landlab/graph/structured_quad/ext/at_link.pyx similarity index 100% rename from landlab/graph/structured_quad/ext/at_link.pyx rename to src/landlab/graph/structured_quad/ext/at_link.pyx diff --git a/landlab/graph/structured_quad/ext/at_node.pyx b/src/landlab/graph/structured_quad/ext/at_node.pyx similarity index 100% rename from landlab/graph/structured_quad/ext/at_node.pyx rename to src/landlab/graph/structured_quad/ext/at_node.pyx diff --git a/landlab/graph/structured_quad/ext/at_patch.pyx b/src/landlab/graph/structured_quad/ext/at_patch.pyx similarity index 100% rename from landlab/graph/structured_quad/ext/at_patch.pyx rename to src/landlab/graph/structured_quad/ext/at_patch.pyx diff --git a/landlab/graph/structured_quad/structured_quad.py b/src/landlab/graph/structured_quad/structured_quad.py similarity index 100% rename from landlab/graph/structured_quad/structured_quad.py rename to src/landlab/graph/structured_quad/structured_quad.py diff --git a/landlab/graph/ugrid.py b/src/landlab/graph/ugrid.py similarity index 100% rename from landlab/graph/ugrid.py rename to src/landlab/graph/ugrid.py diff --git a/landlab/graph/voronoi/__init__.py b/src/landlab/graph/voronoi/__init__.py similarity index 100% rename from landlab/graph/voronoi/__init__.py rename to src/landlab/graph/voronoi/__init__.py diff --git a/landlab/graph/voronoi/dual_voronoi.py b/src/landlab/graph/voronoi/dual_voronoi.py similarity index 100% rename from landlab/graph/voronoi/dual_voronoi.py rename to src/landlab/graph/voronoi/dual_voronoi.py diff --git a/landlab/graph/voronoi/ext/__init__.py b/src/landlab/graph/voronoi/ext/__init__.py similarity index 100% rename from landlab/graph/voronoi/ext/__init__.py rename to src/landlab/graph/voronoi/ext/__init__.py diff --git a/landlab/graph/voronoi/ext/delaunay.pyx b/src/landlab/graph/voronoi/ext/delaunay.pyx similarity index 100% rename from landlab/graph/voronoi/ext/delaunay.pyx rename to src/landlab/graph/voronoi/ext/delaunay.pyx diff --git a/landlab/graph/voronoi/ext/voronoi.pyx b/src/landlab/graph/voronoi/ext/voronoi.pyx similarity index 100% rename from landlab/graph/voronoi/ext/voronoi.pyx rename to src/landlab/graph/voronoi/ext/voronoi.pyx diff --git a/landlab/graph/voronoi/voronoi.py b/src/landlab/graph/voronoi/voronoi.py similarity index 100% rename from landlab/graph/voronoi/voronoi.py rename to src/landlab/graph/voronoi/voronoi.py diff --git a/landlab/graph/voronoi/voronoi_to_graph.py b/src/landlab/graph/voronoi/voronoi_to_graph.py similarity index 100% rename from landlab/graph/voronoi/voronoi_to_graph.py rename to src/landlab/graph/voronoi/voronoi_to_graph.py diff --git a/landlab/grid/__init__.py b/src/landlab/grid/__init__.py similarity index 100% rename from landlab/grid/__init__.py rename to src/landlab/grid/__init__.py diff --git a/landlab/grid/base.py b/src/landlab/grid/base.py similarity index 99% rename from landlab/grid/base.py rename to src/landlab/grid/base.py index 50e65c5aec..722e35ebef 100644 --- a/landlab/grid/base.py +++ b/src/landlab/grid/base.py @@ -1,10 +1,6 @@ #! /usr/env/python """Python implementation of ModelGrid, a base class used to create and manage grids for 2D numerical models. - -Do NOT add new documentation here. Grid documentation is now built in a -semi-automated fashion. To modify the text seen on the web, edit the -files `docs/text_for_[gridfile].py.txt`. """ import contextlib import fnmatch diff --git a/landlab/grid/create.py b/src/landlab/grid/create.py similarity index 95% rename from landlab/grid/create.py rename to src/landlab/grid/create.py index b39d5826c1..0130a177ec 100644 --- a/landlab/grid/create.py +++ b/src/landlab/grid/create.py @@ -192,7 +192,7 @@ def as_list_of_tuples(items): def create_grid(file_like, section=None): """Create grid, initialize fields, and set boundary conditions. - **create_grid** expects a dictionary with three keys: "grid", "fields", and + :func:`~.create_grid` expects a dictionary with three keys: "grid", "fields", and "boundary_conditions". **Dictionary Section "grid"** @@ -201,11 +201,11 @@ def create_grid(file_like, section=None): containing the name of a Landlab model grid type as its only key. The following grid types are valid: - - :py:class:`~landlab.grid.raster.RasterModelGrid` - - :py:class:`~landlab.grid.voronoi.VoronoiDelaunayGrid` - - :py:class:`~landlab.grid.hex.HexModelGrid` - - :py:class:`~landlab.grid.radial.RadialModelGrid` - - :py:class:`~landlab.grid.network.NetworkModelGrid` + * :class:`~.RasterModelGrid` + * :class:`~.VoronoiDelaunayGrid` + * :class:`~.HexModelGrid` + * :class:`~.RadialModelGrid` + * :class:`~.NetworkModelGrid` The value associated with the grid name key is a list containing the arguments. If any keyword arguments are passed, they should be passed as @@ -240,9 +240,8 @@ def create_grid(file_like, section=None): value is itself a dictionary indicating the name of the field and how it should be created. A field can either be created by reading from a file or creating synthetic values. The - :py:func:`~landlab.io.netcdf.read.read_netcdf` and - :py:func:`~landlab.io.esri_ascii.read_esri_ascii` functions, and the - :py:mod:`synthetic fields ` + :func:`~.netcdf.read.read_netcdf` and :func:`~.esri_ascii.load` functions, + and the :mod:`synthetic fields ` package are currently supported methods to create fields. These may be chained together (as is shown in the Example section below). If these functions do not meet your needs, we welcome contributions that extend the @@ -255,7 +254,7 @@ def create_grid(file_like, section=None): given any units. The following example would use the - :py:func:`~landlab.values.synthetic.plane` function from the synthetic + :func:`~.synthetic.plane` function from the synthetic values package to create a *node* value for the field *topographic__elevation*. The plane function adds values to a Landlab model grid field that lie on a plane specified by a point and a normal vector. In @@ -308,7 +307,7 @@ def create_grid(file_like, section=None): Parameters ---------- - file_like : file_like or str + file_like or str Dictionary, contents of a dictionary as a string, a file-like object, or the path to a file containing a YAML dictionary. diff --git a/landlab/grid/create_network.py b/src/landlab/grid/create_network.py similarity index 100% rename from landlab/grid/create_network.py rename to src/landlab/grid/create_network.py diff --git a/landlab/grid/decorators.py b/src/landlab/grid/decorators.py similarity index 100% rename from landlab/grid/decorators.py rename to src/landlab/grid/decorators.py diff --git a/landlab/grid/diagonals.py b/src/landlab/grid/diagonals.py similarity index 100% rename from landlab/grid/diagonals.py rename to src/landlab/grid/diagonals.py diff --git a/landlab/grid/divergence.py b/src/landlab/grid/divergence.py similarity index 100% rename from landlab/grid/divergence.py rename to src/landlab/grid/divergence.py diff --git a/landlab/grid/ext/raster_divergence.pyx b/src/landlab/grid/ext/raster_divergence.pyx similarity index 100% rename from landlab/grid/ext/raster_divergence.pyx rename to src/landlab/grid/ext/raster_divergence.pyx diff --git a/landlab/grid/ext/raster_gradient.pyx b/src/landlab/grid/ext/raster_gradient.pyx similarity index 100% rename from landlab/grid/ext/raster_gradient.pyx rename to src/landlab/grid/ext/raster_gradient.pyx diff --git a/landlab/grid/framed_voronoi.py b/src/landlab/grid/framed_voronoi.py similarity index 96% rename from landlab/grid/framed_voronoi.py rename to src/landlab/grid/framed_voronoi.py index 806a6265c8..93cfcf84bc 100644 --- a/landlab/grid/framed_voronoi.py +++ b/src/landlab/grid/framed_voronoi.py @@ -3,10 +3,6 @@ manage unstructured Voronoi-Delaunay grids for 2D numerical models, with a structured perimeter layout -Do NOT add new documentation here. Grid documentation is now built in a -semi- automated fashion. To modify the text seen on the web, edit the -files `docs/text_for_[gridfile].py.txt`. - .. codeauthor:: sebastien lenard """ diff --git a/landlab/grid/gradients.py b/src/landlab/grid/gradients.py similarity index 100% rename from landlab/grid/gradients.py rename to src/landlab/grid/gradients.py diff --git a/landlab/grid/grid_funcs.py b/src/landlab/grid/grid_funcs.py similarity index 100% rename from landlab/grid/grid_funcs.py rename to src/landlab/grid/grid_funcs.py diff --git a/landlab/grid/hex.py b/src/landlab/grid/hex.py similarity index 98% rename from landlab/grid/hex.py rename to src/landlab/grid/hex.py index 3b1b190c4b..56c23e45de 100644 --- a/landlab/grid/hex.py +++ b/src/landlab/grid/hex.py @@ -1,10 +1,6 @@ #! /usr/env/python """Python implementation of HexModelGrid, a grid class used to create and manage structured Voronoi-Delaunay grids for 2D numerical models. - -Do NOT add new documentation here. Grid documentation is now built in a -semi- automated fashion. To modify the text seen on the web, edit the -files `docs/text_for_[gridfile].py.txt`. """ import numpy import xarray as xr @@ -439,7 +435,7 @@ def set_watershed_boundary_condition_outlet_id( :meta landlab: boundary-condition """ # get node_data if a field name - node_data = self.return_array_or_field_values("node", node_data) + node_data = self.return_array_or_field_values(node_data, at="node") # make ring of no data nodes self.status_at_node[self.boundary_nodes] = self.BC_NODE_IS_CLOSED @@ -512,7 +508,7 @@ def set_watershed_boundary_condition( :meta landlab: boundary-condition """ # get node_data if a field name - node_data = self.return_array_or_field_values("node", node_data) + node_data = self.return_array_or_field_values(node_data, at="node") # make ring of no data nodes self.status_at_node[self.boundary_nodes] = self.BC_NODE_IS_CLOSED diff --git a/landlab/grid/hex_mappers.py b/src/landlab/grid/hex_mappers.py similarity index 95% rename from landlab/grid/hex_mappers.py rename to src/landlab/grid/hex_mappers.py index 9366075bd4..7e449c4d19 100755 --- a/landlab/grid/hex_mappers.py +++ b/src/landlab/grid/hex_mappers.py @@ -96,20 +96,21 @@ def map_link_vector_components_to_node_hex(grid, data_at_link): Notes ----- Calculation is only made for core nodes; boundary nodes receive zeros. - For a grid with orientation='horizontal', one of the 3 link orientations + + For a grid with orientation='horizontal', one of the 3 link orientations is horizontal. The x component is therefore taken as the average value of the links to the east (right) and west (left). For a grid with orientation='vertical', the same principle applies for the y component: it is the average of the link values to the north/top and south/bottom. - In general, the theory behind the approach is that there exists a + + In general, the theory behind the approach is that there exists a "true" vector field that has been projected onto the links. Let $V = (v_x, v_y)$ be the true vector. The projection of $V$ onto two links with unit vectors $l_1 = (l_{1x}, l_{1y})$ and $l_2 = (l_{2x}, l_{2y})$ yields the following formula for the scalar magnitude, or component, of - the two link vectors: + the two link vectors:: L_1 = V dot l_1 - L_2 = V dot l_2 We know $L_1$ and $L_2$: they are the values associated with two adjacent @@ -119,11 +120,13 @@ def map_link_vector_components_to_node_hex(grid, data_at_link): which derive from the link orientations (they involve sin 60 and cos 60). So we have two equations with two unknowns: the vector components $v_x$ and $v_y$. - In practice, we use this math to obtain the $y$ component for a + + In practice, we use this math to obtain the $y$ component for a horizontal grid, and the $x$ component for a vertical grid. The opposite component is found directly from the horizontal or vertical links, respectively. - Note that in the above doc tests, we take advantage of the fact that + + Note that in the above doc tests, we take advantage of the fact that sin 60 deg = half the square root of 3 (no need to import math or numpy). """ cores = grid.core_nodes diff --git a/landlab/grid/icosphere.py b/src/landlab/grid/icosphere.py similarity index 100% rename from landlab/grid/icosphere.py rename to src/landlab/grid/icosphere.py diff --git a/landlab/grid/linkorientation.py b/src/landlab/grid/linkorientation.py similarity index 100% rename from landlab/grid/linkorientation.py rename to src/landlab/grid/linkorientation.py diff --git a/landlab/grid/linkstatus.py b/src/landlab/grid/linkstatus.py similarity index 100% rename from landlab/grid/linkstatus.py rename to src/landlab/grid/linkstatus.py diff --git a/landlab/grid/mappers.py b/src/landlab/grid/mappers.py similarity index 100% rename from landlab/grid/mappers.py rename to src/landlab/grid/mappers.py diff --git a/landlab/grid/network.py b/src/landlab/grid/network.py similarity index 100% rename from landlab/grid/network.py rename to src/landlab/grid/network.py diff --git a/landlab/grid/nodestatus.py b/src/landlab/grid/nodestatus.py similarity index 100% rename from landlab/grid/nodestatus.py rename to src/landlab/grid/nodestatus.py diff --git a/landlab/grid/radial.py b/src/landlab/grid/radial.py similarity index 96% rename from landlab/grid/radial.py rename to src/landlab/grid/radial.py index bf134b08f8..db6e5ec4ea 100644 --- a/landlab/grid/radial.py +++ b/src/landlab/grid/radial.py @@ -1,10 +1,6 @@ #! /usr/env/python """Python implementation of RadialModelGrid, a grid class used to create and manage structured Voronoi-Delaunay grids for 2D numerical models. - -Do NOT add new documentation here. Grid documentation is now built in a -semi- automated fashion. To modify the text seen on the web, edit the -files `docs/text_for_[gridfile].py.txt`. """ import numpy as np diff --git a/landlab/grid/raster.py b/src/landlab/grid/raster.py similarity index 99% rename from landlab/grid/raster.py rename to src/landlab/grid/raster.py index 0bc117c25b..2a9f55d9c7 100644 --- a/landlab/grid/raster.py +++ b/src/landlab/grid/raster.py @@ -1,10 +1,6 @@ #! /usr/env/python """A class used to create and manage regular raster grids for 2D numerical models in Landlab. - -Do NOT add new documentation here. Grid documentation is now built in a -semi- automated fashion. To modify the text seen on the web, edit the -files `docs/text_for_[gridfile].py.txt`. """ import contextlib @@ -295,8 +291,8 @@ def __getstate__(self): groups[at] = {} for name in self[at].keys(): groups[at][name] = { - "array": self.field_values(at, name), - "units": self.field_units(at, name), + "array": self.field_values(name, at=at), + "units": self.field_units(name, at=at), } state_dict["fields"] = groups @@ -977,7 +973,7 @@ def set_fixed_value_boundaries_at_grid_edges( # set a flag to indicate successful setting of internal values self.fixed_value_node_properties["internal_flag"] = True - if not self.has_field("node", value_of): + if not self.has_field(value_of, at="node"): print( """ ************************************************* @@ -1925,7 +1921,7 @@ def set_watershed_boundary_condition( :meta landlab: boundary-condition """ # get node_data if a field name - node_data = self.return_array_or_field_values("node", node_data) + node_data = self.return_array_or_field_values(node_data, at="node") # For this to be a watershed, need to make sure that there is a ring # of closed boundary nodes around the outside of the watershed, @@ -2106,7 +2102,7 @@ def set_open_nodes_disconnected_from_watershed_to_closed( :meta landlab: boundary-condition """ # get node_data if a field name - node_data = self.return_array_or_field_values("node", node_data) + node_data = self.return_array_or_field_values(node_data, at="node") if outlet_id is None: # verify that there is one and only one node with the status @@ -2268,7 +2264,7 @@ def set_watershed_boundary_condition_outlet_coords( :meta landlab: boundary-condition """ # get node_data if a field name - node_data = self.return_array_or_field_values("node", node_data) + node_data = self.return_array_or_field_values(node_data, at="node") # make ring of no data nodes self.set_closed_boundaries_at_grid_edges(True, True, True, True) @@ -2346,7 +2342,7 @@ def set_watershed_boundary_condition_outlet_id( :meta landlab: boundary-condition """ # get node_data if a field name - node_data = self.return_array_or_field_values("node", node_data) + node_data = self.return_array_or_field_values(node_data, at="node") # make ring of no data nodes self.set_closed_boundaries_at_grid_edges(True, True, True, True) diff --git a/landlab/grid/raster_aspect.py b/src/landlab/grid/raster_aspect.py similarity index 100% rename from landlab/grid/raster_aspect.py rename to src/landlab/grid/raster_aspect.py diff --git a/landlab/grid/raster_divergence.py b/src/landlab/grid/raster_divergence.py similarity index 100% rename from landlab/grid/raster_divergence.py rename to src/landlab/grid/raster_divergence.py diff --git a/landlab/grid/raster_funcs.py b/src/landlab/grid/raster_funcs.py similarity index 100% rename from landlab/grid/raster_funcs.py rename to src/landlab/grid/raster_funcs.py diff --git a/landlab/grid/raster_gradients.py b/src/landlab/grid/raster_gradients.py similarity index 100% rename from landlab/grid/raster_gradients.py rename to src/landlab/grid/raster_gradients.py diff --git a/landlab/grid/raster_mappers.py b/src/landlab/grid/raster_mappers.py similarity index 100% rename from landlab/grid/raster_mappers.py rename to src/landlab/grid/raster_mappers.py diff --git a/landlab/grid/raster_set_status.py b/src/landlab/grid/raster_set_status.py similarity index 100% rename from landlab/grid/raster_set_status.py rename to src/landlab/grid/raster_set_status.py diff --git a/landlab/grid/unstructured/__init__.py b/src/landlab/grid/unstructured/__init__.py similarity index 100% rename from landlab/grid/unstructured/__init__.py rename to src/landlab/grid/unstructured/__init__.py diff --git a/landlab/grid/unstructured/base.py b/src/landlab/grid/unstructured/base.py similarity index 100% rename from landlab/grid/unstructured/base.py rename to src/landlab/grid/unstructured/base.py diff --git a/landlab/grid/unstructured/cells.py b/src/landlab/grid/unstructured/cells.py similarity index 100% rename from landlab/grid/unstructured/cells.py rename to src/landlab/grid/unstructured/cells.py diff --git a/landlab/grid/unstructured/links.py b/src/landlab/grid/unstructured/links.py similarity index 100% rename from landlab/grid/unstructured/links.py rename to src/landlab/grid/unstructured/links.py diff --git a/landlab/grid/unstructured/nodes.py b/src/landlab/grid/unstructured/nodes.py similarity index 100% rename from landlab/grid/unstructured/nodes.py rename to src/landlab/grid/unstructured/nodes.py diff --git a/landlab/grid/unstructured/status.py b/src/landlab/grid/unstructured/status.py similarity index 100% rename from landlab/grid/unstructured/status.py rename to src/landlab/grid/unstructured/status.py diff --git a/landlab/grid/voronoi.py b/src/landlab/grid/voronoi.py similarity index 97% rename from landlab/grid/voronoi.py rename to src/landlab/grid/voronoi.py index 30cf872a56..aec5d0b8b2 100644 --- a/landlab/grid/voronoi.py +++ b/src/landlab/grid/voronoi.py @@ -1,10 +1,6 @@ #! /usr/env/python """Python implementation of VoronoiDelaunayGrid, a class used to create and manage unstructured, irregular grids for 2D numerical models. - -Do NOT add new documentation here. Grid documentation is now built in a -semi- automated fashion. To modify the text seen on the web, edit the -files `docs/text_for_[gridfile].py.txt`. """ import pathlib diff --git a/landlab/grid/warnings.py b/src/landlab/grid/warnings.py similarity index 100% rename from landlab/grid/warnings.py rename to src/landlab/grid/warnings.py diff --git a/landlab/io/__init__.py b/src/landlab/io/__init__.py similarity index 100% rename from landlab/io/__init__.py rename to src/landlab/io/__init__.py diff --git a/landlab/io/_deprecated_esri_ascii.py b/src/landlab/io/_deprecated_esri_ascii.py similarity index 100% rename from landlab/io/_deprecated_esri_ascii.py rename to src/landlab/io/_deprecated_esri_ascii.py diff --git a/landlab/io/esri_ascii.py b/src/landlab/io/esri_ascii.py similarity index 98% rename from landlab/io/esri_ascii.py rename to src/landlab/io/esri_ascii.py index 9d667ce4c5..7700b92f7e 100644 --- a/landlab/io/esri_ascii.py +++ b/src/landlab/io/esri_ascii.py @@ -46,27 +46,27 @@ def __str__(self) -> str: def dump( grid: RasterModelGrid, stream: TextIO | None = None, - at: str = "node", + at: Literal["node", "patch", "corner", "cell"] = "node", name: str | None = None, ) -> str | None: """Dump a grid field to ESRII ASCII format. Parameters ---------- - grid : RasterModelGrid + grid : A Landlab grid. - stream : file_like or None, optional + stream : A ``file_like`` object to write to. If ``None``, return a string containing the serialized grid. - at : {"node", "patch", "corner", "cell"}, optional + at : Where the field to be written is located on the grid. - name : str or None, optional + name : The name of the field to be written. If ``None``, only the header information will be written. Returns ------- - str or None + : The grid field in ESRI ASCII format or ``None`` if a ``file_like`` object was provided. @@ -152,7 +152,7 @@ def load( Returns ------- - RasterModelGrid + : A newly-created ``RasterModelGrid`` with, optionaly, the data added as a field (if `name` was provided). """ diff --git a/landlab/io/legacy_vtk.py b/src/landlab/io/legacy_vtk.py similarity index 100% rename from landlab/io/legacy_vtk.py rename to src/landlab/io/legacy_vtk.py diff --git a/landlab/io/native_landlab.py b/src/landlab/io/native_landlab.py similarity index 100% rename from landlab/io/native_landlab.py rename to src/landlab/io/native_landlab.py diff --git a/landlab/io/netcdf/__init__.py b/src/landlab/io/netcdf/__init__.py similarity index 100% rename from landlab/io/netcdf/__init__.py rename to src/landlab/io/netcdf/__init__.py diff --git a/landlab/io/netcdf/_constants.py b/src/landlab/io/netcdf/_constants.py similarity index 100% rename from landlab/io/netcdf/_constants.py rename to src/landlab/io/netcdf/_constants.py diff --git a/landlab/io/netcdf/dump.py b/src/landlab/io/netcdf/dump.py similarity index 100% rename from landlab/io/netcdf/dump.py rename to src/landlab/io/netcdf/dump.py diff --git a/landlab/io/netcdf/errors.py b/src/landlab/io/netcdf/errors.py similarity index 100% rename from landlab/io/netcdf/errors.py rename to src/landlab/io/netcdf/errors.py diff --git a/landlab/io/netcdf/load.py b/src/landlab/io/netcdf/load.py similarity index 100% rename from landlab/io/netcdf/load.py rename to src/landlab/io/netcdf/load.py diff --git a/landlab/io/netcdf/read.py b/src/landlab/io/netcdf/read.py similarity index 100% rename from landlab/io/netcdf/read.py rename to src/landlab/io/netcdf/read.py diff --git a/landlab/io/netcdf/write.py b/src/landlab/io/netcdf/write.py similarity index 100% rename from landlab/io/netcdf/write.py rename to src/landlab/io/netcdf/write.py diff --git a/landlab/io/obj.py b/src/landlab/io/obj.py similarity index 100% rename from landlab/io/obj.py rename to src/landlab/io/obj.py diff --git a/landlab/io/shapefile.py b/src/landlab/io/shapefile.py similarity index 100% rename from landlab/io/shapefile.py rename to src/landlab/io/shapefile.py diff --git a/landlab/layers/__init__.py b/src/landlab/layers/__init__.py similarity index 100% rename from landlab/layers/__init__.py rename to src/landlab/layers/__init__.py diff --git a/landlab/layers/eventlayers.py b/src/landlab/layers/eventlayers.py similarity index 100% rename from landlab/layers/eventlayers.py rename to src/landlab/layers/eventlayers.py diff --git a/landlab/layers/ext/__init__.py b/src/landlab/layers/ext/__init__.py similarity index 100% rename from landlab/layers/ext/__init__.py rename to src/landlab/layers/ext/__init__.py diff --git a/landlab/layers/ext/eventlayers.pyx b/src/landlab/layers/ext/eventlayers.pyx similarity index 100% rename from landlab/layers/ext/eventlayers.pyx rename to src/landlab/layers/ext/eventlayers.pyx diff --git a/landlab/layers/materiallayers.py b/src/landlab/layers/materiallayers.py similarity index 100% rename from landlab/layers/materiallayers.py rename to src/landlab/layers/materiallayers.py diff --git a/landlab/plot/__init__.py b/src/landlab/plot/__init__.py similarity index 100% rename from landlab/plot/__init__.py rename to src/landlab/plot/__init__.py diff --git a/landlab/plot/colors.py b/src/landlab/plot/colors.py similarity index 100% rename from landlab/plot/colors.py rename to src/landlab/plot/colors.py diff --git a/landlab/plot/drainage_plot.py b/src/landlab/plot/drainage_plot.py similarity index 100% rename from landlab/plot/drainage_plot.py rename to src/landlab/plot/drainage_plot.py diff --git a/landlab/plot/event_handler.py b/src/landlab/plot/event_handler.py similarity index 100% rename from landlab/plot/event_handler.py rename to src/landlab/plot/event_handler.py diff --git a/landlab/plot/graph.py b/src/landlab/plot/graph.py similarity index 100% rename from landlab/plot/graph.py rename to src/landlab/plot/graph.py diff --git a/landlab/plot/imshow.py b/src/landlab/plot/imshow.py similarity index 99% rename from landlab/plot/imshow.py rename to src/landlab/plot/imshow.py index 1dc36b5538..b16d6b07d9 100644 --- a/landlab/plot/imshow.py +++ b/src/landlab/plot/imshow.py @@ -529,7 +529,7 @@ def imshow_grid(grid, values, **kwds): ) if isinstance(values, str): - values = grid.field_values(values_at, values) + values = grid.field_values(values, at=values_at) if values_at == "node": imshow_grid_at_node(grid, values, **kwds) diff --git a/landlab/plot/imshowhs.py b/src/landlab/plot/imshowhs.py similarity index 99% rename from landlab/plot/imshowhs.py rename to src/landlab/plot/imshowhs.py index 1c41382962..0ee8b062a0 100644 --- a/landlab/plot/imshowhs.py +++ b/src/landlab/plot/imshowhs.py @@ -5,8 +5,8 @@ .. autosummary:: - ~landlab.plot.imshow.imshowhs_grid - ~landlab.plot.imshow.imshowhs_grid_at_node + ~landlab.plot.imshowhs.imshowhs_grid + ~landlab.plot.imshowhs.imshowhs_grid_at_node """ import warnings @@ -192,7 +192,8 @@ def imshowhs_grid(grid, values, **kwds): values_at = kwds.pop("at", values_at) if isinstance(values, str): - values = grid.field_values(values_at, values) + values = grid.field_values(values, at=values_at) + # values = grid.field_values(values_at, values) if values_at == "node": ax = imshowhs_grid_at_node(grid, values, **kwds) diff --git a/landlab/plot/layers.py b/src/landlab/plot/layers.py similarity index 100% rename from landlab/plot/layers.py rename to src/landlab/plot/layers.py diff --git a/landlab/plot/network_sediment_transporter/__init__.py b/src/landlab/plot/network_sediment_transporter/__init__.py similarity index 100% rename from landlab/plot/network_sediment_transporter/__init__.py rename to src/landlab/plot/network_sediment_transporter/__init__.py diff --git a/landlab/plot/network_sediment_transporter/locate_parcel_xy.py b/src/landlab/plot/network_sediment_transporter/locate_parcel_xy.py similarity index 100% rename from landlab/plot/network_sediment_transporter/locate_parcel_xy.py rename to src/landlab/plot/network_sediment_transporter/locate_parcel_xy.py diff --git a/landlab/plot/network_sediment_transporter/plot_network_and_parcels.py b/src/landlab/plot/network_sediment_transporter/plot_network_and_parcels.py similarity index 77% rename from landlab/plot/network_sediment_transporter/plot_network_and_parcels.py rename to src/landlab/plot/network_sediment_transporter/plot_network_and_parcels.py index 36df3f7d87..647fa046cb 100644 --- a/landlab/plot/network_sediment_transporter/plot_network_and_parcels.py +++ b/src/landlab/plot/network_sediment_transporter/plot_network_and_parcels.py @@ -1,11 +1,10 @@ -""" -This code was designed to plot outputs of the NetworkSedimentTransporter -landlab component. +"""Plot outputs of the NetworkSedimentTransporter. This code plots: - - the network, with option to color each link according to a link attribute. - - the parcels, with option to color and size each parcel according to - parcel attributes. + +* the network, with option to color each link according to a link attribute. +* the parcels, with option to color and size each parcel according to + parcel attributes. Authors: Katy Barnhart, Jon Czuba, Allison Pfeiffer """ @@ -45,20 +44,23 @@ def plot_network_and_parcels( parcel_size_max=40, parcel_alpha=0.5, fig=None, + output=None, **kwargs, ): - """Plot a river network and parcels on the river network. Intended to - display the results of the NetworkSedimentTransporter component. + """Plot a river network and parcels on the river network. - The river network (an instance of NetworkModelGrid) is plotted either as + Intended to display the results of the :class:`~.NetworkSedimentTransporter` + component. + + The river network (an instance of :class:`~.NetworkModelGrid`) is plotted either as straight links between grid nodes, or (if the network was created using a shapefile to set network topology) as sinuous lines representing the actual link geometry. - The parcels (an instance of DataRecord) are represented as dot markers + The parcels (an instance of :class:`~.DataRecord`) are represented as dot markers along the links, with the marker location set by parcel attribute `location_at_link`. The default is to plot the parcel locations at the - last timestep in DataRecord, though any time index may be specified. + last timestep in :class`~.DataRecord`, though any time index may be specified. Use of this plotting tool is described in detail in a landlab tutorial. @@ -68,102 +70,74 @@ def plot_network_and_parcels( Instance of NetworkModelGrid. parcels : DataRecord Instance of Landlab DataRecord, with the same attribute requirements as - NetworkSedimentTransporter. - parcel_time_index : int, time index of parcels DataRecord + :class:`~.NetworkSedimentTransporter`. + parcel_time_index : int, optional Parcel time index to plot. Default is last timestep in parcels - DataRecord. - map_buffer : 0.1 - Increase the plot extent by at least this much (default 0.1). Note, - b/c of axis equal, may be more. - parcel_filter : boolean array of shape (number_of_parcels, ) + :class:`~.DataRecord`. + map_buffer : float, optional + Increase the plot extent by at least this much. Note, because of axis + equal, may be more. + parcel_filter : array_like of bool, shape (number_of_parcels, ), optional Filter to plot only a selection of the parcels. - ######################## - ## Part 1: Network. To set the link colors provide either: - - network_color="k" + Other Parameters + ---------------- + network_color : str, optional Uniform color for network links. - - # or - - link_attribute : array or field name at link - Value used to set link color. Categorical options not supported. Must - be continuous. - link_attribute_title : str - String to use as the title, if link_attribute is a string, it is + link_attribute : array_like or str, optional + Value (as either an array or the name of an *at-link* field) used to set + link color. Categorical options not supported. Must be continuous. + link_attribute_title : str, optional + String to use as the title, if `link_attribute` is a string, it is used as the default. - network_cmap : "cividis" + network_cmap : str, optional Name of colormap for network. - network_norm : matplotlib color normalizer. - https://matplotlib.org/3.1.1/tutorials/colors/colormapnorms.html - Default is linear between min and max of link_attribute. - - # linewidth will be recognized by either link coloring option. - - network_linewidth : float - Width of network lines (default 0.5). - - ######################## - ## Part 2: Parcels. To set the parcel color, provide either: - - parcel_color : color str - Constant color used for parcel markers (default "k"). - - # or - - parcel_color_attribute : parcel attribute name. - Categorical options not supported. Must be continuous. - parcel_color_attribute_title : str - String to use as the legend title. If parcel_color_attribute is a + network_norm : matplotlib.colors.Normalize, optional + Default is linear between minimum and maximum of `link_attribute`. + network_linewidth : float, optional + Width of network lines. + parcel_color : str, optional + Constant color used for parcel markers. + parcel_color_attribute : str, optional + Parcel attribute name, categorical options not supported. Must be continuous. + parcel_color_attribute_title : str, optional + String to use as the legend title. If `parcel_color_attribute` is a string, it is used as the default. - parcel_color_cmap : cmap str - Name of colormap for variable parcel color (default "plasma"). - parcel_color_norm : matplotlib color normalizer. - https://matplotlib.org/3.1.1/tutorials/colors/colormapnorms.html - Default is linear between min and max of parcel_color_attribute. - - # for parcel size use either: - - parcel_size : float - Marker size, in points. - - # or - - parcel_size_attribute: parcel atribute name. - Categorical options not supported. Must be continuous. - parcel_size_attribute_title : str - string to use as the title, if parcel_size_attribute is a string, it is + parcel_color_cmap : str, optional + Name of colormap for variable parcel color. + parcel_color_norm : matplotlib.colors.Normalize, optional + Default is linear between minimum and maximum of `parcel_color_attribute`. + parcel_size : float, optional + Marker size in points. + parcel_size_attribute: str, optional + Parcel attribute name, categorical options not supported. Must be continuous. + parcel_size_attribute_title : str, optional + String to use as the title, if `parcel_size_attribute` is a string, it is used as the default. - parcel_size_norm : par - matplotlib color normalizer. - https://matplotlib.org/3.1.1/tutorials/colors/colormapnorms.html - Default is linear between min and max of parcel_size_attribute., - parcel_size_min : float + parcel_size_norm : matplotlib.colors.Normalize, optional + Default is linear between minimum and maximum of `parcel_size_attribute`. + parcel_size_min : float, optional Specify the smallest size of the dot markers plotted, in - units of points (default 5). Use with parcel_size_max. They will be - aligned with the limits of parcel_size_norm. - parcel_size_max : float + units of points (default 5). Use with `parcel_size_max`. They will be + aligned with the limits of `parcel_size_norm`. + parcel_size_max : float, optional Specify the largest size of the dot markers plotted, in - units of points (default 40). Use with parcel_size_min. They will be - aligned with the limits of parcel_size_norm. - - # with constant or attribute, can set parcel transparency - - parcel_alpha : float, between 0 and 1 - Specify parcel marker transparency (default 0.5). - - ################### Miscellaneous - - fig : figure object + units of points (default 40). Use with `parcel_size_min`. They will be + aligned with the limits of `parcel_size_norm`. + parcel_alpha : float, optional + Specify parcel marker transparency between 0.0 and 1.0. + fig : matplotlib.figure.Figure, optional Default is to create a new figure object. - - **kwargs Anything else to pass to figure creation. - - Returns - ------- - fig : - Figure object. - + output : bool, str, optional + If not provided (or ``False``), the image is sent to the imaging buffer to await + an explicit call to :func:`~matplotlib.pyplot.show` or + :func:`~matplotlib.pyplot.savefig` from outside this function. + If a string, `output` should be the path to a file (with file extension) to + save the figure to. The function will then call + :func:`~matplotlib.pyplot.savefig` itself. If ``True``, the function will call + :func:`~matplotlib.pyplot.show` itself once plotting is complete. + **kwargs : + Anything else to pass to figure creation. """ # part 0 checking and default setting. @@ -225,7 +199,11 @@ def plot_network_and_parcels( # set up figure, label and legend gridspecs. if fig is None: + fresh_fig = True fig = plt.figure(**kwargs) + else: + # we'll be adding this plot to existing axes + fresh_fig = False spec = gridspec.GridSpec( ncols=1, @@ -237,7 +215,14 @@ def plot_network_and_parcels( figure=fig, height_ratios=[1, 0.1, 0.2], ) - ax = fig.add_subplot(spec[0, 0]) + + if fresh_fig: + ax = fig.add_subplot(spec[0, 0]) + else: + plt.figure(fig) + ax = plt.gca() + ax.set_subplotspec(spec[0, 0]) + if n_legends > 0: label_spec = spec[1, 0].subgridspec( ncols=2 * n_legends - 1, @@ -462,7 +447,11 @@ def plot_network_and_parcels( # make axes equal ax.axis("equal") - return fig + if isinstance(output, str): + plt.savefig(output, bbox_inches="tight") + plt.clf() + elif output: + plt.show() def _get_xy_of_polylines(x_of_polylines, y_of_polylines): diff --git a/landlab/plot/video_out.py b/src/landlab/plot/video_out.py similarity index 100% rename from landlab/plot/video_out.py rename to src/landlab/plot/video_out.py diff --git a/landlab/utils/__init__.py b/src/landlab/utils/__init__.py similarity index 100% rename from landlab/utils/__init__.py rename to src/landlab/utils/__init__.py diff --git a/landlab/utils/_matrix.pyx b/src/landlab/utils/_matrix.pyx similarity index 100% rename from landlab/utils/_matrix.pyx rename to src/landlab/utils/_matrix.pyx diff --git a/landlab/utils/add_halo.py b/src/landlab/utils/add_halo.py similarity index 100% rename from landlab/utils/add_halo.py rename to src/landlab/utils/add_halo.py diff --git a/landlab/utils/count_repeats.py b/src/landlab/utils/count_repeats.py similarity index 100% rename from landlab/utils/count_repeats.py rename to src/landlab/utils/count_repeats.py diff --git a/landlab/utils/decorators.py b/src/landlab/utils/decorators.py similarity index 100% rename from landlab/utils/decorators.py rename to src/landlab/utils/decorators.py diff --git a/landlab/utils/depth_dependent_roughness.py b/src/landlab/utils/depth_dependent_roughness.py similarity index 100% rename from landlab/utils/depth_dependent_roughness.py rename to src/landlab/utils/depth_dependent_roughness.py diff --git a/landlab/utils/distance_to_divide.py b/src/landlab/utils/distance_to_divide.py similarity index 100% rename from landlab/utils/distance_to_divide.py rename to src/landlab/utils/distance_to_divide.py diff --git a/landlab/utils/ext/__init__.py b/src/landlab/utils/ext/__init__.py similarity index 100% rename from landlab/utils/ext/__init__.py rename to src/landlab/utils/ext/__init__.py diff --git a/src/landlab/utils/ext/jaggedarray.pyx b/src/landlab/utils/ext/jaggedarray.pyx new file mode 100644 index 0000000000..02740bd733 --- /dev/null +++ b/src/landlab/utils/ext/jaggedarray.pyx @@ -0,0 +1,34 @@ +cimport cython + +from cython.parallel import prange + +# https://cython.readthedocs.io/en/stable/src/userguide/fusedtypes.html +ctypedef fused id_t: + cython.integral + long long + + +ctypedef fused float_or_int: + cython.integral + long long + cython.floating + + +@cython.boundscheck(False) +@cython.wraparound(False) +def unravel( + float_or_int [:] data, + const id_t [:] offset, + float_or_int [:, :] out, +): + cdef long n_rows = len(offset) - 1 + cdef long col + cdef long row + cdef long offset_to_row + cdef long values_per_row + + for row in prange(n_rows, nogil=True, schedule="static"): + offset_to_row = offset[row] + values_per_row = offset[row + 1] - offset[row] + for col in range(values_per_row): + out[row, col] = data[offset_to_row + col] diff --git a/landlab/utils/fault_facet_finder.py b/src/landlab/utils/fault_facet_finder.py similarity index 100% rename from landlab/utils/fault_facet_finder.py rename to src/landlab/utils/fault_facet_finder.py diff --git a/landlab/utils/flow__distance.py b/src/landlab/utils/flow__distance.py similarity index 100% rename from landlab/utils/flow__distance.py rename to src/landlab/utils/flow__distance.py diff --git a/landlab/utils/geometry/spherical.py b/src/landlab/utils/geometry/spherical.py similarity index 100% rename from landlab/utils/geometry/spherical.py rename to src/landlab/utils/geometry/spherical.py diff --git a/landlab/utils/jaggedarray.py b/src/landlab/utils/jaggedarray.py similarity index 100% rename from landlab/utils/jaggedarray.py rename to src/landlab/utils/jaggedarray.py diff --git a/landlab/utils/jaggedarray_ma.py b/src/landlab/utils/jaggedarray_ma.py similarity index 100% rename from landlab/utils/jaggedarray_ma.py rename to src/landlab/utils/jaggedarray_ma.py diff --git a/landlab/utils/matrix.py b/src/landlab/utils/matrix.py similarity index 100% rename from landlab/utils/matrix.py rename to src/landlab/utils/matrix.py diff --git a/landlab/utils/return_array.py b/src/landlab/utils/return_array.py similarity index 100% rename from landlab/utils/return_array.py rename to src/landlab/utils/return_array.py diff --git a/landlab/utils/source_tracking_algorithm.py b/src/landlab/utils/source_tracking_algorithm.py similarity index 100% rename from landlab/utils/source_tracking_algorithm.py rename to src/landlab/utils/source_tracking_algorithm.py diff --git a/landlab/utils/stable_priority_queue.py b/src/landlab/utils/stable_priority_queue.py similarity index 100% rename from landlab/utils/stable_priority_queue.py rename to src/landlab/utils/stable_priority_queue.py diff --git a/landlab/utils/structured_grid.py b/src/landlab/utils/structured_grid.py similarity index 100% rename from landlab/utils/structured_grid.py rename to src/landlab/utils/structured_grid.py diff --git a/landlab/utils/suppress_output.py b/src/landlab/utils/suppress_output.py similarity index 100% rename from landlab/utils/suppress_output.py rename to src/landlab/utils/suppress_output.py diff --git a/landlab/utils/watershed.py b/src/landlab/utils/watershed.py similarity index 100% rename from landlab/utils/watershed.py rename to src/landlab/utils/watershed.py diff --git a/landlab/utils/window_statistic.py b/src/landlab/utils/window_statistic.py similarity index 100% rename from landlab/utils/window_statistic.py rename to src/landlab/utils/window_statistic.py diff --git a/landlab/values/__init__.py b/src/landlab/values/__init__.py similarity index 100% rename from landlab/values/__init__.py rename to src/landlab/values/__init__.py diff --git a/landlab/values/synthetic.py b/src/landlab/values/synthetic.py similarity index 99% rename from landlab/values/synthetic.py rename to src/landlab/values/synthetic.py index 5d1cf88fef..8c3739768f 100644 --- a/landlab/values/synthetic.py +++ b/src/landlab/values/synthetic.py @@ -1,4 +1,4 @@ -"""synthetic.py provides functions to add synthetic values to a model grid. +"""Add synthetic values to a model grid. Values can be added to any valid grid element (e.g. link or node). If no field exists, a field of float zeros will be initialized. @@ -119,7 +119,7 @@ def _create_missing_field(grid, name, at): """Create field of zeros if missing.""" if name not in grid[at]: - grid.add_zeros(at, name) + grid.add_zeros(name, at=at) def _where_to_add_values(grid, at, where): diff --git a/tests/ca/test_user_guide_example.py b/tests/ca/test_user_guide_example.py index 685348db09..7ee9964f6b 100755 --- a/tests/ca/test_user_guide_example.py +++ b/tests/ca/test_user_guide_example.py @@ -101,7 +101,7 @@ def test_user_guide_example(): # Create an array containing the initial node-state values # Create the node-state array and attach it to the grid - node_state_grid = mg.add_zeros("node", "node_state_map", dtype=int) + node_state_grid = mg.add_zeros("node_state_map", at="node", dtype=int) # Initialize the node-state array: here, the initial condition is a pile of # resting grains at the bottom of a container. diff --git a/tests/components/concentration_tracker/test_concentration_tracker_for_diffusion.py b/tests/components/concentration_tracker/test_concentration_tracker_for_diffusion.py index 1744f8ec47..0a57284983 100644 --- a/tests/components/concentration_tracker/test_concentration_tracker_for_diffusion.py +++ b/tests/components/concentration_tracker/test_concentration_tracker_for_diffusion.py @@ -200,6 +200,13 @@ def setup_method(self): self.mg.add_zeros("soil_production__rate", at="node") self.mg.add_zeros("soil__flux", at="link") + def test_not_implemented(self): + """Test that private run_one_step is not implemented""" + + ct = ConcentrationTrackerForDiffusion(self.mg) + with pytest.raises(NotImplementedError): + ct.run_one_step() + def test_concentration_from_soil_flux(self): """ ConcentrationTrackerForDiffusion should correctly calculate concentration @@ -220,7 +227,8 @@ def test_concentration_from_soil_flux(self): # Flux of -1 in the middle row should shift all C_sed values left by one node. ct = ConcentrationTrackerForDiffusion(self.mg) - ct.run_one_step(1) + ct.start_tracking() + ct.stop_tracking(1) expected = np.asarray( [ @@ -256,14 +264,13 @@ def test_concentration_from_weathering_without_conc_w(self): ct = ConcentrationTrackerForDiffusion(self.mg) + ct.start_tracking() # Soil volume is 1 at each node. Soil production rate of 1 doubles volume. # This is normally done by the DepthDependentDiffuser. Here, it is forced. self.mg.at_node["soil__depth"] += 1.0 - # Node 7: C_sed remains 1 because parent bedrock had conc_br of 1. # Node 8: C_sed is halved from 1 to 0.5 because parent bedrock had conc_br = 0. - - ct.run_one_step(1) + ct.stop_tracking(1) # Node 7 should have the same concentration as before. # Node 8 should have half its previous concentration. @@ -301,17 +308,16 @@ def test_concentration_from_weathering_with_conc_w(self): self.mg, concentration_from_weathering=0.0 ) + ct.start_tracking() # Soil volume is 1 at each node. Soil production rate of 1 doubles volume. # This is normally done by the DepthDependentDiffuser. Here, it is forced. self.mg.at_node["soil__depth"] += 1.0 - # conc_w overrides conc_br values. In this case, no concentration is produced by # the weathering process, even at Node 7 where conc_br = 1. # Node 7: C_sed is halved from 1 to 0.5 despite parent bedrock with conc_br = 1. # Node 8: C_sed is halved from 1 to 0.5 because conc_w = 0. - - ct.run_one_step(1) + ct.stop_tracking(1) # Node 7 should have half its previous concentration. # Node 8 should have half its previous concentration. @@ -373,7 +379,8 @@ def test_mass_balance_with_all_boundaries_closed(self): ) ct = ConcentrationTrackerForDiffusion(self.mg) - ct.run_one_step(1) + ct.start_tracking() + ct.stop_tracking(1) total_mass_after = np.sum( self.mg.at_node["sediment_property__concentration"] @@ -397,7 +404,8 @@ def test_mass_balance_with_one_boundary_open(self): ) ct = ConcentrationTrackerForDiffusion(self.mg) - ct.run_one_step(1) + ct.start_tracking() + ct.stop_tracking(1) total_mass_leaving = 1 total_mass_after = np.sum( @@ -407,3 +415,33 @@ def test_mass_balance_with_one_boundary_open(self): ) assert_allclose(total_mass_before, total_mass_after + total_mass_leaving) + + +# %% +class TestFieldCopy: + """Test that copied field is a copy, but not a reference.""" + + def setup_method(self): + self.mg = RasterModelGrid((3, 5)) + self.mg.add_zeros("soil__flux", at="link") + self.mg.add_zeros("soil__depth", at="node") + self.mg.add_zeros("soil_production__rate", at="node") + self.mg.add_zeros("topographic__elevation", at="node") + + def test_copy_is_equal(self): + """Test that copied values are equal to copied field.""" + + ct = ConcentrationTrackerForDiffusion(self.mg) + ct._copy_old_soil_depth() + + assert np.allclose(ct._soil__depth_old, self.mg.at_node["soil__depth"]) + + def test_copy_is_not_reference(self): + """Test that copy not a reference.""" + + ct = ConcentrationTrackerForDiffusion(self.mg) + ct._copy_old_soil_depth() + + self.mg.at_node["soil__depth"] += 1 + + assert not np.allclose(ct._soil__depth_old, self.mg.at_node["soil__depth"]) diff --git a/tests/components/depression_finder/test_lake_mapper.py b/tests/components/depression_finder/test_lake_mapper.py index d66cefbf09..d494296a80 100644 --- a/tests/components/depression_finder/test_lake_mapper.py +++ b/tests/components/depression_finder/test_lake_mapper.py @@ -1976,7 +1976,7 @@ def test_find_lowest_node_on_lake_perimeter_c(): Ensures the key functionality of the cfunc is working. """ mg = RasterModelGrid((7, 7), xy_spacing=0.5) - z = mg.add_field("node", "topographic__elevation", mg.node_x.copy()) + z = mg.add_field("topographic__elevation", mg.node_x.copy(), at="node") z += 0.01 * mg.node_y mg.at_node["topographic__elevation"].reshape(mg.shape)[2:5, 2:5] *= 0.1 fr = FlowAccumulator(mg, flow_director="D8") @@ -1987,7 +1987,7 @@ def test_find_lowest_node_on_lake_perimeter_c(): flood_status = df.flood_status elev = df._elev BIG_ELEV = df._BIG_ELEV - nodes_this_depression = mg.zeros("node", dtype=int) + nodes_this_depression = mg.zeros(at="node", dtype=int) nodes_this_depression[0] = 16 pit_count = 1 @@ -2004,7 +2004,7 @@ def test_find_lowest_node_on_lake_perimeter_c(): def test_all_boundaries_are_closed(): grid = RasterModelGrid((10, 10), xy_spacing=10.0) grid.set_closed_boundaries_at_grid_edges(True, True, True, True) - z = grid.add_zeros("node", "topographic__elevation") + z = grid.add_zeros("topographic__elevation", at="node") z += grid.x_of_node.copy() + grid.y_of_node.copy() z[25] -= 40 fa = FlowAccumulator( @@ -2040,7 +2040,7 @@ def test_precision_in_cython(): np_1D_init_topo = np_2D_init_topo.ravel() mg = RasterModelGrid(map_shape, node_spacing) - mg.add_field("node", "topographic__elevation", np_1D_init_topo, units="m") + mg.add_field("topographic__elevation", np_1D_init_topo, at="node", units="m") mg.set_closed_boundaries_at_grid_edges(False, False, False, False) # Set up flow router component and run it once flow_router = FlowAccumulator( diff --git a/tests/components/depth_dependent_taylor_soil_creep/test_depth_dependent_taylor_diffuser.py b/tests/components/depth_dependent_taylor_soil_creep/test_depth_dependent_taylor_diffuser.py index 9e3c3f6ae6..731d275b26 100644 --- a/tests/components/depth_dependent_taylor_soil_creep/test_depth_dependent_taylor_diffuser.py +++ b/tests/components/depth_dependent_taylor_soil_creep/test_depth_dependent_taylor_diffuser.py @@ -13,6 +13,7 @@ from landlab.components import ExponentialWeatherer +@pytest.mark.slow def test_4x7_grid_vs_analytical_solution(): """Test against known analytical solution.""" diff --git a/tests/components/drainage_density/test_drainage_density.py b/tests/components/drainage_density/test_drainage_density.py index 15302f5ab1..e81e228546 100644 --- a/tests/components/drainage_density/test_drainage_density.py +++ b/tests/components/drainage_density/test_drainage_density.py @@ -242,7 +242,7 @@ def test_missing_area_coefficient(): def test_with_hex_grid(): hg = HexModelGrid((10, 10), node_layout="rect") - _ = hg.add_zeros("node", "topographic__elevation") + _ = hg.add_zeros("topographic__elevation", at="node") np.random.seed(50) noise = np.random.rand(100) hg.at_node["topographic__elevation"] += noise diff --git a/tests/components/erosion_deposition/test_ero_dep_mass_conservation.py b/tests/components/erosion_deposition/test_ero_dep_mass_conservation.py index 1aaa304406..98c69d59af 100644 --- a/tests/components/erosion_deposition/test_ero_dep_mass_conservation.py +++ b/tests/components/erosion_deposition/test_ero_dep_mass_conservation.py @@ -11,8 +11,8 @@ def grid(): grid = RasterModelGrid((10, 10), xy_spacing=10.0) grid.set_closed_boundaries_at_grid_edges(True, True, True, True) - z = grid.add_zeros("node", "topographic__elevation") - grid.add_zeros("node", "soil__depth") + z = grid.add_zeros("topographic__elevation", at="node") + grid.add_zeros("soil__depth", at="node") z += grid.x_of_node.copy() + grid.y_of_node.copy() z[25] -= 40 z[35] -= 40 diff --git a/tests/components/erosion_deposition/test_ero_dep_with_flats.py b/tests/components/erosion_deposition/test_ero_dep_with_flats.py index 90626fbb04..5920c1478b 100755 --- a/tests/components/erosion_deposition/test_ero_dep_with_flats.py +++ b/tests/components/erosion_deposition/test_ero_dep_with_flats.py @@ -16,7 +16,7 @@ def test_without_depression_handling(): grid = RasterModelGrid((3, 5), xy_spacing=10.0) grid.set_closed_boundaries_at_grid_edges(False, True, False, True) - z = grid.add_zeros("node", "topographic__elevation") + z = grid.add_zeros("topographic__elevation", at="node") z[grid.x_of_node < 15.0] = 10.0 fa = FlowAccumulator(grid) @@ -66,7 +66,7 @@ def test_without_depression_handling(): def test_with_depression_handling(): grid = RasterModelGrid((3, 5), xy_spacing=10.0) grid.set_closed_boundaries_at_grid_edges(False, True, False, True) - z = grid.add_zeros("node", "topographic__elevation") + z = grid.add_zeros("topographic__elevation", at="node") z[grid.x_of_node < 15.0] = 10.0 fa = FlowAccumulator( @@ -166,7 +166,7 @@ def test_with_depression_handling(): def test_adaptive_solver_without_depression_handling(): grid = RasterModelGrid((3, 5), xy_spacing=10.0) grid.set_closed_boundaries_at_grid_edges(False, True, False, True) - z = grid.add_zeros("node", "topographic__elevation") + z = grid.add_zeros("topographic__elevation", at="node") z[grid.x_of_node < 15.0] = 10.0 fa = FlowAccumulator(grid) @@ -216,7 +216,7 @@ def test_adaptive_solver_without_depression_handling(): def test_adaptive_solver_with_depression_handling(): grid = RasterModelGrid((3, 5), xy_spacing=10.0) grid.set_closed_boundaries_at_grid_edges(False, True, False, True) - z = grid.add_zeros("node", "topographic__elevation") + z = grid.add_zeros("topographic__elevation", at="node") z[grid.x_of_node < 15.0] = 10.0 fa = FlowAccumulator( diff --git a/tests/components/erosion_deposition/test_erodep.py b/tests/components/erosion_deposition/test_erodep.py index de57e0e27e..6f9cd4fa5d 100644 --- a/tests/components/erosion_deposition/test_erodep.py +++ b/tests/components/erosion_deposition/test_erodep.py @@ -26,28 +26,6 @@ def test_route_to_multiple_error_raised(): ErosionDeposition(mg, K=0.01, v_s=0.001, m_sp=0.5, n_sp=1.0, sp_crit=0) -def test_phi_error_raised(): - mg = RasterModelGrid((10, 10)) - z = mg.add_zeros("topographic__elevation", at="node") - z += mg.x_of_node + mg.y_of_node - fa = FlowAccumulator(mg) - fa.run_one_step() - - with pytest.raises(ValueError): - ErosionDeposition(mg, phi=0) - - -def test_extra_kwd_error_raised(): - mg = RasterModelGrid((10, 10)) - z = mg.add_zeros("topographic__elevation", at="node") - z += mg.x_of_node + mg.y_of_node - fa = FlowAccumulator(mg) - fa.run_one_step() - - with pytest.raises(ValueError): - ErosionDeposition(mg, spam=0) - - def test_bad_solver_name(): """ Test that any solver name besides 'basic' and 'adaptive' raises an error. diff --git a/tests/components/erosion_deposition/test_shared_general_erodep.py b/tests/components/erosion_deposition/test_shared_general_erodep.py new file mode 100644 index 0000000000..1d640b6d5c --- /dev/null +++ b/tests/components/erosion_deposition/test_shared_general_erodep.py @@ -0,0 +1,86 @@ +import numpy as np +import pytest +from numpy import testing + +from landlab import RasterModelGrid +from landlab.components import FlowAccumulator +from landlab.components import SharedStreamPower + + +@pytest.mark.parametrize("frac_fines", (2.0, -0.5)) +def test_fraction_fines_out_of_range(frac_fines): + grid = RasterModelGrid((5, 5), xy_spacing=10.0) + with pytest.raises(ValueError): + SharedStreamPower(grid, F_f=frac_fines) + + +def test_q_as_field(): + """ + Test that passing in water discharge as a grid field results in self.q + holding correct values + """ + mg = RasterModelGrid((5, 5), xy_spacing=10.0) + mg.add_ones("topographic__elevation", at="node") + + mg.at_node["user_imposed_discharge"] = np.random.rand(mg.number_of_nodes) + expected = mg.at_node["user_imposed_discharge"].copy() + + FlowAccumulator( + mg, flow_director="D8", depression_finder="DepressionFinderAndRouter" + ) + + ed = SharedStreamPower(mg, discharge_field="user_imposed_discharge") + + testing.assert_array_equal( + ed._q, expected, err_msg="E/D discharge field test failed", verbose=True + ) + + +def test_q_as_array(): + """ + Test that passing in water discharge as an array results in self.q + holding correct values + """ + mg = RasterModelGrid((5, 5), xy_spacing=10.0) + mg.add_ones("topographic__elevation", at="node") + + discharge = np.random.rand(mg.number_of_nodes) + expected = discharge.copy() + + FlowAccumulator( + mg, flow_director="D8", depression_finder="DepressionFinderAndRouter" + ) + + ed = SharedStreamPower(mg, discharge_field=discharge) + + testing.assert_array_equal( + ed._q, + expected, + err_msg="E/D discharge array test failed", + verbose=True, + ) + + +def test_sediment__outflux_already_created(): + """ + Test that an existing sediment flux grid field is not changed by + instantiating SharedStreamPower. + """ + mg = RasterModelGrid((5, 5), xy_spacing=10.0) + + mg.add_ones("topographic__elevation", at="node") + mg.at_node["sediment__outflux"] = np.random.rand(mg.number_of_nodes) + expected = mg.at_node["sediment__outflux"].copy() + + FlowAccumulator( + mg, flow_director="D8", depression_finder="DepressionFinderAndRouter" + ) + + ed = SharedStreamPower(mg) + + testing.assert_array_equal( + ed._qs, + expected, + err_msg="E/D sediment flux field test failed", + verbose=True, + ) diff --git a/tests/components/erosion_deposition/test_shared_mass_conservation.py b/tests/components/erosion_deposition/test_shared_mass_conservation.py new file mode 100644 index 0000000000..81b0d7c431 --- /dev/null +++ b/tests/components/erosion_deposition/test_shared_mass_conservation.py @@ -0,0 +1,165 @@ +import pytest +from numpy.testing import assert_array_almost_equal + +from landlab import RasterModelGrid +from landlab.components import FlowAccumulator +from landlab.components import SharedStreamPower +from landlab.components import Space + + +@pytest.fixture +def grid(): + grid = RasterModelGrid((10, 10), xy_spacing=10.0) + grid.set_closed_boundaries_at_grid_edges(True, True, True, True) + grid.add_zeros("soil__depth", at="node") + grid.at_node["topographic__elevation"] = grid.x_of_node + grid.y_of_node + + z = grid.at_node["topographic__elevation"] + z[25] -= 40 + z[35] -= 40 + z[26] -= 40 + z[36] -= 40 + z[24] -= 40 + z[34] -= 40 + + return grid + + +# consider full combinitorics of solver, two phi, ED and Space, and (if space) +# initial soil depth of very large and zero. +@pytest.mark.parametrize("solver", ["basic", "adaptive"]) +@pytest.mark.parametrize("v_s", [1.5]) +@pytest.mark.parametrize("dt", [2]) +@pytest.mark.parametrize("K", [0.001]) +def test_mass_conserve_all_closed_SharedStreamPower(grid, solver, v_s, K, dt): + z_init = grid.at_node["topographic__elevation"].copy() + + fa = FlowAccumulator(grid) + fa.run_one_step() + + ed = SharedStreamPower(grid, solver=solver, k_bedrock=K, k_transport=K / v_s) + ed.run_one_step(dt) + + dz = z_init - grid.at_node["topographic__elevation"] + + # For Erosion Deposition, porosity should not have any effect, because + # the component operates in terms of bulk-equivalent sediment flux, + # erosion, and deposition. + + assert_array_almost_equal(dz.sum(), 0.0, decimal=10) + + +@pytest.mark.parametrize("phi", [0.0, 0.3]) +@pytest.mark.parametrize("solver", ["basic", "adaptive"]) +@pytest.mark.parametrize("H", [0, 1, 1000]) +@pytest.mark.parametrize("v_s", [1.5]) +@pytest.mark.parametrize("K", [0.001]) +@pytest.mark.parametrize("H_star", [0.1]) +@pytest.mark.parametrize("dt", [2]) +def test_mass_conserve_all_closed_Space(grid, H, solver, phi, K, v_s, H_star, dt): + grid.at_node["soil__depth"].fill(H) + + z_init = grid.at_node["topographic__elevation"].copy() + + fa = FlowAccumulator(grid) + fa.run_one_step() + + ed = Space(grid, solver=solver, phi=phi, v_s=v_s, H_star=H_star) + ed.run_one_step(dt) + + # in space, everything is either bedrock or sediment. check for + # conservation. + dH = grid.at_node["soil__depth"] - H + + # sediment is defined as having a porosity so all changes (up or down ) + # must be adjusted to mass. + dH *= 1 - phi + + dBr = grid.at_node["bedrock__elevation"] - (z_init - H) + mass_change = dH + dBr + + assert_array_almost_equal(mass_change.sum(), 0.0, decimal=10) + + +# Note that we can't make an equivalent test for with a depression finder yet +# because the depression finder can't handle no outlet on the grid. +# but what we can do is make an example in which there is a big sink in which +# almost all sediment is trapped. We can then assert that all sediment is +# either trapped OR that it is sent out of the one outlet node. +@pytest.fixture() +def grid2(grid): + grid.status_at_node[1] = grid.BC_NODE_IS_FIXED_VALUE + return grid + + +# consider full combinitorics of solver, two phi, depression finding or not, +# ED and Space, and (if space) initial soil depth of very large and zero. + + +@pytest.mark.parametrize("depression_finder", [None, "DepressionFinderAndRouter"]) +@pytest.mark.parametrize("solver", ["basic", "adaptive"]) +@pytest.mark.parametrize("v_s", [1.5]) +@pytest.mark.parametrize("dt", [2]) +@pytest.mark.parametrize("K", [0.001]) +def test_mass_conserve_with_depression_finder_SharedStreamPower( + grid2, solver, depression_finder, v_s, K, dt +): + assert grid2.status_at_node[1] == grid2.BC_NODE_IS_FIXED_VALUE + + z_init = grid2.at_node["topographic__elevation"].copy() + + if depression_finder is None: + fa = FlowAccumulator(grid2) + else: + fa = FlowAccumulator(grid2, depression_finder=depression_finder, routing="D4") + fa.run_one_step() + + ed = SharedStreamPower(grid2, solver=solver, k_bedrock=K, k_transport=K / v_s) + ed.run_one_step(dt) + + dz = grid2.at_node["topographic__elevation"] - z_init + + # assert that the mass loss over the surface is exported through the one + # outlet. + net_change = dz[grid2.core_nodes].sum() + ( + ed.sediment_influx[1] * dt / grid2.cell_area_at_node[11] + ) + assert_array_almost_equal(net_change, 0.0, decimal=10) + + +@pytest.mark.parametrize("depression_finder", [None, "DepressionFinderAndRouter"]) +@pytest.mark.parametrize("phi", [0.0, 0.3]) +@pytest.mark.parametrize("solver", ["basic", "adaptive"]) +@pytest.mark.parametrize("H", [0, 1000]) +@pytest.mark.parametrize("v_s", [1.5]) +@pytest.mark.parametrize("H_star", [0.1]) +@pytest.mark.parametrize("dt", [2]) +def test_mass_conserve_with_depression_finder_Space( + grid2, H, solver, depression_finder, phi, v_s, H_star, dt +): + grid2.at_node["soil__depth"][:] = H + assert grid2.status_at_node[1] == grid2.BC_NODE_IS_FIXED_VALUE + + z_init = grid2.at_node["topographic__elevation"].copy() + + if depression_finder is None: + fa = FlowAccumulator(grid2) + else: + fa = FlowAccumulator(grid2, depression_finder=depression_finder, routing="D4") + fa.run_one_step() + + ed = Space(grid2, solver=solver, phi=phi, v_s=v_s, H_star=H_star) + ed.run_one_step(dt) + + # see above test for notes. + dH = grid2.at_node["soil__depth"] - H + dH *= 1 - phi + dBr = grid2.at_node["bedrock__elevation"] - (z_init - H) + mass_change = dH + dBr + + # assert that the mass loss over the surface is exported through the one + # outlet. + net_change = mass_change[grid2.core_nodes].sum() + ( + ed.sediment_influx[1] * dt / grid2.cell_area_at_node[11] + ) + assert_array_almost_equal(net_change, 0.0, decimal=10) diff --git a/tests/components/erosion_deposition/test_shared_steady_state.py b/tests/components/erosion_deposition/test_shared_steady_state.py new file mode 100644 index 0000000000..ac7a150b83 --- /dev/null +++ b/tests/components/erosion_deposition/test_shared_steady_state.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python2 +""" +Created on Thu Jul 27 14:23:25 2017 + +@author: gtucker +""" +import pytest +from numpy.testing import assert_array_almost_equal + +from landlab import RasterModelGrid +from landlab.components import FlowAccumulator +from landlab.components import SharedStreamPower + + +@pytest.mark.parametrize( + "k_bedrock,v_s", [(0.002, 1.0), (1.0, 1000.0), (0.001, 0.0001), (0.002, 0.002)] +) +@pytest.mark.parametrize("m_sp,n_sp", [(0.5, 1.0), (1.0 / 3.0, 2.0 / 3.0)]) +def test_shared_stram_power_steady_state(k_bedrock, v_s, m_sp, n_sp): + """Test steady state run.""" + grid = RasterModelGrid((5, 5)) + grid.at_node["topographic__elevation"] = 0.01 * grid.x_of_node + + fa = FlowAccumulator(grid, flow_director="FlowDirectorD8") + + ed = SharedStreamPower( + grid, + k_bedrock=k_bedrock, + k_transport=k_bedrock / v_s, + m_sp=m_sp, + n_sp=n_sp, + solver="adaptive", + ) + + # run it to steady state. + uplift = 0.001 + dt = 10.0 + for _ in range(3000): + fa.run_one_step() + ed.run_one_step(dt=dt) + grid.at_node["topographic__elevation"][grid.core_nodes] += uplift * dt + + sa_factor = ((1.0 + ed.v_s) * uplift / ed.K) ** (1.0 / ed.n_sp) + + actual = grid.at_node["topographic__steepest_slope"][grid.core_nodes] + expected = sa_factor * grid.at_node["drainage_area"][grid.core_nodes] ** -( + ed.m_sp / ed.n_sp + ) + + assert_array_almost_equal(actual, expected) + + +def test_erodep_slope_area_with_threshold(): + """Test steady state run with Vs = 1 and wc = 0.00001.""" + grid = RasterModelGrid((5, 5)) + grid.at_node["topographic__elevation"] = 0.01 * grid.x_of_node + + fa = FlowAccumulator(grid, flow_director="FlowDirectorD8") + + ed = SharedStreamPower( + grid, + k_bedrock=0.002, + k_transport=0.002 / 1.0, + m_sp=0.5, + n_sp=1.0, + sp_crit=0.0001, + solver="adaptive", + ) + + # run it to steady state. + uplift = 0.001 + dt = 10.0 + for _ in range(3000): + fa.run_one_step() + ed.run_one_step(dt=dt) + grid.at_node["topographic__elevation"][grid.core_nodes] += uplift * dt + + sa_factor = ((1.0 + ed.v_s) * uplift + ed.sp_crit) / ed.K + + actual = grid.at_node["topographic__steepest_slope"][grid.core_nodes] + expected = sa_factor * grid.at_node["drainage_area"][grid.core_nodes] ** -( + ed.m_sp / ed.n_sp + ) + + assert_array_almost_equal(actual, expected) diff --git a/tests/components/erosion_deposition/test_shared_stream_power.py b/tests/components/erosion_deposition/test_shared_stream_power.py new file mode 100644 index 0000000000..07c871cc42 --- /dev/null +++ b/tests/components/erosion_deposition/test_shared_stream_power.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python2 +""" +Created on Thu Jul 27 14:23:25 2017 + +@author: gtucker +""" + +import numpy as np +import pytest +from numpy import testing + +from landlab import HexModelGrid +from landlab import RasterModelGrid +from landlab.components import FlowAccumulator +from landlab.components import SharedStreamPower + + +def test_route_to_multiple_error_raised(): + grid = RasterModelGrid((10, 10)) + grid.at_node["topographic__elevation"] = grid.x_of_node + grid.y_of_node + fa = FlowAccumulator(grid, flow_director="MFD") + fa.run_one_step() + + with pytest.raises(NotImplementedError): + SharedStreamPower(grid) + + +def test_bad_solver_name(): + """Test that any solver name besides 'basic' and 'adaptive' raises an error.""" + + grid = RasterModelGrid((5, 5), xy_spacing=10.0) + with pytest.raises(ValueError): + SharedStreamPower(grid, solver="something_else") + + +def test_steady_state_with_basic_solver_option(): + """ + Test that model matches the transport-limited analytical solution + for slope/area relationship at steady state: S=((U * v_s) / (K * A^m) + + U / (K * A^m))^(1/n). + + Also test that model matches the analytical solution for steady-state + sediment flux: Qs = U * A * (1 - phi). + """ + + # set up a 5x5 grid with one open outlet node and low initial elevations. + mg = RasterModelGrid((5, 5), xy_spacing=10.0) + + mg.at_node["topographic__elevation"] = ( + mg.node_y / 100000 + mg.node_x / 100000 + np.random.rand(len(mg.node_y)) / 10000 + ) + mg.set_closed_boundaries_at_grid_edges( + bottom_is_closed=True, + left_is_closed=True, + right_is_closed=True, + top_is_closed=True, + ) + mg.set_watershed_boundary_condition_outlet_id( + 0, mg.at_node["topographic__elevation"], -9999.0 + ) + + # Create a D8 flow handler + fa = FlowAccumulator( + mg, flow_director="D8", depression_finder="DepressionFinderAndRouter" + ) + + # Instantiate the SharedStreamPower component... + ed = SharedStreamPower( + mg, + k_bedrock=0.01, + k_transport=0.01 / 0.05, + F_f=0.0, # all sediment is considered coarse bedload + # v_s=v_s, + m_sp=0.5, + n_sp=1.0, + sp_crit=0.0, + solver="basic", + ) + + # ... and run it to steady state (5000x1-year timesteps). + uplift = 0.0001 + dt = 1.0 + for _ in range(5000): + fa.run_one_step() + ed.run_one_step(dt=dt) + mg.at_node["topographic__elevation"][mg.core_nodes] += uplift * dt + + analytical_slope = np.power( + ( + (uplift * ed.v_s) + / ( + ed.k_bedrock + * np.power(mg.at_node["drainage_area"][mg.core_nodes], ed.m_sp) + ) + ) + + ( + uplift + / ( + ed.k_bedrock + * np.power(mg.at_node["drainage_area"][mg.core_nodes], ed.m_sp) + ) + ), + 1.0 / ed.n_sp, + ) + + # compare numerical and analytical slope solutions + testing.assert_array_almost_equal( + mg.at_node["topographic__steepest_slope"][mg.core_nodes], + analytical_slope, + decimal=8, + err_msg="E/D slope-area test failed", + verbose=True, + ) + + actual = mg.at_node["sediment__flux"][mg.core_nodes] + expected = uplift * mg.at_node["drainage_area"][mg.core_nodes] + + # test for match with anakytical sediment flux + testing.assert_array_almost_equal( + actual, + expected, + decimal=8, + err_msg="E/D sediment flux test failed", + verbose=True, + ) + + +def test_can_run_with_hex(): + """Test that model can run with hex model grid.""" + + # Set up a 5x5 grid with open boundaries and low initial elevations. + mg = HexModelGrid((7, 7)) + mg.at_node["topographic__elevation"] = 0.01 * mg.x_of_node + + # Create a D8 flow handler + fa = FlowAccumulator(mg, flow_director="FlowDirectorSteepest") + + # Create the SharedStreamPower component... + ed = SharedStreamPower( + mg, + k_bedrock=0.001, + k_transport=0.001 / 0.0001, + m_sp=0.5, + n_sp=1.0, + solver="adaptive", + ) + + # ... and run it to steady state. + uplift = 0.001 + dt = 10.0 + for _ in range(2000): + fa.run_one_step() + ed.run_one_step(dt=dt) + mg.at_node["topographic__elevation"][mg.core_nodes] += uplift * dt + + sa_factor = (1.0 + ed.v_s) * uplift / ed.k_bedrock + + testing.assert_almost_equal( + mg.at_node["topographic__steepest_slope"][mg.core_nodes], + sa_factor * mg.at_node["drainage_area"][mg.core_nodes] ** -0.5, + ) diff --git a/tests/components/erosion_deposition/test_shared_with_flats.py b/tests/components/erosion_deposition/test_shared_with_flats.py new file mode 100644 index 0000000000..1cb2c4eae2 --- /dev/null +++ b/tests/components/erosion_deposition/test_shared_with_flats.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python3 +""" +Created on Thu Apr 23 09:09:49 2020 + +@author: gtucker +""" + +from numpy.testing import assert_array_almost_equal +from numpy.testing import assert_array_equal + +from landlab import RasterModelGrid +from landlab.components import FlowAccumulator +from landlab.components import SharedStreamPower + + +def test_without_depression_handling(): + grid = RasterModelGrid((3, 5), xy_spacing=10.0) + grid.set_closed_boundaries_at_grid_edges(False, True, False, True) + z = grid.add_zeros("topographic__elevation", at="node") + z[grid.x_of_node < 15.0] = 10.0 + + fa = FlowAccumulator(grid) + ed = SharedStreamPower(grid, k_bedrock=0.002, k_transport=0.002) + + fa.run_one_step() + ed.run_one_step(1.0) + + assert_array_equal( + ed._q.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 100.0, 200.0, 100.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed._erosion_term.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.02, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed._depo_rate.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.01, 0.01, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed._qs.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 1.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed.sediment_influx.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 1.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + + +def test_with_depression_handling(): + grid = RasterModelGrid((3, 5), xy_spacing=10.0) + grid.set_closed_boundaries_at_grid_edges(False, True, False, True) + z = grid.add_zeros("topographic__elevation", at="node") + z[grid.x_of_node < 15.0] = 10.0 + + fa = FlowAccumulator( + grid, routing="D4", depression_finder="DepressionFinderAndRouter" + ) + ed = SharedStreamPower(grid, k_bedrock=0.002, k_transport=0.002) + + fa.run_one_step() + ed.run_one_step(1.0) + + assert_array_equal( + ed._q.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 100.0, 200.0, 300.0, 300.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed._erosion_term.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.02, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_almost_equal( + ed._depo_rate.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.01, 0.00333333, 0.00166667, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_almost_equal( + ed._qs.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 1.0, 0.66666667, 0.5, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_almost_equal( + ed.sediment_influx.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 1.0, 0.66666667, 0.5], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + + +def test_adaptive_solver_without_depression_handling(): + grid = RasterModelGrid((3, 5), xy_spacing=10.0) + grid.set_closed_boundaries_at_grid_edges(False, True, False, True) + z = grid.add_zeros("topographic__elevation", at="node") + z[grid.x_of_node < 15.0] = 10.0 + + fa = FlowAccumulator(grid) + ed = SharedStreamPower(grid, solver="adaptive", k_bedrock=0.002, k_transport=0.002) + + fa.run_one_step() + ed.run_one_step(1.0) + + assert_array_equal( + ed._q.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 100.0, 200.0, 100.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed._erosion_term.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.02, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed._depo_rate.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.01, 0.01, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed._qs.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 1.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed.sediment_influx.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 1.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + + +def test_adaptive_solver_with_depression_handling(): + grid = RasterModelGrid((3, 5), xy_spacing=10.0) + grid.set_closed_boundaries_at_grid_edges(False, True, False, True) + z = grid.add_zeros("topographic__elevation", at="node") + z[grid.x_of_node < 15.0] = 10.0 + + fa = FlowAccumulator( + grid, routing="D4", depression_finder="DepressionFinderAndRouter" + ) + ed = SharedStreamPower(grid, solver="adaptive", k_bedrock=0.002, k_transport=0.002) + + fa.run_one_step() + ed.run_one_step(1.0) + + assert_array_equal( + ed._q.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 100.0, 200.0, 300.0, 300.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_equal( + ed._erosion_term.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.02, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_almost_equal( + ed._depo_rate.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.01, 0.00333333, 0.00166667, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_almost_equal( + ed._qs.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 1.0, 0.66666667, 0.5, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) + assert_array_almost_equal( + ed.sediment_influx.reshape(grid.shape), + [ + [0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 1.0, 0.66666667, 0.5], + [0.0, 0.0, 0.0, 0.0, 0.0], + ], + ) diff --git a/tests/components/flexure/test_flexure.py b/tests/components/flexure/test_flexure.py index 6914ae8783..d94663f064 100644 --- a/tests/components/flexure/test_flexure.py +++ b/tests/components/flexure/test_flexure.py @@ -63,6 +63,7 @@ def test_one_load_bench(benchmark, n, method): ) +@pytest.mark.slow @pytest.mark.benchmark(group="number-of-loads") @pytest.mark.parametrize("n_loads", [0, 1, 2, 3, 4, 5, 6, 7, 8]) @pytest.mark.parametrize("method", ["old", "new", "cython"]) @@ -155,6 +156,7 @@ def test_subside_loads_without_row_col_bench(benchmark, n_loads): ) +@pytest.mark.slow @pytest.mark.benchmark(group="speedup") @pytest.mark.parametrize("method", ["subside_loads", "subside_loads_slow"]) @pytest.mark.parametrize("n_loads", [0, 1, 2, 3, 4, 5, 6, 7, 8]) diff --git a/tests/components/flow_router/ext/single_flow/priority_routing/_priority_queue.hpp b/tests/components/flow_router/ext/single_flow/priority_routing/_priority_queue.hpp deleted file mode 100644 index 8895c6d1ff..0000000000 --- a/tests/components/flow_router/ext/single_flow/priority_routing/_priority_queue.hpp +++ /dev/null @@ -1,11 +0,0 @@ -// C++ Header that defines the priority queue used in the algorithms of priority routing - -// priority_queue -#include -// pair -#include -// function -#include -using namespace std; - -using _priority_queue = std::priority_queue,std::vector >,std::function,std::pair)> >; diff --git a/tests/components/flow_router/ext/single_flow/priority_routing/test_breach.py b/tests/components/flow_router/ext/single_flow/priority_routing/test_breach.py index 0c89ce16f0..3cca039135 100644 --- a/tests/components/flow_router/ext/single_flow/priority_routing/test_breach.py +++ b/tests/components/flow_router/ext/single_flow/priority_routing/test_breach.py @@ -1,4 +1,6 @@ -import test_breach_c as breach +from landlab.components.flow_router.ext.single_flow.priority_routing import ( + _test_breach_c as breach, +) def test_priority_queue(): diff --git a/tests/components/groundwater/test_dupuit_percolator.py b/tests/components/groundwater/test_dupuit_percolator.py index 11e41e9572..05fb4b334d 100644 --- a/tests/components/groundwater/test_dupuit_percolator.py +++ b/tests/components/groundwater/test_dupuit_percolator.py @@ -202,9 +202,9 @@ def test_wt_above_surface_standard_run_step(): grid = RasterModelGrid((3, 3)) grid.set_closed_boundaries_at_grid_edges(True, True, True, False) - wt = grid.add_ones("node", "water_table__elevation") - _ = grid.add_ones("node", "topographic__elevation") - _ = grid.add_zeros("node", "aquifer_base__elevation") + wt = grid.add_ones("water_table__elevation", at="node") + _ = grid.add_ones("topographic__elevation", at="node") + _ = grid.add_zeros("aquifer_base__elevation", at="node") # initialize the groundwater model gdp = GroundwaterDupuitPercolator(grid, recharge_rate=0.0) @@ -215,9 +215,9 @@ def test_wt_above_surface_standard_run_step(): def test_wt_above_surface_adaptive_run_step(): grid = RasterModelGrid((3, 3)) grid.set_closed_boundaries_at_grid_edges(True, True, True, False) - wt = grid.add_ones("node", "water_table__elevation") - _ = grid.add_ones("node", "topographic__elevation") - _ = grid.add_zeros("node", "aquifer_base__elevation") + wt = grid.add_ones("water_table__elevation", at="node") + _ = grid.add_ones("topographic__elevation", at="node") + _ = grid.add_zeros("aquifer_base__elevation", at="node") # initialize the groundwater model gdp = GroundwaterDupuitPercolator(grid, recharge_rate=0.0) @@ -240,11 +240,11 @@ def test_inactive_interior_node(): mg = RasterModelGrid((4, 4), xy_spacing=1.0) mg.status_at_node[5] = mg.BC_NODE_IS_FIXED_VALUE - elev = mg.add_zeros("node", "topographic__elevation") + elev = mg.add_zeros("topographic__elevation", at="node") elev[:] = 1 - base = mg.add_zeros("node", "aquifer_base__elevation") + base = mg.add_zeros("aquifer_base__elevation", at="node") base[:] = 0 - wt = mg.add_zeros("node", "water_table__elevation") + wt = mg.add_zeros("water_table__elevation", at="node") wt[:] = 1 gdp = GroundwaterDupuitPercolator(mg) @@ -267,11 +267,11 @@ def test_k_func(): # initialize model grid mg = RasterModelGrid((4, 4), xy_spacing=1.0) - elev = mg.add_zeros("node", "topographic__elevation") + elev = mg.add_zeros("topographic__elevation", at="node") elev[:] = 1 - base = mg.add_zeros("node", "aquifer_base__elevation") + base = mg.add_zeros("aquifer_base__elevation", at="node") base[:] = 0 - wt = mg.add_zeros("node", "water_table__elevation") + wt = mg.add_zeros("water_table__elevation", at="node") wt[:] = 0.5 # initialize model without giving k_func diff --git a/tests/components/lake_fill/test_lake_fill.py b/tests/components/lake_fill/test_lake_fill.py index b1333d679d..2c1eb6cacc 100644 --- a/tests/components/lake_fill/test_lake_fill.py +++ b/tests/components/lake_fill/test_lake_fill.py @@ -156,7 +156,7 @@ def test_permitted_overfill(): z.reshape(mg.shape)[1, 1:-1] = [1.0, 0.2, 0.1, 1.0000000000000004, 1.5] _ = FlowAccumulator(mg) lmb = LakeMapperBarnes(mg, method="Steepest") - lmb._closed = mg.zeros("node", dtype=bool) + lmb._closed = mg.zeros(at="node", dtype=bool) lmb._closed[mg.status_at_node == mg.BC_NODE_IS_CLOSED] = True open = StablePriorityQueue() edges = np.array([7]) diff --git a/tests/components/mass_wasting_runout/conftest.py b/tests/components/mass_wasting_runout/conftest.py index df731d47e0..789a6d04a1 100644 --- a/tests/components/mass_wasting_runout/conftest.py +++ b/tests/components/mass_wasting_runout/conftest.py @@ -31,7 +31,7 @@ def example_square_mg(): mg.at_node["mass__wasting_id"] = np.zeros(nn).astype(int) mg.at_node["mass__wasting_id"][np.array([38])] = 1 depth = np.ones(nn) * 1 - mg.add_field("node", "soil__thickness", depth) + mg.add_field("soil__thickness", depth, at="node") np.random.seed(seed=7) mg.at_node["particle__diameter"] = np.random.uniform(0.05, 0.25, nn) mg.at_node["organic__content"] = np.random.uniform(0.01, 0.10, nn) @@ -69,7 +69,7 @@ def example_flat_mg(): nn = mg.number_of_nodes mg.at_node["mass__wasting_id"] = np.zeros(mg.number_of_nodes).astype(int) depth = np.ones(nn) * 1 - mg.add_field("node", "soil__thickness", depth) + mg.add_field("soil__thickness", depth, at="node") return mg @@ -88,7 +88,7 @@ def example_bumpy_mg(): nn = mg.number_of_nodes mg.at_node["mass__wasting_id"] = np.zeros(mg.number_of_nodes).astype(int) depth = np.ones(nn) * 1 - mg.add_field("node", "soil__thickness", depth) + mg.add_field("soil__thickness", depth, at="node") return mg @@ -115,7 +115,7 @@ def example_pile_MWRu(): mg.set_closed_boundaries_at_grid_edges(True, True, True, True) # soil thickness thickness = np.ones(mg.number_of_nodes) * hs - mg.add_field("node", "soil__thickness", thickness) + mg.add_field("soil__thickness", thickness, at="node") mg.add_field("topographic__elevation", np.ones(r * c) * 1, at="node") # set particle diameter mg.at_node["particle__diameter"] = np.ones(len(mg.node_x)) * Dp @@ -201,7 +201,7 @@ def example_flume_MWRu(): # soil thickness thickness = np.ones(mg.number_of_nodes) * soil_thickness - mg.add_field("node", "soil__thickness", thickness) + mg.add_field("soil__thickness", thickness, at="node") # define landslide location mg.at_node["mass__wasting_id"] = np.zeros(mg.number_of_nodes).astype(int) diff --git a/tests/components/space/test_space_large_scale_eroder.py b/tests/components/space/test_space_large_scale_eroder.py index a00941185a..6d7f889721 100644 --- a/tests/components/space/test_space_large_scale_eroder.py +++ b/tests/components/space/test_space_large_scale_eroder.py @@ -1317,6 +1317,121 @@ def test_MassBalance(): cores = mg.core_nodes area = mg.cell_area_at_node + # ... and run it to steady state (10000x1-year timesteps). + for _ in range(10000): + fa.run_one_step() + soil_B = cp.deepcopy(H) + bed_B = cp.deepcopy(br) + vol_SSY_riv, V_leaving_riv = sp.run_one_step(dt=dt) + diff_MB = ( + np.sum((bed_B[cores] - br[cores]) * area[cores]) + + np.sum((soil_B[cores] - H[cores]) * area[cores]) * (1 - sp._phi) + - vol_SSY_riv * dt + - V_leaving_riv + ) + + br[mg.core_nodes] += U * dt # m + soil[0] = 0.0 # enforce 0 soil depth at boundary to keep lowering steady + z[:] = br[:] + soil[:] + + # Test Every iteration + testing.assert_array_almost_equal( + z[cores], + br[cores] + H[cores], + decimal=5, + err_msg="Topography does not equal sum of bedrock and soil! Decrease timestep", + verbose=True, + ) + testing.assert_array_less( + abs(diff_MB), + 1e-8 * mg.number_of_nodes, + err_msg=( + "Mass balance error SpaceLargeScaleEroder! Try to resolve by " + "decreasing timestep" + ), + verbose=True, + ) + + # Check mass balance on effective erosion and deposition values + soil_new_calc = ( + soil_B + + ( + mg.at_node["sediment__deposition_flux"] + - mg.at_node["sediment__erosion_flux"] + ) + * dt + ) + np.testing.assert_almost_equal( + H[mg.core_nodes], soil_new_calc[mg.core_nodes], decimal=8 + ) + + +# %% +@pytest.mark.slow +def test_MassBalance_lower_pore_density(): + # %% + # set up a 15x15 grid with one open outlet node and low initial elevations. + nr = 15 + nc = 15 + mg = RasterModelGrid((nr, nc), xy_spacing=10.0) + + z = mg.add_zeros("topographic__elevation", at="node") + br = mg.add_zeros("bedrock__elevation", at="node") + soil = mg.add_zeros("soil__depth", at="node") + + mg["node"]["topographic__elevation"] += ( + mg.node_y / 100000 + mg.node_x / 100000 + np.random.rand(len(mg.node_y)) / 10000 + ) + mg.set_closed_boundaries_at_grid_edges( + bottom_is_closed=True, + left_is_closed=True, + right_is_closed=True, + top_is_closed=True, + ) + mg.set_watershed_boundary_condition_outlet_id( + 0, mg["node"]["topographic__elevation"], -9999.0 + ) + soil[:] += 0.0 # initial condition of no soil depth. + br[:] = z[:] + z[:] += soil[:] + + # Create a D8 flow handler + fa = FlowAccumulator( + mg, flow_director="D8", depression_finder="DepressionFinderAndRouter" + ) + + # Parameter values for detachment-limited test + K_br = 0.002 + K_sed = 0.002 + U = 0.0001 + dt = 10.0 + F_f = 0.2 # all detached rock disappears; detachment-ltd end-member + m_sp = 0.5 + n_sp = 1.0 + v_s = 0.25 + H_star = 0.1 + + # Instantiate the Space component... + sp = SpaceLargeScaleEroder( + mg, + K_sed=K_sed, + K_br=K_br, + F_f=F_f, + phi=0.4, + H_star=H_star, + v_s=v_s, + m_sp=m_sp, + n_sp=n_sp, + sp_crit_sed=0, + sp_crit_br=0, + ) + # Get values before run + z = mg.at_node["topographic__elevation"] + br = mg.at_node["bedrock__elevation"] + H = mg.at_node["soil__depth"] + cores = mg.core_nodes + area = mg.cell_area_at_node + # ... and run it to steady state (10000x1-year timesteps). for _ in range(10000): fa.run_one_step() @@ -1351,3 +1466,16 @@ def test_MassBalance(): ), verbose=True, ) + + # Check mass balance on effective erosion and deposition values + soil_new_calc = ( + soil_B + + ( + mg.at_node["sediment__deposition_flux"] + - mg.at_node["sediment__erosion_flux"] + ) + * dt + ) + np.testing.assert_almost_equal( + H[mg.core_nodes], soil_new_calc[mg.core_nodes], decimal=8 + ) diff --git a/tests/components/species_evolution/test_zone_objects.py b/tests/components/species_evolution/test_zone_objects.py index 3419ac1e87..f901bf17da 100644 --- a/tests/components/species_evolution/test_zone_objects.py +++ b/tests/components/species_evolution/test_zone_objects.py @@ -14,7 +14,7 @@ @pytest.fixture() def zone_example_grid(): mg = RasterModelGrid((5, 7), 2) - z = mg.add_zeros("node", "topographic__elevation") + z = mg.add_zeros("topographic__elevation", at="node") return mg, z diff --git a/tests/components/stream_power/test_not_implemented_errors.py b/tests/components/stream_power/test_not_implemented_errors.py index 9d9a9de21f..d6c6af846e 100644 --- a/tests/components/stream_power/test_not_implemented_errors.py +++ b/tests/components/stream_power/test_not_implemented_errors.py @@ -10,7 +10,7 @@ def test_route_to_multiple_error_raised_init_FastscapeEroder(): mg = RasterModelGrid((10, 10)) - z = mg.add_zeros("node", "topographic__elevation") + z = mg.add_zeros("topographic__elevation", at="node") z += mg.x_of_node + mg.y_of_node fa = FlowAccumulator(mg, flow_director="MFD") fa.run_one_step() @@ -21,7 +21,7 @@ def test_route_to_multiple_error_raised_init_FastscapeEroder(): def test_route_to_multiple_error_raised_init_SedDepEroder(): mg = RasterModelGrid((10, 10)) - z = mg.add_zeros("node", "topographic__elevation") + z = mg.add_zeros("topographic__elevation", at="node") z += mg.x_of_node + mg.y_of_node fa = FlowAccumulator(mg, flow_director="MFD") fa.run_one_step() @@ -32,7 +32,7 @@ def test_route_to_multiple_error_raised_init_SedDepEroder(): def test_route_to_multiple_error_raised_init_StreamPowerSmoothThresholdEroder(): mg = RasterModelGrid((10, 10)) - z = mg.add_zeros("node", "topographic__elevation") + z = mg.add_zeros("topographic__elevation", at="node") z += mg.x_of_node + mg.y_of_node fa = FlowAccumulator(mg, flow_director="MFD") fa.run_one_step() @@ -43,7 +43,7 @@ def test_route_to_multiple_error_raised_init_StreamPowerSmoothThresholdEroder(): def test_route_to_multiple_error_raised_init_StreamPowerEroder(): mg = RasterModelGrid((10, 10)) - z = mg.add_zeros("node", "topographic__elevation") + z = mg.add_zeros("topographic__elevation", at="node") z += mg.x_of_node + mg.y_of_node fa = FlowAccumulator(mg, flow_director="MFD") fa.run_one_step() diff --git a/tests/data_record/test_aggregators.py b/tests/data_record/test_aggregators.py new file mode 100644 index 0000000000..ea611a44b5 --- /dev/null +++ b/tests/data_record/test_aggregators.py @@ -0,0 +1,158 @@ +import numpy as np +import pytest +from numpy.testing import assert_array_equal + +from landlab.data_record._aggregators import ( + aggregate_items_as_count as _aggregate_items_as_count, +) +from landlab.data_record._aggregators import ( + aggregate_items_as_mean as _aggregate_items_as_mean, +) +from landlab.data_record._aggregators import ( + aggregate_items_as_sum as _aggregate_items_as_sum, +) +from landlab.data_record.aggregators import aggregate_items_as_count +from landlab.data_record.aggregators import aggregate_items_as_mean +from landlab.data_record.aggregators import aggregate_items_as_sum + + +def test_count_bench_cython(benchmark): + n_links = 1000 + n_parcels = 100000 + out = np.empty(n_links, dtype=int) + link_of_parcel = np.zeros(n_parcels, dtype=int) + + benchmark(_aggregate_items_as_count, out, link_of_parcel) + + assert_array_equal(out[0], 100000) + assert_array_equal(out[1:], 0) + + +@pytest.mark.slow +def test_count_bench(benchmark): + n_links = 1000 + n_parcels = 100000 + link_of_parcel = np.zeros(n_parcels, dtype=int) + + out = benchmark(aggregate_items_as_count, link_of_parcel, size=n_links) + + assert_array_equal(out[0], 100000) + assert_array_equal(out[1:], 0) + + +def test_sum_bench_cython(benchmark): + n_links = 1000 + n_parcels = 100000 + out = np.empty(n_links, dtype=float) + value_of_parcel = np.ones(n_parcels, dtype=float) + link_of_parcel = np.zeros(n_parcels, dtype=int) + + benchmark(_aggregate_items_as_sum, out, link_of_parcel, value_of_parcel) + + assert_array_equal(out[0], 100000.0) + assert_array_equal(out[1:], 0.0) + + +def test_sum_bench(benchmark): + n_links = 1000 + n_parcels = 100000 + value_of_parcel = np.ones(n_parcels, dtype=float) + link_of_parcel = np.zeros(n_parcels, dtype=int) + + out = benchmark( + aggregate_items_as_sum, link_of_parcel, value_of_parcel, size=n_links + ) + + assert_array_equal(out[0], 100000.0) + assert_array_equal(out[1:], 0.0) + + +def test_mean_bench_cython(benchmark): + n_links = 100 + n_parcels = 100000 + out = np.empty(n_links, dtype=float) + value_of_parcel = np.ones(n_parcels, dtype=float) + weight_of_parcel = np.ones(n_parcels, dtype=float) + link_of_parcel = np.zeros(n_parcels, dtype=int) + + benchmark( + _aggregate_items_as_mean, out, link_of_parcel, value_of_parcel, weight_of_parcel + ) + + assert_array_equal(out[0], 1.0) + assert_array_equal(out[1:], 0.0) + + +def test_mean_bench(benchmark): + n_links = 100 + n_parcels = 100000 + value_of_parcel = np.ones(n_parcels, dtype=float) + weight_of_parcel = np.ones(n_parcels, dtype=float) + link_of_parcel = np.zeros(n_parcels, dtype=int) + + out = benchmark( + aggregate_items_as_mean, + link_of_parcel, + value_of_parcel, + weights=weight_of_parcel, + size=n_links, + ) + + assert_array_equal(out[0], 1.0) + assert_array_equal(out[1:], 0.0) + + +def test_sum(): + n_links = 10 + n_parcels = 100 + value_of_parcel = np.ones(n_parcels, dtype=float) + link_of_parcel = np.arange(n_parcels, dtype=int) // n_links + + out = aggregate_items_as_sum(link_of_parcel, value_of_parcel, size=n_links) + assert_array_equal(out, 10.0) + + +def test_count(): + n_links = 10 + n_parcels = 100 + link_of_parcel = np.arange(n_parcels, dtype=int) // n_links + + out = aggregate_items_as_count(link_of_parcel) + assert_array_equal(out, 10) + + +def test_sum_with_negative_links(): + n_parcels = 100 + value_of_parcel = np.ones(n_parcels, dtype=float) + link_of_parcel = np.full(n_parcels, -1, dtype=int) + + out = aggregate_items_as_sum(link_of_parcel, value_of_parcel) + + assert_array_equal(out, 0.0) + + +def test_mean(): + n_links = 10 + n_parcels = 100 + value_of_parcel = np.ones(n_parcels, dtype=float) + weight_of_parcel = np.ones(n_parcels, dtype=float) + link_of_parcel = np.arange(n_parcels, dtype=int) // n_links + + out = aggregate_items_as_mean( + link_of_parcel, value_of_parcel, weights=weight_of_parcel + ) + + assert_array_equal(out, 1.0) + + +def test_mean_with_negative_links(): + n_parcels = 100 + value_of_parcel = np.ones(n_parcels, dtype=float) + weight_of_parcel = np.ones(n_parcels, dtype=float) + link_of_parcel = np.full(n_parcels, -1, dtype=int) + + out = aggregate_items_as_mean( + link_of_parcel, value_of_parcel, weights=weight_of_parcel + ) + + assert_array_equal(out, 0.0) diff --git a/tests/field/test_graph_fields.py b/tests/field/test_graph_fields.py index 03d12d1ce7..4c13e00bbe 100644 --- a/tests/field/test_graph_fields.py +++ b/tests/field/test_graph_fields.py @@ -45,10 +45,10 @@ def test_ones(): fields.new_field_location("node", 12) fields.new_field_location("cell", 2) - value_array = fields.ones("node") + value_array = fields.ones(at="node") assert_array_equal(np.ones(12), value_array) - value_array = fields.ones("cell") + value_array = fields.ones(at="cell") assert_array_equal(np.ones(2), value_array) @@ -59,11 +59,11 @@ def test_add_ones(): fields.add_ones("z", at="node") assert_array_equal(np.ones(12), fields["node"]["z"]) - assert_array_equal(np.ones(12), fields.field_values("node", "z")) + assert_array_equal(np.ones(12), fields.field_values("z", at="node")) fields.add_ones("z", at="cell") assert_array_equal(np.ones(2), fields["cell"]["z"]) - assert_array_equal(np.ones(2), fields.field_values("cell", "z")) + assert_array_equal(np.ones(2), fields.field_values("z", at="cell")) def test_add_ones_return_value(): @@ -74,12 +74,12 @@ def test_add_ones_return_value(): rtn_value = fields.add_ones("z", at="node") assert_array_equal(rtn_value, np.ones(12)) assert rtn_value is fields["node"]["z"] - assert rtn_value is fields.field_values("node", "z") + assert rtn_value is fields.field_values("z", at="node") rtn_value = fields.add_ones("z", at="cell") assert_array_equal(rtn_value, np.ones(2)) assert rtn_value is fields["cell"]["z"] - assert rtn_value is fields.field_values("cell", "z") + assert rtn_value is fields.field_values("z", at="cell") def test_add_existing_field_default(): @@ -187,7 +187,7 @@ def test_delete_field(): fields.delete_field("node", "vals") fields.delete_field("link", "vals") with pytest.raises(KeyError): - fields.field_units("link", "vals") + fields.field_units("vals", at="link") with pytest.raises(KeyError): fields.at_link["vals"] @@ -245,11 +245,11 @@ def test_grid_field_zeros_ones_empty(): fields = ModelDataFields() fields.new_field_location("grid", 1) with pytest.raises(ValueError): - fields.zeros("grid") + fields.zeros(at="grid") with pytest.raises(ValueError): - fields.empty("grid") + fields.empty(at="grid") with pytest.raises(ValueError): - fields.ones("grid") + fields.ones(at="grid") def test_nd_field(): @@ -271,7 +271,7 @@ def test_setting_units(name, unit_str): fields = ModelDataFields() fields.new_field_location("node", 12) fields.add_field(name, np.empty(12), at="node", units=unit_str[::-1]) - assert fields.field_units("node", name) == unit_str[::-1] + assert fields.field_units(name, at="node") == unit_str[::-1] fields["node"].set_units(name, unit_str) - assert fields.field_units("node", name) == unit_str + assert fields.field_units(name, at="node") == unit_str diff --git a/tests/grid/test_create.py b/tests/grid/test_create.py index 4e19f06d7b..a04edcc8fd 100644 --- a/tests/grid/test_create.py +++ b/tests/grid/test_create.py @@ -511,7 +511,7 @@ def test_field_units(units): grid = create_grid(params) assert grid.at_node["topographic__elevation"] == pytest.approx(0.0) assert grid.at_node.units["topographic__elevation"] == units - assert grid.field_units("node", "topographic__elevation") == units + assert grid.field_units("topographic__elevation", at="node") == units @given(units=text()) @@ -538,4 +538,4 @@ def test_repeated_units(units): grid = create_grid(params) assert grid.at_node["topographic__elevation"] == pytest.approx(0.0) assert grid.at_node.units["topographic__elevation"] == units - assert grid.field_units("node", "topographic__elevation") == units + assert grid.field_units("topographic__elevation", at="node") == units diff --git a/tests/grid/test_raster_divergence.py b/tests/grid/test_raster_divergence.py index 71e87c8d02..94773f2bf2 100644 --- a/tests/grid/test_raster_divergence.py +++ b/tests/grid/test_raster_divergence.py @@ -62,6 +62,7 @@ def test_flux_div_at_node_bench(benchmark): benchmark(calc_flux_div_at_node, grid, value_at_link, out=actual) +@pytest.mark.slow @pytest.mark.benchmark(group="large") @pytest.mark.parametrize( "func", diff --git a/tests/grid/test_raster_grid/test_allocators.py b/tests/grid/test_raster_grid/test_allocators.py index 11374e3dd1..71b5e56f11 100644 --- a/tests/grid/test_raster_grid/test_allocators.py +++ b/tests/grid/test_raster_grid/test_allocators.py @@ -19,7 +19,7 @@ def test_add_zeros(graph_element): grid = RasterModelGrid((4, 5)) number_of_elements = grid.number_of_elements(graph_element) rtn_values = grid.add_zeros("name", at=graph_element, dtype=field_dtype) - assert rtn_values is grid.field_values(graph_element, "name") + assert rtn_values is grid.field_values("name", at=graph_element) assert np.all(rtn_values == approx(np.zeros(number_of_elements, dtype=field_dtype))) @@ -36,7 +36,7 @@ def test_add_ones(graph_element): grid = RasterModelGrid((4, 5)) number_of_elements = grid.number_of_elements(graph_element) rtn_values = grid.add_ones("name", at=graph_element, dtype=field_dtype) - assert rtn_values is grid.field_values(graph_element, "name") + assert rtn_values is grid.field_values("name", at=graph_element) assert np.all(rtn_values == approx(np.ones(number_of_elements, dtype=field_dtype))) @@ -49,4 +49,4 @@ def test_empty(graph_element): def test_add_empty(graph_element): grid = RasterModelGrid((4, 5)) rtn_values = grid.add_empty("name", at=graph_element, dtype=field_dtype) - assert rtn_values is grid.field_values(graph_element, "name") + assert rtn_values is grid.field_values("name", at=graph_element) diff --git a/tests/utils/test_jaggedarray.py b/tests/utils/test_jaggedarray.py new file mode 100644 index 0000000000..515efbb4c1 --- /dev/null +++ b/tests/utils/test_jaggedarray.py @@ -0,0 +1,38 @@ +import numpy as np +import pytest +from numpy.testing import assert_array_equal + +from landlab.utils.jaggedarray import unravel + + +@pytest.mark.parametrize("dtype0", (int, np.intp, np.long, np.longlong, float)) +@pytest.mark.parametrize("dtype1", (int, np.intp, np.long, np.longlong)) +def test_unravel_jaggedarray(dtype0, dtype1): + data = np.empty(24, dtype=dtype0) + data[:] = np.arange(24) + actual = unravel(data, np.asarray([0, 4, 8, 12, 16, 20, 24], dtype=dtype1)) + expected = data.copy().reshape((6, 4)) + + assert_array_equal(actual, expected) + + +@pytest.mark.parametrize("dtype0", (int, np.intp, np.long, np.longlong, float)) +@pytest.mark.parametrize("dtype1", (int, np.intp, np.long, np.longlong)) +def test_unravel_jaggedarray_with_padding(dtype0, dtype1): + data = np.empty(24, dtype=dtype0) + data[:] = np.arange(24) + + actual = unravel(data, np.asarray([0, 2, 6, 11, 17, 21, 24], dtype=dtype1), pad=-1) + expected = np.asarray( + [ + [0, 1, -1, -1, -1, -1], + [2, 3, 4, 5, -1, -1], + [6, 7, 8, 9, 10, -1], + [11, 12, 13, 14, 15, 16], + [17, 18, 19, 20, -1, -1], + [21, 22, 23, -1, -1, -1], + ], + dtype=dtype0, + ) + + assert_array_equal(actual, expected) diff --git a/tests/values/test_synthetic.py b/tests/values/test_synthetic.py index fcc4f295bd..04cca56652 100644 --- a/tests/values/test_synthetic.py +++ b/tests/values/test_synthetic.py @@ -22,18 +22,18 @@ def test_add_units_missing_field(at, name, unit_str): grid = RasterModelGrid((4, 4)) units(grid, name, at=at, units=unit_str) assert grid[at][name] == pytest.approx(0.0) - assert grid.field_units(at, name) == unit_str + assert grid.field_units(name, at=at) == unit_str assert grid[at].units[name] == unit_str def test_add_units_existing_field(at): grid = RasterModelGrid((4, 4)) grid.add_empty("x", at=at, units="NONE") - assert grid.field_units(at, "x") == "NONE" + assert grid.field_units("x", at=at) == "NONE" values = grid[at]["x"].copy() units(grid, "x", at=at, units="m") - assert grid.field_units(at, "x") == "m" + assert grid.field_units("x", at=at) == "m" assert_array_equal(grid[at]["x"], values) @@ -41,10 +41,10 @@ def test_add_units_existing_field(at): def test_add_units_without_units(at, name): grid = RasterModelGrid((4, 4)) units(grid, name, at=at, units=None) - assert grid.field_units(at, name) == "?" + assert grid.field_units(name, at=at) == "?" units(grid, name, at=at) - assert grid.field_units(at, name) == "?" + assert grid.field_units(name, at=at) == "?" def test_bad_grid_element_name(four_by_four_raster):